版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 數(shù)組數(shù)組是可以通過(guò)下標(biāo)訪問(wèn)的同類型數(shù)據(jù)元素的集合,而下標(biāo)則是標(biāo)識(shí)數(shù)組元素位置的無(wú)符號(hào)整數(shù)。本章內(nèi)容比較簡(jiǎn)單,學(xué)員一般困難不大,在此將重點(diǎn)內(nèi)容強(qiáng)調(diào)如下:、一維數(shù)組的定義和使用例如:char s80 /定義了一個(gè)具有80個(gè)字符的一維數(shù)組,沒(méi)進(jìn)行初始化int d=1,3,5,7,9,11 /定義了一個(gè)具有6個(gè)元素的整形數(shù)組 double num5=1.0,2.0,3.0 /定義了一個(gè)具有5個(gè)元素的雙精度數(shù)組,前三個(gè)元素依次是1.0,2.0,3.0,后兩個(gè)為0.0long data10=0L /10個(gè)元素都初始化為0注意:c+不進(jìn)行下標(biāo)越界檢查,即 cout<<data1
2、1,編譯系統(tǒng)不會(huì)提示出錯(cuò),所以編程時(shí)一定要注意,否則可能造成無(wú)法想象的后果,因?yàn)閿?shù)組在內(nèi)存中是連續(xù)排列的,data10是指data9的下一個(gè)位置,而下一個(gè)位置也許是其他變量的存儲(chǔ)空間。編程練習(xí):1、從建盤輸入n個(gè)數(shù),輸出最大數(shù)2、從建盤輸入n個(gè)數(shù),找到最大數(shù),然后將最大數(shù)與第一個(gè)數(shù)交換位置通過(guò)上述兩題的編寫,你會(huì)很容易理解教材P91例題,同時(shí)對(duì)一位數(shù)組的使用會(huì)掌握的比較好。對(duì)教材P92例題4一定要深刻理解,你可以自己編一程序:從鍵盤輸入一個(gè)整數(shù),判斷他是否為素?cái)?shù)(提示:不需要用到數(shù)組,且有多種方法,分析每種方法的計(jì)算次數(shù))、二維數(shù)組的定義和使用folat d45 /定義
3、了一個(gè)4行5列單精度二維數(shù)組,共20個(gè)下標(biāo)變量,未進(jìn)行初始化 int num3=1,3,5,0,2,4,6 /定義了一個(gè)3行3列的整形數(shù)組,每個(gè)數(shù)組元素的值是多少?double data53 =0.0 /每個(gè)數(shù)組元素賦值為0,注意中間的大括號(hào)不能少 int a5,3=1,3,5,2,4,6 與 int a53=1,3,5,0,2,4,6的效果一樣嗎?在理解教材例4.5的基礎(chǔ)上,你如何將這程序修改為:對(duì)數(shù)組每行每列求和,然后只輸出每行每列的和。 對(duì)一維數(shù)組和二維數(shù)組的使用要注意以下問(wèn)題: 1、一維數(shù)組下標(biāo)的取值范圍是0元素個(gè)數(shù)1,二維數(shù)組行下標(biāo)的取值范圍是0行數(shù)1,列下標(biāo)的取值范圍是
4、0列數(shù)1。 2、 表示一維數(shù)組有N個(gè)成員,表示二維數(shù)組有M*N個(gè)成員,M和N最好用符號(hào)常量或者常值變量表示,而不能用一般的整形變量。如: #define n 10 char an; 或 const int n=10; char an; 都是正確的, 而 int n=10; char an 則是錯(cuò)誤的。 3、一維數(shù)組的處理常用單重循環(huán),二維數(shù)組的處理常用二重循環(huán),循環(huán)變量對(duì)應(yīng)數(shù)組的下標(biāo),處理數(shù)組的典型結(jié)構(gòu)是(假定是一維數(shù)組,是二維數(shù)組): for(I=0;I<n;I+) for(I=0;I<m;I+) /*處理aI*/ for(j=0;j<n;j+) /*處理bIj
5、*/ 練習(xí):1、下列數(shù)組的定義方式是否正確? 1) int n; cin>>n; int an; 2) int const n=5; int an; 3)#define n 5 int an; 4)#define n 5 int a2*n; 2、編寫一個(gè)程序,從鍵盤輸入10個(gè)數(shù),求最大數(shù)、最小數(shù)和平均數(shù) 、字符數(shù)組與字符串 字符數(shù)組可以用于存放字符串,因而可以通過(guò)下標(biāo)直接處理字符串中的任意字符,也可以把存于字符數(shù)組中的字符串作為一個(gè)整體,通過(guò)數(shù)組名交給系統(tǒng)提供的標(biāo)準(zhǔn)字符串處理函數(shù)來(lái)處理。其中strlen(求字符串長(zhǎng)度),strcpy(字符串復(fù)制),strca
6、t(字符串連接),strcmp(字符串比較),strst(求子串位置)是處理字符串最常用的5個(gè)函數(shù),希望學(xué)員結(jié)合教材中的例題將這幾個(gè)函數(shù)一定弄清楚。 說(shuō)明:教材P109 4_10是一個(gè)很好的例子,有興趣的同學(xué)可以親自編一下,并上機(jī)調(diào)試通過(guò)。第五章 c+函數(shù)一、 函數(shù)聲明、定義和調(diào)用的三個(gè)步驟C+ 中的一個(gè)函數(shù)要經(jīng)過(guò)先聲明、再定義和函數(shù)調(diào)用三個(gè)步驟。當(dāng)函數(shù)的定義在使用之前時(shí),前兩步往往可以合并在一起實(shí)現(xiàn)。建議學(xué)員在學(xué)習(xí)c+時(shí)最好養(yǎng)成將聲明與定義分別編寫的編程習(xí)慣。強(qiáng)調(diào):函數(shù)的原型與定義要在函數(shù)的返回類型,函數(shù)名和參數(shù)這三條線上保持一致。例: void Pr(int k, float f); /
7、也可寫成void Pr(int,float); . . . void Pr(int i, float f) /參數(shù)類型與數(shù)量一致即可。.二、函數(shù)傳遞參數(shù)的使用用于 C+中的函數(shù)參數(shù)可以是值、地址(指針)和引用類型量。使用引用類型量做參數(shù)是傳值和傳地址的一種綜合變化形式。請(qǐng)學(xué)員一定將教材P123例題5.5深入的理解(教師也可以把它放到第六章以后在講解,而在這里只講解可選參數(shù))三、 函數(shù)的返回值1、 無(wú)缺省返回類型c+中對(duì)每個(gè)函數(shù)都必須給出返回值的類型聲明。 如果沒(méi)有返回值, 則聲明應(yīng)用void表示(說(shuō)明:在C中,一個(gè)函數(shù)可以不聲明其返回值的類型,即缺省為int。但在C+ 中沒(méi)有這個(gè)缺省類型)2、
8、可以用引用類型量做函數(shù)返回值例: struct dt.; dt &fun( ) /*若在fun()前加"&",則可在返回時(shí)只傳少數(shù)字節(jié)的地址,從而節(jié)省時(shí)空*/ dt dt1=.;return dt1; void main() dt dt2; /*因中介緩沖區(qū)的介入,傳值時(shí)要二次抄傳整體結(jié)構(gòu)內(nèi)容。*/ dt2=fun(); cout<<dt2.; /*顯示st2中的內(nèi)容,實(shí)為子程序中st1的內(nèi)容*/ 四、 內(nèi)聯(lián)(inline)函數(shù) 內(nèi)聯(lián)函數(shù)是C+特有的一種函數(shù)類型。學(xué)員一定要深入理解,我們通過(guò)下面的例題幫助大家理解: #include
9、<iostream.h> inline int add(int,int); void main() cout<<"2+2="<<add(2,2); cout<<"100+50="<<add(100,50); inline int add(int x,int y) return (x+y);分析:編譯系統(tǒng)會(huì)把帶inline關(guān)鍵字的add函數(shù)全過(guò)程的二進(jìn)代碼全部照抄到主程序中的兩個(gè)add(.)處,并把往返傳送的數(shù)據(jù)都溶合進(jìn)去直接參加運(yùn)行。這樣就打破了主、子程序的界線,顯然會(huì)減少系統(tǒng)的函數(shù)調(diào)用和返回的
10、例行開(kāi)銷。當(dāng)然,這是以增加程序代碼空間為代價(jià)換來(lái)的。所以對(duì)大的函數(shù)且調(diào)用頻繁的情況不宜使用。要由編譯器按一定準(zhǔn)則判斷是否按指定的inline的方式處理。對(duì)不同公司和不同版本的 C+編譯器,這個(gè)判決不一樣,有些(如Turbo C+ 1.0)還會(huì)對(duì)這類函數(shù)中的循環(huán)語(yǔ)句(如for、while)報(bào)警告錯(cuò)。 看了上面的分析,似乎內(nèi)聯(lián)函數(shù)極象宏(Marco),其實(shí)這是誤解。如前所說(shuō),內(nèi)聯(lián)函數(shù)是把二進(jìn)碼插在編譯結(jié)果(OBJ)的調(diào)用處,而宏則是將其源碼插在源程序的調(diào)用處再一起參加編譯。此兩種碼的插入階段完全不一樣,自然效果也就不一樣了。用下面的例子來(lái)說(shuō)明它們之間有時(shí)發(fā)生的不同效果便可以一目了然了。先定義一宏“
11、#define sq(x) x*x”,當(dāng)程序中調(diào)用的是sq(3)時(shí),編譯器解釋成3*3=9。但下面的兩個(gè)調(diào)用結(jié)果就不一樣了: sq(1+2); /結(jié)果顯示為:1+2*1+2=5將sq的定義改為sq(x) (x)*(x);后才能避免此類錯(cuò)誤的發(fā)生。再如: int i=2; sq(+i); /結(jié)果顯示為:3*4=12這些結(jié)果都是由于宏作為一種源碼替換在編譯時(shí)就被固化在主程序中的原因而引起的,而將sq定義改為:“inline int sq(int x,int y)return (x*y);”后,上面的奇怪結(jié)果就不會(huì)出現(xiàn)了。由此可見(jiàn),內(nèi)聯(lián)函數(shù)仍是函數(shù)的一種,而不能看成宏。五、 C+中函數(shù)的缺省參數(shù) C
12、+中可以給函數(shù)定義缺省參數(shù)值。從某個(gè)實(shí)參開(kāi)始的全部實(shí)參數(shù)都缺?。ú毁x值)時(shí), 在形參表中等號(hào)后的"缺省值"將起實(shí)參作用。例: #include<iostream、h> int sub(int x=1,int y=1) return x-y; void main() cout<<sb()<<sub(5)<<sub(5,8);結(jié)果顯示分別為:0(1-1)、4(5-1)和-3(5-8)。注意:在使用缺省參數(shù)時(shí)要注意參數(shù)聲明的順序, 即只能把帶有缺省值的參數(shù)依次從右向左排放,如下的聲明格式就是錯(cuò)誤的: void sub(int,int
13、=0,int);而應(yīng)改成: void sub(int,int,int=0);六、 函數(shù)的重載在C+中,將含有不同的參數(shù)個(gè)數(shù)和參數(shù)類型的一系列同名函數(shù)稱為重載函數(shù)。此種函數(shù)族的出現(xiàn)就形成了用同一函數(shù)名重復(fù)、派生多種不同用途的函數(shù)的效應(yīng),我們又稱這種效應(yīng)為重載。重載函數(shù)具有極高的實(shí)用價(jià)值。比如要用同一個(gè)函數(shù)名dsp來(lái)顯示不同型對(duì)象,就可以定義一系列重載函數(shù)來(lái)實(shí)現(xiàn)。例: #include<iostrean.h> void dsp(int i)cout<<"Value is "<<i; char dsp(char c)cout<<&q
14、uot;Character is"<<c;return c; void dsp(.).;調(diào)用時(shí)只要給出同一函數(shù)名dsp并賦予實(shí)參即可,C+系統(tǒng)自動(dòng)判斷出應(yīng)調(diào)重載中的哪個(gè)函數(shù)。注意:重載的函數(shù)必須在參數(shù)的數(shù)量上或類型上與其他函數(shù)名有所區(qū)別。第六章 指針、引用和動(dòng)態(tài)空間管理 一、正確理解指針、地址和指針變量三個(gè)概念,這是本章的關(guān)鍵:指針是存儲(chǔ)特定類型數(shù)據(jù)的地址,而保存內(nèi)存地址的變量稱為指針變量。二、常值指針有兩種含義,書寫格式一定記請(qǐng):指針指向的數(shù)據(jù)為常值時(shí)const在*前;指針本身為常值時(shí)const在*后;如:const char *s="hello"
15、表示s指向的數(shù)據(jù)是不可改變的,而s本身可以改變 char * const s="hello"表示s是不可改變的,而s指向的數(shù)據(jù)可以改變?nèi)?、指針表達(dá)式的綜合運(yùn)算記住以下兩句話:一是+,-,*,&是具有相同的,幾乎最高的優(yōu)先級(jí);二是=,+=,-=,*=. 是具有相同的,幾乎最低的優(yōu)先級(jí);(教材中P152的例子一定要理解清楚,不要死記)四、字符指針與字符串:第四章講了,char s='s','t','r','i','n','g'可簡(jiǎn)寫為
16、60; char s="string",而s又是一指針,于是char *p=s,這樣指針s,p指向同一字符串,于是可見(jiàn)寫為char *p="string"這是定義字符串的又一方法,而且常使用這種方法。要使用一批字符串可使用如下方法:char *weekday="sun","mon","tue","wed","thu","fri&
17、quot;,"sat"五、函數(shù)調(diào)用中參數(shù)的傳遞(總結(jié))注:要求學(xué)員一定搞清楚1、傳值方式(簡(jiǎn)單變量方式) 這種方式實(shí)參是一簡(jiǎn)單變量,對(duì)應(yīng)的形式參數(shù)只是實(shí)參的一個(gè)副本,因此對(duì)形參的改變不會(huì)影響到實(shí)參,如:void swap(double n1,double n2)double t=n1;n1=n2;n2=t;void main()double a=10.1,=20.1;swap(a,b);cout<<a<<endl<<b;輸出結(jié)果為:10.1 20.12、指針參數(shù)方式 &
18、#160; 這種方式傳遞的是實(shí)參的地址給形參,因此對(duì)形參的任何改變都會(huì)影響實(shí)參,如:void swap(double *n1,double *n2)double t=*n1;*n1=*n2;*n2=t;void main()double a=10.1,=20.1;swap(&a,&b);cout<<a<<endl<<b;輸出結(jié)果為:20.1 10.13、數(shù)組參數(shù)方式 數(shù)組名本身就是指針,因此它跟指針參數(shù)方式類似,對(duì)形參的任何改變都會(huì)影響實(shí)參,如:void aa(int x)x0*=2;x1*=2;x2*=2;void main()int y3=2,4,6
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院感染的培訓(xùn)試題及答案
- 詞匯運(yùn)用試題及答案
- 低碳經(jīng)濟(jì)培訓(xùn)考試試卷及答案(標(biāo)準(zhǔn)版)
- 支氣管哮喘、支氣管擴(kuò)張、肺炎及肺膿腫、肺結(jié)核聯(lián)合試題(附答案)
- 年建筑安全員c證考試題庫(kù)及答案
- 醫(yī)院感染管理培訓(xùn)試題及答案
- 茶藝師考試題及參考答案
- 學(xué)法考試題庫(kù)及答案
- 食品檢驗(yàn)相關(guān)知識(shí)要點(diǎn)測(cè)試試卷及答案解析
- 醫(yī)院感染管理知識(shí)考核試卷及答案
- 北京市順義區(qū)2025-2026學(xué)年八年級(jí)上學(xué)期期末考試英語(yǔ)試題(原卷版+解析版)
- 中學(xué)生冬季防溺水主題安全教育宣傳活動(dòng)
- 2026年藥廠安全生產(chǎn)知識(shí)培訓(xùn)試題(達(dá)標(biāo)題)
- 2026年陜西省森林資源管理局局屬企業(yè)公開(kāi)招聘工作人員備考題庫(kù)及參考答案詳解1套
- 冷庫(kù)防護(hù)制度規(guī)范
- 承包團(tuán)建燒烤合同范本
- 英語(yǔ)A級(jí)常用詞匯
- 小兒支氣管炎護(hù)理課件
- NB-T 47013.15-2021 承壓設(shè)備無(wú)損檢測(cè) 第15部分:相控陣超聲檢測(cè)
- 打針協(xié)議免責(zé)書
- 四川省成都市八年級(jí)上學(xué)期物理期末考試試卷及答案
評(píng)論
0/150
提交評(píng)論