




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第4講選擇結(jié)構(gòu)程序設要設計選擇結(jié)構(gòu)程序,要考慮兩個方面的問題:一是在語言中如何來表示條件,二是在C語言中實現(xiàn)選擇結(jié)構(gòu)用什么語句。在C語言中表示條件,一般用關系表達式或邏輯表達式,實現(xiàn)選擇結(jié)構(gòu)用f語句或h語句。if語switch語選擇if語if句是用來判斷所給定的條件是否滿足,根據(jù)判定的結(jié)果(真一、if語句的形式1—單邊選擇結(jié)格式if表達式)語執(zhí)行表達式取值非0,即條件成立,執(zhí)行語句判斷
繼續(xù)向下執(zhí) P語(出口一、if語句的形式1—單邊選擇結(jié)main({intx,y=0;
例如,求:
if(x>=0 /*printf("x=%d,y=%d\n",x,y);程序運行后,當從鍵盤上輸入3<回車>時,程的結(jié)果是多
程序運行后,當從鍵盤上輸入-5<回車>時的結(jié)果是多
x=-二、if語句的形式2—雙邊選擇結(jié)格式if表達式)語句else語句執(zhí)行過程表達式取值非0,即條件成立,執(zhí)行語句1后繼續(xù)向下判斷
表達式取值為0,即條件不成立,跳過語句1執(zhí)行語句2后下執(zhí) P語句語句語句(出口二、if語句的形式2—雙邊選擇結(jié)main({int
例如,求:
這是if(x>=0)y=2*x+1; /*語句1*/ /*語句2 printf("x=%d,y=%d\n",x,y);}
雙邊程序運行后,當從鍵盤上輸入3<回車>時,程的結(jié)果是多
程序運行后,當從鍵盤上輸入-5<回車>時的結(jié)果是多
x=-三、多層選格式:if表達式1)語句elseif表達式2)語句elseif表達式3)語句 if表達式n)語句 語句執(zhí)行依次計算各表達式的值,若表達式之值為非0,即條件成立執(zhí)行其后的語句后,跳過其它語句,向下執(zhí)行;若表達式之值為0,即條件不成立,則繼續(xù)判斷其它條件;當所有的條件都不成立時,執(zhí)行語句n+1后繼續(xù)向下執(zhí)行。三、多層選N表達式 表達式 語句
表達式 語句
表達式 語句 語句 語句單邊選擇結(jié)構(gòu)舉例——按升序輸出兩個實main(floatfloat /*復合語句t=a;a=b;if(}
程序運行后,程序運行后,如果盤上輸 ,則程運行的順序單邊變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量main({floata,b,t;if(a>b)
變量
變量 35555535變量53變量53變量變量335t=a;35555535變量53變量53變量變量335執(zhí)執(zhí)執(zhí)執(zhí)printf("End\n");
執(zhí)行b=t; 注意:變量注意:變量a,b交換內(nèi)容不能簡單地用a=b;b=a;正確的方法是借助一個中間變量(如t)來正確的方法是借助一個中間變量(如t)來最后執(zhí)行b=t;將t中保存的變量a的原來值賦給變量復合語句及其花括有花括號時程序有花括號時程序的運行順(假設從鍵盤上輸入6,floatfloatif(a>b)t=a;a=bb=t;/*用花括號括起來構(gòu)成1個復合語句} 復合語句及其花括main({float
去掉花括號時程序的運行順(假設從鍵盤上輸入2.8,if(a>b)
/*去掉花括號就成為3個語句} 隨機復合語句及其花括將前2個分將前2個分號改為逗號時程序的運行情(假設從鍵盤上輸入6,floatfloatif(a>b)t=a,a=bb=t;/*將分號改為逗號則成為一個語句printf("End\n");printf("End\n");復合語句及其花括將前2個分將前2個分號改為逗號時程序的運行情(假設從鍵盤上輸入2.8,floatif({t=a,a=b, /*將分號改為逗號則成為一個語句} 結(jié)論:將條結(jié)論:將條件成立時要進行的所有操作變成一個語if語句的嵌在if在if句中又包含一個或多個if句,稱為if句的嵌一般形式 if(條件1if(條件2 語句 語句if條件3)語句 語句ififelse配對關系:從最內(nèi)層開始,else是與它上面最近的且尚未配對的if配對。求分段函數(shù)根據(jù)所輸入的x之值,求 - 程序分析:要對x的值判斷之后計算y的值,要用到選擇結(jié)構(gòu)??紤]到要進行兩次判斷,因而使用單邊或雙邊選擇結(jié)構(gòu)都不能很好地解決這一問題,應使用多層選擇結(jié)構(gòu)或選擇結(jié)構(gòu)的嵌套。用if嵌套結(jié)構(gòu)求分段函main({int
從鍵盤上輸入2時程序的運行順個嵌結(jié)ifif(x>0)
/*x>=0成立且x>0不成立,即x==0elsey=-
/*x>=0不成立,即x<0printf("x=%d,y=%d\n",x,y);從鍵盤上輸入2時程序的運行順從鍵盤上輸入2時程序的運行順main(intintelseif(x==0)
/*x>0不成立再判斷x==0是否成立
/*x>0和x==0都不成立,即x<0}這是一個
條件運算條件運算符(三目 ?(表達式1)?(表達式2):表達式條件運算符的結(jié)合性右向條件運算符的執(zhí)行:先計算表達式1之值,若條件表達式的值非0(即條件成立),計算表達式2之值并將該值作為條件表達式之值;若表達式1的值為0(即條件不成立),計算表達式3之值并將表達式3之值作為整個條件表達式的值。條條件運算符的優(yōu)先等級于賦值和逗號運算條件運算符使用舉有如下程序main({inta=3,b=4,c;printf("max=%d\n",c);}語語句:c=a>b?a:b;執(zhí)行以后,變量c中存放的變量a,b中的最大輸入一個字母并將其轉(zhuǎn)換為小寫(小寫不變main{charch;ch=(ch>='A'&&ch<='Z')?ch+32:ch;printf("%c\n",ch) 要要求掌握的兩點內(nèi)容掌握條件運算符的使用掌握判斷大寫字母或小寫字母的方法1、在嵌套使用if語句時,C語言規(guī)定else總和之前與其具有相同縮進位置的if配和之前與其最近的if配和之前與其最近的且不帶else的if配和之前的第一個if配
2006-2、設變量x和y均已正確定義并賦值。以下if語句中,編譯產(chǎn) B)if(x>y&&if(x>0)x-elseelse
2007-3、有以下計算公 若程序前面已在命令中包含math.h文件,不能夠正確計算上述公式的程段 4、以下程序的功能是:輸出a、b、c三個變量中的最小值.請?zhí)羁調(diào) ;
2007-2007-} if(a>b)a=b;c=a;其輸出的A)程序段有語法 a=b,
2008-2008- 程序的輸 7、有以下#include<stdio.h>{intx=1,y=2,z=3;if(y<z)printf("%d",++z); printf("%d",++y);printf("%d\n",x++);
2008-}程序的運行 其中"表達式
2009-A)必須是邏輯表達 B)必須是關系表達C)必須是邏輯表達式或關系表達 D)可以是任意合法的表達 main() scanf("%d",&x); printf("%d\n",
2009-}程序運行時,輸入的值在哪個范圍才會 main() a=1,b=2,c=3,d=0; printf("%d,%d,%d\n",a,b, printf("%d,%d,%d\n",a,b, printf("%d,%d,%d\n",a,b,
2009-}程序運行后輸出結(jié) 11、設有定義 a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它2009-12、以下程序段中,與語句 k=a>b?(b>c?1:0):0;功能相同的
2009-2010年3if(a<b)elsek=c;if(b<c)k=b;elsek=c;以下選項中與上述if語句等價的D)k=(a<b)?a:b;k=(a<c)?a:c;2010年3#include<stdio.h>main(){intif(a=if(c==3)d=1; elseif(c!=3)d=3; elsed=5;}程序運行后的輸出結(jié)果是 】2010年91、若變量已正確定義,在ifW)printf("%d\n",k);中,以下不可替代W的是2、有以下main({inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;
if(!a)elseelseb+=3;答案2011年3、if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是D)可以2011年3main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",}程序運行后的輸出 D)2011年3{intx;if(x>15)printf("%d",x-if(x>10)if(x>5)}若程序運行時從鍵盤輸入12<回車>,則輸出結(jié)果為
2011年34、以下程序運行后的輸出結(jié)果是main(){intx=10,y=20,t=0;
}2011年9{inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3;}
C)2011年92、下列條件語句中,輸出結(jié)果與其他語句不同的是 )if(a)printf("%d\n",x);elseif(a==0)printf("%d\n",y);elseif(a!=0)printf("%d\n",x);elseif(a==0)printf("%d\n",x);else填空請補充函數(shù),該函數(shù)的功能是:從鍵盤輸入一個長整數(shù),如果這個數(shù)是負數(shù),則取它的絕對值,并顯示出來。例如,輸入:-3847652,結(jié)果為:3847652。注意:部分源程序給出如下改動主函數(shù)n和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入所編寫的若干表達式或語句。voidmain(){longint printf("Enterthedata:\n"); printf("***theabsolutevalue***\n");【2 printf(【3】 填空voidmain() inta,b,c,max;【1】【2】}switch語句(開關語句、多分支選擇語句switch語句的格式switch(表達式
根據(jù)表達式{case常量1語句1case常量2語句2case常量3語句3case常量n語句default:語句n+1執(zhí)行過程先計算表達式之值,如果與某個case語句中的常量的(即相同),則執(zhí)行其后的語句;若所有的case語句中的常量的值都不能與之匹配,則執(zhí)行t后的語句1。注注意:語句后,則自動轉(zhuǎn)到下一個case語句后跳出語句后跳出switch選擇結(jié)switch語句流程圖(有break;語句表達=常量 =常量 =常量 …
=常量
=其語句
語句
語句
語句
語句switch語句流程圖(無break;語句表達語句語句=常量 =常量 =常量語句語句…語句語句語句語句
=常量
=其switch語句的使用舉例1:求分段求分段函數(shù)的值 其用switch語句求分段函數(shù)程序運行后,如果從鍵盤上輸入3<回車程序運行后,如果從鍵盤上輸入3<回車>運行的順序和結(jié)果如下:int這是這是switch語{case{casey=1+x;case2:y=2*x;break;case3:y=x*x;break;default:y=x;}switch語句使用各個語句后如果沒有break;語句,則執(zhí)行了相應的操作后,會自動轉(zhuǎn)到下一個case后面的語句執(zhí)行??梢允苟鄠€casecase后面的表達式不能相同各個case和default語句的順序可以改變switch語句應用例[案例4.1]從鍵盤上輸入一個百分制成績score,按下列原則輸出其等級:#include<stdio.h>{intscore,printf(“Inputascore(0~100):”);scanf(“%d”,&score);grade=score/10; switch(grade){case 9:printf(“grade=A\n”);case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;case6:printf("grade=D\n");break;case5: 0:printf(“grade=E\n”);default:printf(“Thescoreisoutof} [程序演示程序運行情況如下Inputascore(0~100):85↙小學生做算術數(shù)字拆判斷字母、數(shù)小學生解100以內(nèi)加法#include<stdio.h>#include<stdlib.h>main(){inta=rand(b=rand(
/*產(chǎn)生一個0~99之間的隨機數(shù)/*再產(chǎn)生一個0~99之間的隨機數(shù)printf("%d+%d=
/*為學生顯示
/*學生輸if(c==a+b)printf("Youareelseprintf("Youare}將一個三位數(shù)進行#include<stdio.h>main(){intprintf("Pleaseenteraninteger(<100):
/*將個位/*將十位/*將百位printf("%d%d}從鍵盤上輸入一個字符判斷是數(shù)字、字#include<stdio.h>main(){charc;c=getchar()if(c>='A'&&c<='Z'||c>='a'&&c<='z')elseif(c>='0'&&c<='9')}#include#include{inta=2,b=7,c=5;{case{casecase2:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度防火門研發(fā)生產(chǎn)項目合同范本
- 2025年度防盜門企業(yè)社會責任與可持續(xù)發(fā)展合作協(xié)議
- 2025年度車輛改裝設計與定制合同
- 2025高空作業(yè)車租賃及高空作業(yè)人員資質(zhì)認證合同
- 2025年度汽車租賃合同掛靠車輛租賃價格調(diào)整協(xié)議4篇
- 2025年度一次性網(wǎng)絡安全服務合同1(數(shù)據(jù)安全防護)
- 2025年獨立運行風力發(fā)電機組控制器及逆變器項目發(fā)展計劃
- 優(yōu)化前臺服務流程的工作計劃
- 開展公益活動的經(jīng)驗與總結(jié)計劃
- 保安工作計劃收藏業(yè)古董收藏部門
- 小紅書文旅營銷CityWalk城市漫游(通案)
- 寒假生活回顧分享小學主題班會 課件
- 湖南省長沙市2024-2025學年高一數(shù)學上學期期末考試試卷
- 2024-2025學年上外版高二上學期期中英語試卷與參考答案
- 《學習地圖》課件
- 抓住人工智能科學機遇 A new golden age of discovery Seizing the AI for Science opportunity 2024
- 松材線蟲調(diào)查培訓
- 方志敏《可愛的中國》全文閱讀
- 2024年廣西區(qū)公務員錄用考試《行測》真題及答案解析
- 《地區(qū)智能電網(wǎng)調(diào)度技術支持系統(tǒng)應用功能規(guī)范》
- 框架借款協(xié)議書(2篇)
評論
0/150
提交評論