版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)表示,限制使用無條件轉(zhuǎn)移語句(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)
程序的三種基本結(jié)構(gòu)PAB真假PBA真假kA1A2AiAnk=k2k=k1k=knk=ki......二分支選擇結(jié)構(gòu)多分支選擇結(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)單語句,也可以是一個(gè)基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)
程序的三種基本結(jié)構(gòu)返回第5章選擇語句5.1if條件語句5.2switch多分支選擇語句5.3程序舉例程序的三種基本結(jié)構(gòu)5.1if條件語句if語句是用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。5.1.1if語句的三種形式1.單分支選擇語句的形式:if(表達(dá)式)語句
這種if語句的執(zhí)行過程見圖:0(N)表達(dá)式語句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);}程序的三種基本結(jié)構(gòu)任給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程序的三種基本結(jié)構(gòu)[例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,7程序的三種基本結(jié)構(gòu)2.雙分支選擇語句的形式:
if(表達(dá)式)語句1else語句2
見圖:表達(dá)式語句1語句2真假main(){floatx,y;scanf(“%f”,&x);if(x<0)y=3-x;elsey=2*x;printf(“y=%6.2f”,y);}程序的三種基本結(jié)構(gòu)輸入兩個(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);}程序的三種基本結(jié)構(gòu)3.多分支選擇語句的形式:if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3elseif(表達(dá)式m)語句melse語句n
流程圖表達(dá)式1FT表達(dá)式3FT表達(dá)式2FT表達(dá)式4FT語句4語句5語句3語句2語句1程序的三種基本結(jié)構(gòu)
寫一個(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多分支問題程序的三種基本結(jié)構(gòu)#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”);}程序程序的三種基本結(jié)構(gòu)如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a(chǎn)’)printf(“%d”,’a’);if后面的表達(dá)式類型任意語句可以是復(fù)合語句
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!說明:程序的三種基本結(jié)構(gòu)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語句嵌套程序的三種基本結(jié)構(gòu)/*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)系程序的三種基本結(jié)構(gòu)缺省{}時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)if(……)if(……)if(……)else…...else…...else…...if~else配對(duì)原則:程序的三種基本結(jié)構(gòu)例: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ì)方法程序的三種基本結(jié)構(gòu)5.2switch語句
switch語句是多分支選擇語句。if語句只有兩個(gè)分支可供選擇,而實(shí)際問題中常常需要用到多分支的選擇。例如,學(xué)生成績(jī)分類(90分以為‘A’等,80~89分為‘B’等,70~79分為‘c’
等,……);人口統(tǒng)計(jì)分類(按年齡分為老、中、青、少、兒童);工資統(tǒng)計(jì)分類;銀行存款分類;……等。當(dāng)然這些都可以用嵌套的if語句或多分支來處理,但如果分支較多,則嵌套的if語句層數(shù)多,程序冗長(zhǎng)而且可讀性降低。C語言提供switch語句直接處理多分支選擇,它的一般形式如下:
switch(表達(dá)式)
{case常量表達(dá)式1:語句1case常量表達(dá)式2:語句2case常量表達(dá)式i:語句ndefault:語句n+1}程序的三種基本結(jié)構(gòu)
首先計(jì)算表達(dá)式的值,然后依次與常量表達(dá)式
i(i=1,2,……,n)比較。若表達(dá)式的值與某一個(gè)常量表達(dá)式,如j(1≤j≤n)相等,則執(zhí)行語句j。
②若表達(dá)式的值與所有的常量表達(dá)式i(i=1,2,……,n)均不相等,則執(zhí)行defau1t后面的語句n+1。功能程序的三種基本結(jié)構(gòu)語句中的表達(dá)式可以是整型或字符型、枚舉型。常量表達(dá)式i必須與表達(dá)式類型一致(整型與字符型通用)。i僅起語句標(biāo)號(hào)作用,不做求值判斷。語句結(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多分支選擇語句,可在case分支結(jié)束后,插入一個(gè)break語句。若有break語句,就從此break語句跳出break所在的當(dāng)前結(jié)構(gòu);若無break語句,執(zhí)行該語句后,流程控制轉(zhuǎn)移到下一個(gè)分支:繼續(xù)執(zhí)行這一個(gè)分支的語句,一直到最后一個(gè)語句執(zhí)行完。下一頁(yè)注意程序的三種基本結(jié)構(gòu)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ùn)行結(jié)果見右圖。如果給每條語句加上break這樣就只執(zhí)行一條語句。C
D
E下一頁(yè)看下面的例子運(yùn)行結(jié)果case2:printf(″B\n″);程序的三種基本結(jié)構(gòu)如果多種情況需要共用一個(gè)執(zhí)行語句,可用case的常量表達(dá)式多種情況列出,最后一種情況后,才放執(zhí)行的語句。
case后面的語句可以是一條語句,也可以是復(fù)合語句,還可以是花括弧括起來的幾條語句,還可以是空語句。有多條語句時(shí)會(huì)順序執(zhí)行完所有語句。下一頁(yè)說明程序的三種基本結(jié)構(gòu)編程:根據(jù)輸入的學(xué)生的成績(jī)判斷等級(jí)。當(dāng)成績(jī)score≥90時(shí)為A等;成績(jī)70≤score<90為B等;成績(jī)60≤score<70為C等;成績(jī)score<6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度魚塘承包與漁業(yè)生態(tài)旅游合作合同4篇
- 2025年度LED節(jié)能燈具采購(gòu)與安裝一體化合同范本3篇
- 二零二五年度木材加工設(shè)備租賃合同樣本2篇
- 二零二五年度農(nóng)機(jī)行業(yè)人才引進(jìn)與培養(yǎng)合同4篇
- 二零二五年度大摩退出中金項(xiàng)目合同終止倒計(jì)時(shí)通知2篇
- 2025年度南京家庭裝修工程竣工驗(yàn)收備案合同4篇
- 2025年度個(gè)人光伏發(fā)電貸款擔(dān)保合同3篇
- 2025版文化娛樂場(chǎng)所租賃及活動(dòng)策劃服務(wù)合同模板4篇
- 2025版儲(chǔ)罐泄漏檢測(cè)與預(yù)防措施合同范本3篇
- 2025版農(nóng)民合作社農(nóng)村農(nóng)村電商扶貧項(xiàng)目融資合同3篇
- 2024年內(nèi)蒙古自治區(qū)專業(yè)技術(shù)人員繼續(xù)教育公需課考試答案
- T-CSTM 01124-2024 油氣管道工程用工廠預(yù)制袖管三通
- 2019版新人教版高中英語必修+選擇性必修共7冊(cè)詞匯表匯總(帶音標(biāo))
- 新譯林版高中英語必修二全冊(cè)短語匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預(yù)測(cè)研究
- 河道保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 品管圈(QCC)案例-縮短接臺(tái)手術(shù)送手術(shù)時(shí)間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語四年級(jí)上冊(cè)譯林版三起含答案
- 清華大學(xué)考博英語歷年真題詳解
- 人教版三年級(jí)上冊(cè)口算題(全冊(cè)完整20份 )
評(píng)論
0/150
提交評(píng)論