版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4講選擇結(jié)構(gòu)程序設(shè)要設(shè)計(jì)選擇結(jié)構(gòu)程序,要考慮兩個(gè)方面的問題:一是在語言中如何來表示條件,二是在C語言中實(shí)現(xiàn)選擇結(jié)構(gòu)用什么語句。在C語言中表示條件,一般用關(guān)系表達(dá)式或邏輯表達(dá)式,實(shí)現(xiàn)選擇結(jié)構(gòu)用f語句或h語句。if語switch語選擇if語if句是用來判斷所給定的條件是否滿足,根據(jù)判定的結(jié)果(真一、if語句的形式1—單邊選擇結(jié)格式if表達(dá)式)語執(zhí)行表達(dá)式取值非0,即條件成立,執(zhí)行語句判斷
繼續(xù)向下執(zhí) P語(出口一、if語句的形式1—單邊選擇結(jié)main({intx,y=0;
例如,求:
if(x>=0 /*printf("x=%d,y=%d\n",x,y);程序運(yùn)行后,當(dāng)從鍵盤上輸入3<回車>時(shí),程的結(jié)果是多
程序運(yùn)行后,當(dāng)從鍵盤上輸入-5<回車>時(shí)的結(jié)果是多
x=-二、if語句的形式2—雙邊選擇結(jié)格式if表達(dá)式)語句else語句執(zhí)行過程表達(dá)式取值非0,即條件成立,執(zhí)行語句1后繼續(xù)向下判斷
表達(dá)式取值為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);}
雙邊程序運(yùn)行后,當(dāng)從鍵盤上輸入3<回車>時(shí),程的結(jié)果是多
程序運(yùn)行后,當(dāng)從鍵盤上輸入-5<回車>時(shí)的結(jié)果是多
x=-三、多層選格式:if表達(dá)式1)語句elseif表達(dá)式2)語句elseif表達(dá)式3)語句 if表達(dá)式n)語句 語句執(zhí)行依次計(jì)算各表達(dá)式的值,若表達(dá)式之值為非0,即條件成立執(zhí)行其后的語句后,跳過其它語句,向下執(zhí)行;若表達(dá)式之值為0,即條件不成立,則繼續(xù)判斷其它條件;當(dāng)所有的條件都不成立時(shí),執(zhí)行語句n+1后繼續(xù)向下執(zhí)行。三、多層選N表達(dá)式 表達(dá)式 語句
表達(dá)式 語句
表達(dá)式 語句 語句 語句單邊選擇結(jié)構(gòu)舉例——按升序輸出兩個(gè)實(shí)main(floatfloat /*復(fù)合語句t=a;a=b;if(}
程序運(yùn)行后,程序運(yùn)行后,如果盤上輸 ,則程運(yùn)行的順序單邊變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量變量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;正確的方法是借助一個(gè)中間變量(如t)來正確的方法是借助一個(gè)中間變量(如t)來最后執(zhí)行b=t;將t中保存的變量a的原來值賦給變量復(fù)合語句及其花括有花括號(hào)時(shí)程序有花括號(hào)時(shí)程序的運(yùn)行順(假設(shè)從鍵盤上輸入6,floatfloatif(a>b)t=a;a=bb=t;/*用花括號(hào)括起來構(gòu)成1個(gè)復(fù)合語句} 復(fù)合語句及其花括main({float
去掉花括號(hào)時(shí)程序的運(yùn)行順(假設(shè)從鍵盤上輸入2.8,if(a>b)
/*去掉花括號(hào)就成為3個(gè)語句} 隨機(jī)復(fù)合語句及其花括將前2個(gè)分將前2個(gè)分號(hào)改為逗號(hào)時(shí)程序的運(yùn)行情(假設(shè)從鍵盤上輸入6,floatfloatif(a>b)t=a,a=bb=t;/*將分號(hào)改為逗號(hào)則成為一個(gè)語句printf("End\n");printf("End\n");復(fù)合語句及其花括將前2個(gè)分將前2個(gè)分號(hào)改為逗號(hào)時(shí)程序的運(yùn)行情(假設(shè)從鍵盤上輸入2.8,floatif({t=a,a=b, /*將分號(hào)改為逗號(hào)則成為一個(gè)語句} 結(jié)論:將條結(jié)論:將條件成立時(shí)要進(jìn)行的所有操作變成一個(gè)語if語句的嵌在if在if句中又包含一個(gè)或多個(gè)if句,稱為if句的嵌一般形式 if(條件1if(條件2 語句 語句if條件3)語句 語句ififelse配對關(guān)系:從最內(nèi)層開始,else是與它上面最近的且尚未配對的if配對。求分段函數(shù)根據(jù)所輸入的x之值,求 - 程序分析:要對x的值判斷之后計(jì)算y的值,要用到選擇結(jié)構(gòu)??紤]到要進(jìn)行兩次判斷,因而使用單邊或雙邊選擇結(jié)構(gòu)都不能很好地解決這一問題,應(yīng)使用多層選擇結(jié)構(gòu)或選擇結(jié)構(gòu)的嵌套。用if嵌套結(jié)構(gòu)求分段函main({int
從鍵盤上輸入2時(shí)程序的運(yùn)行順個(gè)嵌結(jié)ifif(x>0)
/*x>=0成立且x>0不成立,即x==0elsey=-
/*x>=0不成立,即x<0printf("x=%d,y=%d\n",x,y);從鍵盤上輸入2時(shí)程序的運(yùn)行順從鍵盤上輸入2時(shí)程序的運(yùn)行順main(intintelseif(x==0)
/*x>0不成立再判斷x==0是否成立
/*x>0和x==0都不成立,即x<0}這是一個(gè)
條件運(yùn)算條件運(yùn)算符(三目 ?(表達(dá)式1)?(表達(dá)式2):表達(dá)式條件運(yùn)算符的結(jié)合性右向條件運(yùn)算符的執(zhí)行:先計(jì)算表達(dá)式1之值,若條件表達(dá)式的值非0(即條件成立),計(jì)算表達(dá)式2之值并將該值作為條件表達(dá)式之值;若表達(dá)式1的值為0(即條件不成立),計(jì)算表達(dá)式3之值并將表達(dá)式3之值作為整個(gè)條件表達(dá)式的值。條條件運(yùn)算符的優(yōu)先等級(jí)于賦值和逗號(hào)運(yùn)算條件運(yùn)算符使用舉有如下程序main({inta=3,b=4,c;printf("max=%d\n",c);}語語句:c=a>b?a:b;執(zhí)行以后,變量c中存放的變量a,b中的最大輸入一個(gè)字母并將其轉(zhuǎn)換為小寫(小寫不變main{charch;ch=(ch>='A'&&ch<='Z')?ch+32:ch;printf("%c\n",ch) 要要求掌握的兩點(diǎn)內(nèi)容掌握條件運(yùn)算符的使用掌握判斷大寫字母或小寫字母的方法1、在嵌套使用if語句時(shí),C語言規(guī)定else總和之前與其具有相同縮進(jìn)位置的if配和之前與其最近的if配和之前與其最近的且不帶else的if配和之前的第一個(gè)if配
2006-2、設(shè)變量x和y均已正確定義并賦值。以下if語句中,編譯產(chǎn) B)if(x>y&&if(x>0)x-elseelse
2007-3、有以下計(jì)算公 若程序前面已在命令中包含math.h文件,不能夠正確計(jì)算上述公式的程段 4、以下程序的功能是:輸出a、b、c三個(gè)變量中的最小值.請?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-}程序的運(yùn)行 其中"表達(dá)式
2009-A)必須是邏輯表達(dá) B)必須是關(guān)系表達(dá)C)必須是邏輯表達(dá)式或關(guān)系表達(dá) D)可以是任意合法的表達(dá) main() scanf("%d",&x); printf("%d\n",
2009-}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì) 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-}程序運(yùn)行后輸出結(jié) 11、設(shè)有定義 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;以下選項(xiàng)中與上述if語句等價(jià)的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;}程序運(yùn)行后的輸出結(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á)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是D)可以2011年3main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",}程序運(yùn)行后的輸出 D)2011年3{intx;if(x>15)printf("%d",x-if(x>10)if(x>5)}若程序運(yùn)行時(shí)從鍵盤輸入12<回車>,則輸出結(jié)果為
2011年34、以下程序運(yùn)行后的輸出結(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填空請補(bǔ)充函數(shù),該函數(shù)的功能是:從鍵盤輸入一個(gè)長整數(shù),如果這個(gè)數(shù)是負(fù)數(shù),則取它的絕對值,并顯示出來。例如,輸入:-3847652,結(jié)果為:3847652。注意:部分源程序給出如下改動(dòng)主函數(shù)n和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入所編寫的若干表達(dá)式或語句。voidmain(){longint printf("Enterthedata:\n"); printf("***theabsolutevalue***\n");【2 printf(【3】 填空voidmain() inta,b,c,max;【1】【2】}switch語句(開關(guān)語句、多分支選擇語句switch語句的格式switch(表達(dá)式
根據(jù)表達(dá)式{case常量1語句1case常量2語句2case常量3語句3case常量n語句default:語句n+1執(zhí)行過程先計(jì)算表達(dá)式之值,如果與某個(gè)case語句中的常量的(即相同),則執(zhí)行其后的語句;若所有的case語句中的常量的值都不能與之匹配,則執(zhí)行t后的語句1。注注意:語句后,則自動(dòng)轉(zhuǎn)到下一個(gè)case語句后跳出語句后跳出switch選擇結(jié)switch語句流程圖(有break;語句表達(dá)=常量 =常量 =常量 …
=常量
=其語句
語句
語句
語句
語句switch語句流程圖(無break;語句表達(dá)語句語句=常量 =常量 =常量語句語句…語句語句語句語句
=常量
=其switch語句的使用舉例1:求分段求分段函數(shù)的值 其用switch語句求分段函數(shù)程序運(yùn)行后,如果從鍵盤上輸入3<回車程序運(yùn)行后,如果從鍵盤上輸入3<回車>運(yùn)行的順序和結(jié)果如下:int這是這是switch語{case{casey=1+x;case2:y=2*x;break;case3:y=x*x;break;default:y=x;}switch語句使用各個(gè)語句后如果沒有break;語句,則執(zhí)行了相應(yīng)的操作后,會(huì)自動(dòng)轉(zhuǎn)到下一個(gè)case后面的語句執(zhí)行。可以使多個(gè)casecase后面的表達(dá)式不能相同各個(gè)case和default語句的順序可以改變switch語句應(yīng)用例[案例4.1]從鍵盤上輸入一個(gè)百分制成績score,按下列原則輸出其等級(jí):#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} [程序演示程序運(yùn)行情況如下Inputascore(0~100):85↙小學(xué)生做算術(shù)數(shù)字拆判斷字母、數(shù)小學(xué)生解100以內(nèi)加法#include<stdio.h>#include<stdlib.h>main(){inta=rand(b=rand(
/*產(chǎn)生一個(gè)0~99之間的隨機(jī)數(shù)/*再產(chǎn)生一個(gè)0~99之間的隨機(jī)數(shù)printf("%d+%d=
/*為學(xué)生顯示
/*學(xué)生輸if(c==a+b)printf("Youareelseprintf("Youare}將一個(gè)三位數(shù)進(jìn)行#include<stdio.h>main(){intprintf("Pleaseenteraninteger(<100):
/*將個(gè)位/*將十位/*將百位printf("%d%d}從鍵盤上輸入一個(gè)字符判斷是數(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏發(fā)電設(shè)備產(chǎn)品供應(yīng)鏈分析
- 轉(zhuǎn)載機(jī)司機(jī)理論知識(shí)考試試卷含答案
- 班級(jí)合作學(xué)習(xí)的實(shí)施策略計(jì)劃
- 特教之路:挑戰(zhàn)與突破-解析特殊教育的意義、困難與解決方案
- 生態(tài)藝術(shù)在校園環(huán)境中的實(shí)踐計(jì)劃
- 商業(yè)綜合體投資合同三篇
- 秋季文化藝術(shù)節(jié)活動(dòng)計(jì)劃
- 秋季學(xué)期校內(nèi)外合作方案計(jì)劃
- 幼兒園多元化教育工作安排計(jì)劃
- 電公交:駛向綠色未來-推動(dòng)新能源公交構(gòu)建可持續(xù)城市
- 陜西省渭南市臨渭區(qū)渭南市三賢中學(xué)2024-2025學(xué)年高一上學(xué)期11月期中考試生物試題(無答案)
- 游樂園設(shè)施建設(shè)合同三篇
- 2024上半年半導(dǎo)體行業(yè)招聘報(bào)告-易展翅HR
- 4公民的基本權(quán)利和義務(wù) 第三課時(shí)《國家尊重和保障人權(quán)》教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治六年級(jí)上冊統(tǒng)編版
- 【核心素養(yǎng)目標(biāo)】6.1質(zhì)量 教學(xué)設(shè)計(jì) 2023-2024學(xué)年人教版物理八年級(jí)上學(xué)期
- 四川省食品生產(chǎn)企業(yè)食品安全員理論考試題庫(含答案)
- 期中考試(1-4單元)(試題)-2024-2025學(xué)年六年級(jí)上冊數(shù)學(xué)西師大版
- 2024-2030年中國椰子行業(yè)市場運(yùn)行分析及發(fā)展趨勢與投資發(fā)展策略研究報(bào)告
- 財(cái)政學(xué)-第16章-政府預(yù)算與預(yù)算管理體制
- 時(shí)間介詞in,on,at的區(qū)別 教學(xué)課件
- 2023年中國建設(shè)銀行建銀工程咨詢有限責(zé)任公司招聘考試真題及答案
評論
0/150
提交評論