C教程 從入門到精通 chap05實(shí)用_第1頁(yè)
C教程 從入門到精通 chap05實(shí)用_第2頁(yè)
C教程 從入門到精通 chap05實(shí)用_第3頁(yè)
C教程 從入門到精通 chap05實(shí)用_第4頁(yè)
C教程 從入門到精通 chap05實(shí)用_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1C教程從入門到精通chap05實(shí)用數(shù)組數(shù)組是有序數(shù)據(jù)的集合。數(shù)組中每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型,并且具有相同的名字。為了區(qū)分一個(gè)數(shù)組中的不同元素,可以用數(shù)組名和下標(biāo)的組合來(lái)惟一確定數(shù)組的一個(gè)元素。數(shù)組分為一維數(shù)組和多維數(shù)組,二維數(shù)組是一種最簡(jiǎn)單也是最常用的多維數(shù)組第2頁(yè)/共53頁(yè)第1頁(yè)/共53頁(yè)一維數(shù)組一維數(shù)組的定義方式為:數(shù)據(jù)類型數(shù)組名[數(shù)組長(zhǎng)度];一個(gè)數(shù)組的每個(gè)元素都可以通過(guò)數(shù)組名和下標(biāo)組合的方式進(jìn)行訪問(wèn)。具體訪問(wèn)形式如下:數(shù)組名[下標(biāo)]元素的下標(biāo)是從0開始的整數(shù)第3頁(yè)/共53頁(yè)第2頁(yè)/共53頁(yè)使用一維數(shù)組第4頁(yè)/共53頁(yè)第3頁(yè)/共53頁(yè)求10個(gè)數(shù)的平均值,并找出其中的最大值和最小值第5頁(yè)/共53頁(yè)第4頁(yè)/共53頁(yè)用冒泡法對(duì)10個(gè)數(shù)進(jìn)行從小到大的排序第6頁(yè)/共53頁(yè)第5頁(yè)/共53頁(yè)二維數(shù)組二維數(shù)組的定義方式為:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式][常量表達(dá)式]inta[3][4];第7頁(yè)/共53頁(yè)第6頁(yè)/共53頁(yè)使用二維數(shù)組保存3個(gè)學(xué)生4門課成績(jī),求出每門課平均成績(jī)和每名學(xué)生的平均成績(jī)第8頁(yè)/共53頁(yè)第7頁(yè)/共53頁(yè)多維數(shù)組多維數(shù)組中最簡(jiǎn)單也是最常用的一種數(shù)組是二維數(shù)組,也可以定義三維或者三維以上的數(shù)組。數(shù)據(jù)類型數(shù)組名[常量表達(dá)式][常量表達(dá)式]......[常量表達(dá)式];第9頁(yè)/共53頁(yè)第8頁(yè)/共53頁(yè)字符串字符數(shù)組和字符串標(biāo)準(zhǔn)字符串庫(kù)函數(shù)字符串?dāng)?shù)組第10頁(yè)/共53頁(yè)第9頁(yè)/共53頁(yè)字符串在C++中,沒(méi)有字符串?dāng)?shù)據(jù)類型,所有的字符串都是作為字符數(shù)組來(lái)處理的。所謂字符數(shù)組,就是一個(gè)一維數(shù)組,數(shù)組中每個(gè)元素都是char數(shù)據(jù)類型。第11頁(yè)/共53頁(yè)第10頁(yè)/共53頁(yè)字符串定義charc[10];charc[10]={'b','e','i','j','i','n','g'};第12頁(yè)/共53頁(yè)第11頁(yè)/共53頁(yè)字符數(shù)組來(lái)表示字符串C++要求在字符串的末尾增加一個(gè)字符的空間用于保存一個(gè)字符串結(jié)束標(biāo)記\0。要用字符數(shù)組來(lái)保存字符串時(shí),要定義一個(gè)一維字符數(shù)組,讓這個(gè)字符數(shù)組的長(zhǎng)度比要保存的字符串的字符數(shù)目多1個(gè),這樣就有足夠的空間保存字符串中的所有有效字符和字符串結(jié)束標(biāo)記\0第13頁(yè)/共53頁(yè)第12頁(yè)/共53頁(yè)字符串輸入函數(shù)getsgets和cin的區(qū)別gets函數(shù)要求有一個(gè)參數(shù),這個(gè)參數(shù)用于保存已經(jīng)輸入的字符串。charstr[80];gets(str);第14頁(yè)/共53頁(yè)第13頁(yè)/共53頁(yè)字符串輸出函數(shù)puts帶有一個(gè)參數(shù)用于保存需要輸出的字符串charstr[80]={"helloworld!"};puts(str);第15頁(yè)/共53頁(yè)第14頁(yè)/共53頁(yè)字符串長(zhǎng)度函數(shù)strlen求一個(gè)字符串的長(zhǎng)度charstr[80]={"HelloWorld!"};cout<<strlen(str);第16頁(yè)/共53頁(yè)第15頁(yè)/共53頁(yè)字符串復(fù)制函數(shù)strcpy把一個(gè)字符串的內(nèi)容賦值給另一個(gè)字符串charstr1[80]={"hello"};charstr2[80];strcpy(str2,str1);strcpy(str2,str1,2);第17頁(yè)/共53頁(yè)第16頁(yè)/共53頁(yè)字符串比較函數(shù)strcmp字符串之間比較的規(guī)則是:兩個(gè)字符串從左至右逐個(gè)字符比較,直到遇到不同的字符或者遇到字符串結(jié)束標(biāo)志為止。如果兩個(gè)字符串完全相同,那么就認(rèn)為相等;如果不同,那么第一個(gè)不同的字符相比較的結(jié)果就是字符串比較的結(jié)果。if(strcmp(str1,str2)==0)cout<<"str1等于str2";第18頁(yè)/共53頁(yè)第17頁(yè)/共53頁(yè)字符串連接函數(shù)strcat將兩個(gè)字符串連接成一個(gè)字符串charstr1[30]={"Hello"};charstr2[]={"World!"};cout<<strcat(str1,str2);第19頁(yè)/共53頁(yè)第18頁(yè)/共53頁(yè)指針指針的定義使用簡(jiǎn)單的指針指針和數(shù)組 指針和字符串 指針數(shù)組 多重間接訪問(wèn) 指針、數(shù)組與函數(shù)main函數(shù)的參數(shù)第20頁(yè)/共53頁(yè)第19頁(yè)/共53頁(yè)指針的定義指針是用于存儲(chǔ)地址的對(duì)象。如果x是一個(gè)指針,它保存了變量y的地址,那么就稱x是一個(gè)指針變量,x指向y。定義指針變量的方法是:數(shù)據(jù)類型*指針變量名;其中,“數(shù)據(jù)類型”表示的是指針變量中用以指向的變量的數(shù)據(jù)類型。第21頁(yè)/共53頁(yè)第20頁(yè)/共53頁(yè)運(yùn)算符“&”和“*”“&”是一個(gè)單目運(yùn)算符,后面跟一個(gè)變量,表示取后面變量的地址;“*”也是一個(gè)單目運(yùn)算符,后面跟一個(gè)變量,這個(gè)變量通常是一個(gè)指針變量,表示取這個(gè)指針變量所指向變量的值第22頁(yè)/共53頁(yè)第21頁(yè)/共53頁(yè)使用指針第23頁(yè)/共53頁(yè)第22頁(yè)/共53頁(yè)在指針類型中不使用強(qiáng)制類型轉(zhuǎn)換第24頁(yè)/共53頁(yè)第23頁(yè)/共53頁(yè)使用指針運(yùn)算第25頁(yè)/共53頁(yè)第24頁(yè)/共53頁(yè)指針和數(shù)組一個(gè)數(shù)組的數(shù)組名就是一個(gè)指向這個(gè)數(shù)組中第一個(gè)元素的指針。由于數(shù)組在內(nèi)存中保存時(shí)使用的是連續(xù)的存儲(chǔ)空間,因此,數(shù)組中每個(gè)元素都有自己的地址,并且這些地址是相連的。這樣,如果可以得到一個(gè)數(shù)組中某個(gè)元素的地址,又知道這個(gè)數(shù)組中每個(gè)元素的數(shù)據(jù)類型,那么就可以通過(guò)一個(gè)指針和在這個(gè)指針上進(jìn)行的算術(shù)運(yùn)算訪問(wèn)到這個(gè)數(shù)組中的所有元素??梢哉f(shuō)訪問(wèn)數(shù)組元素的方法有兩種一種是使用下標(biāo)法訪問(wèn)數(shù)組元素,一種方法是使用指針?lè)ㄔL問(wèn)數(shù)組元素使用指針?lè)ㄔL問(wèn)數(shù)組元素的效率要高于下標(biāo)法。第26頁(yè)/共53頁(yè)第25頁(yè)/共53頁(yè)使用指針訪問(wèn)字符數(shù)組,大寫字符和小寫字符之間相互轉(zhuǎn)換第27頁(yè)/共53頁(yè)第26頁(yè)/共53頁(yè)指針和字符串在C++中,要訪問(wèn)一個(gè)字符串可以采用兩種方法使用字符數(shù)組;使用指向字符的指針來(lái)指向一個(gè)字符串第28頁(yè)/共53頁(yè)第27頁(yè)/共53頁(yè)將一個(gè)字符串反向輸出第29頁(yè)/共53頁(yè)第28頁(yè)/共53頁(yè)指針數(shù)組如果一個(gè)數(shù)組中所有的元素都是同一種類型的指針,那么這個(gè)數(shù)組就是一個(gè)指針數(shù)組int*p[10];第30頁(yè)/共53頁(yè)第29頁(yè)/共53頁(yè)創(chuàng)建一個(gè)字典,根據(jù)輸入的字母找到以此字母開頭的單詞并輸出第31頁(yè)/共53頁(yè)第30頁(yè)/共53頁(yè)多重間接訪問(wèn)如果一個(gè)指針中保存的是另一個(gè)指針的地址的話,那么這個(gè)指針就是一個(gè)指向指針的指針,實(shí)現(xiàn)的是二次間接訪問(wèn)。間接訪問(wèn)的次數(shù)可以無(wú)限地增加下去,但是一般情況下,很少有用到三次或者三次以上的間接訪問(wèn)。第32頁(yè)/共53頁(yè)第31頁(yè)/共53頁(yè)使用指向指針的指針第33頁(yè)/共53頁(yè)第32頁(yè)/共53頁(yè)用指向指針的指針處理字符串?dāng)?shù)組第34頁(yè)/共53頁(yè)第33頁(yè)/共53頁(yè)指針作為函數(shù)參數(shù)與函數(shù)參數(shù)通過(guò)傳引用方式進(jìn)行實(shí)參到形參的傳遞類似,指針也可以作為函數(shù)的參數(shù)并通過(guò)指針帶回處理的數(shù)據(jù)。為了讓指針作為函數(shù)參數(shù),就需要讓函數(shù)的形參和實(shí)參都是指向同樣數(shù)據(jù)類型變量的指針。第35頁(yè)/共53頁(yè)第34頁(yè)/共53頁(yè)用指針作為函數(shù)參數(shù)求兩個(gè)數(shù)的較大和較小值第36頁(yè)/共53頁(yè)第35頁(yè)/共53頁(yè)數(shù)組作為函數(shù)參數(shù)如果要讓一個(gè)數(shù)組的元素作為函數(shù)的參數(shù),那么使用方法與普通變量做參數(shù)沒(méi)有任何區(qū)別。由于一個(gè)數(shù)組的名字就是指向這個(gè)數(shù)組第一個(gè)元素的指針,因此如果讓數(shù)組名作為參數(shù),實(shí)際上就是讓一個(gè)特殊的指針作為參數(shù)。第37頁(yè)/共53頁(yè)第36頁(yè)/共53頁(yè)計(jì)算兩個(gè)向量的和第38頁(yè)/共53頁(yè)第37頁(yè)/共53頁(yè)指針作為函數(shù)返回值函數(shù)也可以返回一個(gè)指針。第39頁(yè)/共53頁(yè)第38頁(yè)/共53頁(yè)在一個(gè)字符串中刪除指定字符,并顯示刪除后的結(jié)果第40頁(yè)/共53頁(yè)第39頁(yè)/共53頁(yè)main函數(shù)的參數(shù)在C++中允許main函數(shù)帶有兩個(gè)可選的參數(shù)、argc是一個(gè)int類型的形參。它的作用是保存命令行參數(shù)中參數(shù)的個(gè)數(shù)。需要說(shuō)明的是,argc的值至少是1,原因是文件名也會(huì)被認(rèn)為是一個(gè)參數(shù)argv是一個(gè)字符指針數(shù)組,每個(gè)元素都是一個(gè)字符指針,用于指向命令行中各個(gè)參數(shù)的第一個(gè)字符第41頁(yè)/共53頁(yè)第40頁(yè)/共53頁(yè)使用命令行參數(shù)實(shí)現(xiàn)顯示字符串第42頁(yè)/共53頁(yè)第41頁(yè)/共53頁(yè)編寫一個(gè)整數(shù)加法程序,加數(shù)和被加數(shù)用命令行參數(shù)的方式輸入第43頁(yè)/共53頁(yè)第42頁(yè)/共53頁(yè)鏈表什么是鏈表鏈表的創(chuàng)建、插入和刪除第44頁(yè)/共53頁(yè)第43頁(yè)/共53頁(yè)什么是鏈表鏈表由一個(gè)或多個(gè)節(jié)點(diǎn)組成。每個(gè)節(jié)點(diǎn)可以分成兩個(gè)部分,一部分用于保存數(shù)據(jù),另一部分是一個(gè)或多個(gè)指針,用于指向這個(gè)節(jié)點(diǎn)后面或者前面的節(jié)點(diǎn)。為了能夠找到鏈表,定義了一個(gè)頭指針,專門用于存放鏈表第一個(gè)節(jié)點(diǎn)的地址。為了能表明一個(gè)節(jié)點(diǎn)是鏈表的結(jié)尾,這個(gè)節(jié)點(diǎn)的指向后面節(jié)點(diǎn)的指針被賦值成空指針。第45頁(yè)/共53頁(yè)第44頁(yè)/共53頁(yè)鏈表分類單向鏈表雙向鏈表循環(huán)鏈表第46頁(yè)/共53頁(yè)第45頁(yè)/共53頁(yè)表示鏈表使用結(jié)構(gòu)體structnode{intdata;structnode*p;}第47頁(yè)/共53頁(yè)第46頁(yè)/共53頁(yè)訪問(wèn)成員定義了指向鏈表的指針p之后使用“.”操作符*p.data使用指向運(yùn)算符“->”p->data第48頁(yè)/共53頁(yè)第47頁(yè)/共53頁(yè)鏈表的創(chuàng)建向系統(tǒng)申請(qǐng)一個(gè)節(jié)點(diǎn)所需的內(nèi)存空間,可以使用new運(yùn)算符指針變量=new數(shù)據(jù)類型;一個(gè)節(jié)點(diǎn)所用的空間不再需要,那么可以使用delete運(yùn)算符將這塊內(nèi)存空間交還給系統(tǒng)delete指針變量;第49頁(yè)/共53頁(yè)第48頁(yè)/共53頁(yè)創(chuàng)建一個(gè)鏈表用于保存若干個(gè)整數(shù)第50頁(yè)/共53頁(yè)第49頁(yè)/共53頁(yè)插入節(jié)點(diǎn)如果需要把一個(gè)新節(jié)點(diǎn)插入到鏈表中間的某個(gè)位置,那么相對(duì)把新節(jié)點(diǎn)放在鏈表的末尾要復(fù)雜一些。例如,要把p指針指向的節(jié)點(diǎn)插入到q指針指向的節(jié)點(diǎn)后面,可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論