計算機二級 程序控制結構_第1頁
計算機二級 程序控制結構_第2頁
計算機二級 程序控制結構_第3頁
計算機二級 程序控制結構_第4頁
計算機二級 程序控制結構_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機二級程序控制結構第一頁,共二十八頁,編輯于2023年,星期五1C語言的語句C語句可分為以下五類:

1.表達式語句

2.函數調用語句

3.控制語句

4.復合語句

5.空語句第二頁,共二十八頁,編輯于2023年,星期五21.表達式語句

表達式語句由表達式加上分號“;”組成。其一般形式為:表達式;

執(zhí)行表達式語句就是計算表達式的值。例如:x=y+z;賦值語句y+z;加法運算語句,但計算結果不能保留,無實際意義i++;自增1語句,i值增1第三頁,共二十八頁,編輯于2023年,星期五32.函數調用語句由函數名、實際參數加上分號“;”組成。其一般形式為:函數名(實際參數表);執(zhí)行函數語句就是調用函數體并把實際參數賦予函數定義中的形式參數,然后執(zhí)行被調函數體中的語句,求取函數值。例:第四頁,共二十八頁,編輯于2023年,星期五43.控制語句控制語句用于控制程序的流程,以實現程序的各種結構方式。它們由特定的語句定義符組成。C語言有九種控制語句??煞殖梢韵氯悾?1)條件判斷語句

if語句,switch語句(2)循環(huán)執(zhí)行語句

dowhile語句,while語句,for語句(3)轉向語句

break語句,goto語句,continue語句,return語句第五頁,共二十八頁,編輯于2023年,星期五54.復合語句

把多個語句用括號{}括起來組成的一個語句稱復合語句。在程序中應把復合語句看成是單條語句,而不是多條語句

{x=y+z;a=b+c;printf(“%d%d”,x,a);}是一條復合語句。復合語句內的各條語句都必須以分號“;”結尾,在括號“}”外不能加分號。

第六頁,共二十八頁,編輯于2023年,星期五65.空語句只有分號“;”組成的語句稱為空語句??照Z句是什么也不執(zhí)行的語句。在程序中空語句可用來作空循環(huán)體。例如while(getchar()!='\n');

本語句的功能是,只要從鍵盤輸入的字符不是回車則重新輸入。這里的循環(huán)體為空語句。第七頁,共二十八頁,編輯于2023年,星期五7【例3.1】#include<stdio.h>#include<math.h>floattriangle_area(floata,floatb,floatc){floatl;l=(a+b+c)/2.0;returnsqrt(l*(l-a)*(l-b)*(l-c));}main(){floata,b,c,area;printf(“請輸入三角形三條邊的邊長:”);scanf(“%f%f%f”,&a,&b,&c);area=triangle_area(a,b,c);printf(“該三角形的面積是:%6.2f\n”,area);}}函數調用語句back主函數在后,自定義函數在前的格式第八頁,共二十八頁,編輯于2023年,星期五8【例3.2】#include<stdio.h>#include<math.h>main()floattriangle_area(floata,floatb,floatc);{floata,b,c,area;printf(“請輸入三角形三條邊的邊長:”);scanf(“%f%f%f”,&a,&b,&c);

area=triangle_area(a,b,c);printf(“該三角形的面積是:%6.2f\n”,area);}floattriangle_area(floata,floatb,floatc){floatl;l=(a+b+c)/2.0;returnsqrt(l*(l-a)*(l-b)*(l-c));}第九頁,共二十八頁,編輯于2023年,星期五9順序結構按書寫順序執(zhí)行的語句構成的程序段【例3.3】輸入任意三個整數,求它們的和及平均值main(){ intnum1,num2,num3,sum; floataver; printf("Pleaseinputthreenumbers:");

scanf("%d%d%d",&num1,&num2,&num3);

sum=num1+num2+num3; aver=sum/3.0; printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3); printf("sum=%d,aver=%7.2f\n",sum,aver);}這兩部分語句的順序能調換嗎?第十頁,共二十八頁,編輯于2023年,星期五10【例3.4】從鍵盤輸入一個小寫字母,要求用大小寫字母形式輸出該字母及對應的ASCII碼值#include<stdio.h>main(){ charc1,c2; printf("Inputalowercaseletter:"); c1=getchar();

putchar(c1); printf("%d\n",c1);

c2=c1-32; printf("%c,%d\n",c2,c2);}這兩部分語句的順序能調換嗎?第十一頁,共二十八頁,編輯于2023年,星期五11在順序結構程序中,一般包括以下幾個部分:程序開頭的編譯預處理命令。在程序中要使用標準函數(又稱庫函數),除printf()和scanf()外,其它的都必須使用編譯預處理命令,將相應的頭文件包含進來。順序結構程序的函數體中,是完成具體功能的各個語句和運算,主要包括:變量類型的說明;提供數據語句;運算部分;輸出部分。第十二頁,共二十八頁,編輯于2023年,星期五12【例3.5】#include<math.h>main(){floata,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.2f\n”,area);}第十三頁,共二十八頁,編輯于2023年,星期五13分支結構根據輸入數據或中間結果的不同選擇不同的語句組執(zhí)行,此時需要一個變量或表達式的值來作為判定的依據。兩種分支結構條件分支(if和if~else):根據給定的條件進行判斷,決定執(zhí)行某個分支的程序段;開關分支(switch):根據給定整型表達式的值進行判斷,決定執(zhí)行多路分支中的一支。第十四頁,共二十八頁,編輯于2023年,星期五14if結構結構一:單路選擇結構if(表達式)語句組【例3.6】main(){ inti; printf(“Pleaseinputaninteger:”); scanf(“%d”,&i);

if(i<0) i=-i; printf(“Theabsolutevalueis:%d\n”,i);}第十五頁,共二十八頁,編輯于2023年,星期五15【例3.7】輸入兩個數字將較大的送入x中,較小送入y中,并輸出.算法分析:E1:輸入x,y值E2:兩者中較大者存入x中,較小存入y中E3:輸出X,YE2.1IFx<yTHENE2.2交換x,yE2.2.1將x值存入臨時變量TEMP中E2.2.2將y值存入x中E2.2.3將TEMP中的值存入y中#include<stdio.h>main(){intx,y,temp;printf("輸入兩個整數!");scanf("%d,%d",&x,&y);if(x<y){temp=x;x=y;y=temp;}printf("較大值是=%d,較小值是=%d\n",x,y);第十六頁,共二十八頁,編輯于2023年,星期五16結構二:雙路選擇結構if(表達式)

語句組1else

語句組2第十七頁,共二十八頁,編輯于2023年,星期五17結構三:多路選擇if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3……elseif(表達式m)語句melse

語句n第十八頁,共二十八頁,編輯于2023年,星期五18多路選擇結構(4分支)第十九頁,共二十八頁,編輯于2023年,星期五19【例3.8】main(){ inta; printf("Pleaseinputthescore:"); scanf(“%d”,&a);

if(a>=90) printf(“Thegradeis:A\n”); elseif(a>=80) printf(“Thegradeis:B\n”); elseif(a>=70) printf(“Thegradeis:C\n”); elseif(a>=60) printf(“Thegradeis:D\n”); else printf(“Thegradeis:E\n”);}從鍵盤上輸入一個百分制成績score,按下列原則輸出其等級:90≤score,等級為A;80≤score<90,等級為B;70≤score<80,等級為C;60≤score<70,等級為D;score<60,等級為E。輸入:95運行結果:Thegradeis:A

輸入:75運行結果:Thegradeis:C第二十頁,共二十八頁,編輯于2023年,星期五20if后面都有“表達式”,一般為邏輯表達式或關系表達式,也可以為任意的數值類型,系統(tǒng)對表達式的值進行判斷,若為0,按“假”處理,否則按“真”處理。在if和else后面可以只含一個操作語句,也可以有多個操作語句,此時用{}將幾個語句括起來成為一個復合語句。在{}后面不需要加括號。第二十一頁,共二十八頁,編輯于2023年,星期五21if語句的嵌套——在if語句中又包含一個或多個if語句if() if()語句組1 else語句組2else if()語句組3 else語句組4第二十二頁,共二十八頁,編輯于2023年,星期五22if() if()語句1else if()語句2 else語句3if()if()語句1elseif()語句2 else語句3if與else的配對關系:從最內層開始,else總是與它上面最近(未曾配對)的if配對;如果if與else的數目不一樣,為實現程序設計者的企圖,可以加{}來確定配對關系。if(){if()語句1}elseif()語句2else語句3第二十三頁,共二十八頁,編輯于2023年,星期五23switch結構一般的格式:switch(表達式){ case常量表達式1: 語句組1[break;] case常量表達式2: 語句組2[break;] … case常量表達式n: 語句組n[break;] [default:

語句組n+1]}執(zhí)行過程:當switch后面“表達式”的值,與某個case后面的“常量表達式”的值相同時,就執(zhí)行該case后面的語句(組);當執(zhí)行到break語句時,跳出switch語句,轉向執(zhí)行switch語句的下一條。如果沒有任何一個case后面的“常量表達式”的值,與“表達式”的值匹配,則執(zhí)行default后面的語句(組)。然后,再執(zhí)行switch語句的下一條。(注:方括號表示可選項)第二十四頁,共二十八頁,編輯于2023年,星期五24switch結構第二十五頁,共二十八頁,編輯于2023年,星期五25說明switch后面的“表達式”,可以是整型、字符型和枚舉型中的一種。每個case后面“常量表達式”的值,必須各不相同,否則會出現相互矛盾的現象(即對表達式的同一值,有兩種或兩種以上的執(zhí)行方案)。case后面的常量表達式僅起語句標號作用,并不進行條件判斷。系統(tǒng)一旦找到入口標號,就從此標號開始執(zhí)行,不再進行標號判斷,所以必須加上break語句,以便結束switch語句。各case及default子句的先后次序,不影響程序執(zhí)行結果。多個case子句,可共用同一語句(組)。用switch語句實現的多分支結構程序,完全可以用if語句或if語句的嵌套來實現。第二十六頁,共二十八頁,編輯于2023年,星期五26【例3.9】main()

{intscore,grade;

printf(“Inputascore(0~100):”);

scanf(“%d”,&score);

grade=score/10;

switch(grade){case10:case9:printf(“grade=A\n”);break;case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;case6:printf("grade=D\n");break;case5:case4:case3:case2:case1:case0:printf(“grade=E\n”);break;default:printf(“Thescoreisoutofrange!\n”); }}

溫馨提示

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

評論

0/150

提交評論