C語言循環(huán)結(jié)構(gòu)部分題庫及答案_第1頁
C語言循環(huán)結(jié)構(gòu)部分題庫及答案_第2頁
C語言循環(huán)結(jié)構(gòu)部分題庫及答案_第3頁
C語言循環(huán)結(jié)構(gòu)部分題庫及答案_第4頁
C語言循環(huán)結(jié)構(gòu)部分題庫及答案_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言循環(huán)結(jié)構(gòu)部分題庫及答案

1.【答案】B本題考點:沒有遇到break時繼續(xù)向

下執(zhí)行,遇到break就結(jié)束switch語句。

【解析】

當i=l,貝ijswitch(l)執(zhí)行case1:然后case2:s=3,繼續(xù)

defaults=3+5=8c

當i=2,switch(2)執(zhí)行case2:s=8+3=l1,繼續(xù)default

s=ll+5=16o

當i=3,switch(3)執(zhí)行case3:s=16+2=18,繼續(xù)

cssel:case2:s=18+3=21繼續(xù)defaults=21+5=26。當i=4,則

switch(4)執(zhí)行defaults=26+5=31。

當i=5循環(huán)結(jié)束。

最終s=31o

2.【答案】B本題考點:小寫轉(zhuǎn)大寫減32,大寫

轉(zhuǎn)小寫加32O

【解析】每次循環(huán)執(zhí)行輸出b[k]」a+A。相當減32,

即將所有字符小寫轉(zhuǎn)大寫。

3.【答案】B,

【解析】本題考點:沒有遇到break時繼續(xù)向下執(zhí)行,

遇到break就結(jié)束switch語句。

第1次循環(huán):當a=l23456,b=a%10,則

b=6,a=a/10=12345?switch(6)執(zhí)行default:輸出6,然后b自

加為7,繼續(xù)執(zhí)行casel:case2:輸出7加后b自加為8obreak

結(jié)束switch語句。

第2次循環(huán):當a=12345,b=a%l。,貝IJb=5,a=a/10=1234o

switch⑸執(zhí)行default:輸出5,然后b自加為6,繼續(xù)執(zhí)行

easel:case2:輸出6,然后b自加為7。break結(jié)束switch

語句。

第3次循環(huán):當@=1234—%10,貝1」b=4,a=a/10=123o

switch(4)執(zhí)行case4:輸出4,b自加為5。結(jié)束switch語句。

第4次循環(huán):當a=123,b=a%10,則b=3,a=a/10=12o

switch(3)執(zhí)行case3:輸出3,b自加為4Obreak結(jié)束switch

語句。

第5次循環(huán):當a=12,b=a%10,則b=2,a=a/10=l0

switch(2)執(zhí)行case2:輸出2,b自加為3Obreak結(jié)束switch

語句。

第6次循環(huán):當a=l,b=a%10,則b=l,a=a/10=0o

switch(l)執(zhí)行casel:case2:輸出1,b自加為2。break結(jié)束

switch語句。

第7次循環(huán):當a=0,while(a)為假循環(huán)結(jié)束。

固答案為B選項:67564321

4.【答案】C

【解析】當i為奇數(shù)if(i%2==0)為假,執(zhí)行else輸

出b+i,當i為偶數(shù),if(i%2==0)為真執(zhí)行輸出a+i,所以

本題當i為1、3、5時分別輸出'A'+l,'A'+3,'A'+5,當i為

2、4時輸出'0'+2、'0'+4。故本題答案為C選項B2D4F

5.【答案】A

【解析】a++后a變?yōu)?6'。a-'5'+255==l+255=256,b=a-

5=10即A選項。

6.【答案】A

【解析】A選項i++的加號在后,每次循環(huán)都是減去

i加1之前的值。即減去0+1+2+...+10。B選項++i的加號

在前,每次循環(huán)都是減去i加1之后的值。即減去1+2+…

+11。C選項idO語法錯誤。D選項由于當i=10時i<10

為假,循環(huán)結(jié)束,最終減去的是1+2+…+9。答案為A選

項。

7.【答案】B

【解析】假設(shè)a為任意值代入運算即可。假設(shè)a=5,

則!5等于0為真。A選項a為真;B選項!0為1,那么5

等于1為假;C選項5>0||5<0為真;D選項5不等于0為

真。所以B選項與(!a==0)的邏輯值不等價。

8.【答案】A

【解析】考點:if只管一個語句或一個復(fù)合語句。y<z

為真,執(zhí)行x=y,x變?yōu)?1,然后y=z,z=x也要執(zhí)行,則

y=12,z=l1o所以選擇A選項x=l1y=12z=l1。

9.【答案】A

【解析】考點:邏輯運算短路現(xiàn)象,即:邏輯與左邊

為假則右邊不再執(zhí)行,邏輯或左邊為真則右邊不再執(zhí)行。

進入if后++a等于1為真,右邊都不執(zhí)行,所以b和c的

值不變。所以答案為Ao

10.【答案】A

【解析】

第1次,當cl=O,c2=9,clvc2為真,執(zhí)行輸出0和

9O然后cl++,c2-,cl變?yōu)門,c2變?yōu)?。

第2次,當cl=T,c2=8,cl<c2為真,執(zhí)行輸出1和

8o然后cl++,c2--,cl變?yōu)?2',c2變?yōu)?。

第3次,當cl+2,c2=7,clvc2為真,執(zhí)行輸出2和

7O然后cl++,c2--,cl變?yōu)?3',c2變?yōu)?。

第4次,當cl=3,c2=6,clvc2為真,執(zhí)行輸出3和

6。然后cl++,c2—,cl變?yōu)?4',c2變?yōu)?。

第5次,當cl±4,c2=5,cl<c2為真,執(zhí)行輸出4和

5o然后cl++,c2--,cl變?yōu)?,c2變?yōu)?。

第6次,當cl=5c2=4,cl<c2為假,結(jié)束循環(huán)。

11.【答案】C

【解析】A選項:語法錯誤,C語言不存在OR。B

選項:'A'>=c的值只能為1或0,那么1或0一定小于Z,

固B選項為假。C選項:c為大寫字母,那么定大于等于‘

A'并且小于等于'Z'。D選項:同A語法錯誤。所以選擇C

選項。

12.【答案】C

【解析】A選項s從1開始加到10。B選項從1開始

加到10oC選項當?shù)谝淮窝h(huán)時,i加到2之后,if(i<=10)

為真執(zhí)行break,結(jié)束循環(huán),s只加了1。D選項雖然循環(huán)

體為空語句,但s也是從1加到10o所以選擇C選項。

13.【答案】A

【解析】考點:continue用法,跳過循環(huán)體continue

之后的語句直接進行下一次循環(huán)條件的判定。

從鍵盤輸入:13〈回車>后data值為13。

第1次、當i=0,i<5為真,(i<data&&i%2)為假,

(i>data&&i%3==0)也為假,不執(zhí)行continueo然后

執(zhí)行輸出i的值為0o然后i++。

第2次、當i-l,i<5為真,(ivdata&&i%2)為真。

執(zhí)行continue,跳過輸出。直接執(zhí)行i++。

第3次、當i=2,i<5為真,(i<data&&i%2)為假,

(i>data&&i%3==0)也為假,不執(zhí)行continueo然后

執(zhí)行輸出i的值為2o然后i++。

第4次、當i=3,i<5為真,(i<data&&i%2)為真。

執(zhí)行continue,跳過輸出。直接執(zhí)行i++。

第5次、當i=4,i<5為真,(ivdata&&i%2)為假,

(i>data&&i%3==0)也為假,不執(zhí)行continueo然后

執(zhí)行輸出i的值為4。然后i++。

第6次、當i=5,i<5為假,循環(huán)結(jié)束。

所以選擇A選項。

14.【答案】D

【解析】考點:邏輯運算短路現(xiàn)象,即:邏輯與左邊

為假則右邊不再執(zhí)行,邏輯或左邊為真則右邊不再執(zhí)行。

進入if后..等于1為真,右邊都不執(zhí)行,所以b和c的

值不變。所以答案為Do

15.【答案】C

【解析】考點:同上,邏輯運算短路現(xiàn)象。

A選項++a等于1為真,不短路,要執(zhí)行++b。B選

項a++等于0為假,不短路,要執(zhí)行b++。C選項a++等

于0為假,短路,不執(zhí)行b++。D選項a++等于。為假,

不短路,要執(zhí)行++b。所以C選項沒有使a和b都加1。

16.【答案】C

【解析】

第1次、當a=7,b=0。執(zhí)行循環(huán)體,{b+=a;a-=l;}b

變?yōu)?,a變?yōu)?o然后再執(zhí)行while(a—),a變?yōu)?。

第2次、當a=5,b=7。執(zhí)行循環(huán)體,{b+=a;a-=l;)b

變?yōu)?2,a變?yōu)?O然后再執(zhí)行while(a-),a變?yōu)?。

第3次、當a=3,b=120執(zhí)行循環(huán)體,{b+=

a;a-=l;}b變?yōu)?5,a變?yōu)?O然后再執(zhí)行while(a?-),a變?yōu)?/p>

lo

第4次、當a=l,b=15o執(zhí)行循環(huán)體,{b+=

a;a-=l;}b變?yōu)?6,a變?yōu)?。然后再執(zhí)行while(a-)為假循

環(huán)結(jié)束,且a變?yōu)?/p>

最后輸出b和a的值分別為16和-1,即C選項。

17.【答案】A

【解析】考點:continue和break用法,continue跳過

循環(huán)體continue之后的語句直接進行下一次循環(huán)條obreak

結(jié)束循環(huán)。

第1次、當a=l,b=l;while(1)為真,x讀入-1,

小于0,if(x<0)為真執(zhí)行b*=x,b變?yōu)?1。然后continue,

執(zhí)行一次循環(huán)。

第2次、當a=l,b=-l;while(1)為真,x讀入-2,

小于0,if(x<0)為真執(zhí)行b*=x,b變?yōu)?O然后continue,

執(zhí)行一次循環(huán)。

第3次、當a=l,b=2;while(1)為真,x讀入0,

兩個if都為假,則直接執(zhí)行輸出a和b的值。

第4次、當a=l,b=2;while(1)為真,x讀入I,

if(x>0)為真,執(zhí)行break,結(jié)束循環(huán)。

所以答案為Ao

18.【答案】D

【解析】考點:continue用法,跳過循環(huán)體continue

之后的語句直接進行下一次循環(huán)條件的判定。

從鍵盤輸入:3即data值為3。

當i為0、1、2時都執(zhí)行continue,直接進入下次循

環(huán)判定,即i++.

當i=3時,執(zhí)行輸出io并且在%d后面有一個減號要

原樣輸出。所以是3-。

當i=4時,執(zhí)行輸出io4-o

當i=5時,i<5為假,循環(huán)結(jié)束。

所以正確選項為Do

19.【答案】C

【解析】++a等于11,b++等于11;同時a變?yōu)?1,

b變?yōu)?2。所以if(++a=b++)為真,執(zhí)行輸出T。然后

再執(zhí)行輸出a和b的值。所以選擇C選項。

20.【答案】C

判斷循環(huán)體里面每一個語句的作用即可。pai+=t可以

看出pai是和,t是每一項。s=-s可以看出s的值在1和-1

二者來回變化。t的值為s/n,得到t一項為正,下一項則

為負。然后分母n初始值為1并每次加2,即n為奇數(shù)。

從這幾條可以得到C選項符合上述描述。

21.【答案】C

【解析】本題考點:沒有遇到break時繼續(xù)向下執(zhí)行,

遇到break就結(jié)束switch語句。

第1次循環(huán):當a=123456,b=a%10,則

b=6,a=a/10=12345oswitch(6)執(zhí)行default:輸出6,然后b自

加為7,繼續(xù)執(zhí)行easel:break結(jié)束switch語句。

第2次循環(huán):當a=12345,b=a%10則b=5,a=a/10=1234o

switch(5)執(zhí)行case5:輸出5,switch語句結(jié)束。

第3次循環(huán):當a=1234,b=a%104Jb=4,a=a/10=123o

switch(4)執(zhí)行case4:輸出4,b自加為5O繼續(xù)執(zhí)行case5:

輸出5,switch語句結(jié)束。

第4次循環(huán):當a=123,b=a%10,則b=3,a=a/10=12o

switch(3)執(zhí)行case3:輸出3,b自加為4O執(zhí)行case4:輸出

4,b自加為5O執(zhí)行case5:輸出5,switch語句結(jié)束。

第5次循環(huán):當a=12,b=a%10,則b=2,a=a/10=lo

switch(2)執(zhí)行case2:輸出2,break結(jié)束switch語句。

第6次循環(huán):當a=l,b=a%10,則b=l,a=a/10=0o

switch(l)執(zhí)行easel:break結(jié)束switch語句。

第7次循環(huán):當a=0,while(a)為假循環(huán)結(jié)束。

所以答案為B選項:65453452

22.【答案】A

【解析】do-while和while的異同點。

不論是do-while或while只有while語句中的表達式

為假(非。唧要結(jié)束循環(huán)A選項正確,C選項錯。do-while

是先執(zhí)行循環(huán)體再判斷while真假,while是選項判斷真假

再根據(jù)情況來是否執(zhí)行循環(huán)體,8選項錯。所有循環(huán)不是

一定要用break結(jié)束,D選項錯。

23.【答案】C

【解析】若while里面語句條件為s>1000,那么第一

次循環(huán)時候s=l大于1000即為假值,不會再進行循環(huán),

這樣得不到題目要求的結(jié)果。所以應(yīng)該改成sv=1000,這

樣一旦當s的值第一次大于1000的時候循環(huán)才會結(jié)束。

24.【答案】B

【解析】當i為奇數(shù)時,i%2等于1。當i為偶數(shù)時,

i%2等于0。所以當i=0輸出字符9,當i=l輸出字符8,

當i=2輸出字符9,當i=3輸出字符8,當i=4輸出字符9。

當i=5循環(huán)結(jié)束,所以選擇B。

25.【答案】B

第1次、當m=128,n=256,k=100,while(n/k>m/k)

即while(2>1)為真,執(zhí)行循環(huán)體,n%=k,n變56,m%=k,m

變?yōu)?8,k/=10,k變?yōu)?0o

第2次、當m=28,n=56,k=10,while(n/k>m/k)即

while(5>2)為真,執(zhí)行循環(huán)體,n%=k,n變6,m%=k,m

變?yōu)?,k/=10,k變?yōu)閘o

第3次、當m=8,n=6,k=l,while(n/k>m/k)EPwhile

(6>8)為假,循環(huán)結(jié)束。

然后執(zhí)行輸出n的值為6o所以選擇Bo

26.【答案】B

【解析】if(c>=區(qū)&&c<='z,)表示當c為小寫字母的

時候為真。c=c-'a'+'A',減97然后加65,即小寫變大寫減

32o所以本題從鍵盤讀入字符的時候每次循環(huán)都要把小寫

變大寫然后再執(zhí)行輸出++c。即變?yōu)榇髮懭缓蠹?輸出。

當遇到#時,#不等于#為假結(jié)束循環(huán),不會輸出#號。所以

選擇B選項。

27.【答案】B

【解析】考察分隔符(空格、回國,Tab)也是字符。

c%是控制字符輸入與輸出的格式,當輸入分隔符也會被

讀取,在輸入用%c和getchar的時候不能用分隔符。所以

選擇B。

28.【答案】A

【解析】'\72,是轉(zhuǎn)義字符,轉(zhuǎn)義字符本質(zhì)上是1個字

符。

29.【答案】B

【解析】三個if的嵌套,其實就是只有三個if都為

真時才會執(zhí)行輸出。本題在1---100的范圍內(nèi)找X符合加

1是2的倍數(shù),加2是3的倍數(shù),加3是7的倍數(shù)。這樣

的數(shù)字一共有兩個即25和67。本題輸出的是上述兩個值

加3o

30.【答案】A

【解析】條件表達式:?前面為真執(zhí)行:前面的表達

式,?前面為假執(zhí)行:后面表達式;并且運算方向為從右

到左。本題可以加個括號:w<x?w:(z<y?z:x)先

判斷z<y為真,括號里面值為x;上述式子可簡化為w<x?

w:lo然后wvx為假,則結(jié)果為X即值為lo所以選擇A

選項。

31.【答案】B

【解析】

若兩個if都為真,那每次都是把比較小賦值給a,則

a是最小值。

若兩個if都為假,那么a就是三個里面最小的。

若第一個if為真,那么把較小的給a,第二個if為假,

則也是最小值。

若第一個if為假,說明a小,然后第二個if為真,說

明c比a還要小,把c賦值給a,fiPa也是最小值。

所以選擇B選項。

32.【答案】B

【解析】邏輯運算短路現(xiàn)象,即:邏輯與左邊為假則

右邊不再執(zhí)行,邏輯或左邊為真則右邊不再執(zhí)行。

A選項a的值為0,那么a++等于0,為假,邏輯或,

不短路要執(zhí)行++b,b的值加lo

B選項a的值為0,那么a++等于0,為假,邏輯與

運算則不再執(zhí)行b++,b不變。

C選項a的值為0,那么++a等于1,為真,邏輯與,

不短路要執(zhí)行b++,b的值加lo

D選項a的值為0,那么+a(正a)等于0,為假,邏

輯或,不短路要執(zhí)行++b,b的值加lo

所以選擇B。

33.【答案】A

【解析】比較兩個字符串的大小要用字符串比較函數(shù):

strcmpOoB選項strcpy是字符串復(fù)制函數(shù)。CD兩個選項

的方式不能操作字符串,字符串操作要用函數(shù)。所以選擇

Ao

34.【答案】B

【解析】考查else和if配對的問題,else總與其之前

最近且未曾配對的if進行配對。本題配對情況如下圖:第

一個if是單獨的語句。紅色的if-else是屬于第一個else

的語句。

割........

if(s<30)為真,m變?yōu)?。

if(s<40)為真,m變?yōu)?,不再執(zhí)行下面的elseo

所以選擇B選項。

35.【答案】B

【解析】break在循環(huán)的應(yīng)用,只要執(zhí)行break,則停

止break所在循環(huán)。tx

當i=0時,if(i<=5)為真,執(zhí)行break,循環(huán)結(jié)束。i

的值不會變,還是Oo選擇B選項。

36.【答案】D

【解析】考點:continue用法,跳過循環(huán)體continue

之后的語句直接進行下一次循環(huán)條件的判定。break用法

是結(jié)束循環(huán)。

第1次、當i=l,a=7,i<=3為真,if(a>13)為假,

不執(zhí)行breakoif(a%2)為真,執(zhí)行a+=3,a變?yōu)?0,然后

執(zhí)行continue,即執(zhí)行i++。i變?yōu)?。

第2次、當上2聲=1。/<=3為真,if(a>13)為假,

不執(zhí)行break。if(a%2)為假,執(zhí)行a+=4,a=14,然后執(zhí)行i++,i

變?yōu)?o

第3次、當i=3,a=14,i<=3為真,if(a>13)為真,

執(zhí)行break,結(jié)夷循環(huán)。

所以i為3,a為14。選擇D選項。

37.【答案】C

【解析】循環(huán)嵌套,外層循環(huán)一次,內(nèi)層循環(huán)一輪。

第一次、當i=3時,內(nèi)層第1個for循環(huán)j從1

到3,執(zhí)行3次輸出*號。內(nèi)層第2個循環(huán)j等于1,3-i

等于0,是j<0為假,不執(zhí)行輸出。

第二次、當i=2時,內(nèi)層第1個for循環(huán)j從1

到2,執(zhí)行2次輸出*號。內(nèi)層第2個循環(huán)j等于1,3-i

等于1,j從1到1為真,,執(zhí)行1次輸出#號。

第三次、當i=3時,內(nèi)層第1個for循環(huán)j從1

到1,執(zhí)行1次輸出*號。內(nèi)層第2個循環(huán)j等于1,3-i

等于2,j從1到2為真,執(zhí)行2次輸出#號。

所以三次循環(huán)分別輸出*****#*##。選擇C選

項。

38.【答案】C

【解析】本題考點:沒有遇到break時繼續(xù)向下執(zhí)行,

遇到break就結(jié)束switch語句。

第一次、給c讀入'2',switch('2'-'2'),即switch(O),

執(zhí)行case0:繼續(xù)easel:輸出c+4即字符6。繼續(xù)case2:

輸出c+4即字符6。然后break結(jié)束switch語句。

第二次、給C讀入'4',switch('4'-'2'),即switch⑵,

執(zhí)行case2:輸出c+4即字符8O然后break結(jié)束switch

語句。

第三次、給c讀入'7',switch('7'-'2'),即switch(5),

執(zhí)行default:輸出c+2即字符9。

第四次、給c讀入'3',switch('3'-'2'),即switch(l),

執(zhí)行easel:輸出c+4即字符7O繼續(xù)case2:輸出c+4即字

符7。然后break結(jié)束switch語句。

所以輸出668977。選擇C選項。

39.【答案】D

【解析】fun函數(shù)里面if(ch>=W&&ch<=,Z,)ch=ch

+宜;功能是把大寫字母變小寫。所以每次調(diào)用fun函

數(shù)都把大寫變小寫字母。非大寫字母不做處理。所以選擇

D選項。

40.【答案】D

【解析】

第1次、當i=l,k=0,iv6為真,switch(l%3),執(zhí)

行easel:k變?yōu)閘o然后break跳出switch,再執(zhí)行i+=l,

i變?yōu)?o

第2次、當i=2,k=0,i<6為真,switch(2%3),執(zhí)

行case12:k變?yōu)?。然后continue繼續(xù)下一次循環(huán)的判

定。

第3次、i還是2,就繼續(xù)執(zhí)行case2:然后再

continue繼續(xù)下一次循環(huán)的判定。

i的值小永遠為2,一直路過i+=l不執(zhí)行進行下一次

循環(huán)。就構(gòu)成死循環(huán)。所以選擇D選項。

41.【答案】A

【解析】第一次當i=0,i<3為真,執(zhí)行switch(l%3),

執(zhí)行caseO:a變?yōu)?o然后break結(jié)束switch語句。再執(zhí)行

if(i%3==0)為真,執(zhí)行break結(jié)束循環(huán)。最終只有a的值增

加1,其他變量沒變。所以選擇A選項。

42.【答案】A

【解析】表達式只要是任意合法的表達式即可。所以

A選項正確。

43.【答案】A

【解析】BCD三個選項是三個轉(zhuǎn)義字符,因為轉(zhuǎn)變

了含義,所以輸出后并不是原來字符。A選項并不屬于轉(zhuǎn)

義字符,輸出仍是幫字母。

44.【答案】D

【解析】題干中i定義為整形變量,那么兩個整數(shù)運

算得到結(jié)果是整數(shù)。所當i等于2、2、3、4、5、6、7、8、

9……的時候,1/i結(jié)果都只是0。這樣如果是D選項并不

能求出式子結(jié)果。應(yīng)該把D選項改成sun+=1.0/i;

45.【答案】B

【解析】putchar是輸出字符并且不帶引號,本題是

輸出9-i0

當i=0,9-0是9。

當i=l,9-0是‘8'。

當1=2,9-0是7。

當i=3,9-0是6。

當i=4,9-0是5。

當i=5,i<5為假循環(huán)結(jié)束。

46.【答案】B

【解析】考查邏輯運算。小寫字母即大于等于'a'并且

小于等于'z'。

A選項,只是數(shù)學(xué)中的表達方式,先算'a'v=c,不管c

是什么字符,宜<=c的值不是1就是0。那再算l<='z'或

0<=,z'都為真。

B選項,&&表示邏輯與,即并且的意思。

C選項,是或者,要排除。

D選項,在C語言中并沒有AND用法。

47.【答案】A

【解析】閏年要年份是4的整數(shù)倍,并且年份為整百

的要是400的整數(shù)倍。

A選項,第一個if表示400整數(shù)倍返回1oelseif若

year是1900那么if不執(zhí)行,也就是說最后面一對if...else

都不執(zhí)行,這樣程序并沒有判斷出1900是否為閏年。所

以選擇A選項。

48.【答案】A

【解析】考查else語句。第一個if(x〉10)為真,執(zhí)行

輸出lo后面的elseif都不執(zhí)行。

49.【答案】C

【解析】十六進制轉(zhuǎn)義字符的x要小寫。并且不帶前

導(dǎo)0。所以選擇C選項。

50.【答案】D

【解析】

第一次:當i=l,a=6o第一個if為真,執(zhí)行break,

結(jié)束循環(huán)。a和i的值沒有變。然后輸出i和a的值。

51.【答案】A

【解析】

第1次:當i=0;data=5;if為真,執(zhí)行continue,即直

接執(zhí)行i++;i變?yōu)閘o

第2次:當i=l;data=5;if為真,執(zhí)行continue,即直

接執(zhí)行i++;i變?yōu)?。

第3次:當i=2;data=5;if為真,執(zhí)行continue,即直

接執(zhí)行i++;i變?yōu)?o

第4次:當i=3;data=5;if為真,執(zhí)行continue,即直

接執(zhí)行i++;i變?yōu)?O

第5次:當i=4;data=5;if為真,執(zhí)行continue,即直

接執(zhí)行i++;i變?yōu)?o

第6次:當i=5;data=5;if為真,執(zhí)行continue,即直

接執(zhí)行i++;i變?yōu)?o

第7次:當i=6;data=5;if為假,不行執(zhí)行continue,

執(zhí)行printf("%d”,i);輸出6o然后i++;i變7。

第8次:當i=7;data=5;if為假,不行執(zhí)行continue,

執(zhí)行printf(“%d”,i);輸出7O然后i++;i變8。

第9次:當i=8;data=5;i<8為假循環(huán)結(jié)束。

52.【答案】C

【解析】'c'的ASCII為99o

第1次:當i=0;c='0';if為假,不執(zhí)行continue,執(zhí)行

輸出prinft(“%d”,i),即輸出0,然后i++,變?yōu)?。

后面幾次循環(huán)同樣不會執(zhí)行continue,即執(zhí)行輸出對

應(yīng)i的值。

當i=5時循環(huán)結(jié)束。

所以本題輸出的是0,1,2,3,4,選擇。

53.【答案】A

【解析】

第1次:a=-2,b=2o++a為-1,--b為lo所以++a&&--b

為真,執(zhí)行輸出-1,1

第2次:a=-l,b=l。++a為0,短路現(xiàn)象,++a&&--b

為假,循環(huán)結(jié)束。

所以選擇A。

54.【答案】A

【解析】printf輸出字符串是輸出對應(yīng)地址指向的字

符串?!?2345678”+4指向的字符串是“5678”。B+8指向的

字符串是“year"。所以選擇A。

55.【答案】D

【解析】

第1次:當i=2,data=10;data%i=0;if為假,執(zhí)行

else.continue,即直接執(zhí)行i++;i變?yōu)?。

第2次:當i=3,data=10;data%i=l;if為真,執(zhí)行printf(),

輸出3-o然后i++,i變?yōu)?。

第3次:當i=4,data=10;data%i=2;if為真,執(zhí)行printf(),

輸出4-。然后i++,i變?yōu)?。

第4次:當i=5,data=10;data%i=O;if為假,執(zhí)行

else,continue,即直接執(zhí)行i++;i變?yōu)?。

第5次:當i=6,iv6為假循環(huán)結(jié)束。

本題輸出值為3-4-0

56.【答案】D

【解析】第1個if假,執(zhí)行嵌套外層的else,即第2

個else,然后執(zhí)行內(nèi)嵌的第二組if—else,即第3個if,z<x

為假,執(zhí)行最后一個else輸出字符D。

57.【答案】B

【解析】

A選項,a/b=l,為真。?。?)非真,即為假。

B選項,b/a=O,為假。?。?)非假,即為真。

C選項,!b為假,匕也為假,所以!b||!a。為假。

D選項,!a為假,短路現(xiàn)象,&&右邊不執(zhí)行,整體

為假。

58.【答案】D

data為10,i的值循環(huán)時從0到9。所以循環(huán)體里面

if每次都為假。即每次執(zhí)行else,輸出i的值。即從0到

9全部輸出。

59.【答案】D

【解析】本題考查轉(zhuǎn)義字符。十六進制轉(zhuǎn)義字符x要

小寫并不帶前導(dǎo)0,A、C兩個選項錯。八進制轉(zhuǎn)義字符

里是八進制數(shù),八進制數(shù)最大的數(shù)字是7,B選項錯“

60.【答案】A

【解析】

第1次:ch='M',ch—,ch變?yōu)長,然后輸出。

第2次:ch='L',ch--,ch變?yōu)?K;然后輸出。

第3次:ch='K',while(ch!='K')為假,循環(huán)結(jié)束。

61.【答案】B

【解析】條件表達式,運算法則是真前假后。

k=x<y?(y<z?l:O):O表達當x<y并且y<z時k=l,其他條件

為0。

A選項表達x<y時k=0,y<z時k=lo

B選項&&即為且的意思。

C選項表達當x<y并且y<z時k=l,當xvy,并且y<z

為假時,k=0。而x<y為假并沒有說明k為多少。

D選項表達當x<y或者y<z時k=l,其他情況k=0o

62.【答案】A

【解析】A選項total初值為1,這樣實際求和為

1+1+2+3+4+5°

63.【答案】B

【解析】

第1次:ch=T,while。為真,執(zhí)行輸出ch-'O',即1,然

后ch++,ch變?yōu)?。

第2次:ch='2',while。為真,執(zhí)行輸出ch-'O',即2,然

后ch++,ch變?yōu)?。

第3次:ch='3',while()為真,執(zhí)行輸出ch-'O',即3,然

后ch++,ch變?yōu)椤?'。

第8次:ch='8',while。為真,執(zhí)行輸出ch-'O',即8,然

后ch++,ch變?yōu)?。

第9次:ch='9',while()為假循環(huán)結(jié)束。

64.【答案】B

【解析】if()、while。括號里面表達式可以是任意合

法的數(shù)值及表達式。包含常量、變量。

65.【答案】A

【解析】

第1次:data=3,i=O;進入循環(huán),if為假,不執(zhí)行break,

直接執(zhí)行輸出i,即0。然后i++,i變?yōu)?。

第2次:data=3,i=l;進入循環(huán),if為假,不執(zhí)行break,

直接執(zhí)行輸出i,即1。然后i++,i變?yōu)?。

第3次:data=3,i=2進入循環(huán),if為假,不執(zhí)行break,

直接執(zhí)行輸出i,即2。然后i++,i變?yōu)?。

第4次:data=3,i=3;進入循環(huán),if為假,不執(zhí)行break,

直接執(zhí)行輸出i,即3。然后i++,i變?yōu)?。

第5次:data=3,i=4;進入循環(huán),if為真,執(zhí)行break,

結(jié)束循環(huán)。

本題只要i>data為假就不執(zhí)行break.一旦為真執(zhí)

break,結(jié)束循環(huán)。

66.【答案】C

【解析】三個if并列關(guān)系,相互不影響。

第1個if,'\0'為空值,即等于0,if為真,輸出1。

第2個if「0”是字符串與0不相等,if為假,不執(zhí)行

輸出。

第3個ifJA”是字符串與字符'0'不相等,if為假,不

執(zhí)行輸出。

本題只有第1個輸出了字符1。

67.【答案】D

【解析】考查字符的算術(shù)運算。A選項值為9-48=-39。

B選項65+32=97,是a的ASCII碼值。C選項97-32=65,

是A的ASCII碼。D選項9+'0'=9+48=57為9的ASCII

值。

68.【答案】A

【解析】%d表示整數(shù)形式?!瓵'和'Y'的ASCII碼為

65和89o

69.【答案】C

【解析】

第1次:i=0,進入循環(huán),i%3==0,if為假,執(zhí)行else,

輸出字符'A'+0,即A。然后i++,i變?yōu)?。

第2次:i=l,進入循環(huán),i%3==l,if為真,執(zhí)行輸出字

符3+1,即4。然后i++,i變?yōu)?O

第3次:i=2,進入循環(huán),i%3==2,if為真,執(zhí)行輸出字

符3+2,即5。然后i++,i變?yōu)?o

第4次:i=3,進入循環(huán),i%3==0,if為假,執(zhí)行else,

輸出字符'A'+3,即D。然后i++,i變?yōu)?。

第5次:i=4,進入循環(huán),i%3==l,if為真,執(zhí)行輸出字

符3+4,即7o然后i++,i變?yōu)?o

第6次:i=5,進入循環(huán),i%3==2,if為真,執(zhí)行輸出字

符3+5,即8。然后i++,i變?yōu)?o

第6次:i=6,i<6為假,結(jié)束循環(huán)。輸出A45D78o

70.【答案】D

【解析】

第1次:i=0,進入循環(huán),輸出'Z'-0,即Zo然后i++;i

變?yōu)閘o

第2次:仁1,進入循環(huán),輸出2」,即Yo然后i++;i

變?yōu)?O

第5次:i=4,進入循環(huán),輸出Z-0,即Vo然后i++;i

變?yōu)?o

第6次:i=5,35為假結(jié)束循環(huán)。

本題每次循環(huán)輸出的字符都減1.

71.【答案】D

【解析】scanf()給data賦值'B',即data=66o

第1次:當i=2,data=66odata%i=O,if為假,不執(zhí)行

continue,執(zhí)行輸出i的值為2。然后i++,i變?yōu)?。

第2次:當i=3,data=66odata%i=O,if為假,不執(zhí)行

continue,執(zhí)行輸出i的值為3。然后i++,i變?yōu)?O

第3次:當i=4,data=66odata%i=2,if為真,執(zhí)行

continue,即直接執(zhí)行for里面i++,i變?yōu)?。

第4次:當i=5,data=66odata%i=l,if為真,執(zhí)行

continue,即直接執(zhí)行for里面i++,i變?yōu)?。

第5次:當i=6,data=66odata%i=0,if為假,不執(zhí)行

continue,執(zhí)行輸出i的值為6。然后i++,i變?yōu)?O

第6次:當i=7,data=66odata%i=3,if為真,執(zhí)行

continue,即直接執(zhí)行for里面i++,i變?yōu)?O

第7次:當i=8,data=66odata%i=2,if為真,執(zhí)行

continue,即直接執(zhí)行for里面i++,i變?yōu)?O

第8次:當i=9data=660data%i=3,if為真,執(zhí)行continue,

即直接執(zhí)行for里面i++,i變?yōu)?0。

第9次:當i=10,i<10為假,結(jié)束循環(huán)。

本題即只有當data%i為0時執(zhí)行輸出。

72.【答案】A

【解析】加號在后,先用后加,a++的值為0,&&

左邊為。即短路現(xiàn)象,b++不執(zhí)行。if(a++&&b++)為假,

執(zhí)行else輸出F。然后a=b++,因為加號在后所以b++為1,

即a=lo然后b加個1變?yōu)?O最后一行輸出a、b的值分

別是1和2。所以答案是A選項。

73.【答案】C

【解析】題目表達含義是當k為大于。的偶數(shù)時,四

個選項哪個為真。用代入法。假設(shè)k=2。

A選項:邏輯或(||),k>0為真,短路現(xiàn)象,右邊不

需要運算這樣不論k是奇數(shù)還是偶數(shù)只要k大于。為真,

排除Ao

B選項:賦值號左邊只能是變量。k%2=0語法錯誤。

C選項:k%2!=l,k對2求余為0,1不等于0為假。

D選項:用的邏輯或(||),與A相同。

74.【答案】C

【解析】

第1次:do進入循環(huán),scanf給x賦值-1。x=-lox>0

為假,t=0.switch(0),執(zhí)行case0:break,結(jié)束switcho然后

執(zhí)行z+=x,z=-l;

第2次:while(-l)為真,進入循環(huán),scanf給x賦值

1ox=lox>0為真,t=l,switch。),執(zhí)行casel:y+=x;y=l;

然后執(zhí)行continue,即直接進行下一次循環(huán)。;

第3次:while(l)為真,進入循環(huán),scanf給x賦值-2。

x=-2ox>0為假,t=0,switch(O),執(zhí)行case0:break,結(jié)束

switcho然后執(zhí)行z+=x,z=-l+(-2)=-3;

第4次:while(-2)為真,進入循環(huán),scanf給x賦值

2oX=2oX>0為真,t=l$witch(l),執(zhí)行casel:y+=xy=l+2=3;

然后執(zhí)行continue,即直接進行下一次循環(huán)。;

第5次:while(2)為真,進入循環(huán),scanf給x賦值0。

x=0ox>0為假,t=0?switch(0),執(zhí)行case0:break,結(jié)束switch。

然后執(zhí)行z+=x,z=-3+0;

第6次:while(O)為假,循環(huán)結(jié)束。

最后輸出y和的值分別為3和-3。

75.【答案】C

【解析】if(b[k]<'m,)即表示每次循環(huán)查找字符串里面

小于字符m的字符。找到后執(zhí)行:b[k]=b[k]二a'+'A';即小

寫變大寫。本題把所有小于m的字符變成大寫。選擇C。

76.【答案】A

【解析】

第1次:i=0,sum=l。do進入循環(huán)sum+=i++。加號在

后,先用后加。sum=l+0=lo然后i變?yōu)閘o

第2次:i=l,sum=l°while(i<6)為真,進入循環(huán)

sum+=i++。加號在后,先用后加。51101=1+1=2。然后i變

為2o

第6次:i=5,sum=l1owhile(i<6)為真,進入循環(huán)

sum+=i++。加號在后,先用后加。sum=l1+5=16。然后i

變?yōu)?o

第7次:i=6,sum=16owhile(i<6)為假,結(jié)束循環(huán)。

77.【答案】A

【解析】先執(zhí)行k=2,然后再執(zhí)行k==0為假,循環(huán)結(jié)

束。不執(zhí)行循環(huán)體,即執(zhí)行。次。

78.【答案】C

【解析】

C選項0<x<5是數(shù)學(xué)表達方式,在c語言中不能表達

0小于并且同時x小于5。在c語言中Ovx只有兩個結(jié)果,

不是。就是1。那不論是。還是1都是小于5的。也就是

說不論x為什么值,0<x<5都為真。這樣就排除C選項就

與題干不等價。

79.【答案】B

【解析】

第1次:a=l,減號在后,a—值為1,即為真,由于執(zhí)

行了a-,a變?yōu)?。然后執(zhí)行循環(huán)體b-,b變?yōu)?;

第2次:a=0,減號在后,a—值為0,即為假,循環(huán)結(jié)

束。由于執(zhí)行了a--,a變?yōu)?1。

輸出a、b的值為-1和0。

80.【答案】A

【解析】ml函數(shù)功能是返回較小值。m2函數(shù)功能是

返回較大值。fun函數(shù)功能是返回兩數(shù)之和。先執(zhí)行ml(x,y)

返回2,再執(zhí)行m2(y,z)返回3。然后再執(zhí)行fun(2,3)返回5。

81.【答案】C

【解析】

第1次:當a=O,b=O;進入循環(huán)。if(a%2==0)為真,

執(zhí)行continue,即直接執(zhí)行a++。a變?yōu)?。

第2次:當a=l,b=0;進入循環(huán)。if(a%2==0)為假,

不執(zhí)行continue,執(zhí)行b+二a,b變?yōu)?:然后執(zhí)行break,循

環(huán)結(jié)束。

最后執(zhí)行輸出b的值為lo

82.【答案】A

第1次:a=123456,while(a)為真,執(zhí)行循環(huán)體。

b=a%10=6,a=a/10=12345oswitch(6),執(zhí)行default,輸出

b++。加號在后,先用后加,所以輸出6o然后b變?yōu)?O

繼續(xù)執(zhí)行case1continue,直接進入下一次循環(huán)。

第2次:a=12345,while(a)為真,執(zhí)行循環(huán)體。

b=a%10=5,a=a/10=1234oswitch(5),執(zhí)行default,輸出

b++。加號在后,先用后加,所以輸出5O然后b變?yōu)?O

繼續(xù)執(zhí)行case1continue,直接進入下一次循環(huán)。

第3次:a=1234,while(a)為真,執(zhí)行循環(huán)體°b=a%10=4,

a=a/10=123oswitch(4),執(zhí)行case4:,輸出b++。加號在后,

先用后加所以輸出4。然后b變?yōu)?。然后執(zhí)行continue,

直接進入下一次循環(huán)。

第4次a=123,while(a)為真執(zhí)行循環(huán)體。b=a%10=3,

a=a/10=12oswitch(3),執(zhí)行case3:,輸出b++。加號在后,

先用后加,所以輸出3o然后b變?yōu)?O繼續(xù)執(zhí)行case4:,

輸出b++。加號在后,先用后加,所以輸出4o然后執(zhí)行

continue,直接進入下一次循環(huán)。

第5次^=12,while(a)為真執(zhí)行循環(huán)體。b=a%10=2,

a=a/10=loswitch⑵,執(zhí)行case2:,輸出b++。加號在后,

先用后加所以輸出2。然后b變?yōu)?。然后執(zhí)行continue,

直接進入下一次循環(huán)。

第6次:a=l,while(a)為真,執(zhí)行循環(huán)體。b=a%10=l,

a=a/10=0oswitch(l),執(zhí)行casecontinue,直接進入下一

次循環(huán)。

第7次:a=0,while(a)為假,循環(huán)結(jié)束。

最終結(jié)果為:654342

83.【答案】A

【解析】

當i為偶數(shù)if為假,執(zhí)行輸出b+i。當i為奇數(shù)if為

真,執(zhí)行else輸出a+io

所以當i=0,輸出'A'+O,即Ao

當i=l,輸出3+1,即4O

當i=2,輸出‘A'+2,即Co

當i=3,輸出3+3,即6o

當i=4,輸出'A'+4,即Eo

當i=5,輸出3+5,即8o

當i=6,循環(huán)結(jié)束。

84.【答案】A

【解析】

B選項:fac初值為0,每次相乘結(jié)果都是Oo

C選項:do....while循環(huán),每次循環(huán)先執(zhí)行了k++。

最后一次當k=5的時候進入循環(huán),k變成6。最終結(jié)果是

6!o

D選項第一次循環(huán)給fac乘0后面再乘結(jié)果還是0。

85.【答案】A

【解析】else總與其之前最近且未曾配對的if進行配

對。

A選項第2個if和else是一對。本題結(jié)構(gòu)是if(){if

()...else...}o當math>=60的時候第2個if為假。不會

執(zhí)行任何語句。

86.【答案】C

【解析】

第1次:a=-l,b=2oa++==-l為真,b—==-2為真。同

時a變?yōu)?,b變?yōu)閘o執(zhí)行循環(huán)體輸出a、b值為0,1。

第2次:a=O,b=loa++==0為假,短路現(xiàn)象b—不執(zhí)

行,a變?yōu)閘o循環(huán)結(jié)束。

然后再輸出a、b的值為1和lo

最終結(jié)果是0,1,1,lo

87.【答案】B

【解析】當i%3=0時if為假,執(zhí)行輸出b+io當i%3

不為0時if為真,執(zhí)行else輸出a-io

當i=0時輸出b+i,即字符a

當i=l時輸出a+i,即字符1

當i=2時輸出a+i,即字符2

當i=3時輸出b+i,即字符d

當i=4時i<4為假,循環(huán)結(jié)束。

88.【答案】A

【解析】

第1次:a=0,b=0o進入循環(huán)。if(a%2=0)為真,執(zhí)行

continue,即直接執(zhí)行a++,a變?yōu)?o

第2次:a=l,b=0o進入循環(huán)。if(a%2==0)為假,不執(zhí)

行continue0執(zhí)行b+-a,b-lQ然后執(zhí)行continue,即直接

執(zhí)行a++,a變?yōu)?O

第3次:a=2,b=lo進入循環(huán)。if(a%2==0)為真,執(zhí)行

continue,即直接執(zhí)行a++,a變?yōu)?。

第4次:a=3,b=lo進入循環(huán)。if(a%2==0)為假,不執(zhí)

行continueo執(zhí)行b+=a,b=4o然后執(zhí)行continue,即直接

執(zhí)行a++,a變?yōu)?O

第5次:a=4,b=4o進入循環(huán)。if(a%2==0)為真,執(zhí)行

continue,即直接執(zhí)行a++,a變?yōu)?。

第4次:a=5,b=4o進入循環(huán)。if(a%2==0)為假,不執(zhí)

行continueo執(zhí)行b+=a,b=9o然后執(zhí)行continue,即直接

執(zhí)行a++,a變?yōu)?o

第5次:a=6,b=9o進入循環(huán)。if(a%2==0)為真,執(zhí)行

continue,即直接執(zhí)行a++,a變?yōu)?O

第6次:a=7,b=4oa<7為假,循環(huán)結(jié)束。

輸出b的值為7o

89.【答案】C

【解析】

A選項:省略i++,i永遠為0,即一直小于10,即永

遠為真。構(gòu)成死循環(huán)。

B、D兩個選項for里面第2個表達式缺省會引起死

循環(huán)。

C選項缺省第1個表達式不會引起死循環(huán)。

90.【答案】D

【解析】

第1次:ch=,A,,while為真,執(zhí)行輸出ch-'A',即0。

然后ch++,ch變?yōu)?B'。

第2次:ch二'B',while為真,執(zhí)行輸出ch-'A',即1。

然后ch++,ch變?yōu)?C'。

第3次:ch=C,while為真,執(zhí)行輸出ch-'A',即2。

然后ch++,ch變?yōu)?D'。

第4次:ch='D',while為假,結(jié)束循環(huán)。

91.【答案】A

【解析】主要考查switch中沒有break就要繼續(xù)執(zhí)行

下面caseo

S是首地址c

第1次:++s指向字符1,while。為真o*s-'0'=l,switch

(1),執(zhí)行case1:輸出*s+1即字符2O然后breako結(jié)束

switcho隨后下一次循環(huán)。

第2次:++s指向字符2,while。為真o*s-'0'=2,swi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論