版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,,第四章 具有選擇結(jié)構(gòu)的 C 程序設(shè)計(jì),,,第三章 簡(jiǎn)單的 C 程序設(shè)計(jì),4.1 if 語(yǔ)句,if 語(yǔ)句是用來判斷所給定的條件是否滿足,根據(jù)判定的結(jié)果 (真或假)來決定執(zhí)行給出的兩種操作之一。,語(yǔ)句格式1 :,if (表達(dá)式) 語(yǔ)句;,語(yǔ)句功能 :,根據(jù)表達(dá)式的結(jié)果來決定是否執(zhí)行格式中的語(yǔ)句。,if 語(yǔ)句的三種格式,,1、表達(dá)式可以是任意表達(dá)式,2、語(yǔ)句只為一條語(yǔ)句,若超過一條,則采用復(fù)合語(yǔ)句,3、當(dāng)表達(dá)式的值為 非0
2、 時(shí)代表“真”;0 時(shí)代表“假”,,,語(yǔ)句格式2 :,if (表達(dá)式) 語(yǔ)句1;else 語(yǔ)句2;,語(yǔ)句功能 :,如果表達(dá)式的值為真(即非0)則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。,# include “stdio.h” main() { int a, b ; scanf( “%d %d\n”, &a,&b) ; if (a>b) print
3、f(“a=%d\n”, a) ; else printf(“b=%d\n”, b); },,,向計(jì)算機(jī)輸入 a,b 兩個(gè)整數(shù),然后判斷 a>b , 若 a>b 則輸出 a 的值。,舉例,# include “stdio.h” main() { int a, b ; scanf( “%d %d\n”, &a,&b) ;
4、 if (a>b) printf(“a=%d\n”, a); },關(guān)系表達(dá)式,輸出函數(shù)調(diào)用語(yǔ)句,,,語(yǔ)句格式3 :,if (表達(dá)式1) 語(yǔ)句1; else if (表達(dá)式2) 語(yǔ)句2; else if (表達(dá)式3) 語(yǔ)句3; … ... else 語(yǔ)句n;,語(yǔ)句功能 :,(else if 結(jié)構(gòu)) 用于實(shí)現(xiàn)多分支情況的處理。即在多個(gè)分支
5、中僅執(zhí)行表達(dá)式為非0值的那個(gè)if下的語(yǔ)句;若所有表達(dá)式都 是 0 值,則執(zhí)行最后一個(gè)else 下的語(yǔ)句。最后一個(gè) else 及其 下面的語(yǔ)句也可以不存在。,,,# include “stdio.h” main() { int g ; scanf( “%d \n”, &g) ;
6、 if (a<60) printf(“不及格” ) ; else if (g<70) printf(“及格” ); else if (g<80) printf(“中” ); else if (g<90) printf(“良” ); else if (g<=100) printf(“優(yōu)” );
7、 else printf(“數(shù)據(jù)無效”); },,,練習(xí),# include “stdio.h” main() {int x; float y; scanf(“%d\n”,&x); if (x=1)&&(x<10)) y=2*x-1; else y=3*x-11 ;
8、 printf( “x=%d,y=5.2f\n”, x,y ); },A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=0,,,練習(xí),寫出下列程序的運(yùn)行結(jié)果,A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50
9、 b=30 c=50,A) * * * * B) % % % % C) % % % %c D) 有語(yǔ)法錯(cuò)誤,不能正確執(zhí)行,A) i=2, j=1, k=3 B) i=1, j=1, k=2 C) i=4, j=2, k=4 D) i=1, j=1, k=3,,,語(yǔ)句格式4 :,語(yǔ)句說明 :,if 語(yǔ)句任意嵌套形式 (即嵌套的位置是任意,不固定的。),
10、注意: 在多個(gè) if-else 嵌套中, else-if 配對(duì)關(guān)系 不能弄錯(cuò)。 一個(gè) else 應(yīng)與它最近的一個(gè)且沒 有其它 else 配對(duì)的 if 組成配對(duì)關(guān)系。,,,main() { int x; float y; scanf(“%d\n”,&x); if (x!=0) if (x>
11、;0) y= 1; else y= -1; else y= 0; printf(“x=%d,y=5.2f\n”,x,y); },練習(xí),# include “stdio.h”main() { int year, z; scanf(“%d”, &year); if (year%4==0)
12、 if (year%100==0) if (year%400)==0) z=1; else z=0; else z=1; else z=0;,if (z) printf(“%d”, year); else printf(
13、 “ a leap year\n”, year); },,,main() { int x,a,b,ok1,ok2; x=100; a=10; b=20; ok1=5; ok2=0; if (a<b) if (b!=15) if ( !ok1) {
14、 x=1; printf( “x=%d\n”,x); } else if (ok2) x=10; x= -1; printf(“x=%d\n”,x); },,,作業(yè),A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000,2.0,C) 0.500000,,,作業(yè),A)
15、34 B) 4 C) 35 D) 3,B) 4,,,在書店買書 ,以100本為限。如果買 1 本不打折扣 ;買2本打折10%; 買3本折扣為 15 %買3本以上折扣為 20 %。 設(shè)書本數(shù)為 x,單價(jià)為 20.00元。 請(qǐng)?jiān)O(shè)計(jì)能實(shí)現(xiàn)該算法的C程序。,作業(yè),27,,,4.2 switch 語(yǔ)句,前面我們學(xué)習(xí)了if 語(yǔ)句,它的基本功能是實(shí)現(xiàn)兩個(gè)分支選擇,但在解決實(shí)際問題時(shí),往往需要用
16、到多分支的選擇。雖然if 語(yǔ)句的規(guī)則嵌套可以實(shí)現(xiàn)多分支的選擇,但不夠直觀簡(jiǎn)潔,特別是在分支較多的情況下,if 語(yǔ)句的嵌套層次也會(huì)更深,從而增加了理解的難度,也不便于修改和擴(kuò)充。 為此,C 語(yǔ)言還提供了一個(gè)用于實(shí)現(xiàn)多分支選擇的 switch 語(yǔ)句,以來解決多分支選擇問題。,,,語(yǔ)句格式 :,switch(表達(dá)式) { case 常量表達(dá)式1 : 語(yǔ)句組1 ; break ;
17、 case 常量表達(dá)式2 : 語(yǔ)句組2 ; break ; … … case 常量表達(dá)式n : 語(yǔ)句組n ; break ; default : 語(yǔ)句組n+1 ; },,,語(yǔ)句格式 :,語(yǔ)句說明 :,首先 計(jì)算表達(dá)式的值,然后依次與每一個(gè) case 中常量表達(dá)式的值進(jìn)行比較,一旦發(fā)現(xiàn)了某個(gè)匹配的值,就執(zhí)行該 cas
18、e 后面的語(yǔ)句組直到執(zhí)行了break 語(yǔ)句為止。 若沒有匹配的值則執(zhí)行 default 后面的語(yǔ)句組。,請(qǐng)編寫程序,根據(jù)輸入的學(xué)生成績(jī),應(yīng)給出相應(yīng)的等級(jí)。 即 : 90 - 100 A 80 - 89 B 70 - 79 C 60 - 69 D 0 - 60 E,main() { int g;
19、 scanf(“%d\n”, &g) ; switch(g/10) { case 10: case 9 : printf(“A\n”); break; case 8 : printf(“B\n”); break; case 7 : printf(“C\n”); break;
20、 case 6 : printf(“D\n”); break; default : printf(“E\n”); } },switch(表達(dá)式) { case 常量表達(dá)式1 : 語(yǔ)句組1 ; break ; case 常量表達(dá)式2 : 語(yǔ)句組2 ; break ; … …
21、 case 常量表達(dá)式n : 語(yǔ)句組n ; break ; default : 語(yǔ)句組n+1 ; },1、表達(dá)式: 可以是整型、字符型或枚舉型等表達(dá) 式,其表達(dá)式的結(jié)果值一定為整數(shù)。 2、常量表達(dá)式: 可以是整數(shù)、字符等常量。 3、語(yǔ)句組: 可以由一條語(yǔ)句或復(fù)合語(yǔ)句構(gòu)成 4、要求 switch 后面的表達(dá)式值的類型必須面 case 的常量表達(dá)式的
22、類型要相同。,請(qǐng)您選擇進(jìn)制轉(zhuǎn)換菜單 1、10進(jìn)制轉(zhuǎn)換為16進(jìn)制 2、16進(jìn)制轉(zhuǎn)換為10進(jìn)制 3、10進(jìn)制轉(zhuǎn)換為 8進(jìn)制 4、8進(jìn)制轉(zhuǎn)換為10進(jìn)制請(qǐng)輸入您的選擇:再輸入轉(zhuǎn)換數(shù)據(jù):,舉例,請(qǐng)編寫一個(gè)數(shù)制轉(zhuǎn)換程序,要求能進(jìn)行如下的數(shù)制轉(zhuǎn)換 10 進(jìn)制轉(zhuǎn)換為16 進(jìn)制; 16 進(jìn)制轉(zhuǎn)換為10 進(jìn)制; 10 進(jìn)制轉(zhuǎn)換為 8 進(jìn)制; 8 進(jìn)制轉(zhuǎn)換為10 進(jìn)制;,main() { int n
23、um, data ; printf(“\n 1:10 -16\n”); printf(“2: 16 - 10 \n”); printf(“\n 3:10 - 8 \n”); printf(“2: 8 - 10 \n”); printf(“\n 請(qǐng)輸入您的選擇 \n”); scanf(“%d \n”, &num) ; switch(nu
24、m) { case 1 : scanf(“% d”,&data); printf(“%d,%x\”, data,data); break; case 2 : scanf(“% x”,&data); printf(“%x,%d\”, data,data); break; case 3 : scanf(“% d”,&data); pr
25、intf(“%d,%o\”, data,data); break; case 4 : scanf(“% o”,&data); printf(“%o,%d\”, data,data); break; default : printf(“數(shù)據(jù)有誤\n”); } },請(qǐng)您選擇進(jìn)制轉(zhuǎn)換菜單 1、10進(jìn)制轉(zhuǎn)換為16進(jìn)制 2、16進(jìn)制轉(zhuǎn)換為
26、10進(jìn)制 3、10進(jìn)制轉(zhuǎn)換為 8進(jìn)制 4、8進(jìn)制轉(zhuǎn)換為10進(jìn)制請(qǐng)輸入您的選擇:再輸入轉(zhuǎn)換數(shù)據(jù):,main() { float x,y; char op; scanf(“%f,%c,%f”,&x,&op,&y); switch(op) { case ‘+’: printf(“% .2f %c % .2f=% .4f\n”
27、,x,op,y,x+y); break; case ’-’: printf(“% .2f %c % .2f=% .4f\n”,x,op,y,x-y); break; case ‘*’: printf(“% .2f %c % .2f=% .4f\n”,x,op,y,x*y); break; case ‘ / ’: if(y==0) p
28、rintf(“數(shù)據(jù)錯(cuò)誤!\n”); else printf(“% .2f %c % .2f=% .4f\n”,x,op, y,x/y); } },請(qǐng)編制一個(gè)能完成兩個(gè)數(shù)的四則運(yùn)算程序(輸入數(shù)值保留兩位小數(shù)。,第四章 具有選擇結(jié)構(gòu)的 C 程序設(shè)計(jì),練習(xí),main() { int year, z; scanf(“%d”
29、,&year); if (year % 4 = = 0) if (year % 100 = = 0) if (year % 400 = = 0) z=1; elae z=0; else z=1; else z=0; if (z)
30、 printf(“%d is ”,year); elae printf(“%d is not”,year); },第四章 具有選擇結(jié)構(gòu)的 C 程序設(shè)計(jì),,,請(qǐng)編寫一程序, 要求輸入 x 的值,輸出y的值,分別利用: 1、不嵌套的 if 語(yǔ)句2、嵌套的 if 語(yǔ)句 3、if –else 語(yǔ)句 4、switch 語(yǔ)句,輸入一個(gè)整數(shù)x, 然后判斷該
31、 數(shù)是否為偶數(shù),若是請(qǐng)打印輸出, 否則不打印。 請(qǐng)編寫程序。,作業(yè),1,請(qǐng)將以下語(yǔ)句改寫成 switch 語(yǔ)句 if (a<30) m=1; else if (a<40) m=2; else if (a<50) m=3; else if (a<60) m=4; else m=5;,2,,,main()
32、 { int u=010,v=0x10,w=10 ; printf(“%d,%d,%d\n”, u,v,w) ; } A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10,3,main()
33、 char c1=‘b’,c2=‘e’; printf(“%d,%c\n”, c2-c1,c2-’a’+’A’); } A) 2, M B) 3, E C) 2, E D) 輸出結(jié)果不確定,5,,,main()
34、 { int k=11; printf(“k=%d,k=%o,c=%x\n”, k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b,4,,,main()
35、 (一) { int a; float b,c; scanf(“%2d %3f %4f ”,&a,&b,&c); printf(“\ na=%d,b=%f,c=%f\n”, a,b,c); } 若運(yùn)行時(shí)從鍵盤輸入9876543210,則上面程序輸出結(jié)
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 選擇結(jié)構(gòu)程序設(shè)計(jì)
- 五選擇結(jié)構(gòu)程序設(shè)計(jì)
- 選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)
- 四選擇結(jié)構(gòu)程序設(shè)計(jì)
- c語(yǔ)言第五章選擇結(jié)構(gòu)程序設(shè)計(jì)
- 《vb選擇結(jié)構(gòu)程序設(shè)計(jì)》教學(xué)設(shè)計(jì)
- 實(shí)驗(yàn)五 選擇結(jié)構(gòu)程序設(shè)計(jì)(一)
- 最簡(jiǎn)單的c程序設(shè)計(jì)――順序程序設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)單項(xiàng)選擇題庫(kù) ()
- 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì)
- c++程序設(shè)計(jì)
- 《c語(yǔ)言程序設(shè)計(jì)》
- c++程序設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)
- c程序設(shè)計(jì)題庫(kù)
- c程序設(shè)計(jì)實(shí)踐
- c語(yǔ)言程序設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)
- c 程序設(shè)計(jì)試題
- c語(yǔ)言程序設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論