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頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

【答案】B

本題考點(diǎn):沒有遇到break時(shí)繼續(xù)向下執(zhí)行,遇到break就結(jié)束switch語句?!窘馕觥慨?dāng)i=1,則switch(1)執(zhí)行case1:然后case2:s=3,繼續(xù)defaults=3+5=8。當(dāng)i=2,switch(2)執(zhí)行case2:s=8+3=11,

繼續(xù)defaults=11+5=16。當(dāng)i=3,switch(3)執(zhí)行case3:s=16+2=18,繼續(xù)csse1:case2:s=18+3=21繼續(xù)defaults=21+5=26。當(dāng)i=4,則switch(4)執(zhí)行defaults=26+5=31。當(dāng)i=5循環(huán)結(jié)束。最終s=31。2.

【答案】B

本題考點(diǎn):小寫轉(zhuǎn)大寫減32,大寫轉(zhuǎn)小寫加32。【解析】每次循環(huán)執(zhí)行輸出b[k]-'a'+'A。相當(dāng)減32,即將所有字符小寫轉(zhuǎn)大寫。3.

【答案】B,【解析】本題考點(diǎn):沒有遇到break時(shí)繼續(xù)向下執(zhí)行,遇到break就結(jié)束switch語句。第1次循環(huán):當(dāng)a=123456,b=a%10,則b=6,a=a/10=12345。switch(6)執(zhí)行default:輸出6,然后b自加為7,繼續(xù)執(zhí)行case1:case2:輸出7,然后b自加為8。break結(jié)束switch語句。第2次循環(huán):當(dāng)a=12345,b=a%10,則b=5,a=a/10=1234。switch(5)執(zhí)行default:輸出5,然后b自加為6,繼續(xù)執(zhí)行case1:case2:輸出6,然后b自加為7。break結(jié)束switch語句。第3次循環(huán):當(dāng)a=1234,b=a%10,則b=4,a=a/10=123。switch(4)執(zhí)行case4:輸出4,b自加為5。結(jié)束switch語句。第4次循環(huán):當(dāng)a=123,b=a%10,則b=3,a=a/10=12。switch(3)

執(zhí)行case3:輸出3,b自加為4。break結(jié)束switch語句。第5次循環(huán):當(dāng)a=12,b=a%10,則b=2,a=a/10=1。switch(2)

執(zhí)行case2:輸出2,b自加為3。break結(jié)束switch語句。第6次循環(huán):當(dāng)a=1,b=a%10,則b=1,a=a/10=0。switch(1)

執(zhí)行case1:case2:輸出1,b自加為2。break結(jié)束switch語句。第7次循環(huán):當(dāng)a=0,while(a)為假循環(huán)結(jié)束。固答案為B選項(xiàng):675643214.

【答案】C【解析】當(dāng)i為奇數(shù)if(i%2==0)為假,執(zhí)行else輸出b+i,當(dāng)i為偶數(shù),if(i%2==0)為真執(zhí)行輸出a+i,所以本題當(dāng)i為1、3、5時(shí)分別輸出’A’+1,

’A’+3,

’A’+5,當(dāng)i為2、4時(shí)輸出’0’+2、’0’+4。故本題答案為C選項(xiàng)B2D4F5.

【答案】A【解析】a++后a變?yōu)椤?’。a-‘5’+255==1+255=256,b=a-‘5’=1。即A選項(xiàng)。6.

【答案】A【解析】A選項(xiàng)i++的加號(hào)在后,每次循環(huán)都是減去i加1之前的值。即減去0+1+2+…+10。B選項(xiàng)++i的加號(hào)在前,每次循環(huán)都是減去i加1之后的值。即減去1+2+…+11。C選項(xiàng)i<>10語法錯(cuò)誤。D選項(xiàng)由于當(dāng)i=10時(shí)i<10為假,循環(huán)結(jié)束,最終減去的是1+2+…+9。答案為A選項(xiàng)。7.

【答案】B【解析】假設(shè)a為任意值代入運(yùn)算即可。假設(shè)a=5,則!5等于0為真。A選項(xiàng)a為真;B選項(xiàng)!0為1,那么5等于1為假;C選項(xiàng)5>0||5<0為真;D選項(xiàng)5不等于0為真。所以B選項(xiàng)與(!a==0)

的邏輯值不等價(jià)。8.

【答案】A【解析】考點(diǎn):if只管一個(gè)語句或一個(gè)復(fù)合語句。y<z為真,執(zhí)行x=y,x變?yōu)?1,然后y=z,z=x也要執(zhí)行,則y=12,z=11。所以選擇A選項(xiàng)x=11y=12z=11。9.

【答案】A【解析】考點(diǎn):邏輯運(yùn)算短路現(xiàn)象,即:邏輯與左邊為假則右邊不再執(zhí)行,邏輯或左邊為真則右邊不再執(zhí)行。進(jìn)入if后++a等于1為真,右邊都不執(zhí)行,所以b和c的值不變。所以答案為A

。10.

【答案】A【解析】第1次,當(dāng)c1='0',c2='9',c1<c2為真,執(zhí)行輸出0和9。

然后c1++,c2--,c1變?yōu)椤?’,c2變?yōu)椤?’。第2次,當(dāng)c1='1',c2='8',c1<c2為真,執(zhí)行輸出1和8。然后c1++,c2--,c1變?yōu)椤?’,c2變?yōu)椤?’。第3次,當(dāng)c1='2,c2='7‘,c1<c2為真,執(zhí)行輸出2和7。然后c1++,c2--,c1變?yōu)椤?’,c2變?yōu)椤?’。第4次,當(dāng)c1='3,c2='6‘,c1<c2為真,執(zhí)行輸出3和6。然后c1++,c2--,c1變?yōu)椤?’,c2變?yōu)椤?’。第5次,當(dāng)c1='4,c2='5‘,c1<c2為真,執(zhí)行輸出4和5。然后c1++,c2--,c1變?yōu)椤?’,c2變?yōu)椤?’。第6次,當(dāng)c1='5,c2='4‘,c1<c2為假,結(jié)束循環(huán)。11.

【答案】C【解析】A選項(xiàng):語法錯(cuò)誤,C語言不存在OR。B選項(xiàng):’A’>=c的值只能為1或0,那么1或0一定小于’Z’,固B選項(xiàng)為假。C選項(xiàng):c為大寫字母,那么定大于等于’A’并且小于等于’Z’。D選項(xiàng):同A語法錯(cuò)誤。所以選擇C選項(xiàng)。12.

【答案】C【解析】A選項(xiàng)s從1開始加到10。B選項(xiàng)從1開始加到10。C選項(xiàng)當(dāng)?shù)谝淮窝h(huán)時(shí),i加到2之后,if(i<=10)為真執(zhí)行break,結(jié)束循環(huán),s只加了1。D選項(xiàng)雖然循環(huán)體為空語句,但s也是從1加到10。所以選擇C選項(xiàng)。13.

【答案】A【解析】考點(diǎn):continue用法,跳過循環(huán)體continue之后的語句直接進(jìn)行下一次循環(huán)條件的判定。從鍵盤輸入:13<回車>后data值為13。第1次、當(dāng)i=0,i<5為真,(i<data&&i%2)為假,(i>data&&i%3==0)也為假,不執(zhí)行continue。然后執(zhí)行輸出i的值為0。然后i++。第2次、當(dāng)i=1,i<5為真,(i<data&&i%2)為真。執(zhí)行continue,跳過輸出。直接執(zhí)行i++。第3次、當(dāng)i=2,i<5為真,(i<data&&i%2)為假,(i>data&&i%3==0)也為假,不執(zhí)行continue。然后執(zhí)行輸出i的值為2。然后i++。第4次、當(dāng)i=3,i<5為真,(i<data&&i%2)為真。執(zhí)行continue,跳過輸出。直接執(zhí)行i++。第5次、當(dāng)i=4,i<5為真,(i<data&&i%2)為假,(i>data&&i%3==0)也為假,不執(zhí)行continue。然后執(zhí)行輸出i的值為4。然后i++。第6次、當(dāng)i=5,i<5為假,循環(huán)結(jié)束。所以選擇A選項(xiàng)。14.

【答案】D【解析】考點(diǎn):邏輯運(yùn)算短路現(xiàn)象,即:邏輯與左邊為假則右邊不再執(zhí)行,邏輯或左邊為真則右邊不再執(zhí)行。進(jìn)入if后a--等于1為真,右邊都不執(zhí)行,所以b和c的值不變。所以答案為D

。15.

【答案】C【解析】考點(diǎn):同上,邏輯運(yùn)算短路現(xiàn)象。A選項(xiàng)++a等于1為真,不短路,要執(zhí)行++b。B選項(xiàng)a++等于0為假,不短路,要執(zhí)行b++。C選項(xiàng)a++等于0為假,短路,不執(zhí)行b++。D選項(xiàng)a++等于0為假,不短路,要執(zhí)行++b。所以C選項(xiàng)沒有使a和b都加1。16.

【答案】C【解析】第1次、

當(dāng)a=7,b=0。執(zhí)行循環(huán)體,{b+=a;a-=1;}b變?yōu)?,a變?yōu)?。然后再執(zhí)行while(a--),a變?yōu)?。第2次、

當(dāng)a=5,b=7。執(zhí)行循環(huán)體,{b+=a;a-=1;}b變?yōu)?2,a變?yōu)?。然后再執(zhí)行while(a--),a變?yōu)?。第3次、

當(dāng)a=3,b=12。執(zhí)行循環(huán)體,{b+=a;a-=1;}b變?yōu)?5,a變?yōu)?。然后再執(zhí)行while(a--),a變?yōu)?。第4次、

當(dāng)a=1,b=15。執(zhí)行循環(huán)體,{b+=a;a-=1;}b變?yōu)?6,a變?yōu)?。然后再執(zhí)行while(a--)為假循環(huán)結(jié)束,且a變?yōu)?1。最后輸出b和a的值分別為16和-1,即C選項(xiàng)。17.

【答案】A【解析】考點(diǎn):continue和break用法,continue跳過循環(huán)體continue之后的語句直接進(jìn)行下一次循環(huán)條。break結(jié)束循環(huán)。第1次、

當(dāng)a=1,b=1;while(1)為真,x讀入-1,小于0,if(x<0)為真執(zhí)行b*=x,b變?yōu)?1。然后continue,執(zhí)行一次循環(huán)。第2次、

當(dāng)a=1,b=-1;while(1)為真,x讀入-2,小于0,if(x<0)為真執(zhí)行b*=x,b變?yōu)?。然后continue,執(zhí)行一次循環(huán)。第3次、

當(dāng)a=1,b=2;while(1)為真,x讀入0,兩個(gè)if都為假,則直接執(zhí)行輸出a和b的值。第4次、

當(dāng)a=1,b=2;while(1)為真,x讀入1,if(x>0)為真,執(zhí)行break,結(jié)束循環(huán)。所以答案為A。18.

【答案】D【解析】考點(diǎn):continue用法,跳過循環(huán)體continue之后的語句直接進(jìn)行下一次循環(huán)條件的判定。從鍵盤輸入:3即data值為3。當(dāng)i為0、1、2時(shí)都執(zhí)行continue,直接進(jìn)入下次循環(huán)判定,即i++.當(dāng)i=3時(shí),執(zhí)行輸出i。并且在%d后面有一個(gè)減號(hào)要原樣輸出。所以是3-。當(dāng)i=4時(shí),執(zhí)行輸出i。4-。當(dāng)i=5時(shí),i<5為假,循環(huán)結(jié)束。所以正確選項(xiàng)為D。19.

【答案】C【解析】++a等于11,b++等于11;同時(shí)a變?yōu)?1,b變?yōu)?2。所以if(++a==b++)為真,執(zhí)行輸出T。然后再執(zhí)行輸出a和b的值。所以選擇C選項(xiàng)。20.

【答案】C判斷循環(huán)體里面每一個(gè)語句的作用即可。pai+=t可以看出pai是和,t是每一項(xiàng)。s=-s可以看出s的值在1和-1二者來回變化。t的值為s/n,得到t一項(xiàng)為正,下一項(xiàng)則為負(fù)。然后分母n初始值為1并每次加2,即n為奇數(shù)。從這幾條可以得到C選項(xiàng)符合上述描述。21.

【答案】C【解析】本題考點(diǎn):沒有遇到break時(shí)繼續(xù)向下執(zhí)行,遇到break就結(jié)束switch語句。第1次循環(huán):當(dāng)a=123456,b=a%10,則b=6,a=a/10=12345。switch(6)執(zhí)行default:輸出6,然后b自加為7,繼續(xù)執(zhí)行case1:break結(jié)束switch語句。第2次循環(huán):當(dāng)a=12345,b=a%10,則b=5,a=a/10=1234。switch(5)執(zhí)行case5:輸出5,

switch語句結(jié)束。第3次循環(huán):當(dāng)a=1234,b=a%10,則b=4,a=a/10=123。switch(4)執(zhí)行case4:輸出4,b自加為5。繼續(xù)執(zhí)行case5:輸出5,

switch語句結(jié)束。第4次循環(huán):當(dāng)a=123,b=a%10,則b=3,a=a/10=12。switch(3)

執(zhí)行case3:輸出3,b自加為4。執(zhí)行case4:輸出4,b自加為5。執(zhí)行case5:輸出5,switch語句結(jié)束。第5次循環(huán):當(dāng)a=12,b=a%10,則b=2,a=a/10=1。switch(2)

執(zhí)行case2:輸出2,

break結(jié)束switch語句。第6次循環(huán):當(dāng)a=1,b=a%10,則b=1,a=a/10=0。switch(1)

執(zhí)行case1:break結(jié)束switch語句。第7次循環(huán):當(dāng)a=0,while(a)為假循環(huán)結(jié)束。所以答案為B選項(xiàng):6545345222.

【答案】A【解析】do-while和while的異同點(diǎn)。不論是do-while或while只有while語句中的表達(dá)式為假(非0)即要結(jié)束循環(huán),A選項(xiàng)正確,C選項(xiàng)錯(cuò)。do-while是先執(zhí)行循環(huán)體再判斷while真假,while是選項(xiàng)判斷真假再根據(jù)情況來是否執(zhí)行循環(huán)體,B選項(xiàng)錯(cuò)。所有循環(huán)不是一定要用break結(jié)束,D選項(xiàng)錯(cuò)。23.

【答案】C【解析】若while里面語句條件為s>1000,那么第一次循環(huán)時(shí)候s=1大于1000即為假值,不會(huì)再進(jìn)行循環(huán),這樣得不到題目要求的結(jié)果。所以應(yīng)該改成s<=1000,這樣一旦當(dāng)s的值第一次大于1000的時(shí)候循環(huán)才會(huì)結(jié)束。24.

【答案】B【解析】當(dāng)i為奇數(shù)時(shí),i%2等于1。當(dāng)i為偶數(shù)時(shí),i%2等于0。所以當(dāng)i=0輸出字符9,當(dāng)i=1輸出字符8,當(dāng)i=2輸出字符9,當(dāng)i=3輸出字符8,當(dāng)i=4輸出字符9。當(dāng)i=5循環(huán)結(jié)束。所以選擇B。25.

【答案】B第1次、

當(dāng)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)?0。第2次、

當(dāng)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)?。第3次、

當(dāng)m=8,n=6,k=1,while(n/k>m/k)即while(6>8)為假,循環(huán)結(jié)束。然后執(zhí)行輸出n的值為6。所以選擇B。26.

【答案】B【解析】if(c>='a'&&c<='z')

表示當(dāng)c為小寫字母的時(shí)候?yàn)檎?。c=c-‘a(chǎn)’+’A’,減97然后加65,即小寫變大寫減32。所以本題從鍵盤讀入字符的時(shí)候每次循環(huán)都要把小寫變大寫然后再執(zhí)行輸出++c。即變?yōu)榇髮懭缓蠹?輸出。當(dāng)遇到#時(shí),#不等于#為假結(jié)束循環(huán),不會(huì)輸出#號(hào)。所以選擇B選項(xiàng)。27.

【答案】B【解析】考察分隔符(空格、回國,Tab)也是字符。c%是控制字符輸入與輸出的格式,當(dāng)輸入分隔符也會(huì)被讀取,在輸入用%c和getchar的時(shí)候不能用分隔符。所以選擇B。28.

【答案】A【解析】’\72’是轉(zhuǎn)義字符,轉(zhuǎn)義字符本質(zhì)上是1個(gè)字符。29.

【答案】B【解析】三個(gè)if的嵌套,其實(shí)就是只有三個(gè)if都為真時(shí)才會(huì)執(zhí)行輸出。本題在1---100的范圍內(nèi)找x符合加1是2的倍數(shù),加2是3的倍數(shù),加3是7的倍數(shù)。這樣的數(shù)字一共有兩個(gè)即25和67。本題輸出的是上述兩個(gè)值加3。30.

【答案】A【解析】條件表達(dá)式:?前面為真執(zhí)行:前面的表達(dá)式,?前面為假執(zhí)行:后面表達(dá)式;并且運(yùn)算方向?yàn)閺挠业阶蟆1绢}可以加個(gè)括號(hào):

w<x?w:

(z<y?z:x)先判斷z<y為真,括號(hào)里面值為x;上述式子可簡化為w<x?w:1。然后w<x為假,則結(jié)果為x即值為1。所以選擇A選項(xiàng)。31.

【答案】B【解析】若兩個(gè)if都為真,那每次都是把比較小賦值給a,則a是最小值

。若兩個(gè)if都為假,那么a就是三個(gè)里面最小的。若第一個(gè)if為真,那么把較小的給a,

第二個(gè)if為假,則也是最小值。若第一個(gè)if為假,說明a小,然后

第二個(gè)if為真,說明c比a還要小,把c賦值給a,即a也是最小值。所以選擇B選項(xiàng)。32.

【答案】B【解析】邏輯運(yùn)算短路現(xiàn)象,即:邏輯與左邊為假則右邊不再執(zhí)行,邏輯或左邊為真則右邊不再執(zhí)行。A選項(xiàng)a的值為0,那么a++等于0

,為假,邏輯或,不短路要執(zhí)行++b,b的值加1。B選項(xiàng)a的值為0,那么a++等于0

,為假,邏輯與運(yùn)算則不再執(zhí)行b++,b不變。C選項(xiàng)a的值為0,那么++a等于1

,為真,邏輯與,不短路要執(zhí)行b++,b的值加1。D選項(xiàng)a的值為0,那么+a(正a)等于0,為假,邏輯或,不短路要執(zhí)行++b,b的值加1。所以選擇B。33.

【答案】A【解析】比較兩個(gè)字符串的大小要用字符串比較函數(shù):strcmp()。B選項(xiàng)strcpy是字符串復(fù)制函數(shù)。CD兩個(gè)選項(xiàng)的方式不能操作字符串,字符串操作要用函數(shù)。所以選擇A。34.

【答案】B【解析】考查else和if配對的問題,else總與其之前最近且未曾配對的if進(jìn)行配對。本題配對情況如下圖:第一個(gè)if是單獨(dú)的語句。紅色的if

–else是屬于第一個(gè)else的語句。

割…………if(s<30)為真,m變?yōu)?。if(s<40)為真,m變?yōu)?,不再執(zhí)行下面的else。所以選擇B選項(xiàng)。35.

【答案】B【解析】break在循環(huán)的應(yīng)用,只要執(zhí)行break,則停止break所在循環(huán)。tx當(dāng)i=0時(shí),if(i<=5)為真,執(zhí)行break,循環(huán)結(jié)束

。i的值不會(huì)變,還是0。選擇B選項(xiàng)。36.

【答案】D【解析】考點(diǎn):continue用法,跳過循環(huán)體continue之后的語句直接進(jìn)行下一次循環(huán)條件的判定。break用法是結(jié)束循環(huán)。第1次、

當(dāng)i=1,a=7,i<=3為真,if(a>13)為假,不執(zhí)行break。if(a%2)為真,執(zhí)行a+=3,a變?yōu)?0,然后執(zhí)行continue,即執(zhí)行i++。i變?yōu)?。第2次、

當(dāng)i=2,a=10,i<=3為真,if(a>13)為假,不執(zhí)行break。if(a%2)為假,執(zhí)行a+=4,a=14,然后執(zhí)行i++,i變?yōu)?。第3次、

當(dāng)i=3,a=14,i<=3為真,if(a>13)為真,執(zhí)行break,結(jié)束循環(huán)。所以i為3,a為14。選擇D選項(xiàng)。37.

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

當(dāng)i=3時(shí),內(nèi)層第1個(gè)for循環(huán)j從1到3,執(zhí)行3次輸出*號(hào)。內(nèi)層第2個(gè)循環(huán)j等于1,3-i等于0,是j<0為假,不執(zhí)行輸出。第二次、

當(dāng)i=2時(shí),內(nèi)層第1個(gè)for循環(huán)j從1到2,執(zhí)行2次輸出*號(hào)。內(nèi)層第2個(gè)循環(huán)j等于1,3-i等于1,j從1到1為真,,執(zhí)行1次輸出#號(hào)。第三次、

當(dāng)i=3時(shí),內(nèi)層第1個(gè)for循環(huán)j從1到1,執(zhí)行1次輸出*號(hào)。內(nèi)層第2個(gè)循環(huán)j等于1,3-i等于2,j從1到2為真,執(zhí)行2次輸出#號(hào)。所以三次循環(huán)分別輸出***

**#

*##。選擇C選項(xiàng)。38.

【答案】C【解析】本題考點(diǎn):沒有遇到break時(shí)繼續(xù)向下執(zhí)行,遇到break就結(jié)束switch語句。第一次、

給c讀入’2’,switch(‘2’-’2’),即switch(0),執(zhí)行case0:

繼續(xù)case1:輸出c+4即字符6。繼續(xù)case2:輸出c+4即字符6。然后break結(jié)束switch語句。第二次、

給c讀入’4’,switch(‘4’-’2’),即switch(2),執(zhí)行case2:輸出c+4即字符8。然后break結(jié)束switch語句。第三次、

給c讀入’7’,switch(‘7’-’2’),即switch(5),執(zhí)行default:輸出c+2即字符9。第四次、

給c讀入’3’,switch(‘3’-’2’),即switch(1),執(zhí)行case1:輸出c+4即字符7。繼續(xù)case2:輸出c+4即字符7。然后break結(jié)束switch語句。所以輸出668977。選擇C選項(xiàng)。39.

【答案】D【解析】fun函數(shù)里面if(ch>='A'&&ch<='Z')ch=ch-'A'+'a';功能是把大寫字母變小寫。所以每次調(diào)用fun函數(shù)都把大寫變小寫字母。非大寫字母不做處理。所以選擇D選項(xiàng)。40.

【答案】D【解析】第1次、

當(dāng)i=1,k=0,i<6為真,switch(1%3),執(zhí)行case1:k變?yōu)?。然后break跳出switch,再執(zhí)行i+=1,i變?yōu)?。第2次、

當(dāng)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的值小永遠(yuǎn)為2,一直路過i+=1不執(zhí)行進(jìn)行下一次循環(huán)。就構(gòu)成死循環(huán)。所以選擇D選項(xiàng)。41.

【答案】A【解析】第一次當(dāng)i=0,i<3為真,執(zhí)行switch(1%3),執(zhí)行case0:a變?yōu)?。然后break結(jié)束switch語句。再執(zhí)行if(i%3==0)為真,執(zhí)行break結(jié)束循環(huán)。最終只有a的值增加1,其他變量沒變。所以選擇A選項(xiàng)。42.

【答案】A【解析】表達(dá)式只要是任意合法的表達(dá)式即可。所以A選項(xiàng)正確。43.

【答案】A【解析】BCD三個(gè)選項(xiàng)是三個(gè)轉(zhuǎn)義字符,因?yàn)檗D(zhuǎn)變了含義,所以輸出后并不是原來字符。A選項(xiàng)并不屬于轉(zhuǎn)義字符,輸出仍是幫字母。44.

【答案】D【解析】題干中i定義為整形變量,那么兩個(gè)整數(shù)運(yùn)算得到結(jié)果是整數(shù)。所當(dāng)i等于2、2、3、4、5、6、7、8、9……的時(shí)候,1/i結(jié)果都只是0。這樣如果是D選項(xiàng)并不能求出式子結(jié)果。應(yīng)該把D選項(xiàng)改成sun+=1.0/i;45.

【答案】B【解析】putchar是輸出字符并且不帶引號(hào),本題是輸出’9’-i。當(dāng)i=0,’9’-0是’9’。當(dāng)i=1,’9’-0是’8’。當(dāng)i=2,’9’-0是’7’。當(dāng)i=3,’9’-0是’6’。當(dāng)i=4,’9’-0是’5’。當(dāng)i=5,i<5為假循環(huán)結(jié)束。46.

【答案】B【解析】考查邏輯運(yùn)算。小寫字母即大于等于’a’并且小于等于’z’。A選項(xiàng),只是數(shù)學(xué)中的表達(dá)方式,先算’a’<=c,不管c是什么字符,’a’<=c的值不是1就是0。那再算1<=’z’或0<=’z’都為真。B選項(xiàng),&&表示邏輯與,即并且的意思。C選項(xiàng),是或者,要排除。D選項(xiàng),在C語言中并沒有AND用法。47.

【答案】A【解析】閏年要年份是4的整數(shù)倍,并且年份為整百的要是400的整數(shù)倍。A選項(xiàng),第一個(gè)if表示400整數(shù)倍返回1。elseif若year是1900那么if不執(zhí)行,也就是說最后面一對if

…else都不執(zhí)行,這樣程序并沒有判斷出1900是否為閏年。所以選擇A選項(xiàng)。48.

【答案】A【解析】考查else語句。第一個(gè)if(x>10)為真,執(zhí)行輸出1。后面的elseif都不執(zhí)行。49.

【答案】C【解析】十六進(jìn)制轉(zhuǎn)義字符的x要小寫。并且不帶前導(dǎo)0。所以選擇C選項(xiàng)。50.

【答案】D【解析】第一次:當(dāng)i=1,a=6。第一個(gè)if為真,執(zhí)行break,結(jié)束循環(huán)。a和i的值沒有變。然后輸出i和a的值。51.

【答案】A【解析】第1次:當(dāng)i=0;data=5;if為真,執(zhí)行continue,即直接執(zhí)行i++;i變?yōu)?。第2次:當(dāng)i=1;data=5;if為真,執(zhí)行continue,即直接執(zhí)行i++;i變?yōu)?。第3次:當(dāng)i=2;data=5;if為真,執(zhí)行continue,即直接執(zhí)行i++;i變?yōu)?。第4次:當(dāng)i=3;data=5;if為真,執(zhí)行continue,即直接執(zhí)行i++;i變?yōu)?。第5次:當(dāng)i=4;data=5;if為真,執(zhí)行continue,即直接執(zhí)行i++;i變?yōu)?。第6次:當(dāng)i=5;data=5;if為真,執(zhí)行continue,即直接執(zhí)行i++;i變?yōu)?。第7次:當(dāng)i=6;data=5;if為假,不行執(zhí)行continue,執(zhí)行printf(“%d”,i);輸出6。然后i++;i變7。第8次:當(dāng)i=7;data=5;if為假,不行執(zhí)行continue,執(zhí)行printf(“%d”,i);輸出7。然后i++;i變8。第9次:當(dāng)i=8;data=5;i<8為假循環(huán)結(jié)束。52.

【答案】C【解析】’c’的ASCII為99。第1次:當(dāng)i=0;c=’0’;if為假,不執(zhí)行continue,執(zhí)行輸出prinft(“%d”,i),即輸出0,然后i++,變?yōu)?。后面幾次循環(huán)同樣不會(huì)執(zhí)行continue,即執(zhí)行輸出對應(yīng)i的值。當(dāng)i=5時(shí)循環(huán)結(jié)束。所以本題輸出的是0,1,2,3,4,選擇。53.

【答案】A【解析】第1次:a=-2,b=2。++a為-1,--b為1。所以++a&&--b為真,執(zhí)行輸出-1,1,。第2次:a=-1,b=1。++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次:當(dāng)i=2,data=10;data%i=0;if為假,執(zhí)行else,continue,即直接執(zhí)行i++;i變?yōu)?。第2次:當(dāng)i=3,data=10;data%i=1;if為真,執(zhí)行printf(),輸出3-。然后i++,i變?yōu)?。第3次:當(dāng)i=4,data=10;data%i=2;if為真,執(zhí)行printf(),輸出4-。然后i++,i變?yōu)?。第4次:當(dāng)i=5,data=10;data%i=0;if為假,執(zhí)行else,continue,即直接執(zhí)行i++;i變?yōu)?。第5次:當(dāng)i=6,i<6為假循環(huán)結(jié)束。本題輸出值為3-4-。56.

【答案】D【解析】第1個(gè)if假,執(zhí)行嵌套外層的else,即第2個(gè)else,然后執(zhí)行內(nèi)嵌的第二組if—else,即第3個(gè)if,z<x為假,執(zhí)行最后一個(gè)else輸出字符D。57.

【答案】B【解析】A選項(xiàng),a/b=1,為真。!(1)非真,即為假。B選項(xiàng),b/a=0,為假。!(0)非假,即為真。C選項(xiàng),!b為假,!a也為假,所以!b||!a。為假。D選項(xiàng),!a為假,短路現(xiàn)象,&&右邊不執(zhí)行,整體為假。58.

【答案】Ddata為10,i的值循環(huán)時(shí)從0到9。所以循環(huán)體里面if每次都為假。即每次執(zhí)行else,輸出i的值。即從0到9全部輸出。59.

【答案】D【解析】本題考查轉(zhuǎn)義字符。十六進(jìn)制轉(zhuǎn)義字符x要小寫并不帶前導(dǎo)0,A、C兩個(gè)選項(xiàng)錯(cuò)。八進(jìn)制轉(zhuǎn)義字符里是八進(jìn)制數(shù),八進(jìn)制數(shù)最大的數(shù)字是7,B選項(xiàng)錯(cuò)。60.

【答案】A【解析】第1次:ch=’M’,ch--,ch變?yōu)椤疞’,然后輸出。第2次:ch=’L’,ch--,ch變?yōu)椤疜’,然后輸出。第3次:ch=’K’,while(ch!=’K’)為假,循環(huán)結(jié)束。61.

【答案】B【解析】條件表達(dá)式,運(yùn)算法則是真前假后。k=x<y?(y<z?1:0):0表達(dá)當(dāng)x<y并且y<z時(shí)k=1,其他條件為0。A選項(xiàng)表達(dá)x<y時(shí)k=0,y<z時(shí)k=1。B選項(xiàng)&&即為且的意思。C選項(xiàng)表達(dá)當(dāng)x<y并且y<z時(shí)k=1,當(dāng)x<y,并且y<z為假時(shí),k=0。而x<y為假并沒有說明k為多少。D選項(xiàng)表達(dá)當(dāng)x<y或者y<z時(shí)k=1,其他情況k=0。62.

【答案】A【解析】A選項(xiàng)total初值為1,這樣實(shí)際求和為1+1+2+3+4+5。63.

【答案】B【解析】第1次:ch=’1’,while()為真,執(zhí)行輸出ch-‘0’,即1,然后ch++,ch變?yōu)椤?’。第2次:ch=’2’,while()為真,執(zhí)行輸出ch-‘0’,即2,然后ch++,ch變?yōu)椤?’。第3次:ch=’3’,while()為真,執(zhí)行輸出ch-‘0’,即3,然后ch++,ch變?yōu)椤?’?!?次:ch=’8’,while()為真,執(zhí)行輸出ch-‘0’,即8,然后ch++,ch變?yōu)椤?’。第9次:ch=’9’,while()為假循環(huán)結(jié)束。64.

【答案】B【解析】if()、while()括號(hào)里面表達(dá)式可以是任意合法的數(shù)值及表達(dá)式。包含常量、變量。65.

【答案】A【解析】第1次:data=3,i=0;進(jìn)入循環(huán),if為假,不執(zhí)行break,直接執(zhí)行輸出i,即0。然后i++,i變?yōu)?。第2次:data=3,i=1;進(jìn)入循環(huán),if為假,不執(zhí)行break,直接執(zhí)行輸出i,即1。然后i++,i變?yōu)?。第3次:data=3,i=2進(jìn)入循環(huán),if為假,不執(zhí)行break,直接執(zhí)行輸出i,即2。然后i++,i變?yōu)?。第4次:data=3,i=3;進(jìn)入循環(huán),if為假,不執(zhí)行break,直接執(zhí)行輸出i,即3。然后i++,i變?yōu)?。第5次:data=3,i=4;進(jìn)入循環(huán),if為真,執(zhí)行break,結(jié)束循環(huán)。本題只要i>data為假就不執(zhí)行break.一旦為真執(zhí)break,結(jié)束循環(huán)。66.

【答案】C【解析】三個(gè)if并列關(guān)系,相互不影響。第1個(gè)if,’\0’為空值,即等于0,

if為真,輸出1。第2個(gè)if,”0”是字符串與0不相等,if為假,不執(zhí)行輸出。第3個(gè)if,”A”是字符串與字符’0’不相等,if為假,不執(zhí)行輸出。本題只有第1個(gè)輸出了字符1。67.

【答案】D【解析】考查字符的算術(shù)運(yùn)算。A選項(xiàng)值為9-48=-39。B選項(xiàng)65+32=97,是a的ASCII碼值。C選項(xiàng)97-32=65,是A的ASCII碼。D選項(xiàng)9+’0’=9+48=57為9的ASCII值。68.

【答案】A【解析】%d表示整數(shù)形式。’A’和’Y’的ASCII碼為65和89。69.

【答案】C【解析】第1次:i=0,進(jìn)入循環(huán),i%3==0,if為假,執(zhí)行else

,輸出字符’A’+0,即A。然后i++,i變?yōu)?。第2次:i=1,進(jìn)入循環(huán),i%3==1,if為真,執(zhí)行輸出字符’3’+1,即4。然后i++,i變?yōu)?。第3次:i=2,進(jìn)入循環(huán),i%3==2,if為真,執(zhí)行輸出字符’3’+2,即5。然后i++,i變?yōu)?。第4次:i=3,進(jìn)入循環(huán),i%3==0,if為假,執(zhí)行else

,輸出字符’A’+3,即D。然后i++,i變?yōu)?。第5次:i=4,進(jìn)入循環(huán),i%3==1,if為真,執(zhí)行輸出字符’3’+4,即7。然后i++,i變?yōu)?。第6次:i=5,進(jìn)入循環(huán),i%3==2,if為真,執(zhí)行輸出字符’3’+5,即8。然后i++,i變?yōu)?。第6次:i=6,i<6為假,結(jié)束循環(huán)。輸出A45D78。70.

【答案】D【解析】第1次:i=0,進(jìn)入循環(huán),輸出’Z’-0,即Z。然后i++;i變?yōu)?。第2次:i=1,進(jìn)入循環(huán),輸出’Z’-1,即Y。然后i++;i變?yōu)??!?次:i=4,進(jìn)入循環(huán),輸出’Z’-0,即V。然后i++;i變?yōu)?。第6次:i=5,i<5為假結(jié)束循環(huán)。本題每次循環(huán)輸出的字符都減1。71.

【答案】D【解析】scanf()給data賦值’B’,即data=66。第1次:當(dāng)i=2,data=66。data%i=0,if為假,不執(zhí)行continue,執(zhí)行輸出i的值為2。然后i++,i變?yōu)?。第2次:當(dāng)i=3,data=66。data%i=0,if為假,不執(zhí)行continue,執(zhí)行輸出i的值為3。然后i++,i變?yōu)?。第3次:當(dāng)i=4,data=66。data%i=2,if為真,執(zhí)行continue,即直接執(zhí)行for里面i++,i變?yōu)?。第4次:當(dāng)i=5,data=66。data%i=1,if為真,執(zhí)行continue,即直接執(zhí)行for里面i++,i變?yōu)?。第5次:當(dāng)i=6,data=66。data%i=0,if為假,不執(zhí)行continue,執(zhí)行輸出i的值為6。然后i++,i變?yōu)?。第6次:當(dāng)i=7,data=66。data%i=3,if為真,執(zhí)行continue,即直接執(zhí)行for里面i++,i變?yōu)?。第7次:當(dāng)i=8,data=66。data%i=2,if為真,執(zhí)行continue,即直接執(zhí)行for里面i++,i變?yōu)?。第8次:當(dāng)i=9data=66。data%i=3,if為真,執(zhí)行continue,即直接執(zhí)行for里面i++,i變?yōu)?0。第9次:當(dāng)i=10,i<10為假,結(jié)束循環(huán)。本題即只有當(dāng)data%i為0時(shí)執(zhí)行輸出。72.

【答案】A【解析】加號(hào)在后,先用后加,a++的值為0,

&&左邊為0即短路現(xiàn)象,b++不執(zhí)行。if(a++&&b++)為假,執(zhí)行else輸出F。然后a=b++,因?yàn)榧犹?hào)在后所以b++為1,即a=1。然后b加個(gè)1變?yōu)?。最后一行輸出a、b的值分別是1和2。所以答案是A選項(xiàng)。73.

【答案】C【解析】題目表達(dá)含義是當(dāng)k為大于0的偶數(shù)時(shí),四個(gè)選項(xiàng)哪個(gè)為真。用代入法。假設(shè)k=2。A選項(xiàng):邏輯或(||),k>0為真,短路現(xiàn)象,右邊不需要運(yùn)算,這樣不論k是奇數(shù)還是偶數(shù)只要k大于0為真,排除A。B選項(xiàng):賦值號(hào)左邊只能是變量。k%2=0語法錯(cuò)誤。C選項(xiàng):k%2!=1,k對2求余為0,1不等于0為假。D選項(xiàng):用的邏輯或(||),與A相同。74.

【答案】C【解析】第1次:do進(jìn)入循環(huán),scanf給x賦值-1。x=-1。x>0為假,t=0.switch(0),執(zhí)行case0:break,結(jié)束switch。然后執(zhí)行z+=x,z=-1;第2次:

while(-1)為真,

進(jìn)入循環(huán),scanf給x賦值1。x=1。x>0為真,t=1,switch(1),執(zhí)行case1:y+=x;y=1;然后執(zhí)行continue,即直接進(jìn)行下一次循環(huán)。;第3次:

while(1)為真,

進(jìn)入循環(huán),scanf給x賦值-2。x=-2。x>0為假,t=0,switch(0),執(zhí)行case0:break,結(jié)束switch。然后執(zhí)行z+=x,z=-1+(-2)=-3;第4次:

while(-2)為真,

進(jìn)入循環(huán),scanf給x賦值2。x=2。x>0為真,t=1,switch(1),執(zhí)行case1:y+=x;y=1+2=3;然后執(zhí)行continue,即直接進(jìn)行下一次循環(huán)。;第5次:

while(2)為真,進(jìn)入循環(huán),scanf給x賦值0。x=0。x>0為假,t=0,switch(0),執(zhí)行case0:break,結(jié)束switch。然后執(zhí)行z+=x,z=-3+0;第6次:

while(0)為假,循環(huán)結(jié)束。最后輸出y和的值分別為3和-3。75.

【答案】C【解析】if(b[k]<’m’)即表示每次循環(huán)查找字符串里面小于字符m的字符。找到后執(zhí)行:b[k]=b[k]-‘a(chǎn)’+’A’;即小寫變大寫。本題把所有小于m的字符變成大寫。選擇C。76.

【答案】A【解析】第1次:i=0,sum=1。do進(jìn)入循環(huán)sum+=i++。加號(hào)在后,先用后加。sum=1+0=1。然后i變?yōu)?。第2次:i=1,sum=1。while(i<6)為真,進(jìn)入循環(huán)sum+=i++。加號(hào)在后,先用后加。sum=1+1=2。然后i變?yōu)??!?次:i=5,sum=11。while(i<6)為真,進(jìn)入循環(huán)sum+=i++。加號(hào)在后,先用后加。sum=11+5=16。然后i變?yōu)?。第7次:i=6,sum=16。while(i<6)為假,結(jié)束循環(huán)。77.

【答案】A【解析】先執(zhí)行k=2,然后再執(zhí)行k==0為假,循環(huán)結(jié)束。不執(zhí)行循環(huán)體,即執(zhí)行0次。78.

【答案】C【解析】C選項(xiàng)0<x<5是數(shù)學(xué)表達(dá)方式,在c語言中不能表達(dá)0小于并且同時(shí)x小于5。在c語言中0<x只有兩個(gè)結(jié)果,不是0就是1。那不論是0還是1都是小于5的。也就是說不論x為什么值,0<x<5都為真。這樣就排除C選項(xiàng)就與題干不等價(jià)。79.

【答案】B【解析】第1次:a=1,減號(hào)在后,a—值為1,即為真,由于執(zhí)行了a--,a變?yōu)?。然后執(zhí)行循環(huán)體b--,b變?yōu)?;第2次:a=0,減號(hào)在后,a—值為0,即為假,循環(huán)結(jié)束。由于執(zhí)行了a--,a變?yōu)?1。輸出a、b的值為-1和0。80.

【答案】A【解析】m1函數(shù)功能是返回較小值。m2函數(shù)功能是返回較大值。fun函數(shù)功能是返回兩數(shù)之和。先執(zhí)行m1(x,y)返回2,再執(zhí)行m2(y,z)返回3。然后再執(zhí)行fun(2,3)返回5。81.

【答案】C【解析】第1次:當(dāng)a=0,b=0;進(jìn)入循環(huán)。if(a%2==0)為真,執(zhí)行continue,即直接執(zhí)行a++。a變?yōu)?。第2次:當(dāng)a=1,b=0;進(jìn)入循環(huán)。if(a%2==0)為假,不執(zhí)行continue,執(zhí)行b+=a,b變?yōu)?;然后執(zhí)行break,循環(huán)結(jié)束。最后執(zhí)行輸出b的值為1。82.

【答案】A第1次:a=123456,while(a)為真,執(zhí)行循環(huán)體。b=a%10=6,a=a/10=12345。switch(6),執(zhí)行default,輸出b++。加號(hào)在后,先用后加,所以輸出6。然后b變?yōu)?。繼續(xù)執(zhí)行case1:continue,直接進(jìn)入下一次循環(huán)。第2次:a=12345,while(a)為真,執(zhí)行循環(huán)體。b=a%10=5,a=a/10=1234。switch(5),執(zhí)行default,輸出b++。加號(hào)在后,先用后加,所以輸出5。然后b變?yōu)?。繼續(xù)執(zhí)行case1:continue,直接進(jìn)入下一次循環(huán)。第3次:a=1234,while(a)為真,執(zhí)行循環(huán)體。b=a%10=4,a=a/10=123。switch(4),執(zhí)行case4:,輸出b++。加號(hào)在后,先用后加,所以輸出4。然后b變?yōu)?。然后執(zhí)行continue,直接進(jìn)入下一次循環(huán)。第4次:a=123,while(a)為真,執(zhí)行循環(huán)體。b=a%10=3,a=a/10=12。switch(3),執(zhí)行case3:,輸出b++。加號(hào)在后,先用后加,所以輸出3。然后b變?yōu)?。繼續(xù)執(zhí)行case4:,輸出b++。加號(hào)在后,先用后加,所以輸出4。然后執(zhí)行continue,直接進(jìn)入下一次循環(huán)。第5次:a=12,while(a)為真,執(zhí)行循環(huán)體。b=a%10=2,a=a/10=1。switch(2),執(zhí)行case2:,輸出b++。加號(hào)在后,先用后加,所以輸出2。然后b變?yōu)?。然后執(zhí)行continue,直接進(jìn)入下一次循環(huán)。第6次:a=1,while(a)為真,執(zhí)行循環(huán)體。b=a%10=1,a=a/10=0。switch(1),執(zhí)行casecontinue,直接進(jìn)入下一次循環(huán)。第7次:a=0,while(a)為假,循環(huán)結(jié)束。最終結(jié)果為:65434283.

【答案】A【解析】當(dāng)i為偶數(shù)if為假,執(zhí)行輸出b+i。當(dāng)i為奇數(shù)if為真,執(zhí)行else

輸出a+i。所以當(dāng)i=0,輸出’A’+0,即A。當(dāng)i=1,輸出’3’+1,即4。當(dāng)i=2,輸出’A’+2,即C。當(dāng)i=3,輸出’3’+3,即6。當(dāng)i=4,輸出’A’+4,即E。當(dāng)i=5,輸出’3’+5,即8。當(dāng)i=6,循環(huán)結(jié)束。84.

【答案】A【解析】B選項(xiàng):fac初值為0

,每次相乘結(jié)果都是0。C選項(xiàng):do……while循環(huán),每次循環(huán)先執(zhí)行了k++。最后一次當(dāng)k=5的時(shí)候進(jìn)入循環(huán),k變成6。最終結(jié)果是6!。D選項(xiàng):第一次循環(huán)給fac乘0,后面再乘結(jié)果還是0。85.

【答案】A【解析】else總與其之前最近且未曾配對的if進(jìn)行配對。A選項(xiàng)第2個(gè)if和else是一對。本題結(jié)構(gòu)是if()

{if()…else…}。當(dāng)math>=60的時(shí)候第2個(gè)if為假。不會(huì)執(zhí)行任何語句。86.

【答案】C【解析】第1次:a=-1,b=2。a++==-1為真,b--==-2為真。同時(shí)a變?yōu)?,b變?yōu)?。執(zhí)行循環(huán)體輸出a、b值為0,1。第2次:a=0,b=1。a++==0為假,短路現(xiàn)象b—不執(zhí)行,a變?yōu)?。循環(huán)結(jié)束。然后再輸出a、b的值為1和1。最終結(jié)果是0,1,1,1。87.

【答案】B【解析】當(dāng)i%3=0時(shí)if為假,執(zhí)行輸出b+i。當(dāng)i%3不為0時(shí)if為真,執(zhí)行else

輸出a+i。當(dāng)i=0時(shí)輸出b+i,即字符a當(dāng)i=1時(shí)輸出a+i,即字符1當(dāng)i=2時(shí)輸出a+i,即字符2當(dāng)i=3時(shí)輸出b+i,即字符d當(dāng)i=4時(shí)i<4為假,循環(huán)結(jié)束。88.

【答案】A【解析】第1次:a=0,b=0。進(jìn)入循環(huán)。if(a%2==0)為真,執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第2次:a=1,b=0。進(jìn)入循環(huán)。if(a%2==0)為假,不執(zhí)行continue。執(zhí)行b+=a,b=1。然后執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第3次:a=2,b=1。進(jìn)入循環(huán)。if(a%2==0)為真,執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第4次:a=3,b=1。進(jìn)入循環(huán)。if(a%2==0)為假,不執(zhí)行continue。執(zhí)行b+=a,b=4。然后執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第5次:a=4,b=4。進(jìn)入循環(huán)。if(a%2==0)為真,執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第4次:a=5,b=4。進(jìn)入循環(huán)。if(a%2==0)為假,不執(zhí)行continue。執(zhí)行b+=a,b=9。然后執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第5次:a=6,b=9。進(jìn)入循環(huán)。if(a%2==0)為真,執(zhí)行continue,即直接執(zhí)行a++,a變?yōu)?。第6次:a=7,b=4。a<7為假,循環(huán)結(jié)束

。輸出b的值為7。89.

【答案】C【解析】A選項(xiàng):省略i++,i永遠(yuǎn)為0,即一直小于10,即永遠(yuǎn)為真。構(gòu)成死循環(huán)。B、D兩個(gè)選項(xiàng)for里面第2個(gè)表達(dá)式缺省會(huì)引起死循環(huán)。C

選項(xiàng)缺省第1個(gè)表達(dá)式不會(huì)引起死循環(huán)。90.

【答案】D【解析】第1次:ch=’A’,while為真,執(zhí)行輸出ch-‘A’,即0。然后ch++,ch變?yōu)椤瓸’。第2次:ch=’B’,while為真,執(zhí)行輸出ch-‘A’,即1。然后ch++,ch變?yōu)椤瓹’。第3次:ch=’C’,while為真,執(zhí)行輸出ch-‘A’,即2。然后ch++,ch變?yōu)椤瓺’。第4次:ch=’D’,while為假,結(jié)束循環(huán)。91.

【答案】A【解析】主要考查switch中沒有break就要繼續(xù)執(zhí)行下面case。s是首地址。第1次:++s指向字符1,while()為真。*s-‘0’=1,

switch(1),執(zhí)行case1:輸出*s+1即字符2。然后break。結(jié)束switch。隨后下一次循環(huán)。第2次:++s指向字符2,while()為真。*s-‘0’=2,

switch(2),執(zhí)行case2:輸出*s+1即字符3。然后break。結(jié)束switch。隨后下一次循環(huán)。第3次:++s指向字符3,while()為真。*s-‘0’=3,

switch(3),執(zhí)行case3:輸出*s+1即字符4。繼續(xù)執(zhí)行default

:輸出*s+1還是字符4。隨后一下次循環(huán)。第4次:++s指向字符4,while()為真。*s-‘0’=4,

switch(4),沒有找到對應(yīng)case,那執(zhí)行default

:輸出*s+1還是字符5。第5次:++s指向字符空值,while()為假,循環(huán)結(jié)束。92.

【答案】A【解析】第1次:每次循環(huán)都是把i賦值給a.然后i自加1。最后一次循環(huán)時(shí)i=10,然后a=10,隨后i自加1變?yōu)?1。最后輸出i和a的值為11和10。93.

【答案】D【解析】第1次:ch=’M’,while()為真,執(zhí)行輸出ch,即M字符。然后ch--,ch變?yōu)椤疞’。第2次:ch=’L

’,while()為真,執(zhí)行輸出ch,即L字符。然后ch--,ch變?yōu)椤疜’。第3次:ch=’K’,K!=K

為假,即while()為假循環(huán)結(jié)束。94.

【答案】C【解析】第1次:i=0,c接受A字符。輸出(’A’-‘A’+5)%26+’a’即’a’+5=f。第2次:i=1,c接受P字符。輸出(‘P’+5-‘A’+)%26+’a’即’a’+16=u。第3次:i=2,c接受E字符。輸出(‘E’+5-‘A’)%26+’a’即’a’+9=j。第4次:i=3,i<3為假,結(jié)束循環(huán)。95.

【答案】C【解析】C選項(xiàng)if(x=y),給x賦值,變?yōu)?,if為假,不執(zhí)行if后面語句,y不會(huì)變,為原值0。96.

【答案】B【解析】i初值為4,先執(zhí)行for里面第一個(gè)表達(dá)式,即輸出i的初值為4。然后執(zhí)行for第2個(gè)表達(dá)式i<2為假,循環(huán)結(jié)束

。97.

【答案】B【解析】if()、while()里面的表達(dá)式可以任意合法的表達(dá)式。98.

【答案】D【解析】第1次:i=0。輸出’K’-i,即字符K。然后i++,i變?yōu)?。第2次:i=1。輸出’K’-i,即字符J。然后i++,i變?yōu)?。第3次:i=2。輸出’K’-i,即字符L。然后i++,i變?yōu)?。第4次:i=3。i<3為假,循環(huán)結(jié)束。99.

【答案】A【解析】第1個(gè)輸入字符為字符a,進(jìn)行第1次循環(huán)判定時(shí)’a’==’e’為假,循環(huán)直接結(jié)束,并沒有執(zhí)行循環(huán)體輸出語句。100.

【答案】A【解析】while語句要先進(jìn)行循環(huán)條件的判定,若第1次判定為假,循環(huán)體一次也不執(zhí)行。101.

【答案】D【解析】第1次:i=0,data=5進(jìn)入循環(huán),if為假,不執(zhí)行break,然后輸出i的值為0。第2次:i=0,data=5進(jìn)入循環(huán),if為假,不執(zhí)行break,然后輸出i的值為1。第3次:i=0,data=5進(jìn)入循環(huán),if為假,不執(zhí)行break,然后輸出i的值為2。第4次:i=0,data=5進(jìn)入循環(huán),if為假,不執(zhí)行break,然后輸出i的值為3。第5次:i=0,data=5進(jìn)入循環(huán),if為假,不執(zhí)行break,然后輸出i的值為4。第5次:i=0,data=5進(jìn)入循環(huán),if為真,執(zhí)行break結(jié)束循環(huán)。102.

【答案】A【解析】本題為求和。I從1開始,每次在循環(huán)體里面自加1一次,在for第3個(gè)表達(dá)式自加一次。即每次i的值加2??梢耘卸槠鏀?shù)相加。f每次都正負(fù)1相間的變化。然后求和時(shí)每次都乘f可以使用求和項(xiàng)正負(fù)相間的變化,所以本題選擇A。103.

【答案】D【解析】a=0,a++加號(hào)在后,先用后加,a++=0。即第一個(gè)if(a++)為假,執(zhí)行else輸出F。由于執(zhí)行了a++,所以a變?yōu)?。然后面輸出a,b的值為1,4。104.

【答案】C【解析】第1次:當(dāng)i=9。Switch(i/10),i/10=0,執(zhí)行case0:m++;n++;break:m變?yōu)?,n變?yōu)?。結(jié)束switch.隨后i++,i變?yōu)?0。第2次:當(dāng)i=10。Switch(i/10),i/10=1,沒有找到對應(yīng)case,執(zhí)行default:k++;n++;n變?yōu)?,k變?yōu)?。switch.結(jié)束隨后i++,i變?yōu)?1。第2次:當(dāng)i=11。Switch(i/10),i/10=1,沒有找到對應(yīng)case,執(zhí)行default:k++;n++;n變?yōu)?,k變?yōu)?。switch.結(jié)束隨后i++,i變?yōu)?2。第4次:當(dāng)i=12。i<=11為假。循環(huán)結(jié)束。最終m,n,k的值分別為1,3,2。105.

【答案】C【解析】x=0x18是給x賦值。X為十六進(jìn)制數(shù),不為0。即if為真,執(zhí)行輸出T。由于if只管一個(gè)語句,對后面語句沒影響。然后再執(zhí)行輸出F。106.

【答案】A【解析】輸入21,那么c接受字符2,d接受字符1。switch(c-‘0’)即要執(zhí)行case2:。進(jìn)入case1:后又進(jìn)入另一個(gè)switch(d%’0’),字符1的ASCII碼為49,字符0為48。即switch(49%48),case1:printf(“#”)。輸出#。由于沒有break,繼續(xù)執(zhí)行case2:printf(“&”),輸出&。結(jié)果為#&。107.

【答案】A【解析】注意記住一些常見轉(zhuǎn)義字符。\a響鈴,\b退格,\r回車。A選項(xiàng)不存在。108.

【答案】C【解析】循環(huán)嵌套。外層一次,內(nèi)層一輪。第1次:j=0,進(jìn)入whlie循環(huán),j++,j變?yōu)?。if(j==1)為真,執(zhí)行continue,跳過continue后面內(nèi)容,直接進(jìn)行下一次循環(huán)。第2次:j=1,進(jìn)入whlie循環(huán),j++,j變?yōu)?。if(j==1)為假,不執(zhí)行continue。然后進(jìn)入內(nèi)層的for循環(huán)。

當(dāng)i=0,if為假,不執(zhí)行break。然后a=a*10+i=0。if(i<1)為真,執(zhí)行b=a,b=0.

當(dāng)i=1,if為假,不執(zhí)行break。然后a=a*10+i=1。if(i<1)為假,不執(zhí)行后面語句。當(dāng)i=2,if為假,執(zhí)行break。內(nèi)層循環(huán)結(jié)束。第3次:j=2,,進(jìn)入whlie循環(huán),j++,j變?yōu)?。if(j==1)為假,不執(zhí)行continue。然后進(jìn)入內(nèi)層的for循環(huán)。

當(dāng)i=0,if為假,不執(zhí)行break。然后a=a*10+i=10。if(i<1)為真,執(zhí)行b=a,b=10

當(dāng)i=1,if為假,不執(zhí)行break。然后a=a*10+i=101。if(i<1)為假,不執(zhí)行后面語句。當(dāng)i=2,if為假,執(zhí)行break。內(nèi)層循環(huán)結(jié)束。第4次:j=3,while(j<3)為假,結(jié)束外層循環(huán)。最后輸出a,b值分別是101,10。109.

【答案】C【解析】運(yùn)算優(yōu)先級(jí)邏輯高于邏輯或,進(jìn)入if相當(dāng)于a++||(b++&&++c)后先執(zhí)行a++加號(hào)在后,先用后加,a++為假,同時(shí)a變?yōu)?。然后執(zhí)行后面b++&&++c,b++也為0,那么短路現(xiàn)象++c不再執(zhí)行,c不變。(b++&&++c)即為假。由于b++執(zhí)行,所以b變?yōu)?。由于邏輯或||兩邊都為假。所以if為假。執(zhí)行else,輸出a,c,b的值分別是1,0,1。110.

【答案】A【解析】點(diǎn)到圓心的距離小于半徑1。勾股定理,利用點(diǎn)的橫縱坐標(biāo)分別減去圓心的橫縱坐標(biāo)的平方與半徑的平方相比較即可以判斷點(diǎn)與圓的位置關(guān)系。即(x-2)*(x-2)+(y-1)*(y-1)<1在圓內(nèi),(x-2)*(x-2)+(y-1)*(y-1)=1在圓上。(x-2)*(x-2)+(y-1)*(y-1)>1在圓外。111.

【答案】A【解析】條件表達(dá)式,運(yùn)算規(guī)則是真前假后。問號(hào)前為當(dāng)flag不等于0時(shí)為真選擇冒號(hào)前,當(dāng)flag為假執(zhí)行冒號(hào)后。112.

【答案】C【解析】三個(gè)if并列關(guān)系,相互不影響。第1個(gè)if,’\0’為空值,即等于0,

if為真,輸出<1>OK。第2個(gè)if,’0’是字符與0不相等,if為假,不執(zhí)行輸出。第3個(gè)if,’z’>’A’為真

,執(zhí)行輸出<3>OK。選擇C選項(xiàng)。113.

【答案】A【解析】Switch語句中可以不使用break和default。break可以在循環(huán)體和switch語句。break可以與case或default配對使用。114.

【答案】D【解析】D

選項(xiàng)n<10,所以求結(jié)果為1+2+3+……+9。115.

【答案】C【解析】第1次:當(dāng)i=1,a=6,進(jìn)入循環(huán)。if(a<5)為假,不執(zhí)行break。然后第2個(gè)if(a%2)也為假,不執(zhí)行后面復(fù)合語句。再執(zhí)行a=a+4。a變?yōu)?0。然后i++,i變?yōu)?。第2次:當(dāng)i=2,a=10,進(jìn)入循環(huán)。if(a<5)為假,不執(zhí)行break。然后第2個(gè)if(a%2)也為假,不執(zhí)行后面復(fù)合語句。再執(zhí)行a=a+4。a變?yōu)?4。然后i++,i變?yōu)?。第3次:當(dāng)i=3,a=14,進(jìn)入循環(huán)。if(a<5)為假,不執(zhí)行break。然后第2個(gè)if(a%2)也為假,不執(zhí)行后面復(fù)合語句。再執(zhí)行a=a+4。a變?yōu)?8。然后i++,i變?yōu)?。第4次:當(dāng)i=4,a=18,i<=3為假。循環(huán)結(jié)束。最后輸出i和a的值為4和18。116.

【答案】A【解析】略117.

【答案】B【解析】字符串中有6個(gè)字符分別是\t、a、\01、8、b、c共6個(gè)字符。每次循環(huán)只要*s指向的字符不是空值(\0)就執(zhí)行輸出語句,輸出一個(gè)*。一共會(huì)輸出6個(gè)*。118.

【答案】A【解析】c=getchar()!=’#’表示只要讀入字符不是’#’就為真,為真即執(zhí)行循環(huán)體。所以每次循環(huán)執(zhí)行輸出c++,加號(hào)在后,先用后加。所以答案為abcdefg。119.

【答案】A【解析】switch語句中沒有break就繼續(xù)執(zhí)行。第1次:a=0,進(jìn)入循環(huán),b接受1,即b=1。switch(b),執(zhí)行case1:printf(“%d”,++b);輸出2。然后再執(zhí)行case

溫馨提示

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

最新文檔

評論

0/150

提交評論