




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
*1第6講選擇結(jié)構(gòu)程序設(shè)計結(jié)構(gòu)化程序設(shè)計之二*2復(fù)習(xí)順序結(jié)構(gòu)程序是一種按書寫順序執(zhí)行的結(jié)構(gòu)。順序結(jié)構(gòu)程序一般由哪幾個部分組成?變量定義輸入數(shù)據(jù)處理數(shù)據(jù)輸出結(jié)果*3教學(xué)內(nèi)容:if語句,if…else…語句
switch語句選擇結(jié)構(gòu)程序舉例
*4教學(xué)目標(biāo):
1.掌握條件的表示方法。
2.熟練掌握if語句的語法和使用方法。
3.掌握switch語句的語法和使用方法。
4.熟練掌握分支語句的嵌套使用方法。*5a>bc=bc=ayesno開始結(jié)束顯示結(jié)果c輸入兩個整數(shù)a,b分支(選擇)結(jié)構(gòu):scanf(“%d,%d”,&a,&b);if(a>b)
c=a;
else
c=b;
printf(“%d”,c);*6#include<stdio.h>voidmain(){
inta,b,c;
scanf("%d,%d",&a,&b);
if(a>b)//無;
c=a; else//無;
c=b; printf("%d",c);}分支結(jié)構(gòu)*76.1if語句的應(yīng)用單分支結(jié)構(gòu)偽代碼:
執(zhí)行語句1;
startifif<表達(dá)式為真>
執(zhí)行語句2;
endif
執(zhí)行語句3;假(0)表達(dá)式語句2真(非0)語句1語句3注意:語句2稱為if語句的內(nèi)嵌語句,可以是1條語句,也可以是用{}括起來的復(fù)合語句。*8分支結(jié)構(gòu)程序示例1輸入考生的分?jǐn)?shù),判斷是否大于等于60分,如果是輸出”pass”startInputmarkMark>=60output“pass”endyesno#include"stdio.h"voidmain(){ intmark; scanf("%d",&mark);
if(mark>=60) printf("pass\n");}*9#include"stdio.h"voidmain(){ intmark;
scanf("%d",&mark); if(mark>=60) printf("pass\n");}表達(dá)式(通常是邏輯或關(guān)系表達(dá)式)必須用(),右括號后面沒有“;”if的內(nèi)嵌語句要有縮進(jìn)*10
要求:從鍵盤輸入兩個整數(shù)a和b,如果a大于b則交換兩數(shù),最后輸出兩個數(shù)。分支結(jié)構(gòu)程序示例二a>b交換a、b真假輸入a,b輸出a,b開始結(jié)束*11#include<stdio.h>voidmain(){inta,b,t;printf("\nInputa,b:");scanf("%d,%d",&a,&b);if(a>b){t=a;a=b;b=t;}printf("a=%d,b=%d\n",a,b);}*12單分支結(jié)構(gòu)的if語句if(expression)
語句;//if語句結(jié)束if(expression){語句1;語句2;}//if語句結(jié)束一定記得{}不能丟!}后沒有分號*13雙分支結(jié)構(gòu)偽代碼:
執(zhí)行語句1;
startifif<表達(dá)式為真>
執(zhí)行語句2;
endif
elsestart
執(zhí)行語句3;endelse
執(zhí)行語句4;注意:語句2和語句3稱為if語句的內(nèi)嵌語句,可以是1條語句,也可以是用{}括起來的復(fù)合語句。表達(dá)式語句2真(非0)假(0)語句3語句1語句4*14雙分支結(jié)構(gòu)程序示例要求:輸入一個字符,判斷它是否是0~9之間的字符,并顯示相應(yīng)提示。?c是數(shù)字真假c不是數(shù)字怎么判斷一個字符是否是‘0’~‘9’之間的字符呢?#include<stdio.h> voidmain(){charc;printf("inputacharacter:");c=getchar();
if(c>=48&&c<=57)printf("Itisanumber.\n");
elseprintf("Itisnotanumber");}開始結(jié)束輸入c*15編程練習(xí)輸入考生的分?jǐn)?shù),判斷是否大于等于60分,如果是輸出”pass”,否則輸出”fail”*16startInputmarkMark>=60output“pass”endyesnooutput“fail”*17#include"stdio.h"voidmain(){ intmark;
scanf("%d",&mark); if(mark>=60) printf("pass\n");elseprintf(“fail\n”);}*18條件表達(dá)式的應(yīng)用例:if(a>b)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,a>b?a:b);*19雙分支if語句形式if(表達(dá)式)語句1;else
語句2;注意:if和else同屬一個語句,else不能單獨使用,只能是if語句的一部分*20語句執(zhí)行流程:表達(dá)式1語句1真(非0)假(0)真(非0)語句2表達(dá)式2真(非0)表達(dá)式n語句n語句n+1假(0)假(0)下一語句多分支選擇結(jié)構(gòu)*21語句形式:if(表達(dá)式1)語句1;elseif(表達(dá)式2)語句2;
……elseif(表達(dá)式n)語句n;
else語句n+1;*22分支結(jié)構(gòu)程序示例三例:分段函數(shù)的計算
0(x<0)
y=f(x)=x(0≤x≤50)
x2(x>50)假輸入xx<0真0=<x<=50y=x*xy=xy=0假真#include<stdio.h>voidmain(){floatx;scanf("%f",&x);if(x<0.0) printf("y=0\n");if(x>=0.0&&x<=50.0) printf("y=%f\n",x);if(x>50) printf("y=%f\n",x*x);}elseif(x<=50.0) printf("y=%f\n",x);else printf("y=%f\n",x*x);}elseif(0<=x&&x<=50.0)printf("y=%f\n",x);else printf("y=%f\n",x*x);}*23注意事項(1)if和else同屬一個語句,else不能單獨使用,只能是if語句的一部分(2)if語句中條件的寫法應(yīng)盡量簡單。(3)if語句的條件表示:通常為關(guān)系表達(dá)式、邏輯表達(dá)式,也可以是任意的數(shù)值類型,如
if(3)printf(“ok”);if(‘a(chǎn)’)printf(“%d”,’a’);*24條件分支的嵌套
當(dāng)if語句中又包含若干個if語句時,則構(gòu)成了if語句嵌套的情形。語句形式:if(表達(dá)式1){
if(表達(dá)式2)語句1;}if(表達(dá)式1){
if(表達(dá)式2)
語句1;else
語句2;}*25一般形式:if()if()語句1else語句2elseif()語句3else語句4else總是與它上面最近的if配對*26編程者的目的:if()
if()語句1
(內(nèi)嵌if語句)else
if()語句2
(內(nèi)嵌if語句)
else語句3系統(tǒng)的處理:if()
if()語句1(內(nèi)嵌if語句)
elseif()語句2(內(nèi)嵌if語句)
else語句3{}*27注意事項else與if的配對原則:else與同一層最接近它,而又沒有其它else語句與之相匹配的if語句配對。【例6-5】以下程序的執(zhí)行結(jié)果是什么?
main(){intx=2,y=-1,z=2;
if(x<y)if(y<0)z=0;elsez+=1;printf(“%d\n”,z);}/*結(jié)果是2*/哦,原來是因為else總是與靠近它的if配對…
*28常見錯誤:
if(x>0);if(x=2)if(1<=x<=10)y=3x+2;printf(“y>0”);y=x-1;
if(a==b==c);printf(“等腰三角形);*29小結(jié)分支結(jié)構(gòu)有三種形式,分別用什么語句實現(xiàn)的?單分支結(jié)構(gòu)雙分支結(jié)構(gòu)多分支結(jié)構(gòu)if(表達(dá)式)語句1;if(表達(dá)式)語句1;else語句2;if語句嵌套問題:從鍵盤上輸入一個百分制成績score,按下列原則輸出其等級:score≥90,等級為A;80≤score<90,等級為B;70≤score<80,等級為C;60≤score<70,等級為D;score<60,等級為E。*30#include"stdio.h"voidmain(){ floatscore;
printf("pleaseinputscore:"); scanf("%f",&score); if(score>=90) printf("A"); elseif(score>=80) printf("B"); elseif(score>=70) printf("C"); elseif(score>=60) printf("D"); else printf("E");}*31switch語句1、語句形式:switch(表達(dá)式){case常量1:語句1;
case常量2:語句2;
case常量3:語句3;
.......case常量n:語句n;
default:語句n+1;}根據(jù)表達(dá)式的不同值,選擇不同的程序分支,又稱開關(guān)語句。數(shù)值型或字符型常量表達(dá)式的值必須互不相同,否則執(zhí)行時將出現(xiàn)矛盾,即同一個開關(guān)值,將對應(yīng)多種執(zhí)行方案。千萬不能接(;)號*322、語句執(zhí)行流程:指語句的最后一條是否為break;簡單語句或復(fù)合語句breakbreak有無break有無有計算表達(dá)式常量1常量2常量n=語句1…===語句2語句n其它=語句n+1無值case語句出現(xiàn)的次序并不影響執(zhí)行結(jié)果。*33#include<stdio.h>voidweekday(){ intweekday; printf("intputintegernumber:"); scanf("%d",&weekday); switch(weekday) { case1:printf("Monday\n"); case2:printf("Tuesday\n"); case3:printf("Wednesday\n"); case4:printf("Thursday\n"); case5:printf("Friday\n"); case6:printf("Saturday\n"); case7:printf("Sunday\n"); default:printf("error\n"); }}voidmain(){ weekday();}輸入一個數(shù)字,輸出一個有關(guān)星期幾的英文單詞。如輸入數(shù)字3,要求輸出Wednesday。*34輸入一個數(shù)字,輸出一個有關(guān)星期幾的英文單詞。如輸入數(shù)字3,要求輸出Wednesday。#include<stdio.h>voidweekday(){ intweekday; printf("intputintegernumber:"); scanf("%d",&weekday); switch(weekday) { 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; case6:printf("Saturday\n");break; case7:printf("Sunday\n");break; default:printf("error\n"); }}voidmain(){ weekday();}*35多分支結(jié)構(gòu)程序示例“成績等級”問題2要求:從鍵盤上輸入一個百分制成績score,按下列原則輸出其等級:score≥90,等級為A;80≤score<90,等級為B;70≤score<80,等級為C;60≤score<70,等級為D;score<60,等級為E。*36源程序#include<stdio.h>voidmain()
{Iintscore,grade;
printf(“Inputascore(0~100):”);
scanf(“%d”,&score);
grade=score/10;/*將成績整除10,轉(zhuǎn)化成switch語句中的case標(biāo)號*/
switch(grade){case10:case9:printf(“grade=A\n”);break; 使用switch解題的關(guān)鍵,通過分析找到表達(dá)式,將問題分成幾種情況。*37
case8:printf("grade=B\n");break;case6:printf("grade=D\n");break;case7:printf("grade=C\n");break;case5:case
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生安全自律協(xié)議3篇
- 擦洗劑的成分與清潔效果對比研究考核試卷
- 審計證據(jù)收集與評估考核試卷
- 火工品生產(chǎn)過程中的安全生產(chǎn)標(biāo)準(zhǔn)化實施考核試卷
- 纖維素纖維的生態(tài)友好型加工技術(shù)與設(shè)備考核試卷
- 環(huán)境污染治理區(qū)域合作考核試卷
- 2025標(biāo)準(zhǔn)租房合同范本下載
- 2025巨型建設(shè)項目合同范本
- 2025辦公租賃合同(財產(chǎn)租賃合同)
- 房屋委托居間服務(wù)合同書范例
- 個人代持協(xié)議書
- 機組啟動試運行調(diào)試大綱
- 醫(yī)務(wù)人員技術(shù)檔案
- JBT 7387-2014 工業(yè)過程控制系統(tǒng)用電動控制閥
- 18文言文二則《囊螢夜讀》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 期中測試卷(1-5單元)(試題)-2023-2024學(xué)年二年級下冊數(shù)學(xué)人教版
- 2022高考數(shù)學(xué)全國1卷(原卷版)
- 陜西方言研究報告
- 土地永久性租賃合同
- 武漢商用車展電驅(qū)橋匯總
- 建筑工程總承包與分包界面劃分大全(4種)
評論
0/150
提交評論