c語(yǔ)言上機(jī)新題庫(kù)2015sc12-42logicnd structure_第1頁(yè)
c語(yǔ)言上機(jī)新題庫(kù)2015sc12-42logicnd structure_第2頁(yè)
c語(yǔ)言上機(jī)新題庫(kù)2015sc12-42logicnd structure_第3頁(yè)
c語(yǔ)言上機(jī)新題庫(kù)2015sc12-42logicnd structure_第4頁(yè)
c語(yǔ)言上機(jī)新題庫(kù)2015sc12-42logicnd structure_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余72頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、1計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)2學(xué)習(xí)目標(biāo)了解結(jié)構(gòu)化程序設(shè)計(jì)的一般概念熟悉順序結(jié)構(gòu)、分支結(jié)構(gòu)與循環(huán)結(jié)構(gòu)等三種程序流程控制結(jié)構(gòu)掌握 C 語(yǔ)言實(shí)現(xiàn)分支結(jié)構(gòu)的 if 語(yǔ)句與 switch 語(yǔ)句,能熟練應(yīng)用 if 語(yǔ)句與 switch 語(yǔ)句編寫(xiě)程序掌握 C 語(yǔ)言實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的 while 語(yǔ)句、for 語(yǔ)句與 do-while 語(yǔ)句,能熟練應(yīng)用這三種循環(huán)控制結(jié)構(gòu)編寫(xiě)程序了解三種循環(huán)結(jié)構(gòu)的關(guān)系,掌握在循環(huán)結(jié)構(gòu)中控制程序流程轉(zhuǎn)移的方法3關(guān)系運(yùn)算符和表達(dá)式關(guān)系運(yùn)算符種類(lèi): = !=結(jié)合方向:自左向右優(yōu)先級(jí)別:=!=優(yōu)先級(jí)6(高)優(yōu)先級(jí)7(低)例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(

2、bc /a=(bc)關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表達(dá)式值1/表達(dá)式值1/表達(dá)式值0/d=1/f=04關(guān)系運(yùn)算注意:例 若a=0; b=0.5; x=0.3; 則 a=x278在C中是允許的, 值為0例 int i=1, j=7,a; a=i+(j%4!=0); 則a=2例 a0 結(jié)果為 A100 結(jié)果為105關(guān)系運(yùn)算注意:例 應(yīng)避免對(duì)實(shí)數(shù)作相等或不等的判斷如 1.0/3.0*3.0=1.0 結(jié)果為可改寫(xiě)為:fabs(1.0/3.0*3.0-1.0)1e-606ab!a!ba&ba|b

3、真假真假假假真真邏輯運(yùn)算符和表達(dá)式邏輯運(yùn)算符種類(lèi): ! & |邏輯運(yùn)算真值表C語(yǔ)言中,運(yùn)算量: 0表示“假”, 非0表示“真”, 運(yùn)算結(jié)果: 0表示“假”, 1表示“真”,真假假假假假真真假假真真真假真真7! (2)& (11)| (12)高低例 a=x & xb&xy a=b|x=y !a|ab優(yōu)先級(jí):結(jié)合方向:! :從右向左& :從左向右| :從左向右/ (a=x) & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)8! (2)& (11)| (12)高低優(yōu)先級(jí):結(jié)合方向:! :從右向左& :從左向右| :從左向右例 a=4;b=5; !a a&b a|b !a|b 4&0

4、|2 53&2|84-!0 c&d值為1值為0值為1值為1值為1值為1/(53)&2|(8(4-(!0) 值為19邏輯運(yùn)算符的運(yùn)算優(yōu)先級(jí) (1)邏輯非的優(yōu)先級(jí)最高,邏輯與次之,邏輯或最低,即:?。ǚ牵?&(與) |(或) (2)與其它種類(lèi)運(yùn)算符的優(yōu)先關(guān)系 ! 算術(shù)運(yùn)算 關(guān)系運(yùn)算 位運(yùn)算 & | 賦值運(yùn)算練習(xí): 6 = ! 0 81111110! (2)& (11)| (12)高低優(yōu)先級(jí):結(jié)合方向:! :從右向左& :從左向右| :從左向右短路特性:邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符例 a&b&c /只在a為真時(shí),才

5、判別b的值; 只在a、b都為真時(shí),才判別 c的值例 a|b|c /只在a為假時(shí),才判別b的值; 只在a、b都為假時(shí),才判別 c的值例 a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)&(n=cd)/結(jié)果m=0,n=111邏輯表達(dá)式 1邏輯表達(dá)式的概念 邏輯表達(dá)式是指,用邏輯運(yùn)算符將1個(gè)或多個(gè)表達(dá)式連接起來(lái),進(jìn)行邏輯運(yùn)算的式子。在C語(yǔ)言中,用邏輯表達(dá)式表示多個(gè)條件的組合。 12 邏輯表達(dá)式的值也是一個(gè)邏輯值(非“真”即“假”)。 2邏輯量的真假判定和非 語(yǔ)言用整數(shù)“”表示“邏輯真”、用“”表示“邏輯假”。但在判斷一個(gè)數(shù)據(jù)的“真”或“假”時(shí),卻以和非為根據(jù):如果為,則判定為“邏輯假”

6、;如果為非(包括負(fù)數(shù)),則判定為“邏輯真”。如0.00000為假,0.0000001 、-0.0001、-2 為真 例如,假設(shè)num=12,則: !num的值= ,num=1 num31的值=1。 3說(shuō)明 (1)邏輯運(yùn)算符兩側(cè)的操作數(shù),除可以是和非的整數(shù)外,也可以是其它任何類(lèi)型的數(shù)據(jù),如實(shí)型、字符型等。13 (2)在計(jì)算邏輯表達(dá)式時(shí),只有在必須執(zhí)行下一個(gè)表達(dá)式才能求解時(shí),才求解該表達(dá)式(即并不是所有的表達(dá)式都被求解)。即: 1)對(duì)于邏輯與運(yùn)算,如果第一個(gè)操作數(shù)被判定為“假”,系統(tǒng)不再判定或求解第二操作數(shù)。 2)對(duì)于邏輯或運(yùn)算,如果第一個(gè)操作數(shù)被判定為“真”,系統(tǒng)不再判定或求解第二操作數(shù)。 例1

7、 假設(shè)n1、n2、n3、n4、x、y的值分別為1、2、3、4、1、1,則求解表達(dá)式“(x=n1n2)&(y=n3n4)”后,x的值變?yōu)?,而y的值不變,仍等于1! 例2 !X等價(jià)于 X=0思考:判斷x是否等價(jià)于 判斷x!=014關(guān)于優(yōu)先級(jí)舉例:xy!=z等價(jià): (xy) != zx= = yz 等價(jià): x = = (yyz等價(jià): (xy) z zx+y等價(jià): z (x+y)x=yz等價(jià): x = (yz) (a=1) b 不等價(jià)于a=1 b c1(c2c3)不等價(jià)于c1c2c315Exercise若變量c為char類(lèi)型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是A) a=c= a)|(c= z)C) (

8、a=c) D) (c= a)&(cb?a:cd?c:d 的值求解過(guò)程:該表達(dá)式可改寫(xiě)為ab?a:(cd?c:d)值為8eg. int p=30;printf(“%dn”,(p/30? P/10:p%3); P/3=10 非0,取P/10,結(jié)果為30取d=820練習(xí)設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:ab?a:cb?(ac?a:c):(b); a) 5 b) 4 c) 6 d) 不確定 條件運(yùn)算高于賦值,a大于c為0,取c的值為6,a大于b為1,取(ac?a:c)的值即6,答案:C22練習(xí)若已定義int a=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成的語(yǔ)句的執(zhí)行結(jié)果是_.a+

9、=25&b-=2&c+?printf(*a=%d,b=%d,c=%d,a,b,c):printf(#a=%d,b=%d,c=%dn,a,b,c);.a+=A & ch= C. (類(lèi)型) d. ,A. | | B. % C. ! D. =A. = B. != C. * D. ( )B,C,C,D26以下程序的輸出結(jié)果為:main( ) int i,j,k,a=3,b=2; i=(-a=b+)? - -a :+b ; j=a+; k=b; printf(“i=%d,j=%d,k=%dn”,i,j,k);-a,-前置,a的值為2;b+,+后置,取b的值2;所以- -a=b+為“真”,取表達(dá)式- -a

10、,因此i 的值為1,a 的值為1,b 的值為3+后置,j 的值為1k的值為327能滿(mǎn)足 x 在(-10,10),(100,110)時(shí)為“真”,否則為“假”的表達(dá)式是:a.(10 x-10)| |(100 x110)b. !(x=10) | | ! (x=110)c.(x-10)&(x100)&(x-10)&(x100)&(x110))正確答案為:B,DWhy?test當(dāng)x大于1028以下程序的輸出結(jié)果是 main() int a=4,b=5,c=0,d; d=!a&!b|!c; printf(%dn,d); A) 1 B) 0 C) 非0的數(shù) D) -1 A29C 語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)程序的

11、控制結(jié)構(gòu)(黑箱)單入口單出口的控制結(jié)構(gòu)易于理解三種基本控制結(jié)構(gòu):順序、分支、循環(huán)控制結(jié)構(gòu)可以嵌套,以構(gòu)成更復(fù)雜的控制結(jié)構(gòu)程序的結(jié)構(gòu)化三種基本控制結(jié)構(gòu)可以構(gòu)造任何復(fù)雜的結(jié)構(gòu)化算法結(jié)構(gòu)化程序設(shè)計(jì)原則:自頂向下,逐步求精結(jié)構(gòu)化程序設(shè)計(jì)過(guò)程:首先對(duì)任務(wù)進(jìn)行功能分解,然后使用結(jié)構(gòu)化程序設(shè)計(jì)思想逐一解決各個(gè)子問(wèn)題,最后構(gòu)造原始問(wèn)題的解好處:邏輯性強(qiáng),可讀性好,維護(hù)方便30順序結(jié)構(gòu)順序結(jié)構(gòu)的含義由一組順序執(zhí)行的處理塊組成,每個(gè)處理塊可能包含一條或一組語(yǔ)句,完成一項(xiàng)任務(wù)順序結(jié)構(gòu)是最基本的算法結(jié)構(gòu)語(yǔ)句與復(fù)合語(yǔ)句(語(yǔ)句塊)三種語(yǔ)句結(jié)構(gòu):?jiǎn)握Z(yǔ)句(表達(dá)式;)、空語(yǔ)句(;)、復(fù)合語(yǔ)句(語(yǔ)句序列)31順序結(jié)構(gòu)程序示例分別

12、輸入兩個(gè)復(fù)數(shù)的實(shí)部與虛部,計(jì)算兩個(gè)復(fù)數(shù)的和、差、積、商并輸出結(jié)果#include int main() float a, b, c, d, real, imaginary; printf(“Input reals and imaginaries of two complexesn”); scanf(“%f,%f,%f,%f”, &a, &b, &c, &d); printf(“Sum: %f + %fin”, a + c, b + d); printf(“Difference: %f + %fin”, a c, b d); real = a * c b * d; imaginary = a *

13、 d + b * c; printf(“Product: %f + %fin”, real, imaginary); real = (a*c + b*d) / (c*c + d*d); imaginary = (b*c a*d) / (c*c + d*d); printf(“Quotient: %f + %fin”, real, imaginary); return 0;實(shí)際需要輸入4個(gè)實(shí)數(shù)32分支結(jié)構(gòu)分支結(jié)構(gòu)(選擇結(jié)構(gòu))的含義根據(jù)某一條件的判斷結(jié)果,確定程序的流程,即選擇哪一個(gè)程序分支中的處理塊去執(zhí)行最基本的分支結(jié)構(gòu)是二路分支結(jié)構(gòu)以條件判斷為起點(diǎn),如果判斷結(jié)果為真,則執(zhí)行A處理塊的操作,否則

14、執(zhí)行B處理塊的操作33if 語(yǔ)句兩種形式:形式一:if(表達(dá)式)語(yǔ)句;形式二:if(表達(dá)式)語(yǔ)句1; else 語(yǔ)句2;表達(dá)式語(yǔ)句TF表達(dá)式語(yǔ)句1TF語(yǔ)句2 表達(dá)式后沒(méi)有分號(hào),否則語(yǔ)句部分是一條空語(yǔ)句34使用時(shí)注意:1.if 后面的表達(dá)式不限于是關(guān)系表達(dá)式或邏輯表達(dá)式,可以是任意表達(dá)式,如整型、實(shí)型、字符型等。只要能做出“真”、“假”判斷即可.2.if語(yǔ)句中的“表達(dá)式”必須用“(”和“)”括起來(lái)。3.else子句(可選)是if語(yǔ)句的一部分,必須與if配對(duì)使用,不能單獨(dú)使用。355.當(dāng)if和else下面的語(yǔ)句組,僅由一條語(yǔ)句構(gòu)成時(shí),也可不使用復(fù)合語(yǔ)句形式(即去掉花括號(hào))。6.if 語(yǔ)句中可以嵌套

15、使用if 語(yǔ)句,但嵌套的層數(shù)不宜太多。在實(shí)際編程時(shí),應(yīng)適當(dāng)控制嵌套層數(shù)(23層)。在嵌套的if 語(yǔ)句中else子句與最近的,不帶else的if相結(jié)合(最近配對(duì)原則)if () if () if ()語(yǔ)句1; if()語(yǔ)句1; else 語(yǔ)句2; else 語(yǔ)句2;為明確匹配關(guān)系,避免匹配錯(cuò)誤,強(qiáng)烈建議:將內(nèi)嵌的if語(yǔ)句,一律用花括號(hào)括起來(lái)。36格式一:if( )if( )語(yǔ)句1else語(yǔ)句2else if()語(yǔ)句3else 語(yǔ)句4格式二:if () if()語(yǔ)句1 elseif()語(yǔ)句2else 語(yǔ)句3注意if與else的配對(duì)關(guān)系。37if-else 語(yǔ)句示例一輸入一個(gè)字符,判斷它是否為09之

16、間的數(shù)字#include int main() char c; printf(“Input a character: ”); c = getchar(); if(c = 48 & c = 57) printf(“It is a number.n”); else printf(“No, it is not a number.n”); return 0;因:字符以ASCII碼值存儲(chǔ)且數(shù)字的ASCII碼值4857故:比較ASCII碼值38if-else 語(yǔ)句示例二輸入一個(gè)整數(shù),輸出其絕對(duì)值#include int main() int n, abs; printf(“Enter integer: ”

17、); scanf(“%d”, &n); abs = n; if(abs 0) abs = abs; printf(“Original integer: %d, absolute value: %dn”, n, abs); return 0;39條件分支嵌套示例求方程 ax2 + bx + c = 0 的根#include #include / 由于用到平方根函數(shù),要用此頭文件int main() float a, b, c, x1, x2, p, q, m; / 定義實(shí)型變量 printf(“Enter 3 coefficients: “) ; scanf(“%f,%f,%f“, &a, &b

18、, &c); / 從鍵盤(pán)讀入方程的三個(gè)系數(shù) if( a = 0.0 & b = 0 & c = 0 ) / 分支1:三個(gè)系數(shù)全為0 printf(“any valuen“); else if( a = 0 & b != 0 ) / 分支2:系數(shù)a為0,解一元一次方程 printf(“x1 = x2 = %fn, c / b); else / 分支3:解一元二次方程的兩個(gè)根 m = b * b 4.0 * a * c;40條件分支嵌套示例 if( m = 0 ) / 解實(shí)根 x1 = ( b + sqrt(m) ) / ( 2.0 * a ); x2 = ( b sqrt(m) ) / ( 2.

19、0 * a ); printf(“x1 = %fn“, x1 ); / 輸出兩個(gè)實(shí)根 printf(“x2 = %fn“, x2 ); else / 解虛根 p = b / ( 2.0 * a ); q = sqrt(m) / ( 2.0 * a ); printf(“x1 = %f + %fin“, p, q); printf(“x2 = %f %fin“, p, q); return 0;41練習(xí)練習(xí) 200304(12) 有以下程序 main() int i=1,j=1,k=2; if(j+k+)&i+) printf(%d,%d,%dn,i,j,k); 執(zhí)行后輸出結(jié)果是 a) 1,1,

20、2 b) 2,2 ,1 c) 2,2,2 d) 2,2,3 C,k+ 未執(zhí)行42練習(xí) 若執(zhí)行以下程序時(shí)從鍵盤(pán)上輸入9,則輸出結(jié)果是a) 11 b) 10 c) 9 d) 8main0 int n;scanf(%d,&n);if(n+10) printf(%dn,n);else printf(%dn,n-);B,執(zhí)行IF條件43練習(xí)有如下程序main0 int a=2,b= -1,c=2;if (ab) if (b0) c=0;else c+;printf(%dn,c);該程序的輸出結(jié)果是a) 0 b) 1 c) 2 d) 3C分析:不執(zhí)行C=0和C+,注意else和最近的if配對(duì)44練習(xí)以下程

21、序的輸出結(jié)果是( )A) -1 1 B) 0 1 C) 1 0 D) 0 0main( ) int a= -1,b=1,k;if (+a0)& ! (b- =0)printf(%d %dn,a,b);elseprintf(%d %dn,b,a); C分析:+前置,a為0, +a 0不成立,b-不執(zhí)行,直接執(zhí)行else,運(yùn)行后a=0,b=145練習(xí)有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(cB);執(zhí)行該程序段后,x的值為A) ture B) false C) 0 D) 1D46練習(xí)以下程序運(yùn)行后的輸出結(jié)果是 。 main() int a=1,b=3,c=5;

22、 if (c=a+b) printf(yesn); else printf(non); 答案為:yes注意c=a+b,c值為4非0不是c=a+b47 例 注意區(qū)分“=”與“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);48練習(xí)若有以下程序 main() int p,a=5; if(p=a!=0) printf(%dn,p); else printf(%dn,p+2); 執(zhí)行后輸出結(jié)果是。 結(jié)果是1分析:首先判斷a!=0是否成立a!=0值為1,p=1,再判斷p為真,執(zhí)行if語(yǔ)句49E

23、xercise假定所有變量均已正確說(shuō)明,下列程序段運(yùn)行后x的值是( )a=b=c=0;x=35;if(!a) x-;else if(b);if (c) x=3;else x=4;a)34 b)4 c)35 d)3!a=1,執(zhí)行x-,x=34c=0,執(zhí)行else x=4答案為B50Exercise以下兩條if語(yǔ)句可合并成一條if語(yǔ)句為_(kāi)if(ab) printf(*y%dn,y); else printf(#x=%n,x);if(a=b)x=1;printf(#x=%dn,x);else y=2;printf(*y=%dn,y);51Exercise 有如下程序 main0 float x=2.

24、0,y;if(x0.0) y=0.0;else if(x10.0) y=1.0/x;else y=1.0;printf(%fn,y);該程序的輸出結(jié)果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000C,執(zhí)行if(x10.0)思考:若 Y=1/X;52課后練習(xí)1。若有定義:int a=10,b=9,c=8;接著順序執(zhí)行下列語(yǔ)句后,變量b中的值是 。c=(a-=(b-5);c=(a%11)+(b=3);2、有如下程序main0 int y=3,x=3,z=1;printf(%d %dn,(+x,y+),z+2);該程序的輸出結(jié)果?53switch語(yǔ)句

25、形式: switch (表達(dá)式) case 常量表達(dá)式1:語(yǔ)句1; case 常量表達(dá)式2:語(yǔ)句2; ; case 常量表達(dá)式n:語(yǔ)句n; default :語(yǔ)句n+1; 表達(dá)式后沒(méi)有“;” ,否則會(huì)出現(xiàn)錯(cuò)誤54switch 分支語(yǔ)法計(jì)算過(guò)程先計(jì)算表達(dá)式的值依次與一組常量比較若相同則執(zhí)行該分支否則轉(zhuǎn)向default分支退出switch語(yǔ)句說(shuō)明switch后面的表達(dá)式必須為整型、字符型或枚舉型case后面必須為常量表達(dá)式,則各個(gè)case值必須不同case分支中的語(yǔ)句可以有多條,不需要花括號(hào)switch( 表達(dá)式 ) case 常量表達(dá)式1: 語(yǔ)句組1 case 常量表達(dá)式2: 語(yǔ)句組2 case

26、 常量表達(dá)式n: 語(yǔ)句組n default: 語(yǔ)句組55使用注意:switch語(yǔ)句中可以不含default分支,default分支并不限定在最后,幾個(gè)case分支沒(méi)有順序區(qū)別,但必須做適當(dāng)處理,否則會(huì)影響執(zhí)行結(jié)果,如果沒(méi)有default子句,且沒(méi)有case子句匹配,則不執(zhí)行為了執(zhí)行某個(gè)case分支后跳出switch結(jié)構(gòu),應(yīng)在每個(gè)case分支后加上break語(yǔ)句,流程圖如圖所示:56有break的情況:表達(dá)式語(yǔ)句1語(yǔ)句2語(yǔ)句n+1情況1情況2default57無(wú)break的情況表達(dá)式e語(yǔ)句1語(yǔ)句2 . . .語(yǔ)句n+1語(yǔ)句n+1e=值1default58多個(gè)case可共用一組語(yǔ)句如: case

27、a: case b: 語(yǔ)句; ; 若沒(méi)有default ,當(dāng)表達(dá)式的值與case 一個(gè)都不合時(shí),switch相當(dāng)于一條空語(yǔ)句switch語(yǔ)句可以嵌套使用 59程序舉例根據(jù)考試成績(jī)的等級(jí)打印出百分制分?jǐn)?shù)段A等:85100分;B等:7084分;C等:6069分;D等:小于60分;其余分?jǐn)?shù)均視為錯(cuò)誤成績(jī)。分析:成績(jī)分為四等,用if語(yǔ)句實(shí)現(xiàn)程序較復(fù)雜,字符a、b、c、d恰好是順序型的數(shù)據(jù),考慮用switch語(yǔ)句實(shí)現(xiàn)。60兩個(gè)程序兩種結(jié)果程序1: main( ) char grade; scanf(“%c”,&grade); switch(grade) case a: printf(“85100n”);

28、 case b: printf(“7084n”); case c: printf(“6069n”); case d: printf(“60n”); default : printf(“errorn”); 運(yùn)行結(jié)果:若輸入:a輸出為:851007084606960error61程序2:main( ) char grade; scanf(“%c”,&grade); switch(grade) case a: printf(“85100n”); break; case b: printf(“7084n”); break; case c: printf(“6069n”); break; case d:

29、 printf(“60n”); break; default : printf(“errorn”); 運(yùn)行結(jié)果:若輸入:a輸出為:8510062設(shè)計(jì)練習(xí)將下面的程序段用switch語(yǔ)句改寫(xiě) if (s60) m=1; else if (s70) m=2; else if (s80) m=3; else if (s90) m=4; else if (s=100) m=5;分析:小于60:m=1;6069:m=2;7079:m=3;8089: m=4;90100: m=5;共同特點(diǎn)分析:6069:十位數(shù)字為6;7079:十位數(shù)字為7;8089:十位數(shù)字為8;9099:十位數(shù)字為9。63程序段改寫(xiě)為

30、: switch (s/10) case 6: m=2;break; case 7: m=3;break; case 8: m=4;break; case 9: case 10: m=5;break; default: m=1; 表達(dá)式s/10,恰好可以取出變量s 的十位數(shù)字,分情況討論后得到該程序段64switch 分支示例根據(jù)輸入的成績(jī)等級(jí),打印是否通過(guò)信息#include int main() char grade; printf(“Input the grade(A,B,C,D,E):“); scanf(“%c“, &grade); switch( grade ) case A: ca

31、se B: case C: case D: printf(“Passn“); break; case E: printf(“Failn“); break; default: printf(“Errorn“); return 0;如果邏輯上確實(shí)如此,則不同的case分支可以使用同一個(gè)語(yǔ)句組,這也許是特意不在某些case分支中使用break的唯一正當(dāng)理由65練習(xí)若有以下定義和語(yǔ)句:( )int u=010,v=0 x10,w=10;printf(%d,%d,%dn”,u,v,w); 則輸出結(jié)果是:A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,10A66練習(xí)在以下一組運(yùn)算

32、符中,優(yōu)先級(jí)最高的運(yùn)算符是( )A)= B)= C)% D)&C,%,=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b0D68參p57.(43) 若a、 b、c1、c2、x、y、均是整型變量,正確的switch語(yǔ)句是a) switch(a+b); b) switch(a*a+b*b) case 1:y=a+b; break; case 3: case 0:y=a-b; break; case 1:y=a+b;break; case 3:y=b-a,break; c) switch a d) switch(a-b) case c1 :y=a-b; break; default: y

33、=a*b;break;case c2: x=a*d; break; case 3: case 4: x=a+b; break;default: x=a+b; case 10: case 11: y=a- b;break; D,CORRECT; error c1,c2是變量,a沒(méi)有括號(hào)相同的LABEL369有如下程序main0 int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%dn,a,b);該程序的輸出結(jié)果是A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2A,從case 1 開(kāi)始執(zhí)行2次a+,一次b+70練習(xí)int n=c;switch(n+) default: printf(error);break;case a: case b:printf(good);break;case c: printf(pass);case d: printf(warn);答案:passwarnn+用于判斷時(shí),值為c,執(zhí)行最后兩條case語(yǔ)句71練習(xí)若有以下定義: int a,b,x; 則正確的swit

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論