第3章 分支結(jié)構(gòu)_第1頁(yè)
第3章 分支結(jié)構(gòu)_第2頁(yè)
第3章 分支結(jié)構(gòu)_第3頁(yè)
第3章 分支結(jié)構(gòu)_第4頁(yè)
第3章 分支結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章分支結(jié)構(gòu),3.1總價(jià)計(jì)算3.2大寫字母和小寫字母的判斷3.3字符分類3.4四個(gè)操作,3.1總價(jià)計(jì)算,示例3.1:已知蘋果每公斤3.5元,當(dāng)購(gòu)買量超過10公斤時(shí),將提供5%的折扣。輸入采購(gòu)數(shù)量并輸出總價(jià),結(jié)果保留兩位小數(shù)。思路分析:(1)定義不變單價(jià)為3.50 (2)輸入采購(gòu)數(shù)量x (3)如果x10總價(jià)為x *單價(jià)*0.95否則總價(jià)為x *單價(jià)輸出總價(jià),如果(表達(dá)式)語(yǔ)句1否則語(yǔ)句2,/計(jì)算總價(jià)# includein main () constdouble單價(jià);雙x,價(jià)格;scanf(“% lf”,“3.1.1 if-else語(yǔ)句,if (expression)語(yǔ)句1 else語(yǔ)句2,if

2、 (x10) /if x10有5% printf的折扣(“% .2f n”,x * unit price * 0.95);否則/否則,沒有折扣打印f(%.2fn ,x *單價(jià));語(yǔ)句1和語(yǔ)句2可以是由括起來(lái)的單個(gè)語(yǔ)句或復(fù)合語(yǔ)句。練習(xí)并判斷平價(jià)。輸入整數(shù)n以確定n是奇數(shù)還是偶數(shù)。如果是奇數(shù),則輸出“奇數(shù)”;如果是偶數(shù),則輸出“偶數(shù)”;如果(n是2的倍數(shù)),則輸出“偶數(shù)”;否則輸出“奇數(shù)”;如果(n不是2的倍數(shù))輸出“奇數(shù)”;否則輸出“偶數(shù)”;n%2=0,n%2!=0時(shí),復(fù)合語(yǔ)句是由“ 0 ”括起來(lái)的一組語(yǔ)句,例如: t=a;a=b。b=t。復(fù)合語(yǔ)句的一般形式是:描述部分;報(bào)表部分。,3.1.2復(fù)

3、合語(yǔ)句,3.1.3兩個(gè)記憶變量?jī)?nèi)容交換,例3.2輸入兩個(gè)存儲(chǔ)在a,b中的整數(shù),如果ab,a和b交換內(nèi)容,簡(jiǎn)而言之需要一個(gè)較小的數(shù)字在a,b中存儲(chǔ)一個(gè)較大的數(shù)字,最后輸出a和b的值(1)從鍵盤上讀入兩個(gè)整數(shù)并存儲(chǔ)在a,b中(2)如果ab,交換a和b的內(nèi)容,難點(diǎn):如何交換兩個(gè)變量的內(nèi)容?想想看:你有一瓶醬油和一瓶醋?,F(xiàn)在,你想讓醬油瓶裝醋,醋瓶裝醬油,怎么樣?找一個(gè)空瓶子來(lái)周轉(zhuǎn)!(1)將醬油從A倒入空瓶子T,醬油,(2)將醋從B倒入醋中,(3)將暫時(shí)儲(chǔ)存在T中的醋倒入用C語(yǔ)言表示的醬油中,#include int main() int a,B,T;Scanf (%d% d ,),輸入:3 5輸出:

4、3 5,輸入:5 3輸出:3 5,注意:如果要執(zhí)行多個(gè)語(yǔ)句,請(qǐng)確保將其作為復(fù)合語(yǔ)句括在括號(hào)中,#include int main() int a,b,t;scanf(“% d % d”),輸入:3 5輸出:5 -858993460,輸入:5 3輸出:3 5,為什么會(huì)出現(xiàn)這種結(jié)果?站在風(fēng)投下面,看看吧!通過一步,你會(huì)發(fā)現(xiàn):a=b;b=t。這兩個(gè)句子不受if的限制,但當(dāng)if失敗時(shí)也會(huì)被執(zhí)行。一個(gè)小練習(xí):編程:輸入3個(gè)整數(shù)A、B和C,要求最小的數(shù)字存儲(chǔ)在A中,最大的數(shù)字存儲(chǔ)在C中,然后依次輸出這三個(gè)數(shù)字。(1)如果ab,交換a和b的內(nèi)容(2)如果ac,交換a和c的內(nèi)容(3)如果bc,交換b和c的內(nèi)容

5、,3.2判案,例3.3從鍵盤輸入一個(gè)英文字母,判案,如果大寫,輸出“大寫”,否則輸出“小寫”,/判案# include int main() char ch;/聲明兩個(gè)字符變量ch1=getchar();/讀入一個(gè)字符并將其存儲(chǔ)在ch if (ch=a)中,運(yùn)行:輸入:A輸出:大寫A,在線保險(xiǎn)單期限:_ _ _ _ _ _總保險(xiǎn)金額:_ _ _ _ _,3.2.1字符類型,23,98340,M,數(shù)字類型,字符類型,int/float,char,字符類型常量,5 p $,有效字符類型值,“2”,2,正確,2 2=4,X,定義:個(gè)單引號(hào)中包含的單個(gè)普通字符或轉(zhuǎn)義字符,存儲(chǔ)3354個(gè)ASCII碼每個(gè)

6、字符使用相應(yīng)的01字符串來(lái)表示國(guó)際統(tǒng)一標(biāo)準(zhǔn)ASCII碼,如字符“A”,使用8位二進(jìn)制01100001,即十進(jìn)制97,如字符“A”,使用8位二進(jìn)制0100001,即十進(jìn)制65,字符變量char,1字節(jié),-2-7到27-1,-128到127,字符變量用于存儲(chǔ)字符數(shù)據(jù),只需要一個(gè)字節(jié),聲明為(1)字符常數(shù)可以存儲(chǔ)在字符變量中,如ch= A a(2)介于-128和127之間的整數(shù)可以存儲(chǔ)在字符變量中,例如ch=65(3)變量的內(nèi)容可以解釋為整數(shù)或字符。/運(yùn)行以下程序# include int main() char ch in VC;ch=a。/或ch=65printf(“% c n”,ch);/將c

7、h中的值解釋為字符printf(“% d n”,ch);/將ch中的值解釋為返回0的整數(shù);,字符數(shù)據(jù)可以進(jìn)行整數(shù)運(yùn)算,“A”1的值是:“b”或98“A”-32是:“A”或65“A”32是:“A”或97“c”-A”是:2“A”-A”是32“A”-A”是-32“A”2是“c”或99“A”-2”是146(9749)“2”-2”是98或“b”,輸入字符數(shù)據(jù)char /Declare字符變量ch方法getchar()函數(shù)沒有參數(shù)。它的功能是從終端讀入一個(gè)字符,并將其作為函數(shù)值返回。輸出字符數(shù)據(jù)方法1: printf (%c ,ch);/輸出ch方法2的值:put char(ch);/輸出ch值,輸入和輸

8、出3.2.3字符數(shù)據(jù)。putchar()函數(shù)的功能是向終端輸出其括號(hào)參數(shù)的內(nèi)容。參數(shù)可以是字符變量和字符常數(shù),輸出字符“A”A“:”putchar(“A”A);輸出回車符put char( n n );輸出字符變量a的值:put char(a);猜想:普查爾(65);輸出什么?試著用VC,例3.4猜字母:輸入字母表中一個(gè)字母的序列號(hào)(從1開始),然后輸出該字母(大寫)。# include int main() char ch;int索引;scanf(%d ,put char(ch);putchar()函數(shù)的功能是將括號(hào)中的參數(shù)內(nèi)容輸出到終端。參數(shù)可以是字符變量、字符常數(shù)、小練習(xí)。輸入一個(gè)字符,

9、如果它是小寫字母,它將被轉(zhuǎn)換成大寫字母輸出,否則它將被輸出為2。計(jì)算字母序列號(hào),輸入一個(gè)字母(小寫),輸出字母在字母表中的序列號(hào),輸入一個(gè)字符,如果是小寫字母,它將被轉(zhuǎn)換為大寫字母輸出,否則它將按原樣輸出,# include int main() char ch;ch=getchar();如果(ch=a),如果它是小寫,它將是大寫的;否則,什么也不需要做。ch減32將分配給ch,這是允許的。也可以寫成:ch-=32來(lái)計(jì)算字母數(shù)。輸入一個(gè)英文字母(小寫),并輸出字母在字母表中的序號(hào),(1)讀入字符ch;(2)計(jì)算序列號(hào)指數(shù)=ch-a1;(3)輸出整數(shù)索引,char chint索引;ch=getc

10、har();索引=ch-a 1。printf(%dn ,索引);計(jì)算字母數(shù)字的增強(qiáng)版本。輸入一個(gè)英文字母,輸出字母在字母表中的序號(hào),3.2.3復(fù)合賦值語(yǔ)句,C語(yǔ)言允許一個(gè)變量參與運(yùn)算,然后將運(yùn)算結(jié)果賦值給自己,例如:I=I 1;ch=ch-32;y=y * 10A=a/2,要求能夠理解,你不喜歡這樣寫,3.3字符分類,例3-5:編程,判斷字符類型。輸入字符,如果字符是字母,則輸出“字母”;如果字符是數(shù)字,輸出“數(shù)字”;如果字符是空格或回車,將輸出“分隔符”。如果以上都不正確,則輸出“other”,# include in main() charch;ch=getchar();If (ch= a

11、,程序解析,3.3.1多分支If語(yǔ)句,if(表達(dá)式1)語(yǔ)句1 else if(表達(dá)式2)語(yǔ)句2.else if(表達(dá)式n)語(yǔ)句n else語(yǔ)句n 1,if(ch=a,2020/6/22,28,多分支if語(yǔ)句流程圖,表達(dá)式n?(1)依次計(jì)算并判斷表達(dá)式I,如果為真,則執(zhí)行以下語(yǔ)句(2)如果所有條件都不為真,則執(zhí)行語(yǔ)句n (3)無(wú)論執(zhí)行哪個(gè)語(yǔ)句分支,都不會(huì)執(zhí)行其他分支。示例3-6將百分位分值轉(zhuǎn)換為五級(jí)分值,即90分以上為“A”,80-89分為“B”,70-79分為“C”,60-69分為“D”,60分以下為“E”。(1)將分?jǐn)?shù)定義為整數(shù)類型;將分?jǐn)?shù)定義為字符類型(2)閱讀分?jǐn)?shù);(3)如果分?jǐn)?shù)=90,

12、則“a”被分配給等級(jí),否則,“b”被分配給等級(jí),如果分?jǐn)?shù)=80,則“c”被分配給等級(jí),否則,“d”被分配給等級(jí),如果分?jǐn)?shù)=60,則“e”被分配給等級(jí)(4)以輸出等級(jí)值;程序解析,# includeeintermain() int score;焦炭等級(jí);scanf(%d ,# include int main() int score;Scanf(%d ,首先計(jì)算指定給字符變量grade的grade,然后輸出grade的值,直接輸出grade,小練習(xí),計(jì)算分段水費(fèi),輸入x表示用水量,輸出水費(fèi)y,參考程序-計(jì)算分段水費(fèi),# include int main (void) double x,y;打印(

13、“輸入x :”);Scanf (%lf ),輸入x :-0.5f (-0.50)=0.00,輸入x : 9.5f (9.50)=12.67,輸入x : 21.3f (21.30)=42.75,3.4嵌套if-else語(yǔ)句,if(表達(dá)式1) if(表達(dá)式2)語(yǔ)句1 else語(yǔ)句2 else if(表達(dá)式3)語(yǔ)句3 else語(yǔ)句4,示例3-7:水費(fèi)的分段計(jì)算3333否則y=2.5*x-10.5 否則y=0;參考程序計(jì)算各部分的水費(fèi),包括總水管(空)雙x,y;打印(“輸入x :”);Scanf (%lf , if(條件1) if(條件2)語(yǔ)句1 else /*此else部分屬于哪個(gè)if?*/if(條

14、件3)語(yǔ)句2;Else語(yǔ)句3;對(duì)于else和if之間的匹配,c語(yǔ)言規(guī)定每個(gè)else部分總是屬于缺少相應(yīng)else部分的前一個(gè)if語(yǔ)句。建議使用大括號(hào),以避免看起來(lái)模棱兩可。什么?if(條件1) if(條件2)語(yǔ)句1 else /*該else部分屬于哪個(gè)if?*/if(條件3)語(yǔ)句2 else語(yǔ)句3,判斷閏年的課堂練習(xí),方法1:如果year是400的倍數(shù),或者year是4的倍數(shù)但不是100的倍數(shù),則它是閏年;否則,這不是閏年。方法2:如果年份不是4的倍數(shù),它就不是閏年;否則,如果年份不是100的倍數(shù),它就是閏年;否則,這不是閏年,課堂練習(xí)是計(jì)算某年某月有多少天,輸入兩個(gè)整數(shù)表示年和月,并輸出一個(gè)整

15、數(shù),即該月的天數(shù)。分析:如果月份是1、3、5、7、8、10或12,輸出31;如果月份是4、6、8、9或11,則輸出30,如果月份是2:如果年份是閏年,則輸出29,否則輸出28,2020/6/22,39。示例3.8從終端輸入兩個(gè)實(shí)數(shù)和一個(gè)四運(yùn)算符(、-、*、/)來(lái)執(zhí)行相應(yīng)的操作并輸出操作結(jié)果。如果運(yùn)算符不是上述四個(gè)符號(hào),那么“輸入錯(cuò)誤”將顯示,3.5開關(guān)語(yǔ)句,思維分析,(1)讀入兩個(gè)實(shí)數(shù)x、y和一個(gè)運(yùn)算符op;(2)如果op的值是“”,那么如果輸出x-y的值是“-”,那么如果輸出x-y的值是“*”,那么如果輸出x*y的值是“/”,那么如果輸出x/y的值是其他,指示“輸入錯(cuò)誤”,那么它可以通過多分支if語(yǔ)句來(lái)實(shí)現(xiàn)。接下來(lái),我們將學(xué)習(xí)通過switch語(yǔ)句實(shí)現(xiàn)它,2020/6/22,41,# include int main() charop;雙x,y;printf(“輸入x y op :”);如果除數(shù)為0,則掃描(“% lf % lf % c”),2020/6/22,42,開關(guān)語(yǔ)句的一般形式開關(guān)(表達(dá)式)case常量表達(dá)式1:語(yǔ)句序列1 case常量表達(dá)式2:語(yǔ)句序列2.case常量表達(dá)式n:語(yǔ)句序列n default :語(yǔ)句序列n 1函數(shù):計(jì)算表達(dá)式的值,并將其與常量表達(dá)式的值進(jìn)行比較。當(dāng)?shù)扔诘贗個(gè)值時(shí),

溫馨提示

  • 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論