




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)1第3章 程序控制結(jié)構(gòu)3.1 C語言的語句3.2 順序結(jié)構(gòu)3.3 分支結(jié)構(gòu)計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)2C語言的語句 1.表達(dá)式語句表達(dá)式語句 2.函數(shù)調(diào)用語句函數(shù)調(diào)用語句 3.控制語句控制語句 4.復(fù)合語句復(fù)合語句 5.空語句空語句 計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)31.表達(dá)式語句表達(dá)式語句 表達(dá)式語句由表達(dá)式加上分號表達(dá)式語句由表達(dá)式加上分號“;”組成。組成。其一般形式為:其一般形式為: 表達(dá)式;表達(dá)式; 執(zhí)行表達(dá)式語句就是計(jì)算表達(dá)式的值執(zhí)行表達(dá)式語句就是計(jì)算表達(dá)式的值。例如: x=y+z; 賦值語句y+z; 加法運(yùn)算語句,但計(jì)算結(jié)果不能保留,無實(shí)際意義i+; 自增
2、1語句,i值增1 計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)42.函數(shù)調(diào)用語句函數(shù)調(diào)用語句 由函數(shù)名、實(shí)際參數(shù)加上分號“;”組成。其一般形式為: 函數(shù)名(實(shí)際參數(shù)表); 執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語句,求取函數(shù)值。例:計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)53.控制語句控制語句 控制語句用于控制程序的流程, 以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式。它們由特定的語句定義符組成。語言有九種控制語句。 可分成以下三類:(1) (1) 條件判斷語句條件判斷語句ifif語句,語句,switchswitch語句語句(2) (2) 循環(huán)執(zhí)行語句循環(huán)執(zhí)行語句do whiledo whil
3、e語句,語句,whilewhile語句,語句,forfor語句語句(3) (3) 轉(zhuǎn)向語句轉(zhuǎn)向語句breakbreak語句,語句,gotogoto語句,語句,continuecontinue語句,語句,returnreturn語句語句 計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)64.復(fù)合語句復(fù)合語句 把多個語句用括號把多個語句用括號括起來組成的一個語句稱復(fù)合括起來組成的一個語句稱復(fù)合語句。語句。 在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句多條語句 是一條復(fù)合語句。復(fù)合語句內(nèi)的各條語句都必須以分號“;”結(jié)尾,在括號在括號“”外不能加分號。外不能加分號。 計(jì)算機(jī)
4、二級第3章程序控制結(jié)構(gòu)75.空語句空語句 只有分號只有分號“;”組成的語句稱為空語句組成的語句稱為空語句。 空語句是什么也不執(zhí)行的語句。在程序中空語句可用來作空循環(huán)體。例如例如 while(getchar()!=n)while(getchar()!=n)本語句的功能是,只要從鍵盤輸入的字符不是回車則重新本語句的功能是,只要從鍵盤輸入的字符不是回車則重新輸入。這里的循環(huán)體為空語句。輸入。這里的循環(huán)體為空語句。 計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)8【例3.1】#include #include float triangle_area(float a, float b, float c) float l;
5、 l=(a+b+c)/2.0; return sqrt(l*(l-a)*(l-b)*(l-c);main( ) float a,b,c,area; printf(“請輸入三角形三條邊的邊長:”); scanf(“%f%f%f”,&a,&b,&c); area = triangle_area(a,b,c); printf(“該三角形的面積是:%6.2fn”,area);函數(shù)調(diào)用語句back主函數(shù)在后主函數(shù)在后,自定義函數(shù)在自定義函數(shù)在前的格式前的格式計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)9【例3.2】#include #include main( ) float triangle_area(float a
6、, float b, float c) ; float a,b,c,area; printf(“請輸入三角形三條邊的邊長:”); scanf(“%f%f%f”,&a,&b,&c); area = triangle_area(a,b,c); printf(“該三角形的面積是:%6.2fn”,area);float triangle_area(float a, float b, float c) float l; l=(a+b+c)/2.0; return sqrt(l*(l-a)*(l-b)*(l-c);計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)10順序結(jié)構(gòu) 按書寫順序執(zhí)行的語句構(gòu)成的程序段按書寫順序執(zhí)行的語
7、句構(gòu)成的程序段【例3.3】輸入任意三個整數(shù),求它們的和及平均值main( )int num1,num2,num3,sum;float aver;printf(Please input three numbers:);scanf(%d%d%d,&num1,&num2,&num3);sum=num1+num2+num3;aver=sum/3.0;printf(num1=%d,num2=%d,num3=%dn,num1,num2,num3);printf(sum=%d,aver=%7.2fn,sum,aver);這兩部分語句的順序能調(diào)換嗎?計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)11【例3.4】從鍵盤輸入一個小
8、寫字母,要求用大小寫字母形式輸出該字母及對應(yīng)的ASCII碼值#include main()char c1,c2;printf(Input a lowercase letter: );c1=getchar();putchar(c1);printf(%dn,c1);c2=c1-32;printf(%c,%dn,c2,c2);這兩部分語句的順序能調(diào)換嗎?計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)12在順序結(jié)構(gòu)程序中,一般包括以下幾個部分:程序開頭的編譯預(yù)處理命令。在程序中要使用標(biāo)準(zhǔn)函數(shù)(又稱庫函數(shù)),除printf( )和scanf( )外,其它的都必須使用編譯預(yù)處理命令,將相應(yīng)的頭文件包含進(jìn)來。順序結(jié)構(gòu)程序的函
9、數(shù)體中,是完成具體功能的各個語句和運(yùn)算,主要包括:變量類型的說明;提供數(shù)據(jù)語句;運(yùn)算部分;1.輸出部分。計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)13【例【例3.5】#include main( ) float a,b,c,l,area; printf(“請輸入三角形三條邊的邊長:請輸入三角形三條邊的邊長:”); scanf(“%f%f%f”,&a,&b,&c); l=(a+b+c)/2.0; area= sqrt(l*(l-a)*(l-b)*(l-c); printf(“該三角形的面積是:該三角形的面積是:%6.2fn”,area);計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)14分支結(jié)構(gòu) 根據(jù)輸入數(shù)據(jù)或中間結(jié)果的不同選
10、擇不同的語句組執(zhí)行,此時需要一個變量或表達(dá)式的值來作為判定的依據(jù)。 兩種分支結(jié)構(gòu)條件分支(if和if else):根據(jù)給定的條件進(jìn)行判斷,決定執(zhí)行某個分支的程序段;開關(guān)分支(switch):根據(jù)給定整型表達(dá)式的值進(jìn)行判斷,決定執(zhí)行多路分支中的一支。計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)15if結(jié)構(gòu)結(jié)構(gòu) 結(jié)構(gòu)一:單路選擇結(jié)構(gòu)結(jié)構(gòu)一:單路選擇結(jié)構(gòu)if (表達(dá)式) 語句組【例3.6】main() int i;printf(“Please input an integer:”);scanf(“%d”,&i);if(i0)i = -i;printf(“The absolute value is:%dn”,i);計(jì)
11、算機(jī)二級第3章程序控制結(jié)構(gòu)16【例3.7】輸入兩個數(shù)字將較大的送入x中,較小送入y中,并輸出.算法分析:E1:輸入輸入x,y值值E2:兩者中較大者存入兩者中較大者存入x中中,較小存入較小存入y中中E3:輸出輸出X,YE2.1IF xy THENE2.2交換交換x,yE2.2.1將將x值存入臨時變量值存入臨時變量TEMP中中E2.2.2將將y值存入值存入x中中E2.2.3將將TEMP中的值存入中的值存入y中中#include main()int x,y,temp;printf(輸入兩個整數(shù)輸入兩個整數(shù)!);scanf(%d,%d,&x,&y);if (x=90)printf(“The grade
12、 is: An”); else if (a=80)printf(“The grade is: Bn”); else if (a=70)printf(“The grade is: Cn”);else if (a=60)printf(“The grade is: Dn”);else printf(“The grade is: En”);從鍵盤上輸入一個百分制成績score,按下列原則輸出其等級:90score,等級為A;80score90,等級為B;70score80,等級為C;60score70,等級為D;score60,等級為E。 輸入:95運(yùn)行結(jié)果:The grade is:A 輸入:75運(yùn)
13、行結(jié)果:The grade is:C計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)21 if后面都有“表達(dá)式”,一般為邏輯表達(dá)式或關(guān)系表達(dá)式,也可以為任意的數(shù)值類型,系統(tǒng)對表達(dá)式的值進(jìn)行判斷,若為0,按“假”處理,否則按“真”處理。 在if 和else 后面可以只含一個操作語句,也可以有多個操作語句,此時用 將幾個語句括起來成為一個復(fù)合語句。在 后面不需要加括號。計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)22 if語句的嵌套在if語句中又包含一個或多個if語句if ( )if ( ) 語句組1else 語句組2else if ( ) 語句組3else 語句組4計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)23if ( )if ( ) 語句1e
14、lseif ( ) 語句2else 語句3if ( ) if ( ) 語句1 else if ( ) 語句2else 語句3if與else的配對關(guān)系:從最內(nèi)層開始,else總是與它上面最近(未曾配對)的if配對;1. 如果if與else的數(shù)目不一樣,為實(shí)現(xiàn)程序設(shè)計(jì)者的企圖,可以加 來確定配對關(guān)系。if ( ) if ( ) 語句1 else if ( ) 語句2 else 語句3計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)24switch結(jié)構(gòu) 一般的格式:switch(表達(dá)式)case 常量表達(dá)式1:語句組1 break;case 常量表達(dá)式2:語句組2 break;case 常量表達(dá)式n:語句組n brea
15、k;default: 語句組n+1 執(zhí)行過程:當(dāng)switch后面“表達(dá)式”的值,與某個case后面的“常量表達(dá)式”的值相同時,就執(zhí)行該case后面的語句(組);當(dāng)執(zhí)行到break語句時,跳出switch語句,轉(zhuǎn)向執(zhí)行switch語句的下一條。如果沒有任何一個case后面的“常量表達(dá)式”的值,與“表達(dá)式”的值匹配,則執(zhí)行default 后面的語句(組)。然后,再執(zhí)行switch語句的下一條。(注:方括號表示可選項(xiàng))計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)25switch結(jié)構(gòu)計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)26說明說明switch后面的后面的“表達(dá)式表達(dá)式”,可以是整型、字符型和枚舉型中的一種。,可以是整型、字符
16、型和枚舉型中的一種。每個每個case后面后面“常量表達(dá)式常量表達(dá)式”的值,必須各不相同,否則會出現(xiàn)相的值,必須各不相同,否則會出現(xiàn)相互矛盾的現(xiàn)象(即對表達(dá)式的同一值,有兩種或兩種以上的執(zhí)行方互矛盾的現(xiàn)象(即對表達(dá)式的同一值,有兩種或兩種以上的執(zhí)行方案)。案)。case后面的常量表達(dá)式僅起語句標(biāo)號作用,并不進(jìn)行條件判斷。系后面的常量表達(dá)式僅起語句標(biāo)號作用,并不進(jìn)行條件判斷。系統(tǒng)一旦找到入口標(biāo)號,就從此標(biāo)號開始執(zhí)行,不再進(jìn)行標(biāo)號判斷,統(tǒng)一旦找到入口標(biāo)號,就從此標(biāo)號開始執(zhí)行,不再進(jìn)行標(biāo)號判斷,所以必須加上所以必須加上break語句,以便結(jié)束語句,以便結(jié)束switch語句。語句。各各case及及def
17、ault子句的先后次序,不影響程序執(zhí)行結(jié)果。子句的先后次序,不影響程序執(zhí)行結(jié)果。多個多個case子句,可共用同一語句(組)。子句,可共用同一語句(組)。1. 用用switch語句實(shí)現(xiàn)的多分支結(jié)構(gòu)程序,完全可以用語句實(shí)現(xiàn)的多分支結(jié)構(gòu)程序,完全可以用if語句或語句或if語句的語句的嵌套來實(shí)現(xiàn)。嵌套來實(shí)現(xiàn)。計(jì)算機(jī)二級第3章程序控制結(jié)構(gòu)27【例3.9】main()int score, grade;printf(“Input a score(0100): ”);scanf(“%d”, &score);grade = score/10; switch (grade)case 10:case 9: printf(“grade=An”); break;case 8: printf(grade=Bn); break;case 7: printf(grade=Cn); break;case 6: printf(grade=Dn); break;case 5:case 4:case 3:case 2:case 1:case 0: printf(“grade=En”); break;default
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吊頂材料合同范例
- 衛(wèi)生用品合同范本
- 下水管改造合同范本
- eve快遞合同范本
- 合作開賓館合同范本
- 衛(wèi)浴倉庫用工合同范本
- 區(qū)域包干合同范本
- 住戶拆遷補(bǔ)償合同范例
- 鹵菜素菜采購合同范本
- 制沙機(jī)合同范本
- 2024解析:第八章牛頓第一定律、二力平衡-基礎(chǔ)練(解析版)
- 《傳媒法的原則》課件
- 2024解析:第十三章內(nèi)能-基礎(chǔ)練(解析版)
- 2024年網(wǎng)格員考試題庫含答案
- GB/Z 44047-2024漂浮式海上風(fēng)力發(fā)電機(jī)組設(shè)計(jì)要求
- (完整)2019年風(fēng)廉政建設(shè)主體責(zé)任落實(shí)情況監(jiān)督檢查記錄表
- 《selenium安裝教程》課件
- 2024年遼寧省中考數(shù)學(xué)真題卷及答案解析
- 絕句遲日江山麗說課稿
- 物業(yè)員工安全知識教育培訓(xùn)
- 動物性食品衛(wèi)生檢驗(yàn)教案2
評論
0/150
提交評論