版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章分支結(jié)構(gòu)程序設(shè)計(jì)4.1分支結(jié)構(gòu)的設(shè)計(jì)思想4.2實(shí)現(xiàn)分支結(jié)構(gòu)判斷條件的構(gòu)成4.3實(shí)現(xiàn)分支結(jié)構(gòu)的語(yǔ)句4.4分支結(jié)構(gòu)程序舉例4.1分支結(jié)構(gòu)的設(shè)計(jì)思想
【例4-1】從鍵盤(pán)上輸入兩個(gè)整數(shù),然后輸出較大的那個(gè)數(shù)。main(){inta,b;scanf("%d,%d",&a,&b);printf("\nThebiggernumberis:");if(a>=b)
/*判斷哪個(gè)數(shù)較大*/
printf("%d",a);else
printf("%d",b);}4.1分支結(jié)構(gòu)的設(shè)計(jì)思想【例4-1】程序運(yùn)行結(jié)果如下圖所示。4.2實(shí)現(xiàn)分支結(jié)構(gòu)判斷條件的構(gòu)成4.2.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式4.2.2邏輯運(yùn)算符與邏輯表達(dá)式4.2.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式在C語(yǔ)言中有以下關(guān)系運(yùn)算符:
<小于 <=小于或等于 >大于 >=大于或等于 ==等于 !=不等于
關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在4.2.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式在關(guān)系表達(dá)式的一般形式為:
表達(dá)式
關(guān)系運(yùn)算符
表達(dá)式由于表達(dá)式也可以又是關(guān)系表達(dá)式,因此也允許出現(xiàn)嵌套的情況。例如:
a>(b>c) a!=(c==d)關(guān)系表達(dá)式的值是“真”和“假”,C語(yǔ)言中是用“1”代表關(guān)系成立,即“真”,用“0”代表關(guān)系不成立,即“假”。4.2.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式【例4-2】關(guān)系表達(dá)式。main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\n",’a’+5<c,-i-2*j>=k+1);printf("%d,%d\n",1<j<5,x-5.25<=x+y);printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);}【例4-2】程序運(yùn)行結(jié)果如圖4-2所示。4.2.2邏輯運(yùn)算符與邏輯表達(dá)式C語(yǔ)言中提供了三種邏輯運(yùn)算符:
&& 與運(yùn)算 || 或運(yùn)算 ! 非運(yùn)算與運(yùn)算符“&&”和或運(yùn)算符“||”均為雙目運(yùn)算符,具有左結(jié)合性。非運(yùn)算符“!”為單目運(yùn)算符,具有右結(jié)合性?!?&”和“||”的優(yōu)先級(jí)低于算術(shù)運(yùn)算符和關(guān)系運(yùn)算符,而“!”的優(yōu)先級(jí)則高于算術(shù)運(yùn)算符和關(guān)系運(yùn)算符。4.2.2邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算的值也為“真”和“假”兩種,用“1”和“0”來(lái)表示。其求值規(guī)則如下:(1)與運(yùn)算“&&”。參與運(yùn)算的兩個(gè)量都為“真”時(shí),結(jié)果才為“真”,否則為“假”。(2)或運(yùn)算“||”。參與運(yùn)算的兩個(gè)量只要有一個(gè)為“真”,結(jié)果就為“真”。兩個(gè)量都為假時(shí),結(jié)果為“假”。(3)非運(yùn)算“!”。參與運(yùn)算量為“真”時(shí),結(jié)果為“假”;參與運(yùn)算量為“假”時(shí),結(jié)果為“真”。4.2.2邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算的真值表如下表所示。ab!aa&&ba||b真真假真真真假假假真假真真假真假假真假假邏輯表達(dá)式的一般形式為:
表達(dá)式
邏輯運(yùn)算符
表達(dá)式其中的表達(dá)式可以又是邏輯表達(dá)式,從而組成嵌套的情形。4.2.2邏輯運(yùn)算符與邏輯表達(dá)式【例4-3】邏輯表達(dá)式。main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\n",!x*!y,!!!x);printf("%d,%d\n",x||i&&j-3,i<j&&x<y);printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);}4.2.2邏輯運(yùn)算符與邏輯表達(dá)式【例4-3】程序運(yùn)行結(jié)果如下圖所示。4.2.2邏輯運(yùn)算符與邏輯表達(dá)式【例4-4】判斷輸入的年份是否閏年。main(){intyear;printf("inputayear:");scanf("%d",&year);if((year%4==0&&year%100!=0)||year%400==0) ;/*能被4整除但不能被100整除,或能被400整除*/
printf("\nThisisaleapyear.");elseprintf("\nThisisnotaleapyear.");
}4.2.2邏輯運(yùn)算符與邏輯表達(dá)式【例4-4】程序運(yùn)行結(jié)果如下圖所示。4.3實(shí)現(xiàn)分支結(jié)構(gòu)的語(yǔ)句4.3.1if語(yǔ)句4.3.2switch語(yǔ)句4.3.1if語(yǔ)句1.if語(yǔ)句的三種形式用if語(yǔ)句可以構(gòu)成分支結(jié)構(gòu)。1)第一種形式為:if
if(表達(dá)式)語(yǔ)句;2)第二種形式為:if-elseif(表達(dá)式)
語(yǔ)句1;
else
語(yǔ)句2;4.3.1if語(yǔ)句3)第三種形式為:if-else-ifif(表達(dá)式1)
語(yǔ)句1;elseif(表達(dá)式2)
語(yǔ)句2;elseif(表達(dá)式3)
語(yǔ)句3;…elseif(表達(dá)式m)
語(yǔ)句m;else
語(yǔ)句n;4.3.1if語(yǔ)句在使用if語(yǔ)句中還應(yīng)注意以下問(wèn)題:(1)在三種形式的if語(yǔ)句中,在if關(guān)鍵字之后均為表達(dá)式。(2)在if語(yǔ)句中,條件判斷表達(dá)式必須用括號(hào)括起來(lái),在語(yǔ)句之后必須加分號(hào)。(3)在if語(yǔ)句的三種形式中,所有的語(yǔ)句應(yīng)為單個(gè)語(yǔ)句,如果要想在滿足條件時(shí)執(zhí)行一組(多個(gè))語(yǔ)句,則必須把這一組語(yǔ)句用{}括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。4.3.1if語(yǔ)句2.嵌套if語(yǔ)句
當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句又是if語(yǔ)句時(shí),則構(gòu)成了if語(yǔ)句嵌套的情形。其一般形式可表示如下:if(表達(dá)式)
if語(yǔ)句;
或者為:if(表達(dá)式)
if語(yǔ)句;
else
if語(yǔ)句;4.3.1if語(yǔ)句3.條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符為“?:”,它是一個(gè)三目運(yùn)算符。由條件運(yùn)算符組成條件表達(dá)式的一般形式為:
表達(dá)式1?表達(dá)式2:
表達(dá)式3其求值規(guī)則為:如果表達(dá)式1的值為“真”,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。條件表達(dá)式通常用于賦值語(yǔ)句之中。4.3.1if語(yǔ)句使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn):(1)條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。(2)條件運(yùn)算符“?:”是一對(duì)運(yùn)算符,不能分開(kāi)單獨(dú)使用。(3)條件運(yùn)算符的結(jié)合方向是自右至(4)條件表達(dá)式的本質(zhì)也是一個(gè)值,因此它也可以出現(xiàn)在值可以出現(xiàn)的任何地方。4.3.1if語(yǔ)句【例4-11】用條件表達(dá)式比較兩個(gè)數(shù)的大小。main(){inta,b,max;printf("\ninputtwonumbers:");scanf("%d%d",&a,&b);printf("max=%d",a>b?a:b);/*顯示a和b中較大者*/}【例4-11】程序運(yùn)行結(jié)果如下圖所示。4.3.2switch語(yǔ)句用于多分支選擇的switch語(yǔ)句,其一般形式為: switch(表達(dá)式) {
case常量表達(dá)式1:語(yǔ)句1;
case常量表達(dá)式2:語(yǔ)句2; …
case常量表達(dá)式n:語(yǔ)句n; default:語(yǔ)句n+1; }
其執(zhí)行過(guò)程是:當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語(yǔ)句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語(yǔ)句。如表達(dá)式的值與所有case后的常量表達(dá)式均不相同時(shí),則執(zhí)行default后的語(yǔ)句。4.3.2switch語(yǔ)句【例4-12】輸入一個(gè)數(shù)字,輸出一個(gè)有關(guān)星期幾的英文單詞。main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");case2:printf("Tuesday\n");case3:printf("Wednesday\n");case4:printf("Thursday\n");case5:printf("Friday\n");4.3.2switch語(yǔ)句case6:printf("Saturday\n");case7:printf("Sunday\n");default:printf(“error\n”); /*如果輸入不是1 到7的數(shù)字,顯示error*/}}【例4-12】程序運(yùn)行結(jié)果如下圖所示。4.3.2switch語(yǔ)句【例4-13】輸入一個(gè)數(shù)字,輸出一個(gè)英文單詞。main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;4.3.2switch語(yǔ)句
case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("error\n");}}【例4-13】程序運(yùn)行結(jié)果如下圖所示。4.3.2switch語(yǔ)句在使用switch語(yǔ)句時(shí)還應(yīng)注意以下幾點(diǎn):(1)在case后的各常量表達(dá)式的值不能相同,否則會(huì)出現(xiàn)錯(cuò)誤。(2)在case后,允許有多個(gè)語(yǔ)句,可以不用{}括起來(lái)。(3)各case和default子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果。(4)default子句可以省略不用。4.4分支結(jié)構(gòu)程序舉例【例4-14】計(jì)算器程序。用戶輸入運(yùn)算數(shù)和四則運(yùn)算符,輸出計(jì)算結(jié)果。編程思路:輸入運(yùn)算表達(dá)式,用switch語(yǔ)句判斷運(yùn)算符,然后輸出運(yùn)算值。當(dāng)輸入運(yùn)算符不是+、-、*、/時(shí)給出錯(cuò)誤提示。當(dāng)進(jìn)行除法運(yùn)算而除數(shù)是0時(shí)也給出錯(cuò)誤提示。源程序:main(){floata,b;charc;printf("inputexpression:a+(-,*,/)b\n");scanf("%f%c%f",&a,&c,&b);
/*輸入表達(dá)式*/4.4分支結(jié)構(gòu)程序舉例
switch(c){case'+':printf("%f\n",a+b);break;/*加法運(yùn)算*/
case'-':printf("%f\n",a-b);break;/*減法運(yùn)算*/
case'*':printf("%f\n",a*b);break;/*乘法運(yùn)算*/
case'/':if(b==0.0)printf("divisionbyzero\n"); /*不允許除數(shù)為零*/
elseprintf("%f\n",a/b);/*除法運(yùn)算*/
break;default:printf("inputerror\n"); /*輸入非運(yùn)算符提示出錯(cuò)*/}}4.4分支結(jié)構(gòu)程序舉例【例4-14】程序運(yùn)行結(jié)果如下圖所示。4.4分支結(jié)構(gòu)程序舉例【例4-15】輸入某年某月某日,判斷這一天是這一年的第幾天?編程思路:以3月5日為例,應(yīng)該先把前兩個(gè)月的天數(shù)加起來(lái),然后再加上5天即得出該日是本年的第幾天。有一種特殊情況,如果是閏年且輸入月份大于3時(shí)需考慮多加一天(2月份有29天)。4.4分支結(jié)構(gòu)程序舉例源程序:main(){intday,month,year,sum,leap;printf("\npleaseinputyear,month,day\n");scanf("%d,%d,%d",&year,&month,&day);/*輸入年月日*/switch(month)/*先計(jì)算某月以前月份的總天數(shù)*/{case1:sum=0;break;case2:sum=31;break;case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=151;break;4.4分支結(jié)構(gòu)程序舉例case7:sum=181;break;case8:sum=212;break;case9:sum=243;break;case10:sum=273;break;case11:sum=304;break;case12:sum=334;break;default:printf("dataerror");break;}sum=sum+day;
/*再加上某天的天數(shù)*/
if(year%400==0||(year%4==0&&year%100!=0))
/*判斷是不是閏年*/
leap=1;elsel
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中音樂(lè)八年級(jí)上冊(cè)《月光詩(shī)畫(huà)-中西經(jīng)典音樂(lè)作品審美鑒賞與表現(xiàn)》單元教學(xué)設(shè)計(jì)
- 統(tǒng)編版小學(xué)語(yǔ)文五年級(jí)下冊(cè)《我的朋友容容》習(xí)作教學(xué)設(shè)計(jì)
- Module 6 物品歸屬表達(dá) 單元整體教學(xué)設(shè)計(jì) 外研版(三年級(jí)起點(diǎn))六年級(jí)上冊(cè)
- 探尋巧克力的“天堂”:從歷史、文化到英語(yǔ)表達(dá) - 新概念英語(yǔ)青少版(2A)Unit 14 深度教學(xué)設(shè)計(jì)
- 110千伏變電站繼電保護(hù)系統(tǒng)設(shè)計(jì)方案
- 基礎(chǔ)化工生產(chǎn)線安全巡檢操作規(guī)程
- 中小學(xué)教師績(jī)效考核方案優(yōu)化
- 智能家居系統(tǒng)用戶使用手冊(cè)范文
- 七年級(jí)英語(yǔ)期末試題及評(píng)分參考
- 混凝土拌和站施工方案簡(jiǎn)述
- 2025福建省安全員C證考試(專職安全員)題庫(kù)附答案
- 中國(guó)話語(yǔ)體系中的國(guó)際傳播話語(yǔ)創(chuàng)新策略分析課題申報(bào)書(shū)
- 高標(biāo)準(zhǔn)基本農(nóng)田建設(shè)項(xiàng)目監(jiān)理工作總結(jié)報(bào)告
- 2026中國(guó)電氣裝備集團(tuán)有限公司高層次人才招聘筆試備考試題及答案解析
- 消防知識(shí)培訓(xùn)宣傳課件
- 2025-2026學(xué)年通-用版英語(yǔ) 高一上學(xué)期期末試題(含聽(tīng)力音頻答案)
- 2025年國(guó)家基本公共衛(wèi)生服務(wù)考試試題(附答案)
- 25秋蘇教三年級(jí)上冊(cè)數(shù)學(xué)期末押題卷5套(含答案)
- 局部晚期腫瘤免疫放療新策略
- 食品加工廠乳制品設(shè)備安裝方案
- 高考英語(yǔ)3500詞分類整合記憶手冊(cè)(含完整中文釋義)
評(píng)論
0/150
提交評(píng)論