C語言b程序b設(shè)計(jì)3[學(xué)校資料]_第1頁
C語言b程序b設(shè)計(jì)3[學(xué)校資料]_第2頁
C語言b程序b設(shè)計(jì)3[學(xué)校資料]_第3頁
C語言b程序b設(shè)計(jì)3[學(xué)校資料]_第4頁
C語言b程序b設(shè)計(jì)3[學(xué)校資料]_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2022-3-14C語言程序設(shè)計(jì)-32學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo) 熟練掌握分支結(jié)構(gòu)if語句和switch語句的定義格式、功能和執(zhí)行過程 熟練掌握循環(huán)結(jié)構(gòu)for、while和do while語句的定義格式、功能和執(zhí)行過程 熟練掌握跳轉(zhuǎn)語句break、continue、goto和return語句的定義格式、功能和執(zhí)行過程 會(huì)編寫出符合結(jié)構(gòu)化要求的C語言程序2022-3-14C語言程序設(shè)計(jì)-333.1 順序結(jié)構(gòu)3.2 條件結(jié)構(gòu)3.3 循環(huán)結(jié)構(gòu)退出2022-3-14C語言程序設(shè)計(jì)-343.1 順序結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)程序順序結(jié)構(gòu)程序就是按書寫順序執(zhí)行的語句構(gòu)成的程序段。語句語句1語句語句22022-3-14C語

2、言程序設(shè)計(jì)-35 數(shù)據(jù)輸入語句數(shù)據(jù)輸入語句 ch=getchar(); scanf(格式控制,輸入項(xiàng)地址表); 數(shù)據(jù)輸出語句數(shù)據(jù)輸出語句 putchar(ch); printf(格式控制,輸出項(xiàng)表); 賦值語句賦值語句 變量變量=表達(dá)式表達(dá)式; 空語句空語句 ; 復(fù)合語句(分程序)復(fù)合語句(分程序) 內(nèi)部數(shù)據(jù)說明內(nèi)部數(shù)據(jù)說明; 執(zhí)行語句;執(zhí)行語句; 2022-3-14C語言程序設(shè)計(jì)-36例3.1 復(fù)合語句舉例。#include void main() int a=10; printf(a=%dn,a); int a=20; printf(a=%dn,a); printf(a=%dn,a);a=

3、10a=20a=10返 回2022-3-14C語言程序設(shè)計(jì)-373.2 分支結(jié)構(gòu)(條件結(jié)構(gòu))分支結(jié)構(gòu)(條件結(jié)構(gòu))1、基本、基本if語句(單分支結(jié)構(gòu))語句(單分支結(jié)構(gòu))2、if-else語句(雙分支結(jié)構(gòu))語句(雙分支結(jié)構(gòu))3、if嵌套語句(分支嵌套的一般形式)嵌套語句(分支嵌套的一般形式)4、 if-else-if語句語句 (分支嵌套的特殊形式分支嵌套的特殊形式)5、 switch-case語句語句 (分支開關(guān)結(jié)構(gòu)分支開關(guān)結(jié)構(gòu))6、goto語句(無條件分支結(jié)構(gòu))語句(無條件分支結(jié)構(gòu)) 返 回2022-3-14C語言程序設(shè)計(jì)-381、基本、基本if語句(單分支結(jié)構(gòu))語句(單分支結(jié)構(gòu)) if(表達(dá)式

4、表達(dá)式) 語句語句 注:表達(dá)式可是任意表達(dá)式,為“非0”則執(zhí)行語句。 語句語句表達(dá)式表達(dá)式0非非02022-3-14C語言程序設(shè)計(jì)-392022-3-14C語言程序設(shè)計(jì)-3102、if-else語句(雙分支結(jié)構(gòu))語句(雙分支結(jié)構(gòu)) if(表達(dá)式)表達(dá)式) 語句語句1 else 語句語句2語句語句1語句語句2表達(dá)式表達(dá)式非非002022-3-14C語言程序設(shè)計(jì)-311例3.3 輸入一個(gè)整數(shù),判斷奇偶。#include void main() int n; printf(“Input a numbern”); scanf(“%d”,&n); if(n%2=0) printf(“The nu

5、mber is evenn”); else printf(“The number is oddn”); Input a number 100The number is evenInput a number25The number is odd2022-3-14C語言程序設(shè)計(jì)-312例3.4 求整數(shù)a的平方值。#include void main() int a; printf(Enter an integer A:n); scanf(%d,&a); if(a!=0) a=a*a; printf(a*a=%dn,a); else printf(a*a=0n); 返 回Enter an i

6、nteger A:5a*a=252022-3-14C語言程序設(shè)計(jì)-313例 if (n0) if (ab) c=a; else c=b;3、if嵌套語句(分支嵌套的一般形式)嵌套語句(分支嵌套的一般形式) if后和else后的語句可再包含if語句。注:else總是與前面最近的并且沒有與其他else匹配的if相匹配。例 if (n0) if (ab) c=a; else c=b; 2022-3-14C語言程序設(shè)計(jì)-314例3.5 求一個(gè)點(diǎn)所在的象限。#include void main() float x,y; printf(“Input the coordinate of a point n”

7、); printf(“x=”); scanf(“%f”,&x); printf(“y=”); scanf(“%f”,&y); if(x0) if(y0) printf(“ The point is in 1st quadrant.n”); else printf(“ The point is in 4th quadrant.n”); else if(y0) printf(“ The point is in 2nd quadrant.n”); else printf(“ The point is in 3rd quadrant.n”); Input the coordinate

8、of a point x=5 y=3 The point is in 1st quadrant. Input the coordinate of a point x=-2 y=-7 The point is in 3rd quadrant.返 回2022-3-14C語言程序設(shè)計(jì)-3154、 if-else-if語句(分支嵌套的特殊形式)語句(分支嵌套的特殊形式) if(表達(dá)式表達(dá)式1) 語句語句1 else if(表達(dá)式(表達(dá)式2) 語句語句2 else if(表達(dá)式表達(dá)式n) 語句語句n else 語句語句n+1 表達(dá)式1假(0)語句2真(非0)語句1表達(dá)式2假(0)表達(dá)式n假(0)語句n+

9、1語句n真(非0)真(非0)2022-3-14C語言程序設(shè)計(jì)-316例3.6 求解符號(hào)函數(shù)。#include void main() int x,sign; printf(“Please input a numbern”); scanf(“%d”,&x); if(x0) sign=1; else if(x=0) sign=0; else sign=-1; printf(“The sign is %dn”,sign);Please input a number -100 The sign is 1 Please input a number 2 The sign is 1 Please

10、input a number 0 The sign is 02022-3-14C語言程序設(shè)計(jì)-317例3.10設(shè)計(jì)求ax2+bx+c=0的一元二次方程解的程序。 a,b,c=? 1,2,1The equation has two equal roots: -1.0000a,b,c=? 1,2,2The equation has complex roots: -1.0000+1.0000i-1.0000-1.0000ia,b,c=? 2,6,1The equation has distinct real roots: -0.1771 and -2.8229#include #include vo

11、id main() float a,b,c,d,x1,x2,p,q; printf(a,b,c=?); scanf(%f,%f,%f,&a,&b,&c); printf(The equation); if(fabs(a)=1e-6) printf(is not quadratic); else d=b*b-4*a*c; if(fabs(d)1e-6) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); else p=-b/(

12、2*a); q=sqrt(-d)/(2*a); printf(has complex roots:n); printf(%8.4f+%8.4fin,p,q); printf(%8.4f-%8.4fin,p,q); 輸入a,b,ca=0?“非二次方程”d=b2-4acd=0?d0?相等實(shí)根不相等實(shí)根不相等虛根adb2iadab22ab2返 回2022-3-14C語言程序設(shè)計(jì)-3185、 switch-case語句語句 (開關(guān)分支結(jié)構(gòu)開關(guān)分支結(jié)構(gòu)) switch (表達(dá)式表達(dá)式) case 常量表達(dá)式常量表達(dá)式1: 語句組語句組1 case 常量表達(dá)式常量表達(dá)式2: 語句組語句組2 case 常量

13、表達(dá)式常量表達(dá)式n: 語句組語句組n default : 語句組語句組n+1注:表達(dá)式和常量表達(dá)式可為任何整型或字符型。 每一個(gè)case后的常量表達(dá)式值應(yīng)互不相同。default位置任意,只作入口;若無default且無匹配常量表達(dá)式,則不執(zhí)行任何操作。語句組不須加 break無條件轉(zhuǎn)向本層復(fù)合結(jié)構(gòu)的下一條語句。 計(jì)算表達(dá)式值語句組1語句組2語句組n語句組n+1常量表達(dá)式1常量表達(dá)式2常量表達(dá)式ndefault計(jì)算表達(dá)式值語句組1語句組2語句組n語句組n+1常量表達(dá)式1常量表達(dá)式2常量表達(dá)式ndefaultbreak; break; break; breakbreakbreak2022-3-1

14、4C語言程序設(shè)計(jì)-319例3.7根據(jù)考試成績(jī)的等級(jí)打印百分制分?jǐn)?shù)段。 #include void main() char grade; printf(input the grade:); scanf(%c,&grade); switch(grade) case A: printf(85100n); break; case B: printf(7084n); break; case C: printf(6069n); break; case D: printf(60n); break; default: printf(errorn); Input the grade: A 85100 I

15、nput the grade: k error2022-3-14C語言程序設(shè)計(jì)-320例3.8判別某考試成績(jī)等級(jí)是否大于60分。 #include void main() char grade; printf(Input the grade:); scanf(%c,&grade); switch(grade) case A: case B: case C:printf(=60n);break; case D:printf(=60 Input the grade: D 602022-3-14C語言程序設(shè)計(jì)-321例3.9 在case后面嵌套switch 語句的程序。 #include v

16、oid main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2: a+;b+;break; case 3: a+;b+; printf(a=%d,b=%dn,a,b); a=2,b=12022-3-14C語言程序設(shè)計(jì)-322程序舉例:程序舉例: 例3.11設(shè)計(jì)輸入年、月,輸出該月天數(shù)的程序。返 回Input year,month=? 1994,8 year=1994,month=8,days=31 Input year,month=? 1994,2 ye

17、ar=1994,month=2,days=28#include void main()int year,month,days; printf(input year,month=?n); scanf(%d,%d,&year,&month); switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break; case 4: case 6: case 9: case 11: days=30;break; case 2: if(year%4=0)&(year%100!=0

18、)|(year%400=0) days=29; else days=28;break; default: printf(month is errorn); printf(year=%d,month=%d,days=%dn,year,month,days); 年號(hào)能被4整除但不能被100整除,或者年號(hào)能被400整除的年均是閏年。2022-3-14C語言程序設(shè)計(jì)-3236、goto語句(無條件分支結(jié)構(gòu))語句(無條件分支結(jié)構(gòu)) goto 語句標(biāo)號(hào)語句標(biāo)號(hào); 注:語句標(biāo)號(hào)用標(biāo)識(shí)符表示,用來表示程序的某個(gè)位置。 返 回?zé)o條件分支結(jié)構(gòu)語句無條件分支結(jié)構(gòu)語句的三種形式的三種形式: goto 語句:語句:轉(zhuǎn)向

19、標(biāo)號(hào)所在位置。 continue 語句:語句:轉(zhuǎn)向本層復(fù)合結(jié)構(gòu)的末尾。 break 語句:語句:轉(zhuǎn)向本層復(fù)合結(jié)構(gòu)的下一語句。loop: if (i=100) sum=sum+i; i+; goto loop;2022-3-14C語言程序設(shè)計(jì)-3243.3 循環(huán)結(jié)構(gòu)(重復(fù)結(jié)構(gòu))循環(huán)結(jié)構(gòu)(重復(fù)結(jié)構(gòu))循環(huán)語句循環(huán)語句:是在給定條件成立時(shí),反復(fù)執(zhí)行某個(gè)程序段(循環(huán)體循環(huán)體)。 1、if-goto語句 2、while語句語句 3、do-while語句語句 4、for語句語句 5、break語句 6、 continue語句 程序舉例返 回2022-3-14C語言程序設(shè)計(jì)-3251、if-goto語句構(gòu)成的

20、循環(huán)結(jié)構(gòu) 例3.12求S=1+2+100的和。#include void main() int i,sum=0; i=1; loop: if(i=100) sum=sum+i; i+; goto loop; printf(SUM=%dn,sum);返 回SUM=50502022-3-14C語言程序設(shè)計(jì)-3262、while語句 while (表達(dá)式表達(dá)式) 語句語句 注:先判斷,后執(zhí)行循環(huán)體;循環(huán)體最少執(zhí)行次,即表達(dá)式不成立時(shí);死循環(huán):while(1),即當(dāng)循環(huán)體內(nèi)無改變表達(dá)式的語句(如 i+)。 while表達(dá)式表達(dá)式語句語句0非02022-3-14C語言程序設(shè)計(jì)-327例3.13求S=1+

21、2+10的和。#include void main() int i,sum=0; i=1; while(i=10) sum=sum+i; i+; printf(SUM=%dn,sum);SUM=552022-3-14C語言程序設(shè)計(jì)-328例3.14求兩個(gè)正數(shù)的最大公因子。 返 回Please type in two positive integers49 21Their greatest common divisor is 7Please type in two positive integers50 100Their greatest common divisor is 50 #includ

22、e void main() int m,n,r; printf(Please type in two positive integersn); scanf(%d%d,&m,&n); while(n) r=m%n; m=n; n=r; printf(Their greatest common divisor is %dn,m); 算法:輸入兩個(gè)正數(shù)m和n; m除以n,余數(shù)為r, n-m,r-n; 若n=0,則m是最大公因子,結(jié)束;否則轉(zhuǎn) 。2022-3-14C語言程序設(shè)計(jì)-3293、do-while語句 do 語句語句 while (表達(dá)式表達(dá)式) 注:先執(zhí)行循環(huán)體,后判斷;無論

23、表達(dá)式成立不成立,循環(huán)體最少執(zhí)行次; 死循環(huán):while(1),即當(dāng)循環(huán)體內(nèi)無改變表達(dá)式的語句(如i+)。 do表達(dá)式表達(dá)式語句語句0非02022-3-14C語言程序設(shè)計(jì)-330例3.15求S=1+2+10的和。#include void main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=10); printf(SUM=%dn,sum); SUM=552022-3-14C語言程序設(shè)計(jì)-331例3.16將一個(gè)整數(shù)的各位數(shù)字顛倒后輸出。算法:提取最后一位數(shù)字,用取模10的余數(shù)求得。#include void main() int i,r; pri

24、ntf(Input an integern); scanf(%d,&i); do r=i%10; printf(%d,r); while(i/=10)!=0); printf(n); 返 回Input an integer 1234 4321 2022-3-14C語言程序設(shè)計(jì)-332for (表達(dá)式;表達(dá)式;表達(dá)式表達(dá)式;表達(dá)式;表達(dá)式) 語句語句 4、for語句 注:表達(dá)式1:變量賦初值;表達(dá)式2:循環(huán)條件;表達(dá)式3:循環(huán)后修正變量,使循環(huán)趨向結(jié)束;語句:循環(huán)體。已知循環(huán)次數(shù)或開始條件和結(jié)束條件的重復(fù)問題;表達(dá)式1和3省略時(shí),相當(dāng)于while循環(huán)。先判斷,后執(zhí)行;循環(huán)體最少執(zhí)行0次;

25、死循環(huán):表達(dá)式3省略時(shí),則循環(huán)體內(nèi)應(yīng)有改變表達(dá)式2的語句。表達(dá)式2省略時(shí),無終止條件,則循環(huán)體內(nèi)應(yīng)有跳出循環(huán)的語句,如break, goto, exit(), return。表達(dá)式表達(dá)式2語句語句0非0表達(dá)式表達(dá)式1表達(dá)式表達(dá)式3變量賦初值循環(huán)條件修正變量循環(huán)體While循環(huán)循環(huán)2022-3-14C語言程序設(shè)計(jì)-333例3.17求S=1+2+10的和。#include void main() int i,sum=0; for(i=1;i=10;i+) sum=sum+i; printf(“SUM=%dn”,sum); SUM=552022-3-14C語言程序設(shè)計(jì)-334例3.18輸入10個(gè)字符

26、,輸出最大的ASCII值。 #include #define NUM 10void main() int i,c,max; max=0; for(i=1;imax) max=c; printf(The largest ASCII value is %dn,max); 12 AB9 xab The largest ASCII value is 1202022-3-14C語言程序設(shè)計(jì)-335例3.19求斐波那契數(shù)列(Fibonacci)的前20個(gè)數(shù)。#include void main() int i,a,b,c; a=0; b=1; printf(%10d%10d,a,b); for(i=3;i

27、=20;i+) c=a+b; printf(%10d,c); if(i%5=0) printf(n); a=b; b=c; printf(n); 返 回0 1 1 2 3 5 8 13 21 3455 89 144 233 377610 987 1597 2584 41812022-3-14C語言程序設(shè)計(jì)-3365、break語句break 語句的兩個(gè)用途: 跳出switch語句; 跳出本層循環(huán)。表達(dá)式2break;.假(0)真(非0)for表達(dá)式1表達(dá)式3switch表達(dá)式語句組1break;語句組2break;語句組nbreak;語句組break;.常量 1常量 2常量 ndefaultc

28、ase 表達(dá)式break;假(0)真(非0)whiledobreak;.表達(dá)式假(0)真(非0)while2022-3-14C語言程序設(shè)計(jì)-337例3.20 break語句結(jié)束循環(huán)。#include void main() int i; for(i=1;i9) break; printf(n);1 2 3 4 5 6 7 8 9 10 2022-3-14C語言程序設(shè)計(jì)-338例3.21求調(diào)和級(jí)數(shù)中第多少項(xiàng)的值大于10。 調(diào)和級(jí)數(shù)的第n項(xiàng)形式為:1+1/2+1/3+1/n#include #define LIMIT 10void main() int n; float sum; sum=0.0;

29、 n=1; for(;) sum=sum+1.0/n; if(sumLIMIT) break; n+; printf(n=%dn,n);n=12367返 回2022-3-14C語言程序設(shè)計(jì)-3396、continue語句continue語句作用:立即結(jié)束本次循環(huán),轉(zhuǎn)去判斷循環(huán)條件是否成立。表達(dá)式2continue;.假(0)真(非0)for表達(dá)式1表達(dá)式3真(非0)docontinue;.表達(dá)式假(0)while表達(dá)式continue;假(0)真(非0)while2022-3-14C語言程序設(shè)計(jì)-340返 回例3.22求輸入的正數(shù)之和。#include void main() int i,n,sum=0; for(i=1;i10;i+) scanf(%d,&n); if(n0) continue; sum=sum+n; printf(SUM=%dn,sum);SUM=552022-3-14C語言程序設(shè)計(jì)-341#include void main() int x,y,z; for(x=1;x=20;x+) for(y=1;y=33;y+) z=100-x-y; i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論