新手入門C語言教程(ITG制作)--程序流程設計ppt課件_第1頁
新手入門C語言教程(ITG制作)--程序流程設計ppt課件_第2頁
新手入門C語言教程(ITG制作)--程序流程設計ppt課件_第3頁
新手入門C語言教程(ITG制作)--程序流程設計ppt課件_第4頁
新手入門C語言教程(ITG制作)--程序流程設計ppt課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第四章 C程序流程設計4.1 C語句概述C語句:以“;作分隔符,編譯后產(chǎn)活力器指令.C語句分類表達式語句:表達式加分號構成??照Z句: ;程序控制語句(9種:if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分支循環(huán)輔助控制如 total=total+limit; a=3; func( ); printf(“Hello,world!n);復合語句:用 括起來的一組語句普通方式: 數(shù)聽闡明部分; 執(zhí)行語句部分; 闡明:“后不加分號語法上和單一語句一樣復合語句可嵌套4.2 程序的三種根本構造構造化程序設計根本思想:任何程序都

2、可以用三種根本構造表示,限制運用無條件轉移語句goto構造化程序:由三種根本構造反復嵌套構成的程序叫優(yōu)點:構造明晰,易讀,提高程序設計質量和效率三種根本構造順序構造ABAB流程圖N-S圖PAB真假PBA真假選擇構造kA1A2AiAnk=k2k=k1k=knk=ki.二分支選擇構造多分支選擇構造循環(huán)構造當型循環(huán)構造直到型循環(huán)構造PA假真當P為真AAP真假A直到P為真注:A,B,A1.An可以是一個簡單語句,也可以是一個根本構造4.3 選擇型程序設計if語句條件選擇語句if語句的三種方式方式一:格式:if (expression) statement執(zhí)行過程:exprstatement非0=0例:

3、if (xy) printf(“%d,x);exprstatement1statement2非0=0方式二:格式:if (expression) statement1 else statement2執(zhí)行過程:例:if (xy) max=x; else max=y;方式三:格式:if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0執(zhí)行過

4、程: 例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 如:if(a=b&x=y) printf(“a=b,x=y); if(3) printf(“OK); if(a) printf(“%d,a);闡明:if后面的表達式類型恣意語句可以是復合語句 if(x) if(x!=0) if(!x) if(x=0)例 思索下面程序的輸出結果: #include int main() i

5、nt x,y; scanf(“%d,%d,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn,x,y); return 0;Compile Error!#include int main() int x,y; printf(Enter an integer:); scanf(%d,&x); y=x; if(yabsolute value:%dn,x,y); return 0;例 求一個數(shù)的絕對值運轉:Enter an integer:-12 integer:-12-absolute value :12#include int main()

6、int a,b; printf(Enter integer a:); scanf(%d,&a); printf(Enter integer b:); scanf(%d,&b); if(a=b) printf(a=bn); else printf(a!=bn); return 0;例 輸入兩個數(shù)并判別兩數(shù)相等否運轉:Enter integer a:12 Enter integer b:12 a=b 運轉:Enter integer a:12 Enter integer b:9 a!=b #include int main() char c; printf(Enter a character:);

7、 c=getchar(); if(c=0&c=A&c=a&c=z) printf(The character is a lower lettern); else printf(The character is other charactern); return 0;例 判別輸入字符種類運轉:Enter a character: The character is a control character運轉:Enter a character:8 The character is a digit運轉: Enter a character: D The character is a capital

8、letter運轉: Enter a character: h The character is a lower letter運轉: Enter a character: The character is other characterif語句嵌套:普通方式:if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4內嵌if內嵌ifif (expr1) if (expr2) statement1 else statement2內嵌ifif (expr1) if (expr2)

9、statement1else statement2 內嵌ifif (expr1) statement1else if(expr3) statement3 else statement4內嵌if例 輸入兩數(shù)并判別其大小關系#include int main() int x,y; printf(Enter integer x,y:); scanf(%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn); return 0;運轉:Enter integer x,y:12,23 XY Enter in

10、teger x,y:12,12 X=Yif else 配對原那么:缺省 時,else總是和它上面離它最近的未配對的if配對if()if()if()else.else.else.例: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);修正: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);實現(xiàn)if else 正確配對方法:加 例 思索下面程序輸出結果:int main() int x=100,a=10,b=20; int v1=5,v2=0; if(a60n); break; .例 sw

11、itch(score) case 5: printf(“Very good!); case 4: printf(“Good!); case 3: printf(“Pass!); case 2: printf(“Fail!); default : printf(“data error!); 運轉結果:score為5時,輸出: Very good! Good! Pass! Fail! data error!例 int main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; brea

12、k; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d,a,b); return 0; 運轉結果:a=2,b=1#include int main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; case h: printf(nHello!n); break; default : printf

13、(n?n); break; return 0;例 根據(jù)輸入字母輸出字符串4.4 循環(huán)型程序設計概述C言語可實現(xiàn)循環(huán)的語句:while 語句do while 語句for 語句while語句普通方式:while(表達式) 循環(huán)體語句;執(zhí)行流程:expr循環(huán)體假(0)真(非0)while特點:先判別表達式,后執(zhí)行循環(huán)體闡明:循環(huán)體有能夠一次也不執(zhí)行循環(huán)體可為恣意類型語句以下情況,退出while循環(huán)條件表達式不成立為零循環(huán)體內遇break,return無限循環(huán): while(1) 循環(huán)體;例 用while循環(huán)求 #include int main() int i,sum=0; i=1; while(i

14、=100) sum=sum+i; i+; printf(%d,sum); return 0;循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體例 顯示110的平方#include int main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; return 0;運轉結果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100dowhile語句普通方式:do 循環(huán)體語句; while(表達式);執(zhí)行流程:do循環(huán)體expr假(0)真(非0)while特點:先執(zhí)行循環(huán)體,后判別表

15、達式闡明:至少執(zhí)行一次循環(huán)體dowhile可轉化成while構造expr循環(huán)體假(0)真(非0)循環(huán)體While循環(huán)例 用dowhile循環(huán)求 #include int main() int i,sum=0; i=1; do sum+=i;i+; while(i=100); printf(%d,sum); return 0;例 while和dowhile比較#include int main() int i,sum=0; scanf(%d,&i); do sum+=i;i+; while(i=10); printf(%d,sum); return 0;int main() int i,sum=

16、0; scanf(%d,&i); while(i=10) sum+=i;i+; printf(%d,sum); return 0;for語句普通方式:for(expr1 ; expr2 ; expr3) 循環(huán)體語句;執(zhí)行流程:expr2循環(huán)體假(0)真(非0)forexpr1expr3for語句普通運用方式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)循環(huán)體語句;闡明:for語句中expr1, expr2 ,expr3 類型恣意,都可省略,但分號;不可省無限循環(huán): for(;)for語句可以轉換成while構造expr1;while(expr2)循環(huán)體語句;expr3;例 用for循環(huán)求

17、#include int main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); return 0;例:#include int main( ) int i=0; for(i=0;i10;i+) putchar(a+i); return 0; 運轉結果:abcdefghij例:#include int main( ) int i=0; for(;i10;i+) putchar(a+i); return 0; 例:#include main( ) int i=0; for(;i10;) putchar(a+(i+); 例:#in

18、clude int main( ) int i=0; for(;i10;putchar(a+i),i+) ; return 0; int main() int i,j,k; for(i=0,j=100;i=j;i+,j-) k=i+j; printf(%d+%d=%dn,i,j,k); return 0;#includeint main() char c; for(;(c=getchar()!=n;) printf(%c ,c); return 0;例 f0r)梯形法求數(shù)值積分0yxaa+ha+iha+(i+1)hbf(x)循環(huán)的嵌套三種循環(huán)可相互嵌套,層數(shù)不限外層循環(huán)可包含兩個以上內循環(huán)嵌套

19、循環(huán)的執(zhí)行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .內循環(huán)外循環(huán)內循環(huán)嵌套循環(huán)的跳轉制止:從外層跳入內層跳入同層的另一循環(huán)向上跳轉例 循環(huán)嵌套,輸出九九表1234567891234567892468101214161836912151821242791827364554637281.ij#include int main() int i,j; for(i=1;i10;i+) printf(%4d,i);

20、printf(n-n); for(i=1;i10;i+) for(j=1;j10;j+) printf(j=9)?%4dn:%4d,i*j); return 0;i10printf假(0)真(非0)i=1j+j=1j10真(非0)假(0)i+for(i=1;i10;i+) for(j=1;j10;j+) printf(j=9)?%4dn:%4d,i*j);外循環(huán)內循環(huán) 4.5 輔助控制語句break語句功能:在循環(huán)語句和switch語句中,終止并跳出循環(huán)體或開關體闡明:break只能終止并跳出最近一層的構造break不能用于循環(huán)語句和switch語句之外的任何其它語句之中exprbreak;假

21、(0)真(非0)whiledobreak;.expr假(0)真(非0)whileexpr2break;.假(0)真(非0)forexpr1expr3switchexpr語句組1break;語句組2break;語句組nbreak;語句組break;.const 1const 2const ndefaultcase 例 break舉例:假設半徑為1到10的整數(shù),逐個輸出圓面積,直到面積大于100時停頓#define PI 3.14159int main() int r; double area; for(r=1;r100) break; printf(r=%d,area=%.2lfn,r,area); return 0;例 break舉例:小寫字母轉換成大寫字母,直至輸入非小寫字母字符#include int main() int i,j; char c; while(1) c=getchar(); if(c=a & c=z) putchar(c+A-a); else break; return 0;continue語句功能:終了本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,進展下一次能否執(zhí)行循環(huán)體的判別僅用于循環(huán)語句中e

溫馨提示

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

評論

0/150

提交評論