VC++強(qiáng)化訓(xùn)練(結(jié)構(gòu)話程序設(shè)計(jì))_第1頁(yè)
VC++強(qiáng)化訓(xùn)練(結(jié)構(gòu)話程序設(shè)計(jì))_第2頁(yè)
VC++強(qiáng)化訓(xùn)練(結(jié)構(gòu)話程序設(shè)計(jì))_第3頁(yè)
VC++強(qiáng)化訓(xùn)練(結(jié)構(gòu)話程序設(shè)計(jì))_第4頁(yè)
VC++強(qiáng)化訓(xùn)練(結(jié)構(gòu)話程序設(shè)計(jì))_第5頁(yè)
已閱讀5頁(yè),還剩60頁(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)介

1、C+第二部分 結(jié)構(gòu)化程序設(shè)計(jì)E_mail:C+語(yǔ)言程序設(shè)計(jì)1強(qiáng)化訓(xùn)練安排:計(jì)算機(jī)基礎(chǔ)總結(jié)模板結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)法及算法 包含指針與鏈表 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)法及算法江蘇省二級(jí)上機(jī)分析國(guó)家二級(jí)理論試卷分析江蘇省二級(jí)理論試卷分析總結(jié)、復(fù)習(xí) 2強(qiáng)化訓(xùn)練目的:加強(qiáng)程序設(shè)計(jì)基礎(chǔ)知識(shí)掌握與C+基本編程能力的培養(yǎng)。包括基本語(yǔ)法和基本算法。 掌握指針及指針的應(yīng)用。 掌握面向?qū)ο蟪绦蛟O(shè)計(jì)幾個(gè)要素:封裝與隱藏、繼承和派生、多態(tài)、靜態(tài)成員和友員函數(shù)。掌握運(yùn)算符重載真正意義及實(shí)現(xiàn)。掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法。為國(guó)家和省二級(jí)做準(zhǔn)備。3第二部分 結(jié)構(gòu)化程序設(shè)計(jì)一、表達(dá)式及優(yōu)化和相關(guān)的副作用1.字符何時(shí)是字符何時(shí)是數(shù)字?

2、couta+10char(a+10);107 k char a=A; couta+10char(a+10); 75 K char a=“I am a student.”; couta*aa+5*(a+5);I am a student I a student a 42.字符常量使用轉(zhuǎn)義序列時(shí)。 84 (錯(cuò)!) 和 400 (是0)3.數(shù)據(jù)類型轉(zhuǎn)換 類型轉(zhuǎn)換:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換兩種。自動(dòng)類型轉(zhuǎn)換:原則是精度低的往精度高的轉(zhuǎn)換(1) int a=5,b=4,c=3,d;d=a*bc-1.5+a; 結(jié)果是:20/3-1.5+97,d的值是101。(2) int j,j;float x,y;

3、x=(i=4.8)+(j=5.9);第二部分 結(jié)構(gòu)化程序設(shè)計(jì)5強(qiáng)制類型轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換有兩種格式: () 或 () 例(1): (float*)5000 強(qiáng)制把整數(shù)5000轉(zhuǎn)為地址。 例(2): float(100)轉(zhuǎn)為單精度。 注意: a.第二種格式又稱類型構(gòu)造。 b.強(qiáng)制類型轉(zhuǎn)換是園括號(hào)運(yùn)算符的一種。 c.園括號(hào)運(yùn)算符有三種:強(qiáng)制類型轉(zhuǎn)換、類型構(gòu)造、函數(shù)調(diào)用。 d.當(dāng)數(shù)據(jù)類型(包括基本數(shù)據(jù)類型或?qū)С鰯?shù)據(jù)類型)在園括號(hào)中或后跟園括號(hào),注意數(shù)據(jù)轉(zhuǎn)換。第二部分 結(jié)構(gòu)化程序設(shè)計(jì)6第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1)設(shè)有說(shuō)明“int x=10,y=4,f;float m;”,執(zhí)行表達(dá)式“f=m=x/y;

4、”后,f,m的值為 D 。 A.2,2.5 B.3,2.5 C.2.5,2.5 D.2,2.0(2)數(shù)學(xué)式(3xy)/(5ab),其中x和y是整數(shù),a和b是實(shí)數(shù), 在C+中對(duì)應(yīng)的正確表達(dá)式是 D 。 A.3/5*x*y/a/b B.3*x*y/5/a/b C.3*x*y/5*a*b D. 3/a/b/5*x*y7第二部分 結(jié)構(gòu)化程序設(shè)計(jì)4.邏輯表達(dá)式優(yōu)化及副作用 在C+中,在求邏輯表達(dá)式的過(guò)程中,一旦能確定邏輯表達(dá)式的值時(shí),就不必再逐步求值了。這就是邏輯表達(dá)式的優(yōu)化。 例(1):int a=0,b=4,c=5,d,e; d=a&b+&-c; e=a|b+|-c; 例(2):int a=2,b=

5、4,c=5,d,e; d=a&b+&-c; e=a|b+|-c;8第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1)設(shè)有說(shuō)明“int a=3,b=5,m;”, 則執(zhí)行表達(dá)式“m=a=3&a+b8;”后,m的值為 0 。(2)設(shè)有說(shuō)明“int x=5,y=7,z=8;”, 則執(zhí)行表達(dá)式“z+=x+|y+|+z;”后,x,y,z為 A 。 A.6,7,9 B.6,8,10 C.6,8,8 D.6,8,1(3)設(shè)有說(shuō)明“int a=15,b=17,c;”, 執(zhí)行表達(dá)式“c=a|(b+=b);”后,a,b,c的值為 A 。 A.15,17,1 B.1,34,35 C.15,34,1 D.15,17,159第二部分 結(jié)構(gòu)化

6、程序設(shè)計(jì)二、三種基本結(jié)構(gòu)主要是分支和循環(huán)1.條件語(yǔ)句 if條件語(yǔ)句嵌套時(shí),else語(yǔ)句總是與最近的、沒有與else配對(duì)的if語(yǔ)句配對(duì)。 例: if() if() else ()2.開關(guān)語(yǔ)句(switch) 要注意語(yǔ)句格式、語(yǔ)法和break語(yǔ)句的作用。 注意:=和=混淆。10第二部分 結(jié)構(gòu)化程序設(shè)計(jì)3.循環(huán)結(jié)構(gòu)語(yǔ)句 C+中循環(huán)結(jié)構(gòu)語(yǔ)句有:while()、dowhile()、和for()三種循環(huán)語(yǔ)句。 循環(huán)語(yǔ)句掌握的內(nèi)容是: a.語(yǔ)句格式、語(yǔ)法,for語(yǔ)句中三個(gè)表達(dá)式的作用和執(zhí)行時(shí)的順序。 b.進(jìn)入循環(huán)前給有些變量如何提供初始化; c.輸出結(jié)果的時(shí)機(jī):在循環(huán)體內(nèi)還是循環(huán)結(jié)束后輸出。 d.循環(huán)語(yǔ)句和

7、break,continue語(yǔ)句。11第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1).循環(huán)語(yǔ)句“for(int x=0,y=0;y!=100|x10;)x+;”,執(zhí)行的循環(huán)次數(shù)是 A 。 A. 無(wú)限次 B. 10 C. 11 D. 100(2)有以下程序段:int k=0;while(k=1)k+;執(zhí)行的循環(huán)次數(shù)是 C 。 A.有語(yǔ)法錯(cuò),不能執(zhí)行 B.執(zhí)行1次 C.無(wú)限次 D.一次也不執(zhí)行(3)以下程序段的輸出結(jié)果是 yes 。 int a=1,b=3,c=5; if(c=a+b)cout“yes” else cout“no”;12第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(4)以下程序段的輸出結(jié)果是 20 0 。 int x

8、=10,y=20,t=0; if(x= =y)t=x;x=y;y=t; coutxtyn;(5)執(zhí)行以下程序段時(shí),輸出 A 。int s1=0,s2=0,s3=0,s4=0;for(int t=1;t=4:s1+;break; case t=3:s2+; default: s4+; couts1,s2,s3,s4n; A.語(yǔ)法錯(cuò),編譯不通過(guò)B. 1,1,1,2C. 1,2,3,2D. 1,1,2,213第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(6)以下程序運(yùn)行后的輸出結(jié)果是 3,3 。#includevoid main() int k=4,n=0; for(;nk;) n+; if(n%3!=0)contin

9、ue; k-; coutk,n; 14第二部分 結(jié)構(gòu)化程序設(shè)計(jì)三、函數(shù)1. 函數(shù)的基本知識(shí)(1).函數(shù)定義 函數(shù)定義時(shí),有返回值要注意函數(shù)的返回值類型與return語(yǔ)句后的表達(dá)式類型相一致,函數(shù)沒有返回值時(shí)(void),則用 return ;語(yǔ)句。 函數(shù)可以嵌套調(diào)用,但不可以嵌套定義。在一個(gè)函數(shù)的函數(shù)體中定義另一個(gè)函數(shù)是非法的。15第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(2).函數(shù)調(diào)用 調(diào)用函數(shù)時(shí),實(shí)參和形參要求一一對(duì)應(yīng)。 函數(shù)調(diào)用有兩種:作為表達(dá)式的函數(shù)調(diào)用和函數(shù)調(diào)用語(yǔ)句。對(duì)于沒有返回值的函數(shù)調(diào)用只能通過(guò)函數(shù)調(diào)用語(yǔ)句實(shí)現(xiàn)。(3).函數(shù)調(diào)用參數(shù)傳遞 參數(shù)傳遞有三種:值傳遞、地址傳遞和引用傳遞。16第二部分

10、結(jié)構(gòu)化程序設(shè)計(jì)(4).作用域(難點(diǎn))與存儲(chǔ)類 在C+中,作用域共分為五類:塊作用域;文件作用域;函數(shù)原型作用域;函數(shù)作用域;類作用域。 局部變量:在一個(gè)函數(shù)內(nèi)部定義的變量或在一個(gè)塊中定義的變量稱為局部變量。 全局變量:在函數(shù)外定義的變量或用extern說(shuō)明的變量稱為全局變量。全局變量的作用域稱為文件作用域,即在整個(gè)文件中都可以訪問(wèn)。17第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1)設(shè)有函數(shù)定義調(diào)用語(yǔ)句“f(e1,e2),(e3,e4,e5);”,則實(shí)參個(gè)數(shù)是 A 。 (A) 2 (B) 3 (C) 4 (D) 5(2)下列函數(shù)中對(duì)調(diào)用它的函數(shù)沒有起到任何作用的是 C 。 (A) void f1(double

11、&x)-x; (B) double f2(double x)return x-1.5; (C) void f3(double x)-x; (D) double f4(double *x)-*x;return *x;18第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(3)以下程序輸出的第一行是 0 1 2 3 4 第二行是 15 。#include (作用域)int k;void main(void) k=10; for(int i=0;i5;i+) int k;k+=i;/由于重新定義變量k,所以就有不同的作用域 coutk ;k+;:k+;coutnkn;19第二部分 結(jié)構(gòu)化程序設(shè)計(jì)2. 遞歸函數(shù) 在利用遞歸方法

12、求值時(shí),必須注意三點(diǎn): 1.遞歸的公式; 2.遞歸的結(jié)束條件; 3.遞歸的約束條件。 關(guān)鍵是找到遞歸公式和遞歸的結(jié)束條件。 遞歸函數(shù)在調(diào)用時(shí)分兩部分:遞推和回歸。20第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1).以下程序的輸出結(jié)果是(vrg )。#includevoid func2(int i);char s=“verygood!”void func1(int i) coutsti;if(i3)i=+2;func2(i);void func2(int i) coutsti;if(i3)i=+2;func1(i);void main() int i=0;func1(i);21第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(2).以

13、下程序的輸出結(jié)果是( 15 )。#includelong fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return 5*n;void main() coutfib(3);22第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(3)以下程序輸出的第一行是 1 1 第二行是 4 1 最后一行是 x=10 。#includevoid fun(int n,int *s) int f1,f2; if(n=1|n=2)*s=1; else fun(n-1,&f1);fun(n-2,&f2); *s=2*f1+f2+1; coutf1tf2n;void main(void)int

14、 x;fun(4,&x);cout”x=”xn;23第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(4)以下程序輸出的結(jié)果是 dcba 。#includevoid show(char *s)if(*s)show(s+1);cout*s;void main(void) show(“abcd0efg0hij”); coutn;24第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(5)以下程序輸出的第一行是 123 第二行是 321 第三行是 123 。#includevoid p1(char s,int i) if(si!=0)p1(s,i+1); coutsi;void p2(char s,int i) if(si!=0)p2(s,i+1)

15、; coutsi;void main(void) char str=”123”;coutstrn; p1(str,0);coutn; p2(str,0);coutn;25第二部分 結(jié)構(gòu)化程序設(shè)計(jì)3.重載函數(shù) 定義的重載函數(shù)必須具有:相同的函數(shù)名但具有不同的參數(shù)個(gè)數(shù)或不同的參數(shù)類型。 調(diào)用重載該函數(shù)時(shí),將根據(jù)實(shí)參的數(shù)據(jù)類型和重載函數(shù)的形參匹配,確定調(diào)用其中的一個(gè)重載函數(shù)。26第二部分 結(jié)構(gòu)化程序設(shè)計(jì)4.靜態(tài)變量 靜態(tài)類型變量有確定的初值。靜態(tài)類型變量對(duì)全局變量和局部變量有不同的含義。 靜態(tài)類型變量只能初試化一次。當(dāng)局部變量使用靜態(tài)類型變量時(shí),其作用將保存函數(shù)的運(yùn)行結(jié)果,以便下次調(diào)用函數(shù)時(shí),能繼續(xù)

16、使用上次計(jì)算的結(jié)果。但不在變量的作用域時(shí),不能直接使用,確需使用時(shí),可通過(guò)變量的地址取值(即指針)。 當(dāng)全局變量使用靜態(tài)類型變量時(shí),表示所說(shuō)明的變量?jī)H限于這個(gè)源程序文件內(nèi)使用。27第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1)以下程序輸出的結(jié)果是 i=105 i=110 。 #include int t() static int i=100; i+=5; return i; void main(void) couti=t()n; couti=t()n; 28第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(2)以下程序輸出的結(jié)果是 i=105 105 i=105 110 。 #include int t(int *p) static

17、 int i=100;*p=&i; i+=5; return i; void main(void) int i,*p;i=t(&p); couti=it *pn; t(&p); couti=it *pn; 29第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(3)以下程序輸出的第一行是 20 ,第二行是 400 。#includeint f(int x) static int u=1; x+=x;return u*=x;void main(void) int x=10;coutf(x)n;coutf(x)n;30第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(4)以下程序輸出的第一行是 21 ,第二行是 53 。#includeint f

18、(void) static int a,b=10,c=1; a+=b;b+=c;return c=a+b;void main(void) coutf()n;coutf()n;31第二部分 結(jié)構(gòu)化程序設(shè)計(jì)四、編譯預(yù)處理指令 編譯預(yù)處理指令包括三方面的內(nèi)容:文件包含、宏指令和條件編譯,其重點(diǎn)是宏指令-帶參數(shù)的宏定義。 注意:在宏調(diào)用時(shí),將不作任何語(yǔ)法檢查,也不做任何計(jì)算,只作簡(jiǎn)單替換。32第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1)若有宏定義: #define N 2 #define Y(n) (N+1)*n)則執(zhí)行語(yǔ)句“z=2*(N+Y(N+2);”后,z的值為 20 。(2)若有宏定義: #define T

19、(x,y,z) x*y*z/4則表達(dá)式“z=T(3+4,2*4,4+4);”后,z的值為 132 。33第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(3)若有宏定義: 則 B 。 #define M(a,b) a*b;/E int x=M(3+4,5+6),y;/F y=M(3,4); /GA.編譯時(shí),E行語(yǔ)法錯(cuò) B.編譯時(shí),F行語(yǔ)法錯(cuò)C.編譯時(shí),G行語(yǔ)法錯(cuò) D.編譯時(shí),F行和G行語(yǔ)法錯(cuò)(4)若有宏定義: #define P(x,y) x/y #define PP(a,b) a*b int c=P(2+3,2+3)+PP(2+3,2+3);則c的值為 17 。34第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(5).編譯以下程序時(shí),結(jié)

20、果是 B 。#include /第1行#define aa 123; /第2行void main(void) /第3行 coutaax; float z,yx=1,2,3,4,5,6,7,8; /A z=y3; /B A.z的值為4 B.z的值為3 C.B行語(yǔ)句錯(cuò) D. A行語(yǔ)句錯(cuò)38第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(3)下列數(shù)組定義中錯(cuò)誤的是 B 。A.char s1a; B. char s26=”string”;C.static int a4=1; D. char *p=“A”,”B”,”C”;(4)下列數(shù)組定義中,正確的是 C 。 A.int i=100,ai; B. int j;j=100;i

21、nt bj; C.const int i=20;int yi; D. int k;int mk;(5)要定義數(shù)組A,使得其中每個(gè)元素的數(shù)據(jù)依次為: 3、9、4、8、0、0、0,錯(cuò)誤的定義語(yǔ)句是:A. int A=3,9,4,8,0,0,0; B. int A7=3,9,4,8,0,0,0; C. int A=3,9,4,8; D. int A7=3,9,4,8;39第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(6)若有定義:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中i在09范圍,則對(duì)a數(shù)組元素不正確的引用是 D 。 A. ap-a B. *(&ai) C. pi D. a10(7)設(shè)有

22、數(shù)組定義:char array=“China”;則數(shù)組array占用空間數(shù)為 6 。(8)以下程序段的輸出結(jié)果是 9 。 char s=“141141abct”; coutstrlen(s);(9)設(shè)有語(yǔ)句char s=“Rep0Ch”;int m=sizeof(s),n=strlen(s); 則m的值是 7 ,n的值是 3 。40第二部分 結(jié)構(gòu)化程序設(shè)計(jì)六、指針、引用和函數(shù)1.指針 指針變量的訪問(wèn)有兩種形式:訪問(wèn)指針變量的值和訪問(wèn)指針的內(nèi)容。 指針可執(zhí)行的運(yùn)算有三種:賦值運(yùn)算、關(guān)系運(yùn)算和算術(shù)運(yùn)算。 指針變量+,-,*,&之間的混合運(yùn)算, *p1+、*+p1、(*p1)+、+*p1 。41第二

23、部分 結(jié)構(gòu)化程序設(shè)計(jì)2.指針和函數(shù) 主要掌握參數(shù)傳遞是按地址傳遞。3.引用和函數(shù) 主要掌握參數(shù)傳遞是按引用傳遞。42第二部分 結(jié)構(gòu)化程序設(shè)計(jì)#includevoid swap1(int *p1,int *p2) /利用指針類型 int t;t=*p1;*p1=*p2;*p2=t;void swap2(int &p1,int &p2) /利用引用類型 int t;t=p1;p1=p2;p2=t;void main(void) int x,y; int a,b; coutxy; swap1(&x,&y); coutab; swap2(a,b); coutx=xty=yn; couta=atb=bn

24、;43第二部分 結(jié)構(gòu)化程序設(shè)計(jì)七、指針和數(shù)組1.指針和一維數(shù)組假設(shè)有:int a10,*point;point=&a0;總結(jié):(1).數(shù)組名等同于數(shù)組的第0個(gè)元素的地址,也是數(shù)組的起始地址。(2).當(dāng)指針變量point指向數(shù)組a的第0個(gè)元素后,則point+i等同于a+i,為ai的地址。(3).當(dāng)指針變量point指向數(shù)組a的第0個(gè)元素后,則*(point+i)、*(a+i)、ai、pointi和*&ai都表示元素ai。 注意:point+允許,但a+不允許。44第二部分 結(jié)構(gòu)化程序設(shè)計(jì)2.指針與二維數(shù)組要注意區(qū)分元素地址和行地址。例:假設(shè)有數(shù)組:int a44,*point;第0行第0列的元

25、素地址:a0,&a00,*&a0,*a 等。第0行的行地址:&a0,a 等。Point指針變量只能存放元素地址值。45第二部分 結(jié)構(gòu)化程序設(shè)計(jì)(1)以下程序輸出的第一行至第三行分別是 1 1 2 、 3 5 8 、 13 21 34 。#includevoid f(int *q1,int *q2,int *q3) *q3=*q1+*q2;void main(void) int i,j,a33=1,1,*p1=a0; int *p2=a0+1,*p3=a0+2; for(i=2;i9;i+)f(p1+,p2+,p3+); for(i=0;i3;i+)for(j=0;j3;j+) coutaijt

26、; coutn; 46第二部分 結(jié)構(gòu)化程序設(shè)計(jì)3.指針和字符串 當(dāng)字符串和指針結(jié)合在一起,使用起來(lái)就特別靈活。在各類考試中經(jīng)常會(huì)出現(xiàn)相關(guān)的題目。 (1)(完善程序題)以下程序的功能是:輸入兩個(gè)字符串,把這兩個(gè)字符串拼成一個(gè)新的字符串,輸出拼接后的字符串。47第二部分 結(jié)構(gòu)化程序設(shè)計(jì)#includechar *stringcat(char *s,char *from)/實(shí)現(xiàn)拼接 char *p= to ; /把form拼接到to后面 while(*to+); to- ; while( *to+ =*from+) ;return p;void main(void)char s1200,s2100;

27、 cout“輸入第一個(gè)字符串:”;cin.getline(s1,100); cout“輸入第二個(gè)字符串:”;cin.getline(s2,100); cout“拼接后的字符串為:”stringcat(s1,s2); coutn; 48(2)下列程序中函數(shù)insertstr的功能是:在字符串str中所有出現(xiàn)子串str1的后面插入子串str2。如本程序的輸出為:“I am a student too.You are a student too.He is a student too.”#include#includechar *insertstr(char *str,char *str1,char

28、 str2) char *p,*p1,*q1,*t1; int i,len2; if(*str=0| *str1=0| *str2=0) return str; len2=strlen(str2); p=str; t1=str2;49 while(*p!=0) p1=p;q1=str1; while(*p1=*q1& *q1 ) p1+;q1+; if(p!=p1&*q1=0) p= p1 ;while(*p1+!= 0); for(;p1=p;p1-) *( p1+len2 )=*p1; for(i=0;*(t1+i)!=0;i+) *p+=*(t1+i); p+ ; return str;

29、50第二部分 結(jié)構(gòu)化程序設(shè)計(jì)void main(void) char line80=“I am a student.You are a student.He is a student.” coutinsertstr(line,“student”, “too”) n;51第二部分:程序構(gòu)造方法 一、C+的程序結(jié)構(gòu) 用C+解決實(shí)際問(wèn)題時(shí),通常是通過(guò)項(xiàng)目project來(lái)實(shí)現(xiàn),一個(gè)項(xiàng)目可以有多個(gè)程序文件,當(dāng)然簡(jiǎn)單的時(shí)候,可以是一個(gè)程序文件。程序文件是以函數(shù)為單位疊加起來(lái)的,任何一個(gè)C+項(xiàng)目必須有且只能有一個(gè)main()函數(shù)。main()函數(shù)是C+程序執(zhí)行時(shí)的入口,其他函數(shù)都是具有獨(dú)立功能的一部分程序,

30、由main()函數(shù)或其他函數(shù)調(diào)用。項(xiàng)目project是一個(gè)容器。52 在程序設(shè)計(jì)過(guò)程中,對(duì)于功能相對(duì)獨(dú)立且重復(fù)的功能,可以通過(guò)一個(gè)自定義函數(shù)來(lái)實(shí)現(xiàn)。函數(shù)定義需要先定義后調(diào)用,但調(diào)用函數(shù)在前,函數(shù)定義在后時(shí),需要使用函數(shù)原型說(shuō)明。在函數(shù)定義過(guò)程中,特別注意形參和實(shí)參、返回值類型和retutn語(yǔ)句后的表達(dá)式、有無(wú)返回值和函數(shù)調(diào)用形式等之間的配合。 函數(shù)是由語(yǔ)句構(gòu)成。第二部分:程序構(gòu)造方法53 計(jì)算機(jī)語(yǔ)言有三種基本結(jié)構(gòu)語(yǔ)句:順序、分支、循環(huán),這是構(gòu)成函數(shù)的主要語(yǔ)句 。 在程序?qū)崿F(xiàn)過(guò)程中,這三種基本結(jié)構(gòu)不會(huì)單獨(dú)存在,總是相互結(jié)合的。特別需要注意:在滿足條件需要通過(guò)多條語(yǔ)句實(shí)現(xiàn)功能時(shí),需要使用復(fù)合語(yǔ)句。

31、 在處理實(shí)際問(wèn)題時(shí),數(shù)組是常用的數(shù)據(jù)類型,如排序、查找等都離不開數(shù)組。 指針為我們?cè)L問(wèn)數(shù)據(jù)提供了另外一種方法,指針的使用非常靈活,多樣化和抽象性是我們掌握的難點(diǎn)。第二部分:程序構(gòu)造方法54函數(shù)定義與調(diào)用的三個(gè)要點(diǎn):(1).檢查實(shí)參與形參是不是對(duì)應(yīng)(包括順序、個(gè)數(shù)和數(shù)據(jù)類型);(2).函數(shù)定義中,函數(shù)的返回值類型與return 語(yǔ)句中的表達(dá)式類型是不是對(duì)應(yīng)? (包括void情況)(3).函數(shù)如何調(diào)用?如果函數(shù)定義時(shí),沒有返回值,則調(diào)用函數(shù)時(shí),只能用函數(shù)調(diào)用語(yǔ)句實(shí)現(xiàn)。第二部分:程序構(gòu)造方法55利用遞歸方法求值時(shí),關(guān)鍵是: 1. 找到遞歸的公式; 2. 確定遞歸的結(jié)束條件。必須注意: a.遞歸有遞推

32、和回歸兩個(gè)方面。 b.每次調(diào)用結(jié)束,回歸是必須返回原來(lái)調(diào)用的地方繼續(xù)執(zhí)行。第二部分:程序構(gòu)造方法56二、常用算法1.數(shù)組與排序 排序總是和數(shù)組結(jié)合在一起使用,排序的方法很多,選擇排序、交換排序、冒泡排序等。2.數(shù)組與查找 查找也往往和數(shù)組結(jié)合在一起使用,查找的方法也很多,順序排序、折半查找等。第二部分:程序構(gòu)造方法57第二部分:程序構(gòu)造方法 【數(shù)組與排序舉例】 排序應(yīng)該包括三個(gè)處理部分,定義數(shù)組及提供數(shù)據(jù)、排序、輸出,除定義數(shù)組外(為了實(shí)現(xiàn)數(shù)據(jù)傳遞需要在main()函數(shù)中定義),上面的三個(gè)部分都有自己獨(dú)立的功能,因此可以用函數(shù)來(lái)實(shí)現(xiàn)。函數(shù)實(shí)現(xiàn)時(shí),要注意參數(shù)和返回值的作用。這兩者都是在函數(shù)調(diào)用過(guò)

33、程中,交換信息作用,但兩者有本質(zhì)區(qū)別。參數(shù)的三種傳遞也有本質(zhì)區(qū)別。(舉例講解區(qū)別)58 #include void input(int a) for (int i=0;ibi; void sort(int a10) int t,i,j; for (i=0;i9;i+) for(j=i+1;jaj) k=ai;ai=aj;aj=a; void output(int a) for (int i=0;i10;i+)coutbit; coutn; 59第二部分:程序構(gòu)造方法 void main(void) int a10; cout輸入10個(gè)整數(shù):n;input(a);sort(a);coutnext;/p2指針指向下一個(gè)結(jié)點(diǎn) p2-next=p1; /把p1指

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論