版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
結(jié)構(gòu)化程序設(shè)計(jì)基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無(wú)條件轉(zhuǎn)移語(yǔ)句(goto)結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序叫~優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率三種基本結(jié)構(gòu)順序結(jié)構(gòu)ABAB流程圖N-S圖程序的三種基本結(jié)構(gòu)
PAB真假PBA真假kA1A2AiAnk=k2k=k1k=knk=ki......二分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假A直到P為真注:A,B,A1….An可以是一個(gè)簡(jiǎn)單語(yǔ)句,也可以是一個(gè)基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)
返回第5章選擇語(yǔ)句5.1if條件語(yǔ)句5.2switch多分支選擇語(yǔ)句5.3程序舉例5.1if條件語(yǔ)句if語(yǔ)句是用來(lái)判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。5.1.1if語(yǔ)句的三種形式1.單分支選擇語(yǔ)句的形式:if(表達(dá)式)語(yǔ)句
這種if語(yǔ)句的執(zhí)行過(guò)程見圖:0(N)表達(dá)式語(yǔ)句1(Y)main(){floatx,y;scanf(“%f”,&x);if(x>=0)y=2*x;if(x<0)y=3-x;printf(“y=%6.2f”,y);}任給a,b,c三個(gè)數(shù),按從小到大的順序輸出。分析:(1)對(duì)于a,b任意兩個(gè)數(shù):若a<b,則輸出a,b;否則輸出b,a;
(2)對(duì)于三個(gè)數(shù),有6種可能:
a<b<ca<c<bb<a<cb<c<ac<a<bc<b<a
(3)使用判斷——交換法:
1.若a>b,則交換a和b,交換后a<b2.若a>c,則交換a和c,交換后a<c3.若b>c,則交換b和c,交換后b<c[例5.2」輸入三個(gè)數(shù),按由小到大順序輸出。main(){inta,b,c,temp;printf("Inputa,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);if(a>b){temp=a;a=b;b=temp;}if(a>c){temp=a;a=c;c=temp;}if(b>c){temp=b;b=c;c=temp;}printf("%d,%d,%d",a,b,c);}
運(yùn)行情況如下:3,7,11,3,72.雙分支選擇語(yǔ)句的形式:
if(表達(dá)式)語(yǔ)句1else語(yǔ)句2
見圖:表達(dá)式語(yǔ)句1語(yǔ)句2真假main(){floatx,y;scanf(“%f”,&x);if(x<0)y=3-x;elsey=2*x;printf(“y=%6.2f”,y);}輸入兩個(gè)數(shù),比較其大小,將較大的數(shù)輸出。流程分析:(1)輸入兩個(gè)數(shù)據(jù)a,b;
(2)如果a>b則輸出a;否則,輸出b。#include<stdio.h>main(){floata,b;scanf(“%f,%f”,&a,&b);if(a>b)printf(“%f”,a);elseprintf(“%f”,b);}3.多分支選擇語(yǔ)句的形式:if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3elseif(表達(dá)式m)語(yǔ)句melse語(yǔ)句n
流程圖表達(dá)式1FT表達(dá)式3FT表達(dá)式2FT表達(dá)式4FT語(yǔ)句4語(yǔ)句5語(yǔ)句3語(yǔ)句2語(yǔ)句1
寫一個(gè)程序完成下列功能:
1.輸入一個(gè)分?jǐn)?shù)score2.score<60輸出E3.60<=score<70輸出D4.70<=score<80輸出C5.80<=score<90輸出B6.90<=score輸出A多分支問(wèn)題#include<stdio.h>main(){intscore;scanf(“%d”,&score);if(score<60)printf(“E”);elseif(score<70)printf(“D”);elseif(score<80)printf(“C”);elseif(score<90)printf(“B”);elseprintf(“A”);}程序如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a(chǎn)’)printf(“%d”,’a’);if后面的表達(dá)式類型任意語(yǔ)句可以是復(fù)合語(yǔ)句
if(x)
if(x!=0)if(!x)
if(x==0)例考慮下面程序的輸出結(jié)果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!說(shuō)明:5.1.2一般形式:if(expr1)if(expr2)statement1elsestatement2elseif(expr3)statement3elsestatement4內(nèi)嵌if內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement2內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement3
內(nèi)嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4內(nèi)嵌ifif語(yǔ)句嵌套/*ch4_4.c*/#include<stdio.h>main(){intx,y;printf("Enterintegerx,y:");scanf("%d,%d",&x,&y);if(x!=y)if(x>y)printf("X>Y\n");elseprintf("X<Y\n");elseprintf("X==Y\n");}運(yùn)行:Enterintegerx,y:12,23
X<YEnterintegerx,y:12,6
X>YEnterintegerx,y:12,12
X==Y例輸入兩數(shù)并判斷其大小關(guān)系缺省{}時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)if(……)if(……)if(……)else…...else…...else…...if~else配對(duì)原則:例:if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);修改:if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);實(shí)現(xiàn)if~else正確配對(duì)方法:加{}實(shí)現(xiàn)if~else正確配對(duì)方法5.2switch語(yǔ)句
switch語(yǔ)句是多分支選擇語(yǔ)句。if語(yǔ)句只有兩個(gè)分支可供選擇,而實(shí)際問(wèn)題中常常需要用到多分支的選擇。例如,學(xué)生成績(jī)分類(90分以為‘A’等,80~89分為‘B’等,70~79分為‘c’
等,……);人口統(tǒng)計(jì)分類(按年齡分為老、中、青、少、兒童);工資統(tǒng)計(jì)分類;銀行存款分類;……等。當(dāng)然這些都可以用嵌套的if語(yǔ)句或多分支來(lái)處理,但如果分支較多,則嵌套的if語(yǔ)句層數(shù)多,程序冗長(zhǎng)而且可讀性降低。C語(yǔ)言提供switch語(yǔ)句直接處理多分支選擇,它的一般形式如下:
switch(表達(dá)式)
{case常量表達(dá)式1:語(yǔ)句1case常量表達(dá)式2:語(yǔ)句2case常量表達(dá)式i:語(yǔ)句ndefault:語(yǔ)句n+1}
首先計(jì)算表達(dá)式的值,然后依次與常量表達(dá)式
i(i=1,2,……,n)比較。若表達(dá)式的值與某一個(gè)常量表達(dá)式,如j(1≤j≤n)相等,則執(zhí)行語(yǔ)句j。
②若表達(dá)式的值與所有的常量表達(dá)式i(i=1,2,……,n)均不相等,則執(zhí)行defau1t后面的語(yǔ)句n+1。功能語(yǔ)句中的表達(dá)式可以是整型或字符型、枚舉型。常量表達(dá)式i必須與表達(dá)式類型一致(整型與字符型通用)。i僅起語(yǔ)句標(biāo)號(hào)作用,不做求值判斷。語(yǔ)句結(jié)構(gòu)中各個(gè)case后常量表達(dá)式的值必須互不相同;否則執(zhí)行時(shí)將出現(xiàn)矛盾。各個(gè)case的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)case‘D’:…,然后是case‘A’:……default一般出現(xiàn)在所有case之后,也可以出現(xiàn)在case之前或兩個(gè)case之間,default也可以缺省。為了在執(zhí)行完一個(gè)case分支后能跳出switch多分支選擇語(yǔ)句,可在case分支結(jié)束后,插入一個(gè)break語(yǔ)句。若有break語(yǔ)句,就從此break語(yǔ)句跳出break所在的當(dāng)前結(jié)構(gòu);若無(wú)break語(yǔ)句,執(zhí)行該語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)分支:繼續(xù)執(zhí)行這一個(gè)分支的語(yǔ)句,一直到最后一個(gè)語(yǔ)句執(zhí)行完。下一頁(yè)注意switch(i){case1:printf(″A\n″);
case3:printf(″C\n″);case4:printf(″D\n″);default:printf(″E\n″);}
假設(shè)i=3時(shí),則會(huì)從i=3時(shí)做起始語(yǔ)句。運(yùn)行結(jié)果見右圖。如果給每條語(yǔ)句加上break這樣就只執(zhí)行一條語(yǔ)句。C
D
E下一頁(yè)看下面的例子運(yùn)行結(jié)果case2:printf(″B\n″);如果多種情況需要共用一個(gè)執(zhí)行語(yǔ)句,可用case的常量表達(dá)式多種情況列出,最后一種情況后,才放執(zhí)行的語(yǔ)句。
case后面的語(yǔ)句可以是一條語(yǔ)句,也可以是復(fù)合語(yǔ)句,還可以是花括弧括起來(lái)的幾條語(yǔ)句,還可以是空語(yǔ)句。有多條語(yǔ)句時(shí)會(huì)順序執(zhí)行完所有語(yǔ)句。下一頁(yè)說(shuō)明編程:根據(jù)輸入的學(xué)生的成績(jī)判斷等級(jí)。當(dāng)成績(jī)score≥90時(shí)為A等;成績(jī)70≤score<90為B等;成績(jī)60≤score<70為C等;成
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版中藥材購(gòu)合同協(xié)議書鐵皮石斛
- 2024年離婚財(cái)產(chǎn)分配協(xié)議標(biāo)準(zhǔn)模板
- 二零二五年度高效節(jié)能大棚租賃管理協(xié)議2篇
- 2025年度考古發(fā)掘現(xiàn)場(chǎng)水鉆打孔作業(yè)合同范本2篇
- 二零二五年度一手房購(gòu)房合同(帶裝修風(fēng)格個(gè)性化定制)3篇
- 2025年一手房購(gòu)房協(xié)議書(房產(chǎn)抵押貸款附條件協(xié)議)3篇
- 二零二五年度建筑勞務(wù)分包與綠色施工示范合同3篇
- 2024年職業(yè)健康監(jiān)測(cè)與保護(hù)合同3篇
- 二零二五年度網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估師聘用協(xié)議3篇
- 2025年度房屋買賣合同包含室內(nèi)外綠化及裝修一體化3篇
- 屋頂分布式光伏發(fā)電項(xiàng)目施工重點(diǎn)難點(diǎn)分析及應(yīng)對(duì)措施
- 退休人員返聘勞動(dòng)合同三篇
- 中華人民共和國(guó)安全生產(chǎn)法知識(shí)培訓(xùn)
- 物業(yè)品質(zhì)提升方案課件
- 服裝行業(yè)倉(cāng)庫(kù)管理流程
- “雙減”政策下的學(xué)生心理健康工作總結(jié)
- 八年級(jí)上冊(cè)語(yǔ)文期中試卷含答案
- 食品工藝學(xué)名詞解釋、簡(jiǎn)答題、填空題等
- 中醫(yī)腦癱課件教學(xué)課件
- 糖尿病病人的飲食教育
- 2024年新聞宣傳新聞采編專業(yè)及理論知識(shí)考試題附含答案
評(píng)論
0/150
提交評(píng)論