教學(xué)課件·《C++程序設(shè)計簡明教程(第二版)_第1頁
教學(xué)課件·《C++程序設(shè)計簡明教程(第二版)_第2頁
教學(xué)課件·《C++程序設(shè)計簡明教程(第二版)_第3頁
教學(xué)課件·《C++程序設(shè)計簡明教程(第二版)_第4頁
教學(xué)課件·《C++程序設(shè)計簡明教程(第二版)_第5頁
已閱讀5頁,還剩186頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、121世紀高等院校計算機系列教材 C+程序設(shè)計簡明教程 (第二版) 教學(xué)課件 2教 學(xué) 主 要 內(nèi) 容 第 1 章 C+基礎(chǔ) 第 2 章 C+流程控制語句 第 3 章 指針、結(jié)構(gòu)體和聯(lián)合體 第 4 章 函數(shù) 第 5 章 C+類 第 6 章 C+運算符的重載 第 7 章 繼承和模板 第 8 章 C+流與文件3第 1 章 C+概述主要內(nèi)容: C+程序舉例 C+程序組成、運行 數(shù)據(jù)類型 常量和變量 運算符與表達式4#includevoid main() coutHello world.n;程序1.1 簡單C+程序舉例程序輸出結(jié)果:Hello world.5程序1.2 帶注釋的程序#includevo

2、id main()/*This is a comment and it extends until the closing star-slash comment mark .*/ coutHello,world!.n;/This comment ends at the of the line.程序輸出結(jié)果:Hello world.6int add(int x,int y) coutIn add() received x and yn; return(x+y); void main()int a,b,c; coutIm in main()!n; couta; cinb; coutnCalling

3、 add()n; c=add(a,b); coutnBack in main().n; coutc was c;程序1.3 由兩個函數(shù)組成的程序程序輸出結(jié)果:Im in main()!Enter two numbers: 2 4Calling add()In add() received 2 and 4Back in main()c was 67程序功能:計算矩形面積class rect /建立計算矩形面積的rect類 public: int area(int a, int b ) return a*b; ;void main( ) rect s ; /建立rect類的對象s couts.ar

4、ea(3,9)endl ; /通過對象s計算矩形面積程序1.4 帶類的C+程序程序輸出結(jié)果:278#include /包含頭文件fun1(參數(shù)列表) /函數(shù)fun1fun2(參數(shù)列表) /函數(shù)fun2class myclass / myclass類void main() /主函數(shù)C+程序結(jié)構(gòu)9main()主函數(shù)是一個特殊的函數(shù),是程序的入口。每一個C+程序必須有一個且只允許有一個main()函數(shù)可以把程序劃分成若干個函數(shù),每個函數(shù)完成一個專門的任務(wù)。程序中的各個函數(shù)必須有不同的函數(shù)名,不能重名。每個函數(shù)由函數(shù)名和函數(shù)體組成函數(shù)體由大括號之內(nèi)的一系列語句組成。C+程序說明10 一個C+程序經(jīng)過編

5、寫、編譯、連接、執(zhí)行環(huán)節(jié)。 常見C+開發(fā)環(huán)境有: Turbo C+、Borland C+、 Visual C+等。C+程序的執(zhí)行編寫源程序編譯得到目標程序執(zhí)行可執(zhí)行文件得到程序結(jié)果C+編譯程序 庫函數(shù)和其他目標程序 連接目標程序生成可執(zhí)行文件文字編輯程序11數(shù)據(jù)和運算介紹: C+的標識符、保留字、數(shù)據(jù)類型 變量、常量、運算符和表達式等12(1)標識符只能由字母、數(shù)字和下劃線組成,且標識符的第一個字符必須是字母或下劃線。(2)標識符嚴格區(qū)分大小寫字母,如a1和A1是兩個不同的標識符。(3)不能用C+的保留字作標識符。如main、public、new等。 (4)應(yīng)當使標識符能夠具有一定的含義。 如

6、用標識符myphone表示電話號碼。例 合法標識符: myclass2 myphone _name例 非法標識符: 2myclass public -nameC+對標識符的規(guī)定13無符號短整型unsigned short : 2字節(jié) 065535短整型short : 2字節(jié) -3276832767整型int: 2字節(jié) -3276832767無符號長整型unsigned long:4字節(jié) 04294967295長整型long: 4字節(jié) -2,1474836482147,483647字符型char: 1字節(jié) -128127浮點型float: 4字節(jié) 3.4e-383.4e38雙精度型double:

7、8字節(jié) 1.7e-3081.7e308C+提供的數(shù)據(jù)類型14程序1.5 使用sizeof()運算符求字節(jié)數(shù)void main() coutThe size of an int is:sizeof(int)bytesn; coutThe size of a short int is: sizeof(short)bytesn; coutThe size of a long int is: sizeof(long)bytesn; coutThe size of a char is: sizeof(char)bytesn; coutThe size of a float is: sizeof(floa

8、t)bytes.n;程序輸出結(jié)果: The size of an int is: 2bytes.The size of a short int is: 2bytes.The size of a long int is: 4bytes.The size of a char is: 1bytes.The size of a float is: 4bytes.15整型常量可采用十進制、八進制整數(shù)和十六進制表示。 八進制整數(shù)以數(shù)字0開頭 如:012、-017十六進制整數(shù)以0 x或OX開頭(數(shù)字0,字母x) 如:0 x64、-OX2A整型常量末尾添加一個大寫字母L或小寫字母l,表示長整型數(shù) 如:123L

9、、-123L、027L。在整型常量末尾添加寫字母U或u表示無符號整型數(shù) 如:123U1整型常量16實型常量表示帶小數(shù)的數(shù)值常量。又稱為浮點常量或?qū)崝?shù)。實型常量只有十進制形式。如0.123、12.3、-123.0、-12.3實型常量可用科學(xué)計數(shù)法(指數(shù)形式)表示 如1.23e2或1.23E2,代表1.23102 如-1.23e2或-1.23E2,代表-1.23102實型常量17字符常量和轉(zhuǎn)義字符 字符常量表示單個字符,要求用單引號將字符括起來 如A、a,2常用轉(zhuǎn)義字符 含義 對應(yīng)ASCII碼b 退格 x08t 水平制表符tab x09n 換行 x0af 換頁 x0cr 回車 x0d“ 雙引號 x

10、22 單引號 x27 反斜線 x5cddd 用3位8進制數(shù)表示字符 如101 表示Axff 用2位16進制數(shù)表示字符 如x41 表示A18字符串常量 字符串常量是用雙引號括起來的字符序列 如Hello、How are you ? 字符串中包含轉(zhuǎn)義字符,如C:MY.CPP 用連接符(+)連接字符串 如: ABC+DE 如: ABC+DE+FG19符號常量用一個標識符表示數(shù)據(jù)(1)用#define定義常量 格式為:#define 常量名 字符串 例:#define students 36 void main() coutstudentsn;(2)用關(guān)鍵字const定義常量 格式為:const 類型

11、 常量名=常數(shù); 例:const int student=36;符號常量20 枚舉常量是一定范圍的整數(shù)集合 說明枚舉類型常量的格式: enum 枚舉類型名稱 枚舉值1,枚舉值2,;例如:enum color red,green,blue,black,white;把color定義為枚舉類型。定義red、green、blue、black、white為符號常量,取值分別為0、1、2、3、4。作用是將程序中出現(xiàn)的符號替換為對應(yīng)的整數(shù)。例如:符號red替換為整數(shù)0,符號green替換為整數(shù)1。枚舉常量211.定義變量格式 數(shù)據(jù)類型 變量名1=初值,變量名2=初值;例 char result; /聲明一個

12、存放字符、名為result的變量 int j; /聲明一個int型整數(shù)變量 double x, y ; /聲明兩個double類型的變量 long m=0, n; /聲明long型整數(shù)變量2. typedef語句 使用typedef語句為數(shù)據(jù)類型命名 即給某個數(shù)據(jù)類型再取一個名字變量22程序1.6 計算矩形面積#includevoid main() int length=38,width, area;width=10;area =length*width;coutlength:lengthn;coutwidth:widthn;coutarea:arean;程序輸出結(jié)果:length:38wid

13、th:10area:38023typedef int ust;void main() ust length=38,width=10,area; coutlength:lengthn; coutwidth:widthn; area=length*width; coutarea:arean;程序1.7 使用typedef語句24相同類型的數(shù)據(jù)可以直接運算。不同類型的數(shù)據(jù)進行運算時,要將數(shù)據(jù)轉(zhuǎn)換為同一類型再運算。數(shù)據(jù)類型轉(zhuǎn)換分為自動轉(zhuǎn)換和強制轉(zhuǎn)換兩種。自動轉(zhuǎn)換從低到高的轉(zhuǎn)換規(guī)則: 低 charintlongunsignedfloatdouble 高通過強制轉(zhuǎn)換可以轉(zhuǎn)換成指定類型。強制轉(zhuǎn)換的方法是:(

14、數(shù)據(jù)類型)數(shù)據(jù) 例如: int k=4 ; double x=3.5, y ; y=x+(double)k; 數(shù)據(jù)類型轉(zhuǎn)換25運算符與表達式 對于每個運算符要掌握它的功能、優(yōu)先級和結(jié)合性 運算符的優(yōu)先級決定了表達式中各個運算符的運算順序 運算符的結(jié)合性決定了優(yōu)先級相同運算符的運算順序26程序1.8 算術(shù)運算舉例void main() short i=13 ;int j=24; float x=2.34F; double y=1.2; coutj/i=j/iendl;couti%3=i%5endl;couti/2.0=i/2.0endl;coutj/5=(float)j/5endl;coutx+

15、y=x+yendl;程序輸出結(jié)果:j/i=1i%3=3i/2.0=6.5j/5=4.8x+y=3.5427程序1.9 單目算術(shù)運算舉例void main() char c=E ; int i=3, j=3; int m=i+ , n=+j , k=-j; coutm=m); coutn=n); coutk=k); -c ; k+; coutc=c); coutk= = =3 75 7!=8關(guān)系運算符29void main()int m=53 , n=24 ,k=24; char c1=A, c2=B;coutn=k is (n=k)endl; coutc2 is c2)endl; coutc1

16、!=c2 is (c1!=c2)endl;cout8 is 8)endl;cout86 is 86)c2 is 0c1!=c2 is 12!=58 is 11086 is 0程序1.10 關(guān)系運算舉例30邏輯運算符 邏輯運算是對關(guān)系運算表達式進行運算。 名稱 運算符 格式 邏輯與 & 表達式1 & 表達式2 邏輯或 | 表達式1 | 表達式2 邏輯非 ! ! 表達式 例如 43 & 76 | 75 !(7=8)31程序1.11 邏輯運算舉例void main() int m=53 , n=24 ; char c1=A, c2=B,c3=C; coutc1&c2c3&c1c3)endl; cou

17、t2*2+1)endl; cout2 | 53 & !3):表達式3 例 43 ? 4:3 逗號運算符 表達式1,表達式2, ,表達式n 逗號表達式的值為最后一個表達式的值 例 43 ,x=9 ,x+35輸入輸出 輸入輸出是程序的基本功能 C+利用流進行輸入輸出 用于輸入輸出的流庫包含在頭文件iostream.h中36程序1.13 輸出舉例#includevoid main()cout1+2=1+2endl; cout1.3 2 C+endl;程序輸出結(jié)果:1+2=31.3 2 C+37#includevoid main() coutThis is line one.nThis is line

18、 two.n; coutThis is line three.nThis is line four.n ; coutThis is line five.endlthis is line six.endl;程序輸出結(jié)果:This is line one.This is line two.This is line three.This is line four.This is line five.This is line six.程序1.14 實現(xiàn)換行舉例38程序1.15 數(shù)據(jù)以各種進制輸出#includevoid main() cout將10輸出為八進制數(shù):oct10endl; cout將10輸

19、出為十六進制數(shù):hex10endl; cout將10輸出為十六進制數(shù):10endl; cout將10輸出為十進制數(shù):dec10endl; cout將10輸出為十制制數(shù):10endl;程序輸出結(jié)果:將10輸出為八進制數(shù):12將10輸出為十六進制數(shù):a將10輸出為十六進制數(shù):a將10輸出為十進制數(shù):10將10輸出為十進制數(shù):10 39程序1.16 設(shè)置輸出寬度和有效數(shù)字#include#includevoid main() coutsetw(2)ABsetw(4)ABsetw(5)ABendl; coutsetw(3)123setw(5)123setw(6)123endl; coutsetprec

20、ision(4)23.45678endl; coutsetprecision(5)23.45678endl;程序輸出結(jié)果:AB AB AB123 123 12323.4623.45740輸入 C+提供輸入流 cin 利用輸入流cin,從鍵盤輸入數(shù)據(jù),并賦給指定變量41程序1.17 使用輸入流cin程序輸出結(jié)果:Type two numbers and press Enter: 2 6The typed numbers were:2 and 6Type any character and press Enter: xThe letter typed was xvoid main()int fir

21、st,second; char letter; coutfirstsecond; coutThe typed numbers were:firstandsecondendl; coutletter; coutThe typed letter was letterendl;42數(shù)組用數(shù)組可以存儲一組類型相同的數(shù)據(jù)。數(shù)組中的每個成員稱為數(shù)組元素。數(shù)組要先定義后使用43一維數(shù)組 一維數(shù)組定義格式:數(shù)據(jù)類型 數(shù)組名數(shù)組元素個數(shù); 例: int a4; double b5; 數(shù)組a包括4個數(shù)組元素:a0、a1、a2、a3 數(shù)組b包括5個數(shù)組元素:b0、b1、b2、b3、 b444定義一維數(shù)組同時給數(shù)組元

22、素賦值,稱為一維數(shù)組初始化。數(shù)組初始化有兩種格式: static 數(shù)據(jù)類型 數(shù)組名 =元素1初值,元素2初值,元素3初值; static 數(shù)據(jù)類型 數(shù)組名元素個數(shù)=元素1初值,元素2初值,元素3初值;例如:static int a =1,2,3,4 ;static int b5=1,2,3,4,5 ;static int c6=3,2+2,5 ;一維數(shù)組的引用:數(shù)組名下標例如 couta2“, “a3; 一維數(shù)組初始化和引用45程序1.18 一維數(shù)組定義和使用舉例#includevoid main() int f =2,3,3+2; int k=2; cout數(shù)據(jù)元素f0值是f0endl; c

23、out數(shù)據(jù)元素f1值是f1endl; cout數(shù)據(jù)元素f2值是fkendl; f0=fk+4; f1=f1*2; cout三個數(shù)據(jù)元素之和f0+f1+f2endl; 程序輸出結(jié)果:數(shù)據(jù)元素f0值是2數(shù)據(jù)元素f1值是3數(shù)據(jù)元素f2值是5三個數(shù)據(jù)元素之和是2046定義格式:數(shù)據(jù)類型 數(shù)組名行數(shù)列數(shù);例如:int x34;定義3行4列的二維數(shù)組,數(shù)組名為x矩陣為: 0列 1列 2列 3列x00 x01 x02 x03 0行 x10 x11 x12 x13 1行x20 x21 x22 x23 2行引用二維數(shù)組元素的形式:數(shù)組名行下標 列下標二維數(shù)組47二維數(shù)組的初始化例如:static int b23

24、=1,3,5,2,4,6; 初始化后形成的矩陣為: 1 3 5 2 4 6 例如:static int b23=1,3,5,2,4,6; 例如:static int x33=1,2,3,4,5,6; 1 0 0 2 3 0 4 5 6 48程序1.19 二維數(shù)組定義和使用舉例#includevoid main() int b23= 1,2,3,4,5,6 ; cout數(shù)據(jù)元素a00值是b00endl; cout數(shù)據(jù)元素b03值是b03endl; b23=2.8; cout數(shù)據(jù)元素b23值是b23endl;程序輸出結(jié)果:數(shù)據(jù)元素b00值是1數(shù)據(jù)元素b03值是4數(shù)據(jù)元素b23值是249 第2章 C

25、+流程控制語句 if 語句 switch語句 for語句 while語句 do - while語句 break語句 continue語句 其他語句50 流程控制語句用于控制程序中各語句的執(zhí)行順序 C+流程控制語句有: 選擇語句、循環(huán)語句、跳轉(zhuǎn)語句等。流程控制語句51if 語句if語句是二分支選擇語句if語句可以給出兩種操作,由表達式結(jié)果(非0 或0)選擇其中的一種操作。if語句有以下格式:if (表達式) 語句;if (表達式) 語句1; else 語句2;if (表達式) 語句; 語句; if (表達式) 語句; 語句; else 語句; 語句; 52 程序2.1 判斷鍵盤輸入的整數(shù)是否為偶

26、數(shù),是輸出is,不是輸出not#includevoid main( ) int x ; cinx ; if (x%2=0 ) coutis; else coutnot; 53程序2.2 從鍵盤輸入一個正整數(shù),判斷整數(shù)是否為1、7、13、19#includevoid main( ) int x ; cinx ; if (x%6=1) coutis; else coutc ; if (c=a & c=z) cout=a & c=z) cout是小寫字母; else cout是其他字符;程序2.3 ifelse語句的嵌套形式55switch 語句switch語句是多分支選擇語句。使用switch語句

27、可以給出多種操作,根據(jù)表達式的值從中選擇一種操作。switch語句格式:switch(表達式) case 常量表達式1: 若干語句; break; case 常量表達式2: 若干語句; break; case 常量表達式n: 若干語句; break; default : 若干語句; 56Switch 語句注意事項 (1)每個case表示一個分支。根據(jù)switch表達式的值決定選擇哪個case分支。break語句是switch的出口,作用是當執(zhí)行完一個case分支后,跳出switch語句,繼續(xù)執(zhí)行switch語句后面的語句。 (2)switch后面的表達式可以是整型表達式或字符表達式。case后

28、面的數(shù)據(jù)必須是常量或常量表達式。各個case常量表達式的值不能相等。否則發(fā)生沖突。 (3)各個case出現(xiàn)的次序不影響語句執(zhí)行結(jié)果。5760分以下為D等,6069為C等,7089為B等,90100為A等void main() int score=87; switch (score/10) case 0: case 1: case 2: case 3: case 4: case 5: coutscore +分是D等endl; break; case 6: coutscore +分是C等endl; break; case 7: case 8: coutscore +分是B等endl; break;

29、 case 9: coutscore +分是A等endl; break; default : cout“數(shù)據(jù)錯誤”; 程序2.6 根據(jù)變量score中的考試分數(shù),輸出對應(yīng)的等級58循環(huán)語句C+提供的循環(huán)語句有:for語句while語句do while語句 59for 語句for語句通常用于構(gòu)造重復(fù)次數(shù)固定的循環(huán)。格式為: for (表達式1; 表達式2; 表達式3) 循環(huán)體語句塊 例如: for (int i=1; i=10; i+) cout你好endl;60程序2.7 輸出1到100之間的所有整數(shù)#includevoid main() int counter; for (counter=1

30、;counter=100; counter+) coutcounter ; cout n;61void main() int counter; for (counter=1;counter=100;counter+=5) coutcounter ; cout n; 程序2.8 每隔5個數(shù),輸出1到100之間的整數(shù)62void main()long int n=1; int i,num; coutnum; for (i=1;i=num;i+) n=n*i; couti!=nendl; 程序輸出結(jié)果:Enter a number:61!=12!=23!=64!=245!=1206!=720程序2.

31、9 計算正整數(shù)的階乘63while語句while語句用于構(gòu)造循環(huán)次數(shù)由條件控制的循環(huán)。while語句的格式: while (表達式)循環(huán)體語句塊64 程序2.13 計算圓周率,計算精度是1e-06#includeiostream.h#includevoid main( ) double sum=0, newdatum=1.0; int n=1; while (newdatum1e-6) sum=sum+newdatum; n+; newdatum=1.0/(n*n); coutpi is sqrt(sum*6)endl; 65 do while 語句 do while語句與while語句類似,

32、用于構(gòu)造由條件控制的循環(huán)。 do while語句的格式: do循環(huán)體語句塊while (表達式);66循環(huán)嵌套 循環(huán)嵌套是指循環(huán)語句的循環(huán)體內(nèi)又包含另一個循環(huán)語句,即循環(huán)套循環(huán)。程序2.15 輸出九九表void main( ) int bcs,cs; for (bcs=1; bcs=9; bcs+) for (cs=1; cs=bcs ;cs+) coutbcs*cs=bcs*cs ; coutendl; 67程序輸出結(jié)果:1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5

33、*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=8168void main( ) int m=0;for(int i=1; i=10; i+) for(int j=1; j=20; j+) for(int k=1; k=30; k+ )

34、m+; coutm=mendl;程序輸出結(jié)果:m=6000程序2.16 三層循環(huán)嵌套舉例169100元錢買100只雞。公雞5元一只,母雞3元一只,小雞1元3只,輸出所有的購買方案。void main( ) int a,b,c ; /a是公雞數(shù),b是母雞數(shù),c是小雞數(shù)。for(a=0;a=20;a+) for(b=0;b=33;b+) for(c=0;c=99;c+) if( a+b+c=100 & 5*a+3*b+c/3.0=100) cout公雞數(shù)=a 母雞數(shù)=b 小雞數(shù)=cendl; 程序2.17 三重循環(huán)舉例2結(jié)果為:公雞數(shù)=0母雞數(shù)=25小雞數(shù)=75公雞數(shù)=4母雞數(shù)=18小雞數(shù)=78公

35、雞數(shù)=8母雞數(shù)=11小雞數(shù)=81公雞數(shù)=12母雞數(shù)=4小雞數(shù)=8470 break是流程控制語句。 break語句用在循環(huán)語句和switch語句中。 break語句有兩種格式: break; break 標號; break語句71程序2.18 判斷輸入的某數(shù)是否為素數(shù)(質(zhì)數(shù)) 素數(shù)是除1和本身之外不能被其它數(shù)整除的數(shù)。 void main() int m, i=1; coutm; while(+im) if(m%i=0) coutnot primeendl; break; if (i=m) coutm is prime.endl; 程序輸出結(jié)果:enter a number:77 is pri

36、me.72程序2.19 計算兩個整數(shù)的最大公約數(shù)使用輾轉(zhuǎn)相除法void main() int m,n,temp; coutmn; if (mn) temp=m;m=n;n=temp; do temp=m%n; m=n; n=temp; while (n!=0); cout最大公約數(shù)是mendl;程序輸出結(jié)果:Enter two numbers :12 8最大公約數(shù)是473continue 語句格式:continue;continue 語句只能用于循環(huán)語句中。當在循環(huán)體內(nèi)遇到continue語句時,它結(jié)束本次循環(huán)體的執(zhí)行,即continue語句后面的語句不被執(zhí)行,立即執(zhí)行下一次循環(huán)。74程序2.

37、20 使用continue語句舉例計算一個數(shù)組中正數(shù)和void main() int sum,a =3,0,-5,7,8,-2,-9,-6,6; sum=0; for(int i=0; i9;i+) if (ai0) continue; sum+=ai; coutsum=sumendl; 程序輸出結(jié)果:sum=24 指針 指針是一個地址值,是一個存儲單元的地址??梢酝ㄟ^指針訪問存儲單元。 指針變量 1.定義指針變量格式: 數(shù)據(jù)類型 *指針變量名; 例如:int *pointer; 2.指針運算符&和* 使用&運算符得到變量的地址。 使用*運算符得到指針所指變量存放的數(shù)據(jù)。第3章 指針、結(jié)構(gòu)體和

38、聯(lián)合體程序3.1 使用&和*運算符舉例#includevoid main()int x=10, *pointer;pointer=&x;coutx=xendl; cout*pointer=*pointerendl;*pointer=20;coutx=xendl;cout*pointer=*pointerendl;輸出結(jié)果為:x=10*pointer=10 x=20*pointer=20 數(shù)組每個元素都占用存儲單元,它們都有相應(yīng)的地址。可以通過數(shù)組元素地址訪問數(shù)組元素。 數(shù)組名就是指針。一維數(shù)組的數(shù)組名是數(shù)組第1個元素地址,組名加1是第2個元素的地址,依次類推。例 static int a3=1

39、,2,3; for(i=0;i3;i+) cout*(a+i) aiendl; 輸出結(jié)果為: 1 1 2 2 3 3數(shù)組的指針可以定義一個指針變量存放數(shù)組的地址。程序3.3void main( ) static int a3=1,2,3; int *p; p=a; for(i=0; i3; i+) coutpi *(p+i)endl;輸出結(jié)果為:1 12 23 3數(shù)組的指針變量例 char str=hello; 為數(shù)組str分配6個字節(jié),前5個字節(jié)存放字符,最后字節(jié)存放0。0是字符串的結(jié)束標志。 char str30=This is a book; 為數(shù)組str分配30個字節(jié),前14個字節(jié)存放

40、This is a book字符串與指針字符數(shù)組的指針變量可以定義一個指針變量,存放字符數(shù)組的地址。程序3.4#includevoid main( )char str30=This is a book.; char *charpoint; /charpoint是指向字符數(shù)組的指針變量 charpoint=str; coutcharpointendl; coutcharpoint0charpoint1endl; cout*(charpoint)*(charpoint+1)endl;輸出結(jié)果為:This is a book.This is a book.ThTh處理字符串的函數(shù)包含在頭文件stri

41、ng.h中。字符串函數(shù)的參數(shù)常是字符串數(shù)組名、字符串指針變量等。(1)求字符串長度函數(shù)strlen(字符串) 計算一個字符串的長度,并返回這個字符串的長度。字符串的結(jié)束標志不計算在內(nèi)。 函數(shù)的參數(shù)可以是字符串數(shù)組名、字符串指針變量等。處理字符串的庫函數(shù)程序3.5#include#includevoid main() char str20=abcde;coutThe length is strlen(str)endl;coutinclude0,The length issizeof(str)endl;char *p=str;coutThe length is strlen(p)endl;輸出結(jié)果

42、為:The length is 5include 0,The length is 20The length is 5(2)字符串的拷貝函數(shù)strcpy(字符串1,字符串2) 用于將字符串2的內(nèi)容拷貝到字符串1中。函數(shù)的參數(shù)可以是字符串數(shù)組名、字符串指針變量等。(3)字符串的連接函數(shù)strcat(字符串1,字符串2) 用于將字符串2的內(nèi)容連接到字符串1之后。(4)字符串的比較函數(shù)strcmp(字符串1,字符串2) 當字符串1與字符串2完全相同時,函數(shù)返回值為0。 當字符串1大于字符串2時,返回一個大于0的整數(shù)。 當字符串1小于字符串2時,返回一個小于0的整數(shù)。其他字符串函數(shù)程序3.6#inclu

43、de#includevoid main()char str120,str220,str320=abcde;strcpy(str1,Monday);strcpy(str2,str1);strcpy(str3,ABCDE);coutstr1endl;coutstr2endl;coutstr3endl;輸出結(jié)果為:MondayMondayABCDE程序3.7#include#includevoid main()char str120=abcd,str240=12345;strcat(str1,efg);strcat(str2,str1);coutstr1endl;coutstr2endl;輸出結(jié)果為

44、:abcdefg12345abcdefg程序3.8#include#includevoid main()char str120=bag,str240=big;coutstrcmp(str1,str2)endl;coutstrcmp(str2,str1)endl;coutstrcmp(red,red)endl;輸出結(jié)果為: -1 1 0const關(guān)鍵字用于定義有名的常量。程序3.9 用const定義常量#includevoid main() const int size=10; char strsize; coutThesize of str is sizeof(str)endl; size+;

45、 /錯誤語句const關(guān)鍵字 為變量取的別名稱為引用。 例如:數(shù)據(jù)類型 &變量2=變量1; &為引用運算符。變量2是變量1的別名。 引用是一個指針,該指針指向被引用的變量,即引用是被引用變量的地址。 例如:int x; int &y=x;引用與指針程序3.10 定義和使用引用舉例void main( ) int a=9; int &b=a;coutHere a=an;coutHere &b=&bn; a+;coutHere a=an;coutHere &b=&bstudent1.age; coutstudent1.age;結(jié)構(gòu)體的定義和使用struct student char number1

46、0; char name10; char sex; int age; ;void main()student student1;coutstudent1.number; /為成員輸入數(shù)據(jù);coutstudent1.sex;coutstudent1.age;cout該學(xué)生的情況如下:endl;coutstudent1.numberendl; /輸出成員數(shù)據(jù)coutstudent1.sexendl;endl;coutstudent1.ageendl; 程序3.11 定義和使用結(jié)構(gòu)體結(jié)構(gòu)體數(shù)組數(shù)組的每個元素是結(jié)構(gòu)體類型,這樣的數(shù)組稱

47、為結(jié)構(gòu)體數(shù)組。訪問結(jié)構(gòu)體數(shù)組的格式:數(shù)組名下標.成員名程序3.12 結(jié)構(gòu)體數(shù)組struct student char number10; char name10; char sex; int age; void main() student student13; int k; for(k=0;kstudent1k.number; ; cinstudent1k.sex; cinstudent1k.age; for(k=0;k3;k+) coutendl;coutstudent1k.numberendl; endl; couts

48、tudent1k.sexendl; coutstudent1k.age成員名struct student char number10; char name10; char sex; int age;void main() student student1,*p =&student1; coutp-number; coutp-name; coutp-sex; coutp-age; cout該學(xué)生的情況如下:endl; coutnumberendl; coutnameendl; coutsexendl; coutageendl; 在C+中,結(jié)構(gòu)體可以包括數(shù)據(jù)成員和函數(shù)。程序3.14struct s

49、tudent char number10; char name10; char sex; int age; ;void output() /函數(shù),用于輸出數(shù)據(jù)cout該學(xué)生的情況如下:endl; coutnumberendl; coutnameendl; coutsexendl; coutageendl;void main()student student1; coutstudent1.number; ; coutstudent1.sex; coutstudent1.age; student1.output(); 結(jié)構(gòu)體中包括函數(shù)聯(lián)合體 聯(lián)合體也是用戶自定義類

50、型,它在定義形式上與結(jié)構(gòu)體類似,但存儲不同于結(jié)構(gòu)體。聯(lián)合體的各個成員共享一塊內(nèi)存空間。程序3.16 定義和使用聯(lián)合體union abc char a4; int b; long c; ;void main() union abc x; x.c=0 x41424344; ; ; couthexx.bn; coutx.a0 x.a1 x.a2 x.a3成員名union abc char a4; int b; long c; ;void main()union abc x; union abc *p; p=&x; x.c=0 x41424344; ; couthexcn; couthexx.bn;

51、couthexbn;C+可以將函數(shù)加到聯(lián)合體。使聯(lián)合體可以包括數(shù)據(jù)成員和操作。程序3.10union abcchar a; int b; long c; void output() coutan; coutbn; coutcn;void main() union abc x; x.c=0 x41424344; x.output(); 輸出結(jié)果: 41424344 41424344 D聯(lián)合體中包括函數(shù)99第4章 函數(shù)函數(shù)是C+程序的主要組成部分。一個函數(shù)是一段具有獨立功能的程序段。將一個程序劃分為若干個函數(shù),使程序具有模塊化特性,提高程序的效率和移植性。100函數(shù)必須先定義,后使用。定義形式:

52、函數(shù)值類型 函數(shù)名(參數(shù)列表) 函數(shù)體語句塊 例: 函數(shù)dec求兩個數(shù)的差值。有x和y兩個參數(shù),函數(shù)值是int int dec(int x,int y) return(x-y); 例: 函數(shù)out用于輸出兩個數(shù)的差值以及和值。函數(shù)無返回值, void out(int x,int y) /用void表示無返回值 coutx-y; coutx+y; 函數(shù)定義101 一個文件有多個函數(shù)時,一般將主函數(shù)放在前面。放在后面的函數(shù)需要進行說明。 函數(shù)原型說明格式:函數(shù)值類型 函數(shù)名(參數(shù)列表);int dec(int x,int y); /函數(shù)說明語句 void out(int x,int y); /函數(shù)

53、說明語句 void main( ) coutdec(5,3)endl; /調(diào)用函數(shù)dec out(5,3); /函數(shù)調(diào)用out int dec(int x,int y) return(x-y); void out(int x,int y) coutx-yendl; coutx+yendl; 函數(shù)原型說明102 使用函數(shù)的過程稱為函數(shù)調(diào)用 函數(shù)調(diào)用的方式:函數(shù)名(實參列表)程序3.1 調(diào)用無返回值函數(shù)舉例void lprint(char a) ; /函數(shù)原型說明void main() lprint(A); /調(diào)用無返回值的函數(shù)void lprint(char a) /定義無返回值的函數(shù) cout

54、Output= a; 函數(shù)調(diào)用103int dec (int a, int b); /函數(shù)原型說明void main() int li_num; li_num= dec(10,3); /函數(shù)調(diào)用 coutNumber=li_num; return 0;int dec(int a, int b) return a-b; /函數(shù)返回值程序3.2 調(diào)用有返回值函數(shù)舉例104 dec函數(shù)的參數(shù)類型是int,調(diào)用dec函數(shù)時給了兩個實型數(shù),系統(tǒng)自動將實數(shù)轉(zhuǎn)成int數(shù)。 int dec(int a, int b); /函數(shù)原型說明 void main() int li_num; li_num= dec(1

55、0.0,3.0); /函數(shù)調(diào)用,給了兩個實型數(shù)。 coutNumber= li_num; int dec(int a, int b) return a-b; /函數(shù)返回值程序3.3 參數(shù)自動轉(zhuǎn)換舉例105在調(diào)用一個函數(shù)中又調(diào)用另一個函數(shù),稱為嵌套調(diào)用。 程序3.5 函數(shù)嵌套調(diào)用。 void a1(void); void a2(void); void main( ) int a; coutmain program begin n; a1(); coutmain program end n;void a1() coutfunction a1 begin n; a2(); void a2() cou

56、tfunction a2 begin n; 程序輸出結(jié)果: main program begin function a1 begin main program end函數(shù)嵌套調(diào)用106函數(shù)返回有兩種情況: 一是無返回值返回,二是有返回值返回。 1.無返回值返回 用void說明 void mul(int a, int b) 2.有返回值返回 mul(int a, int b) /有返回值,返回值類型默認為int類型 int mul(int a, int b) long mul(int a, int b) /有返回值,返回類型為long 函數(shù)返回與返回值107函數(shù)的返回值可以是一個指針。這種函數(shù)稱

57、為指針型函數(shù)。指針型函數(shù)的定義形式:類型 *函數(shù)名(形式參數(shù)列表) 指針型函數(shù)的原型說明形式:類型 *函數(shù)名(參數(shù)列表);程序3.7 指針型函數(shù)char *match();void main( )char *p; p=match(); if (p) coutthe char of match() function is *pendl; else coutno! n;char *match() char a=B; return &a; /返回指針程序輸出結(jié)果:the char of match() function is B函數(shù)返回指針108函數(shù)的參數(shù)是可選項,即函數(shù)可以有參數(shù),也可以沒有參數(shù)。

58、函數(shù)參數(shù)的類型根據(jù)實際需要決定。形參:定義函數(shù)時給出的參數(shù)稱為函數(shù)的形式參數(shù),簡稱形參。實參:向函數(shù)傳遞的參數(shù)稱為實際參數(shù),簡稱實參。實參可以是常量、變量、數(shù)組元素等。匹配:形參和實參要一一對應(yīng),包括數(shù)據(jù)類型、個數(shù)、次序參數(shù)傳遞: C+采用三種方法向函數(shù)傳遞參數(shù):傳值、傳地址和傳引用函數(shù)的參數(shù)109函數(shù)的實參是數(shù)值數(shù)據(jù),函數(shù)的形參是變量程序3.8 向函數(shù)傳值。void swap(int a, int b) int x; x=a; a=b; b=x;void main( ) int a=1,b=2; swap(a,b); coutmain program a=an; coutmain progr

59、am b=an;程序輸出結(jié)果:main program a=1main program b=2傳值110函數(shù)的形參是地址(指針)變量,函數(shù)的實參是地址值。程序3.9 向函數(shù)傳地址舉例void swap(int *a, int *b) /地址變量int x; x=*a;*a=*b;*b=x; void main( ) int a=1,b=2; swap(&a,&b); /傳地址 coutmain program a=an; coutmain program b=bn;程序輸出結(jié)果:main program a=2main program b=1傳地址111用引用作函數(shù)形參,用與引用對應(yīng)的變量作實

60、參,稱為傳引用調(diào)用函數(shù)。程序3.11 傳引用調(diào)用函數(shù)舉例void swap(int &,int&);void main( ) int a=1,b=2; swap(a,b); coutmain program a=a,b=bn; void swap(int &m, int &n)int x; coutfunction swap begin m=m,n=nn; x=a;a=b;b=x; cout“function swap end a=”m“,n=”n“n”;程序輸出結(jié)果:function swap begin a=1, b=2function swap end a=2, b=1main prog

溫馨提示

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

評論

0/150

提交評論