版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第五章選擇結(jié)構(gòu)本章要點(diǎn)什么是分支結(jié)構(gòu)?它的作用是什么?
if語句和switch語句實(shí)現(xiàn)分支結(jié)構(gòu)有何異同?switch語句中的break起什么作用?邏輯運(yùn)算和關(guān)系運(yùn)算的相同之處是什么?它們之間又有什么不同?任務(wù)程序1.兩分段的數(shù)學(xué)函數(shù)計(jì)算2.分段計(jì)算水費(fèi)3.機(jī)票實(shí)際價(jià)格的計(jì)算4.查詢自動售貨機(jī)中商品的價(jià)格5.1兩分段的數(shù)學(xué)函數(shù)計(jì)算例5-1兩分段的數(shù)學(xué)函數(shù)計(jì)算。
程序解析關(guān)系運(yùn)算if-else語句邏輯運(yùn)算1程序解析#include<stdio.h>#include<math.h>voidmain(){floatx,y;
printf(“Enterx:”);
scanf(“%f”,&x);
if(x==0.0) y=1;else y=sin(x)/x;
printf(“x=%5.2f,y=%5.2f”,x,y);}關(guān)系表達(dá)式選擇結(jié)構(gòu)2關(guān)系運(yùn)算x<=15比較x和15的大小比較的結(jié)果:真假當(dāng)x取值9.5時,x<=15的結(jié)果是:?當(dāng)x取值21.3時,x<=15的結(jié)果是:?關(guān)系運(yùn)算—比較運(yùn)算,比較兩個操作數(shù)關(guān)系運(yùn)算符x<yx<=yx==yx>yx>=yx!=y關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將2個表達(dá)式連接起來的式子。如:x<=1區(qū)分=和==運(yùn)用關(guān)系表達(dá)式表示比較的數(shù)學(xué)式C關(guān)系表達(dá)式x≤10x≥10x≠10x=10x<=10x>=10x!=10x==10用關(guān)系表達(dá)式描述條件判斷x是否為負(fù)數(shù)x<0判斷x是否不為零x!=03if-else語句if(表達(dá)式)
語句1else
語句2語句1表達(dá)式語句2真假
if(x==0.0) y=1;else y=sin(x)/x;軟件測試的基本思想軟件測試精心設(shè)計(jì)一批測試用例[輸入數(shù)據(jù),預(yù)期輸出結(jié)果]
,然后分別用這些測試用例運(yùn)行程序,看程序的實(shí)際運(yùn)行結(jié)果與預(yù)期輸出結(jié)果是否一致。inputx:2.5f(2.50)=0.4inputx:0f(0.00)=0.0if(x!=0)y=1/x;elsey=0;計(jì)算二分段函數(shù)if(表達(dá)式)
語句1else
語句2if(x<=10&&x>=1)y=4*x/3;else
y=0;4邏輯運(yùn)算(ch>='a'&&
ch<='z')||(ch>='A'&&
ch<='Z')ch>='0'&&
ch<='9'x<=1關(guān)系運(yùn)算-1<=x<=10-11 x
x>=-1并且
x<=1x>=-1&&x<=13種邏輯運(yùn)算符邏輯與
&&
邏輯或
||邏輯非
!XX&&
YYXYX||
YX!
X邏輯與
&&
邏輯或||邏輯非!(x>1)&&(y>1)(x>1)||(y>1)(x>1) !(x>1)即x<=1邏輯運(yùn)算符的含義邏輯運(yùn)算符的功能邏輯與
&&
邏輯或||邏輯非!
aba&&b
a||b!a假
假假假真假真假真真真假假真假真真真真假邏輯表達(dá)式邏輯表達(dá)式:用邏輯運(yùn)算符將邏輯運(yùn)算對象連接起來的式子。(ch>='a')&&(ch<='z')
判斷ch
是否為小寫英文字母或:ch>='a'&&ch<='z'(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')
判斷ch
是否為英文字母條件的表示寫出滿足下列條件的C表達(dá)式。ch
是空格或者回車。ch==''||ch=='\n'number是偶數(shù)。number%2==0year是閏年,即year能被4整除但不能被100整除,或year能被400整除。
(year%4==0&&year%100!=0)||(year%400==0)在表示邏輯運(yùn)算值時,以“1”代表“真”,“0”代表“假”。在判斷一個量是為“真”還是為“假”時,以“0”代表“假”,以非“0”的數(shù)值作為“真”。5.2分段計(jì)算水費(fèi)源程序-分段計(jì)算水費(fèi)#include<stdio.h>int
main(void){doublex,y;
printf("Enterx:");
scanf("%lf",&x);
if(x<0){y=0;}elseif(x<=15){y=4*x/3;}else{y=2.5*x-10.5;}printf("f(%.2f)=%.2f\n",x,y);return0;}Enterx:-0.5f(-0.50)=0.00Enterx:9.5f(9.50)=12.67Enterx:21.3f(21.30)=42.75Enterx:?
if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3……elseif(表達(dá)式m)語句melse語句n流程圖if語句的三種結(jié)構(gòu)條件執(zhí)行二分支多分支表達(dá)式語句真(非0)假(0)
條件
語句1
語句2YN條件執(zhí)行輸入大寫字母輸出相應(yīng)小寫字母#include<stdio.h>voidmain()
{charch;
scanf(“%c”,&ch);if(ch>=‘A’&&ch<=‘Z’)
ch=ch+32;
printf(“ch=%c\n”,ch);}
變量定義變量賦值變成小寫輸出結(jié)果是大寫字母嗎?YN變量使用二分支結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){floatx,y;
printf(“Enterx:”);
scanf(“%f”,&x);
if(x==0.0) y=1;else y=sin(x)/x;
printf(“x=%5.2f,y=%5.2f”,x,y);}關(guān)系表達(dá)式選擇結(jié)構(gòu)課堂練習(xí)題目:評價(jià)學(xué)生的成績,輸入一個百分制分?jǐn)?shù)score,輸出對應(yīng)的成績等級score≥90 優(yōu)秀score≥80 良好score≥70 中score≥60 及格score<60 不及格#include<stdio.h>voidmain(){ intscore;
printf("inputascore:");
scanf("%d",&score); if(score>=90) printf("優(yōu)秀\n"); elseif(score>=80) printf("良好\n"); elseif(score>=70) printf("中\(zhòng)n"); elseif(score>=60) printf("及格\n"); elseprintf("不及格\n");}課堂練習(xí)(程序)5.3機(jī)票實(shí)際價(jià)格的計(jì)算例5-3機(jī)票預(yù)定:輸出實(shí)際機(jī)票價(jià)格原價(jià)為4000元5-10月為旺季,頭等艙打9折,經(jīng)濟(jì)艙打7.5折其他時間為淡季,頭等艙打6折,經(jīng)濟(jì)艙打3折程序解析if語句的嵌套1程序解析#include<stdio.h>voidmain(){
intprice=4000;//機(jī)票的原價(jià)
intmonth;//出行的月份
inttype;//頭等艙為1,經(jīng)濟(jì)艙為2
printf("請輸入您出行的月份:1-12");scanf(“%d”,&month);
printf("請問您選擇頭等艙還是經(jīng)濟(jì)艙?頭等艙輸入1,經(jīng)濟(jì)艙輸入2");scanf(“%d”,&type);
if(month>=5&&month<=10)//旺季
{
if(type==1)//頭等艙
printf("您的機(jī)票價(jià)格為:%d",price*0.9);elseif(type==2)//經(jīng)濟(jì)艙
printf("您的機(jī)票價(jià)格為:%d",price*0.75);
}
else//淡季
{
if(type==1)//頭等艙
printf("您的機(jī)票價(jià)格為:%d",price*0.6);elseif(type==2)//經(jīng)濟(jì)艙
printf("您的機(jī)票價(jià)格為:%d",price*0.3);
}}2嵌套的if語句多分支結(jié)構(gòu)有多種形式實(shí)現(xiàn)方法:嵌套的
if語句
else–if語句嵌套的if-else語句switch語句嵌套的if語句if(表達(dá)式)
語句1else
語句2
if語句
if語句
else–if語句嵌套的if-else語句if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2……elseif(表達(dá)式n-1)語句n-1else語句n假表達(dá)式1表達(dá)式2語句1語句2語句n-1語句n真
表達(dá)式n-1假真
假假真
else–if語句n個分支需要n-1次比較嵌套的if–else語句if(表達(dá)式1)if(表達(dá)式2)語句1else語句2elseif(表達(dá)式3)語句3else語句4表達(dá)式1表達(dá)式3語句4真假表達(dá)式2語句3語句1語句2真真假假if(x<1)y=x+1;elseif(x<2)y=x+2;elsey=x+3;if(x<2)if(x<1)y=x+1;elsey=x+2;elsey=x+3;
x<2x<1y=x+1y=x+2真
假真
y=x+3假假x<1x<2y=x+1y=x+2真
假真
y=x+32種嵌套if語句的比較else和if的匹配if(表達(dá)式1)if(表達(dá)式2)語句1else語句2elseif(表達(dá)式3)語句3else語句4if(表達(dá)式1)if(表達(dá)式2)語句1
elseif(表達(dá)式3)語句3else語句4else與最靠近它的、沒有與別的else匹配過的if匹配if(表達(dá)式1)if(表達(dá)式2)語句1elseif(表達(dá)式3)語句3else語句4改變else和if的配對例3-10改寫下列if語句,使else和第1個if配對。if(x<2)if(x<1)y=x+1;elsey=x+2;if(x<2){if(x<1)y=x+1;}elsey=x+2;if(x<2)if(x<1)y=x+1;else;elsey=x+2;每條語句的執(zhí)行條件?
5.4查詢自動售貨機(jī)中商品的價(jià)格例5-4
查詢自動售貨機(jī)中商品的價(jià)格程序解析switch語句1程序解析假設(shè)自動售貨機(jī)出售4種商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可樂(cola),售價(jià)分別是每份3.0、2.5、4.0和3.5元。在屏幕上顯示以下菜單,用戶可以連續(xù)查詢商品的價(jià)格,當(dāng)查詢次數(shù)超過5次時,自動退出查詢;不到5次時,用戶可以選擇退出。當(dāng)用戶輸入編號1~4,顯示相應(yīng)商品的價(jià)格;輸入0,退出查詢;輸入其他編號,顯示價(jià)格為0。[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]Exit#include<stdio.h>Int
main(void){intchoice,i;doubleprice;
for(i=1;i<=5;i++){printf("[1]Selectcrisps\n");printf("[2]Selectpopcorn\n");printf("[3]Selectchocolate\n");printf("[4]Selectcola\n");printf("[0]exit\n");
printf("Enterchoice:");
scanf("%d",&choice);
if(choice==0)break;
switch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}
printf("price=%0.1f\n",price);
}
printf("Thanks\n");}[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]ExitEnterchoice:1price=3.0[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]ExitEnterchoice:7price=0.0
[1]Selectcrisps[2]Selectpopcorn
[3]Selectchocolate[4]Selectcola
[0]ExitEnterchoice:0Thanks2switch語句處理多分支選擇問題,3種情況1)在switch語句的每個語句段中都使用break語句switch(表達(dá)式){case常量表達(dá)式1:語句段1;break;case常量表達(dá)式2:語句段2;break;....…case常量表達(dá)式n:語句段n;break;default:語句段n+1;break;}switch(表達(dá)式){case常量表達(dá)式1:語句段1;break;case常量表達(dá)式2:語句段2;break;....…case常量表達(dá)式n:語句段n;break;default:語句段n+1;break;}表達(dá)式的值=常量表達(dá)式2的值表達(dá)式語句段1語句段2語句段n語句段n+1表達(dá)式的值=常量表達(dá)式1的值表達(dá)式的值=常量表達(dá)式n的值其他breakbreakbreakbreakswitch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}用else-if如何實(shí)現(xiàn)?求解簡單表達(dá)式例5-5輸入一個形式如“操作數(shù)運(yùn)算符操作數(shù)”的四則運(yùn)算表達(dá)式,輸出運(yùn)算結(jié)果。例如:輸入:3.1+4.8
輸出:7.9源程序#include<stdio.h>int
main(void){charoperator;doublevalue1,value2;
printf("Typeinanexpression:");
scanf("%lf%c%lf",&value1,&operator,&value2);
switch(operator){case'+':
printf("=%.2f\n",value1+value2);
break;case'-':
printf("=%.2f\n",value1-value2);break;case'*':
printf("=%.2f\n",value1*value2);break;case'/':
printf("=%.2f\n",value1/value2);break;default:
printf("Unknownoperator\n");break;}return0;}Typeinanexpression:3.1+4.8
=7.9如果除數(shù)為0?2)在switch中不使用breakswitch(表達(dá)式){case常量表達(dá)式1:語句段1;case常量表達(dá)式2:語句段2;....…case常量表達(dá)式n:語句段n;default:語句段n+1;}switch(表達(dá)式){case常量表達(dá)式1:語句段1;case常量表達(dá)式2:語句段2;....…case常量表達(dá)式n:語句段n;default:語句段n+1;}switch(choice){case1:price=3.0;case2:price=2.5;case3:price=4.0;case4:price=3.5;default:price=0.0;}表達(dá)式的值=常量表達(dá)式2的值表達(dá)式語句段1語句段2語句段n語句段n+1表達(dá)式的值=常量表達(dá)式1的值表達(dá)式的值=常量表達(dá)式n的值其他price=?3)在switch的某些語句段中使用break例6輸入10個字符,分別統(tǒng)計(jì)出其中空格或回車、數(shù)字和其他字符的個數(shù)。int
main(void){intblank,digit,i,other;charch;blank=digit=other=0;
printf("Enter10characters:");
for(i=1;i<=10;i++){
ch=getchar();
switch(ch){case'':case'\n':blank++;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版美發(fā)培訓(xùn)學(xué)校師資聘用標(biāo)準(zhǔn)合同4篇
- 2025年度門面租賃合同電子版(含租金遞增與調(diào)整機(jī)制)
- 2025年度簽競業(yè)協(xié)議打工人財(cái)產(chǎn)保全及職業(yè)規(guī)劃合同
- 二零二五年度酒店前臺員工權(quán)益保障與勞動合同
- 二零二五年度超市與物流公司貨物扣點(diǎn)運(yùn)輸合同
- 2025年度復(fù)雜地質(zhì)條件頂管施工安全協(xié)議書
- 2025年度住宅室內(nèi)裝修工程保修協(xié)議
- 2025年度簽競業(yè)協(xié)議打工人財(cái)產(chǎn)保全及心理支持合同
- 2025年度跆拳道青少年運(yùn)動員培養(yǎng)合作協(xié)議
- 二零二五年度退休人員教育輔助教學(xué)勞務(wù)合同
- 2024年國家焊工職業(yè)技能理論考試題庫(含答案)
- 特魯索綜合征
- 《向心力》 教學(xué)課件
- 結(jié)構(gòu)力學(xué)數(shù)值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語文一模試卷
- 北師大版物理九年級全一冊課件
- 2024年第三師圖木舒克市市場監(jiān)督管理局招錄2人《行政職業(yè)能力測驗(yàn)》高頻考點(diǎn)、難點(diǎn)(含詳細(xì)答案)
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗(yàn)收規(guī)范(暫行)
- 盆腔炎教學(xué)查房課件
- 110kv各類型變壓器的計(jì)算單
- 新概念英語課件NCE3-lesson15(共34張)
評論
0/150
提交評論