第4章選擇結(jié)構(gòu)_第1頁(yè)
第4章選擇結(jié)構(gòu)_第2頁(yè)
第4章選擇結(jié)構(gòu)_第3頁(yè)
第4章選擇結(jié)構(gòu)_第4頁(yè)
第4章選擇結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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、第4章 選擇結(jié)構(gòu)1、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A) x%2=0B) x/2C) x%2!=0D) x%2=1 參考答案:A【解析】算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí),所以當(dāng)x為大于1的奇數(shù)時(shí),A選項(xiàng)的值為假,即0B選項(xiàng)的值為不定值,但絕對(duì)不是0C選項(xiàng)的值為真,即1D選項(xiàng)的值為真,即12、當(dāng)變量c的值不為2、4、6時(shí),值為"真"的表達(dá)式是A) (c>=2 && c<=6)&&(c%2!=1)B) (c=2)|(c=4)|(c=6)C) (c>=2 && c<=6)&&

2、amp; !(c%2)D) (c>=2 && c<=6) | (c!=3) | (c!=5) 參考答案:D【解析】邏輯或表達(dá)式中有一個(gè)值不為0,結(jié)果即為真,邏輯與表達(dá)式中只有兩個(gè)運(yùn)算對(duì)象均非零,結(jié)果才為真所以只有選項(xiàng)D滿足要求3、以下敘述中正確的是A) 在C語(yǔ)言中,邏輯真值和假值分別對(duì)應(yīng)1和0B) 關(guān)系運(yùn)算符兩邊的運(yùn)算對(duì)象可以是語(yǔ)言中任意合法的表達(dá)式C) 對(duì)于浮點(diǎn)變量x和y,表達(dá)式:x=y 是非法的,會(huì)出編譯錯(cuò)誤D) 分支結(jié)構(gòu)是根據(jù)算術(shù)表達(dá)式的結(jié)果來(lái)判斷流程走向的 參考答案:B【解析】A選項(xiàng)中,在C語(yǔ)言中,邏輯真值對(duì)應(yīng)非0; C選項(xiàng)中,表達(dá)式:x=y 是合法的;D選

3、項(xiàng)中,分支結(jié)構(gòu)的流程走向是根據(jù)表達(dá)式的值,并不僅僅是算數(shù)表達(dá)式的值。因此B選項(xiàng)正確。4、下列關(guān)系表達(dá)式中,結(jié)果為"假"的是A) 3 <= 4B) (3 < 4) = 1C) (3 + 4) > 6D) (3 != 4) > 2 參考答案:D【解析】B選項(xiàng)中,關(guān)系表達(dá)式(3<4)=1即1=1,結(jié)果為真; C選項(xiàng)中,(3+4)>6即7>6,結(jié)果為真;A選項(xiàng)中,3<=4結(jié)果為真。D選項(xiàng)中,(3!=4)>2即1>2,結(jié)果為假。因此D選項(xiàng)正確。5、以下敘述中正確的是A) 對(duì)于邏輯表達(dá)式:a+ | b+,設(shè)a的值為1,則求解表

4、達(dá)式的值后,b的值會(huì)發(fā)生改變B) 對(duì)于邏輯表達(dá)式:a+ && b+,設(shè)a的值為0,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變C) else不是一條獨(dú)立的語(yǔ)句,它只是if語(yǔ)句的一部分D) 關(guān)系運(yùn)算符的結(jié)果有三種:0,1,-1 參考答案:C【解析】B選項(xiàng)和A選項(xiàng)中,對(duì)于邏輯表達(dá)式,其中b的值不會(huì)因?yàn)楸磉_(dá)式的結(jié)果發(fā)生改變;D選項(xiàng)中,關(guān)系運(yùn)算符的結(jié)果有"真"和"假"兩種。因此C選項(xiàng)正確。6、有以下程序 #include <stdio.h> main() int x=35, B; char z='B' ; B = ( x )

5、&& ( z <'b' ); printf("%dn", B ); 程序運(yùn)行后的輸出結(jié)果是A) 1 B) 0 C) 35 D) 66 參考答案:A【解析】本題重點(diǎn)考察邏輯運(yùn)算符和關(guān)系運(yùn)算符的相關(guān)知識(shí),已知變量x為整型變量,并賦值為35,變量z為字符型變量,并賦值為'B'。語(yǔ)句B=(x)&&(z<'b');中,(x)的值為1,'B'的asscii碼小于'b'的asscii碼,所以(z<'b')的值也為1,1&&1結(jié)果

6、為1。因此A選項(xiàng)正確。7、若變量已正確定義,以下選項(xiàng)中非法的表達(dá)式是A) a!=4|'b'B) 'a'=1/2*(x=y=20,x*3)C) 'a' % 4D) 'A' + 32 參考答案:B【解析】A選項(xiàng)中'a'即表示a為字符常量,再給'a'賦值1/2*(x=y=20,x*3),是不正確的。因此B選項(xiàng)正確。8、與數(shù)學(xué)表達(dá)式xyz對(duì)應(yīng)的C語(yǔ)言表達(dá)式是A) (x>=y)|(y>=x)B) (x>=y>=z)C) (x>=y)!(y>=z)D) (x>=y)&a

7、mp;&(y>=z) 參考答案:D【解析】本題考察關(guān)系表達(dá)式和邏輯表達(dá)式,y大于等于x同時(shí)y小于等于z,因此x<=y和y<=z是邏輯與的關(guān)系。因此D選項(xiàng)正確。9、以下敘述中正確的是A) 邏輯"或"(即運(yùn)算符|)的運(yùn)算級(jí)別比算術(shù)運(yùn)算要高B) C語(yǔ)言的關(guān)系表達(dá)式:0<x<10完全等價(jià)于: (0<x) && (x<10)C) 邏輯"非"(即運(yùn)算符!)的運(yùn)算級(jí)別是最低的D) 由&&構(gòu)成的邏輯表達(dá)式與由|構(gòu)成的邏輯表達(dá)式都有"短路"現(xiàn)象 參考答案:D【解析】B選項(xiàng)

8、中,(x>0)&&(x<10)的值是1或0,條件是x>0 并且x <10。但是 0<x<10這種寫法的結(jié)果任何時(shí)候都是1; C選項(xiàng)中,邏輯"非"(即運(yùn)算符!)的運(yùn)算級(jí)別是最高的;A選項(xiàng)中,算術(shù)運(yùn)算符優(yōu)先級(jí)較高,關(guān)系和邏輯運(yùn)算符優(yōu)先級(jí)較低。因此D選項(xiàng)正確。10、表示關(guān)系式xyz的C語(yǔ)言表達(dá)式的是A) (x<=y)&&(y<=x)B) (x<=y)|(y<=x)C) (x<=y<=z)D) x<=y)!(y<=x) 參考答案:A【解析】本題考察關(guān)系表達(dá)式和邏輯表達(dá)

9、式,y大于等于x同時(shí)y小于等于z,因此x<=y和y<=z是邏輯與的關(guān)系。因此A選項(xiàng)正確。11、有以下程序 #include <stdio.h> void fun (char *c) while(*c) if( *c >= 'a' && *c <= 'z') *c =*c - ('a' - 'A'); c+; main() char s81; gets(s); fun(s); puts(s); 當(dāng)執(zhí)行程序時(shí)從鍵盤上輸入Hello Beijing<回車>,則程序的輸出結(jié)果

10、是A) hello beijingB) Hello BeijingC) HELLO BEIJINGD) hELLO Beijing 參考答案:C【解析】主程序讀取整個(gè)字符串存于s中,調(diào)用fun函數(shù),字符指針c指向數(shù)組s。函數(shù)fun的功能是把指針c所指向的字符數(shù)組中的所有小寫字符轉(zhuǎn)換為大寫。gets函數(shù)可以把空格作為字符串的一部分輸入,以回車作為輸入結(jié)束。如果*c為小寫字符,則*c=*c-32(轉(zhuǎn)大寫)。因此C選項(xiàng)正確。12、若有以下程序 #include <stdio.h> main() int a=6, b=0, c=0; for ( ;a&&(b=0); ) b

11、 += a; a -= c+; printf("%d,%d,%dn", a,b,c); 則程序的輸出結(jié)果是A) 5,6,0 B) 6,0,0 C) 6,6,1 D) 5,6,1 參考答案:C【解析】本題重點(diǎn)考察C語(yǔ)言中for語(yǔ)句和邏輯表達(dá)式,for語(yǔ)句的一般形式為: for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句其循環(huán)中的"表達(dá)式1(循環(huán)變量賦初值)"、"表達(dá)式2(循環(huán)條件)"和"表達(dá)式3(循環(huán)變量增量)"都是選擇項(xiàng), 即可以缺省,但";"不能缺省。該題目中省略了"表達(dá)式1(循環(huán)變量賦初

12、值)"和"表達(dá)式3(循環(huán)變量增量)"。for ( ;a&&(b=0); )b+=a;a-=c+;相當(dāng)于while(a&&(b=0)) b+=a;a-=c+;。因此C選項(xiàng)正確。13、有以下程序 #include <stdio.h> main() double x=2.0, y; if( x<0.0 ) y=0.0; else if( (x<5.0) && (!x) ) y=1.0 / ( x+2.0 ); else if( x<10.0 ) y=1.0 / x; else y=10.0;

13、printf(" %fn ", y ); 程序運(yùn)行后的輸出結(jié)果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000 參考答案:C【解析】本題重點(diǎn)考察if語(yǔ)句,變量x和y均為double類型,由于變量x賦值為2.0,因此執(zhí)行if(x<5.0)&&(!x),即條件為0,繼續(xù)執(zhí)行if( x<10.0 ),條件為1,即執(zhí)行y=1.0 / x;。依據(jù)printf()函數(shù)輸出類型中f是以小數(shù)形式輸出單、雙精度實(shí)數(shù)。因此C選項(xiàng)正確。14、若a是數(shù)值類型,則邏輯表達(dá)式 (a=1)|(a!=1)的值是A) 1B) 0C)

14、 2D) 不知道a的值,不能確定 參考答案:A【解析】邏輯或"|"要求只要兩邊的運(yùn)算對(duì)象有一個(gè)非零,結(jié)果就為真,雖然不知道a的值,但是若a為1,則左邊運(yùn)算對(duì)象為1,若a的值不是1,則右邊運(yùn)算對(duì)象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即115、有以下程序#include <stdio.h>main() int a=1,b=2,c=3,d=0; if (a=1 && b+=2)if (b!=2|c-!=3)printf("%d,%d,%dn",a,b,c); else printf("%d,%d,%dn"

15、;,a,b,c); else printf("%d,%d,%dn",a,b,c);程序運(yùn)行后的輸出結(jié)果是A) 1,3,2 B) 1,3,3 C) 1,2,3 D) 3,2,1 參考答案:B【解析】else總是和最近的if配對(duì),所以進(jìn)入第一個(gè)if語(yǔ)句中條件判斷時(shí),因?yàn)槭沁壿嬇c操作需要兩邊運(yùn)算對(duì)象的值均為非零值,才為真,所以需要逐個(gè)執(zhí)行判斷的結(jié)果為1,不再執(zhí)行第二個(gè)case語(yǔ)句中的操作而是進(jìn)入第二個(gè)if語(yǔ)句條件判斷,因?yàn)閎!=2條件成立所以整個(gè)條件表達(dá)式的值為真,所以不再執(zhí)行邏輯或的第二個(gè)運(yùn)算對(duì)象(c- !=3)c的值不變,也不再執(zhí)行第一個(gè)else語(yǔ)句打印a的值1,b的值3,c

16、的值316、若有以下程序 #include <stdio.h> main() int a=1,b=2,c=3,d=4; if (a=2) | (b=1) c=2; if (c=3) && (d=-1) a=5; printf("%d,%d,%d,%dn", a,b,c,d); 則程序的輸出結(jié)果是A) 1,2,3,4B) 2,1,2,-1C) 5,1,2,-1D) 2,2,2,4 參考答案:D【解析】第一個(gè)if語(yǔ)句的判斷條件中是邏輯或表達(dá)式,所以只要有一個(gè)運(yùn)算對(duì)象為真結(jié)果就為真,且如果前面的已經(jīng)為真,后面的表達(dá)式不再進(jìn)行執(zhí)行判斷執(zhí)行第一個(gè)if判斷條

17、件時(shí)a的值為2,整個(gè)表達(dá)式的值為真,b的值不變,c的值為2判斷第二個(gè)if條件為邏輯與表達(dá)式,只有兩個(gè)運(yùn)算對(duì)象均非零,才為真,第一個(gè)表達(dá)式c=3,不成立,不再判斷第二個(gè)運(yùn)算對(duì)象,所以不執(zhí)行d=-1操作和a=5操作所以結(jié)果為選項(xiàng)D17、設(shè)有定義:int a=0,b=1;,以下表達(dá)式中,會(huì)產(chǎn)生"短路"現(xiàn)象,致使變量b的值不變的是A) a+ && b+B) a+ | +bC) +a && b+D) +a | +b 參考答案:A【解析】運(yùn)算符"+"放在變量前面時(shí),表示將變量+1,再參與其他操作,a+ && b+時(shí),由

18、于a值是0直接判定與運(yùn)算結(jié)果為0,忽視b+的值,因此b值不發(fā)生改變,答案為A選項(xiàng)。18、以下表達(dá)式的值與x無(wú)關(guān)、其值恒為真的是A) 0 < x < 5 B) x>10 && x<5 C) x>10 && x<5 D) x<10 && x>5 參考答案:A【解析】邏輯與只有在"&&"符號(hào)兩邊操作均為真時(shí),邏輯與為真,故排除B,D選項(xiàng);邏輯或當(dāng)且只當(dāng)"|"符號(hào)兩邊操作至少有一個(gè)為真時(shí),邏輯或結(jié)果為真,x>10 | x<5 為真與x值有關(guān)

19、,故排除C選項(xiàng);答案為A選項(xiàng)。19、以下選項(xiàng)中錯(cuò)誤的是A) a&=b 與 a=a&b 等價(jià)B) a=b 與 a=ab 等價(jià) C) a|=b 與 a=a|b 等價(jià) D) a!=b 與 a=a!b 等價(jià) 參考答案:D【解析】D選項(xiàng)中,a!=b表示a不等于b時(shí),運(yùn)算結(jié)果為1,或者為0;而a=a!b是一種語(yǔ)法錯(cuò)誤,!是非運(yùn)算,且是單目運(yùn)算符,只要求有一個(gè)操作數(shù),故兩者不等價(jià),答案為D選項(xiàng)。20、若有定義:int a=0,b=0,c=0,d=0;,以下關(guān)于C語(yǔ)言表達(dá)式:(+a | +b) ? +c : +d 執(zhí)行順序的敘述正確的是A) 先執(zhí)行+a,表達(dá)式+a的值為1;再執(zhí)行+b,表達(dá)式+

20、b的值為1,由此可確定(+a | +b)值為1,因此執(zhí)行+cB) 先執(zhí)行+a,表達(dá)式+a的值為1,由此可確定(+a | +b)值為1,因此執(zhí)行+cC) 先執(zhí)行+b,表達(dá)式+b的值為1;再執(zhí)行+a,表達(dá)式+a的值為1,由此可確定(+a | +b)值為1,因此執(zhí)行+cD) 先執(zhí)行+b,表達(dá)式+b的值為1,由此可確定(+a | +b)值為1,因此執(zhí)行+c 參考答案:B【解析】表達(dá)式1?表達(dá)式2:表達(dá)式3,若表達(dá)式1為真,則執(zhí)行表達(dá)式2,否則執(zhí)行表達(dá)式3,+a表示先將變量a+1,再執(zhí)行其他操作,邏輯或運(yùn)算符遵循"短路求值"策略,即只有在僅靠左操作數(shù)的值無(wú)法確定該邏輯表達(dá)式的結(jié)果時(shí),

21、才會(huì)求解右操作數(shù),表達(dá)式(+a | +b)中,左操作數(shù)+a的值為1,已經(jīng)可以確定整個(gè)邏輯表達(dá)式的結(jié)果為1,因此右操作數(shù)+b不再求解,直接執(zhí)行表達(dá)式2,即+c,答案為B選項(xiàng)。21、若有定義:int a=0,b=0,c=0,d=0; ,有C語(yǔ)言表達(dá)式 (a+ && b+) ? c+ : d+,以下關(guān)于其執(zhí)行順序的敘述正確是A) 先執(zhí)行a+,表達(dá)式a+的值為0,由此即可確定(a+&&b+)的值為0,因此執(zhí)行d+B) 先執(zhí)行a+,表達(dá)式a+的值為0;再執(zhí)行b+,表達(dá)式b+的值為0,由此可確定(a+ && b+)值為0,因此執(zhí)行d+C) 先執(zhí)行a+,表確定

22、(a+ && b+)值為1,因此執(zhí)行c+達(dá)式a+的值為1;再執(zhí)行b+,表達(dá)式b+的值為1,由此可D) 先執(zhí)行b+,表達(dá)式b+的值為1;再執(zhí)行a+,表達(dá)式a+的值為1,由此可確定(a+ && b+)值為1,因此執(zhí)行c+ 參考答案:A【解析】表達(dá)式1?表達(dá)式2:表達(dá)式3,若表達(dá)式1為真,則執(zhí)行表達(dá)式2,否則執(zhí)行表達(dá)式3。邏輯與運(yùn)算符遵循"短路求值"策略,即只有在僅靠左操作數(shù)的值無(wú)法確定該邏輯表達(dá)式的結(jié)果時(shí),才會(huì)求解右操作數(shù),表達(dá)式(a+&&b+)中,左操作數(shù)a+的值為0,已經(jīng)可以確定整個(gè)邏輯表達(dá)式的結(jié)果為0,因此右操作數(shù)b+不再求

23、解,直接執(zhí)行表達(dá)式3,即d+,答案為A選項(xiàng)22、下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的敘述中正確的是()。A) 可以是任意合法的表達(dá)式B) 只能是整數(shù)0或非0整數(shù)C) 可以是結(jié)構(gòu)體類型的數(shù)據(jù)D) 只能是整數(shù)0或1 參考答案:A【解析】C語(yǔ)言的邏輯運(yùn)算符比較特別,它的操作數(shù)沒(méi)有明確的數(shù)據(jù)類型,可以是任意合法的表達(dá)式,所以選擇A)。23、設(shè)有宏定義: #define IsDIV(k,n) ( ( k%n=1) ? 1 : 0)且變量m已正確定義并賦值,則宏調(diào)用: IsDIV(m,5) && IsDIV(m,7)為真時(shí)所要表達(dá)的是A) 判斷m是否能被5和7整除B) 判斷m被5和7整除是否都余

24、1C) 判斷m被5或者7整除是否余1D) 判斷m是否能被5或者7整除 參考答案:B【解析】本題考查邏輯運(yùn)算符的相關(guān)概念,邏輯與若要為真,那么兩邊都要為真,所需要m都能被5和7整除都余1,所以選項(xiàng)B正確。24、有以下程序#include <stdio.h>main() int c,d; c= 13&5; d=10&&5; printf("%d,%dn", c, d); 程序的運(yùn)行結(jié)果是A) 5,1 B) 1,1 C) 18,1 D) 13,1 參考答案:A【解析】"&"按位與運(yùn)算,13=1101B,5=101B,

25、執(zhí)行語(yǔ)句c=13&5;結(jié)果為101B=5,即c=5。"&&"邏輯與運(yùn)算,10與5均為真,結(jié)果為真,即d=1。A選項(xiàng)正確。25、有以下程序#include <stdio.h>main() char c='A' int x=36, b; b= (x>>2) && ( c<'a' ); printf("%dn", b );程序運(yùn)行后的輸出結(jié)果是A) 1 B) 0 C) 2 D) 4 參考答案:A【解析】">>"右移運(yùn)算符,x=3

26、6,執(zhí)行x>>2后,x=9;"&&"邏輯與運(yùn)算,先計(jì)算左邊表達(dá)式真假,若為假,不計(jì)算右表達(dá)式,整個(gè)邏輯表達(dá)式為假,若左表達(dá)式為真,再計(jì)算右表達(dá)式,之后做邏輯與運(yùn)算;x>>2為真,A的ASCII碼為65,a的ASCII碼為97,c<'a'為真,整個(gè)邏輯表達(dá)式(x>>2) && ( c<'a' )為真,得b=1。A選項(xiàng)正確。26、若變量已正確定義,則以下for循環(huán) for ( x=0,y=0; ( y!=123 ) && ( x<4 ); x+

27、);A) 執(zhí)行4次 B) 執(zhí)行3次C) 執(zhí)行次數(shù)不確定 D) 執(zhí)行123次 參考答案:A【解析】for循環(huán)語(yǔ)句格式:for(exp1;exp2;exp3)。exp1通常用來(lái)給循環(huán)變量賦初值; exp2通常是循環(huán)條件,以便決定是否繼續(xù)執(zhí)行循環(huán)體;exp3通??捎脕?lái)修改循環(huán)變量的值。程序執(zhí)行過(guò)程為:賦初值x=0,y=0;邏輯表達(dá)式y(tǒng)!=123為真,x<4為真,則整個(gè)表達(dá)式( y!=123 ) && ( x<4 )為真,循環(huán)條件成立;x=1;再次判斷表達(dá)式為真;x=2;直到x=4時(shí),y!=123為真,x<4為假,則整個(gè)表達(dá)式( y!=123 ) &&

28、 ( x<4 )為假,循環(huán)條件不成立,退出循環(huán)。for循環(huán)執(zhí)行4次,A選項(xiàng)正確。27、以下程序的功能是判斷輸入的一個(gè)整數(shù)是否能被3或7整除,若能整除,輸出YES,否則輸出NO。在下劃線處應(yīng)填入的選項(xiàng)是#include <stdio.h>main() int k; printf("Enter a int number : "); scanf("%d", &k ); if _ printf("YESn"); else printf("NOn"); printf("%dn",

29、k%3);A) ( (k%3=0) | (k%7=0) )B) (k/3=0) | (k/7=0)C) ( (k%3=0) | (k%7=0) )D) ( (k%3=0)&& (k%7=0) ) 參考答案:A【解析】求余運(yùn)算符為%,是否能被3或7整除表達(dá)式為 (k%3=0)|(k%7=0),A選項(xiàng)正確。B選項(xiàng)"/"為除號(hào),錯(cuò)誤。C選項(xiàng)中"="為賦值運(yùn)算符,不是邏輯運(yùn)算符"=",錯(cuò)誤。D選項(xiàng)"&&"為邏輯與,本題應(yīng)該為邏輯或"|",錯(cuò)誤。28、有以下函數(shù)int fu

30、n( char *s, char *t ) while( *s )&&( *t ) && (*t+ = *s+ ) ); return (*s-*t);函數(shù)的功能是A) 求字符串的長(zhǎng)度B) 比較兩個(gè)字符串的大小C) 將字符串s復(fù)制到字符串t中D) 連接字符串s和字符串t 參考答案:B【解析】函數(shù)體執(zhí)行過(guò)程為:將兩個(gè)字符串首地址傳入函數(shù),分別賦給指針s與t,在函數(shù)體內(nèi)s與t所指向的字符串的字符不為"0"時(shí),判斷兩個(gè)指針指向的字符是否相同,若相同則兩個(gè)指針?lè)謩e加一指向下一個(gè)字符,若不同則退出while循環(huán),返回不相同的字符的ASCII碼值之差。返

31、回值大于0表示字符串s>t;返回值小于0表示s<t;返回值為0,表示s=t。函數(shù)實(shí)現(xiàn)了比較兩個(gè)字符串大小的功能,B選項(xiàng)正確。29、有以下程序 #include <stdio.h> main() char a44=' ' int i,j; for(i=0;i<4; i+) ai0=ai3='#' for(j=1; j<3; j+) a0j=a3j='#' if(i!=0)&&(i!=3) aij='o' for(i=1;i<3; i+) for(j=0; j<4;j+)

32、 printf("%2c",aij); printf("n"); 程序的運(yùn)行結(jié)果是A) # o o # o o #B) # # # # o o #C) # o o # # # #D) # # # # # # # 參考答案:A【解析】程序的執(zhí)行過(guò)程為:定義4行4列二維數(shù)組字符a并且初始化為a00='',其他元素均為0。執(zhí)行for循環(huán)將數(shù)組第一列和第四列賦值為'#'。執(zhí)行for循環(huán)將數(shù)組第一行和第四行的第二個(gè)到第三個(gè)元素賦值為'#',然后將剩余元素全部賦值為'o'。此時(shí)矩陣為#,#,#,#,#,

33、o,o,#,#,o,o,#,#,#,#,#。之后輸出矩陣第二行與第三行元素為: # o o #<回車> # o o #,A選項(xiàng)正確。30、若有定義int x,y; 并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(xy)?(x) : (y)中的條件表達(dá)式(xy) 等價(jià)的是()。A) (xy<0|xy>0)B) (xy<0)C) (xy>0)D) (xy0) 參考答案:A【解析】條件表達(dá)式:x表達(dá)式1?表達(dá)式2:表達(dá)式3 的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。在本

34、題中與表達(dá)式1:(xy)等價(jià)的是(xy<0|xy>0)。31、若變量已正確定義 for( x=0,y=0; ( y!=99 && x<4 ); x+ )則以上for循環(huán)A) 執(zhí)行3次B) 執(zhí)行4次C) 執(zhí)行無(wú)限次D) 執(zhí)行次數(shù)不定 參考答案:B【解析】本題重點(diǎn)考察for語(yǔ)句的循環(huán)次數(shù),for(x=0,y=0;(y!=99&&x<4);x+),y!=99&&x<4即循環(huán)條件當(dāng)y不等于99以及x<4時(shí),執(zhí)行循環(huán)語(yǔ)句,當(dāng)有一個(gè)條件不成立時(shí),均結(jié)束循環(huán),因此循環(huán)4次,B選項(xiàng)正確。32、有以下程序#include <

35、;stdio.h>main() int a=0,b=0,c=0,d=0; (+a | +b) ? +c : +d; printf("%d,%d,%d,%dn", a,b,c,d);程序的運(yùn)行結(jié)果是A) 1,0,1,0 B) 1,1,0,1 C) 1,0,0,1 D) 1,1,1,0 參考答案:A【解析】條件表達(dá)式一般形式:exp1?exp2:exp3,執(zhí)行規(guī)則為:若exp1為真,求解exp2,輸出exp2的值,不計(jì)算exp3的值;若為假,求解exp3,輸出exp3的值,不計(jì)算exp2的值。本題程序執(zhí)行過(guò)程為:求解邏輯表達(dá)式(+a | +b),先求解+a,a=1,則整個(gè)

36、表達(dá)式為真,不計(jì)算+b,然后求解+c,不計(jì)算+d,最后得到a=1,b=0,c=1,d=0,A選項(xiàng)正確。33、有以下程序#include <stdio.h>main() int a, b, c=241; a = c/100 % 9; b = ( -1 )&&( -1 ); printf("%d, %dn", a, b );程序運(yùn)行后的輸出結(jié)果是A) 2,1 B) 6,1 C) 6,0 D) 2,0 參考答案:A【解析】程序執(zhí)行過(guò)程為:c=241,c/100=2,2%9=2,得a=2;"="優(yōu)先級(jí)低于"&&

37、;",非0值為真,0值為假,即(-1)為真,邏輯與表達(dá)式(-1)&&(-1)為真,得b=1。A選項(xiàng)正確。34、設(shè)有定義:int a=64,b=8;,則表達(dá)式(a&b)|(a&&b)和(a|b)&&(a|b)的值分別為A) 1和1 B) 1和0 C) 0和1 D) 0和0 參考答案:A【解析】常用的位運(yùn)算符有:""按位求反,"<<"左移,">>"右移,"&"按位與,""按位異或,"|&quo

38、t;按位或。邏輯或運(yùn)算符"|",計(jì)算左表達(dá)式值,如果為真,則不計(jì)算右表達(dá)式,而整個(gè)表達(dá)式為真,若左表達(dá)式為假,再計(jì)算右表達(dá)式然后做或運(yùn)算。邏輯與運(yùn)算符"&&",計(jì)算左表達(dá)式值,如果為假則不計(jì)算右表達(dá)式,而整個(gè)表達(dá)式為假,若左表達(dá)式為真,再計(jì)算右表達(dá)式然后做與運(yùn)算。a=64=1000000B,b=8=1000B,a&b=0為假,a&&b為真,(a&b)|(a&&b)為真,值為1。a|b=1001000B為真, a|b為真,則(a|b)&&(a|b)為真,值為1。A選項(xiàng)正確。35

39、、設(shè)有定義:int a=0,b=1,c=1; 以下選項(xiàng)中,表達(dá)式值與其它三個(gè)不同的是A) b=a=c B) a=b=c C) a=c=b D) c=a!=c 參考答案:A【解析】賦值運(yùn)算結(jié)合性為由右向左結(jié)合,賦值運(yùn)算符左值為變量,右值為變量或常量,且左右兩邊數(shù)據(jù)類型相同才能實(shí)現(xiàn)賦值。成功實(shí)現(xiàn)賦值后以左值為返回值。邏輯表達(dá)式成立則返回1,不成立返回0。A選項(xiàng)邏輯表達(dá)式a=c不成立(0),則b=0,表達(dá)式值為0。B選項(xiàng)中將c賦值給b,b=1,再將b賦給a,a=1,表達(dá)式值為1。C選項(xiàng)邏輯表達(dá)式c=b成立(1),則a=1,表達(dá)式值為1。D選項(xiàng)邏輯表達(dá)式a!=c成立(1),則c=1,表達(dá)式值為1。A選

40、項(xiàng)與其他選項(xiàng)不同,A選項(xiàng)正確。36、有如下程序#include <stdio.h>main() int a = 0, b = 1; if (+a = b+) printf("T"); else printf("F"); printf("a=%d,b=%dn", a, b); printf("n");程序運(yùn)行后的輸出結(jié)果是A) Ta=0,b=1 B) Fa=1,b=2 C) Ta=1,b=2 D) Fa=0,b=2 參考答案:C【解析】程序執(zhí)行過(guò)程為:判斷+a = b+是否成立,+a前置運(yùn)算先加1,則a=

41、1,b+后置運(yùn)算先取值,則b=1,也即是判斷1=1,成立,輸出T,之后b=2,輸出a=1,b=2。C選項(xiàng)正確。37、有以下程序 #include <stdio.h> main() int a = -2, b = 0; while (a+ && +b) ; printf("%d,%dn", a, b ); 程序運(yùn)行后輸出結(jié)果是A) 0,2 B) 0,3 C) 1,3 D) 1,2 參考答案:D【解析】本題重點(diǎn)考察while語(yǔ)句,變量a和b分別賦初值為-2和1,while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí), 執(zhí)行循環(huán)體語(yǔ)句。a+即a參與

42、運(yùn)算后,a的值再自增1。+b即b自增1后再參與其它運(yùn)算。當(dāng)表達(dá)式的值為0時(shí),退出循環(huán),最后輸出a和b的值為1和2。因此D選項(xiàng)正確。38、有以下程序#include <stdio.h>main() int a=0,b=0,c=0,d=0; (a+ && b+) ? c+ : d+; printf("%d,%d,%d,%dn", a,b,c,d);程序的運(yùn)行結(jié)果是A) 1,0,0,1 B) 1,1,0,1 C) 1,0,1,0 D) 1,1,1,0 參考答案:A【解析】自增和自減運(yùn)算符的兩種用法:前置運(yùn)算,運(yùn)算符放在變量之前,規(guī)則是先使變量的值增(或

43、減)1,然后以變化后表達(dá)式的值參與其他運(yùn)算;后置運(yùn)算,運(yùn)算符放在變量之后,規(guī)則是變量先參與其他運(yùn)算,然后再使變量的值增(或減)。條件運(yùn)算符"?",執(zhí)行規(guī)則為: 若exp1為真,求解exp2,輸出exp2的值,不計(jì)算exp3的值;若為假,求解exp3,輸出exp3的值,不計(jì)算exp2的值。"&&"邏輯與表達(dá)式:exp1&&exp2。規(guī)則為,對(duì)exp1求值,若為0,則表達(dá)式為0,且不計(jì)算exp2;若exp1非0,則求exp2值,作為表達(dá)式值。題目中a+先取值為0,則(a+ && b+)為0,且不計(jì)算b+與c+,

44、而計(jì)算d+,并把這個(gè)值作為整個(gè)表達(dá)式的值輸出,然后a與d自加1,最后得到a=1,b=0,c=0,d=1。A選項(xiàng)正確。39、有如下程序#include <stdio.h>main() int a = 0, b = 1; if (a+ && b+) printf("T"); else printf("F"); printf("a=%d,b=%dn", a, b);程序運(yùn)行后的輸出結(jié)果是A) Ta=1,b=2 B) Fa=0,b=2 C) Fa=1,b=1 D) Ta=0,b=1 參考答案:C【解析】題目中判斷if條件是否成立,a+先取值為0,則(a+ && b+)為0,且不計(jì)算b+,而后a自增得a=1,if條件不成立執(zhí)行else函數(shù)體,輸出F。最后執(zhí)行語(yǔ)句printf("a=%d,b=%dn", a, b);按照格式輸出a=1,b=1。C選項(xiàng)正確。40、if語(yǔ)句的基本形式是:if (表達(dá)式) 語(yǔ)句,以下關(guān)于"表達(dá)式"值的敘述中正確的是A) 必須

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論