校園網(wǎng)新視野教育全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試習(xí)_第1頁(yè)
校園網(wǎng)新視野教育全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試習(xí)_第2頁(yè)
校園網(wǎng)新視野教育全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試習(xí)_第3頁(yè)
校園網(wǎng)新視野教育全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試習(xí)_第4頁(yè)
校園網(wǎng)新視野教育全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2345注:67891011第一章 C語(yǔ)言基礎(chǔ)知識(shí)一,選擇題1答案是AA正確B{}可以作為復(fù)合語(yǔ)句的標(biāo)志Cmain函數(shù)不是用戶(hù)命名的D分號(hào)是語(yǔ)句結(jié)束的標(biāo)志,肯定是語(yǔ)句的一部分做這個(gè)題目需要對(duì)書(shū)上的概念透徹的理解答案是AA錯(cuò)誤用戶(hù)標(biāo)識(shí)符:命名時(shí),標(biāo)識(shí)符的選擇由用戶(hù)自定,但是不能與關(guān)鍵字相同,所以A選項(xiàng)錯(cuò)誤。這個(gè)題目考察用戶(hù)標(biāo)識(shí)符答案是B用戶(hù)標(biāo)識(shí)符是標(biāo)識(shí)符,所以可以是有下劃線,但是中劃線不屬于字母,數(shù)字,下劃線其中一種。這個(gè)題目考察用戶(hù)標(biāo)識(shí)符的概念。答案是Bdefine是預(yù)定義標(biāo)識(shí)符,而預(yù)定義標(biāo)識(shí)符可以是用戶(hù)標(biāo)識(shí)符,所以define可以是用戶(hù)標(biāo)識(shí),if是關(guān)鍵字,而關(guān)鍵字不能是用戶(hù)標(biāo)識(shí)符,所以if不可以是用戶(hù)標(biāo)識(shí)符答案是Dlong是關(guān)鍵字,參照附錄ニ6-13考察用戶(hù)標(biāo)識(shí)符概念答案是DD答案以數(shù)字2開(kāi)頭了,不符合標(biāo)識(shí)符定義答案是CC答案以數(shù)字開(kāi)頭了答案是Dint是關(guān)鍵字答案是B答案A是關(guān)鍵字,答案C是以數(shù)字開(kāi)頭了,不符合概念,答案D出現(xiàn)了小數(shù)點(diǎn)答案是A答案A出現(xiàn)了小數(shù)點(diǎn)答案是C答案C以數(shù)字開(kāi)頭了

1213141516171819202122答案是AB答案中口oat是關(guān)鍵字,C答案中3c以數(shù)字3開(kāi)頭了,D答案中一5d中一不屬于字母,數(shù)字,下劃線中一種答案是AB答案中一max中一錯(cuò)誤,C答案中3coM以字母3開(kāi)頭了,D答案中int是關(guān)鍵字,不是用戶(hù)標(biāo)識(shí)符答案是BA答案中15.后面不應(yīng)該有點(diǎn),C答案中出現(xiàn)了逗號(hào),D中字母B有問(wèn)題答案是DVisualC++6.0中int類(lèi)型的變量占的字節(jié)數(shù)為4。答案是BB中出現(xiàn)了8,而八進(jìn)制只能有0到7組成答案是D答案D中開(kāi)頭是〇不是。答案是C答案A中E后面是整數(shù),0.5是小數(shù)答案B中E后面不能為空答案D中E前面不能為空本題目考察指數(shù)的表示形式答案是C答案A中2.0有問(wèn)題,不能為小數(shù)形式答案B中E前面不能為空答案D中E后面不能為空本題目考察指數(shù)的表示形式答案是AB中八進(jìn)制中不能出現(xiàn)數(shù)字8,C中e后面不能是小數(shù),D中e后面不能為空答案是BB中0.4是小數(shù),不正確答案是CC中0.5是小數(shù),不正確

2324252627282930313233答案是D3.6-5Z2+1.2+5%2=3.6-2+1.2+1=3.8本題冃考察算術(shù)運(yùn)算符,需要注意整數(shù)除以整數(shù)結(jié)果只能是整數(shù)答案是D.不能用于實(shí)型的計(jì)算答案是DD答案中$不屬于字母,數(shù)字,下劃線答案是AA答案是逗號(hào)表達(dá)式,B答案中x+l=y是賦值表達(dá)式,左邊只能是變量,而這里是x+1,同理答案C中x+10也是錯(cuò)誤的,在D答案中,考察的是強(qiáng)制類(lèi)型轉(zhuǎn)換,正確的是(double)x/l0答案是A本題考察的是注釋需要注意的地方,具體解答見(jiàn)課本第2頁(yè)中間部分答案是B答案A中n2沒(méi)有定義,答案C中在定義f之前不能使用它,答案D中E后面必須是整數(shù)答案是C考察的是強(qiáng)制類(lèi)型轉(zhuǎn)換,正確的是k%(int)f答案是D本題目類(lèi)似與第七課時(shí)的例ー,解題方法是要抓住++m,-n,-m,表達(dá)式的值是變量變化之后的值,而n-表達(dá)式的值是變量n變化之前的值答案是B本題目考察的是負(fù)整數(shù)與無(wú)符號(hào)正整數(shù)在計(jì)算機(jī)中存放的格式的ー樣的,但表示的不同的兩個(gè)數(shù)答案是CA答案中%運(yùn)算對(duì)象不能為實(shí)型,26.8錯(cuò)誤,B答案中考察的賦值運(yùn)算符,賦值運(yùn)算符左邊必須是變量,所以賦值運(yùn)算符左邊1+2錯(cuò)誤,同理答案D錯(cuò)誤答案是c朶題目考察的是課本第15頁(yè)的關(guān)于自加與自減運(yùn)算符的第一點(diǎn)說(shuō)

3435363738394041424344明,即增量運(yùn)算符的運(yùn)算對(duì)象只能是變量,而在C答案中++(i+l)中,i+1是表達(dá)式答案是B本題目考察的是整數(shù)除以整數(shù)結(jié)果是整數(shù),在B答案中1/2結(jié)果是〇,導(dǎo)致整個(gè)表達(dá)式的值是〇,明顯是錯(cuò)誤的答案是D對(duì)于++、ー單目運(yùn)算符來(lái)說(shuō),其運(yùn)算對(duì)象可以是char型、int型和float型變量套案是A本題目主要考察n++表達(dá)式的值是n變化之前的值,然后使n的值增加1答案是Bc=a/b+0.4 c=8/5+0.4c=1+0.4 c=1.4因?yàn)閏是int型的,所以c的值是1,做此題目需要仔細(xì)閱讀題目答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1,000000=b=6.000000同樣a,b的類(lèi)型是double型的答案是Dlong和short不能相互修飾答案是C標(biāo)識(shí)符中不能有$答案是CA選項(xiàng)中,在變量賦值時(shí)不能賦給表達(dá)式,而y*5是表達(dá)式;選項(xiàng)B中進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí),類(lèi)型標(biāo)識(shí)符要加上括號(hào),所以錯(cuò)誤;選項(xiàng)D中,%(求余運(yùn)算符)運(yùn)算對(duì)象只能是整形數(shù)。答案是A選項(xiàng)A中,b變量還沒(méi)有定義答案是C選項(xiàng)A中!ong是關(guān)鍵字;選項(xiàng)B中“-”符號(hào)不屬于字母、數(shù)字或下劃線;選項(xiàng)D中,int是關(guān)鍵字。答案是B選項(xiàng)A中,ハ進(jìn)制數(shù)只能由0—7之間的數(shù)字組成;選項(xiàng)C,十六進(jìn)制數(shù)應(yīng)該以0X開(kāi)頭,并且由0—9以及a—f組成,Oabc不正確;

選項(xiàng)D中10,000包含逗號(hào),不正確。答案是BC語(yǔ)言的標(biāo)識(shí)符中只能包含字線、數(shù)字和下劃線,沒(méi)有連接符。答案是C既然在內(nèi)存中,字符數(shù)據(jù)以ASCI!碼存儲(chǔ),它的存儲(chǔ)形式就與整數(shù)的存儲(chǔ)形式類(lèi)似。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。ー個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。以字符形式輸出時(shí),需要先將存儲(chǔ)單元中的ASCI!碼轉(zhuǎn)換成相應(yīng)字符,然后輸出。以整數(shù)形式輸出時(shí),直接將ASCII碼作為整數(shù)輸出。也可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算。答案是D不同的計(jì)算機(jī)系統(tǒng)或者編譯系統(tǒng),對(duì)3種整數(shù)類(lèi)型所占用的字節(jié)數(shù)有不同的規(guī)定。答案是A選項(xiàng)B中求余運(yùn)算(%)的運(yùn)算對(duì)象必須是整型;選項(xiàng)C中,賦值運(yùn)算符(=)的左邊必須是變量,不能是常量或表達(dá)式;選項(xiàng)D與選項(xiàng)C同理。答案是A++運(yùn)算符有前綴和后綴兩種形式,本題中的選項(xiàng)C就是前綴形式,其表達(dá)式的值為增I后的值,而選項(xiàng)A為后綴形式,其表達(dá)式的值為增I之前的值。而選項(xiàng)B和D的表達(dá)式都是k加1之后的值答案是A答案是C選項(xiàng)A中將一個(gè)變量j的值賦給了一個(gè)表達(dá)式,這種寫(xiě)法是錯(cuò)誤的,只能給變量賦值,而不能給常量和表達(dá)式賦值;選項(xiàng)B中強(qiáng)制類(lèi)型轉(zhuǎn)換的格式使用出錯(cuò),強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí),類(lèi)型標(biāo)識(shí)符必須用括號(hào)括起來(lái);選項(xiàng)口中,求余運(yùn)算符(%)的兩端必須是整形數(shù)。答案是D字符常量是用單引號(hào)括起來(lái)的單個(gè)字符,所以選項(xiàng)B錯(cuò)誤;此外還有一種特殊的字符專(zhuān)為控制設(shè)計(jì),稱(chēng)為轉(zhuǎn)義字符,有三種轉(zhuǎn)義字符;ー種是由一個(gè)“ヽ”開(kāi)頭加一個(gè)普通字符組成,代表一個(gè)字符。如‘\"表示一個(gè)單引號(hào)字符,所以選項(xiàng)Dim;'W表示一個(gè)斜杠字符,而選項(xiàng)C中的‘'’則是錯(cuò)誤的;用“ヽ”與其后的!~3位ハ進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該ハ進(jìn)制數(shù)的字符;用“\x”與其后的I?2位十六進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該十六進(jìn)制數(shù)的字符;所以選項(xiàng)A錯(cuò)誤。答案是B字符常量是用單引號(hào)括起來(lái)的單個(gè)字符,所以選項(xiàng)A正確;此外還有一種特殊的字符專(zhuān)為控制設(shè)計(jì),稱(chēng)為轉(zhuǎn)義字符,有三種轉(zhuǎn)義字符:ー種是由一個(gè)“ヽ”開(kāi)頭加一個(gè)普通字符組成,代表一個(gè)字符。如‘\n,表示一個(gè)換行符,所以選項(xiàng)D正確;用“ヽ”與其后的1?3位ハ進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該ハ進(jìn)制數(shù)的字符,所以選項(xiàng)B錯(cuò)誤,因?yàn)?不是八進(jìn)制數(shù)字;用“ヽx”與其后的1?2位十六進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該十六進(jìn)制數(shù)的字符;所以選項(xiàng)C正確。答案是D大寫(xiě)字母的ASCII碼值比小寫(xiě)字母的ASCII碼值小32答案是A選項(xiàng)A中的字符變量ch只能接收單個(gè)字符,'ab’不是單個(gè)字符,所以錯(cuò)誤。答案是Bcharx='C’將一個(gè)大寫(xiě)字母賦給了字符型變量x;然后通過(guò)x=x+32將x中字符的ASCII碼值加32,即為小寫(xiě)字符‘c'的ASCII碼值;然后將x以字符形式輸出,即為小寫(xiě)字母c。答案是A語(yǔ)句charx,y;定義兩個(gè)字符型變量x,y;然后通過(guò)x='B'-'A'+'a,將用大寫(xiě)字母B的ASCI!碼送去大寫(xiě)字母A的ASCII碼,結(jié)果便為!,然后再加上小寫(xiě)字每a的ASCII碼,結(jié)果就為小寫(xiě)字母b的ASCII碼,然后再賦值給變量x:通過(guò)y=x+2,將鰻x中的ASCII碼值加2,即變成小寫(xiě)字母d的ASCI!碼值再賦值給變量y;然后以數(shù)值形式輸出變量x中的ASCII碼值為98.再以字符形式輸出變量y中的字符為d。答案是B選項(xiàng)A中字符'0'的ASCII碼值為48,所以A的結(jié)果不為I;選項(xiàng)B中''0'代表空值,空值NULL的ASCII碼值為〇所以結(jié)果為1;選項(xiàng)C中字符'I'的ASCII碼值為49,所以結(jié)果不為I;選項(xiàng)D相當(dāng)于用0イ8結(jié)果也不為1〇答案是D如果要表示十六進(jìn)制字符,則要用''X'開(kāi)頭,所以選項(xiàng)A錯(cuò)誤;如果要表示八進(jìn)制,貝リ'、O'開(kāi)頭,后面跟1?3位的ハ進(jìn)制數(shù),ハ進(jìn)制數(shù)由〇?7組成,不包含8,所以選項(xiàng)B錯(cuò)誤;用單引號(hào)括起來(lái)的單個(gè)字符オ是字符常量,所以C錯(cuò)誤;而''n'是轉(zhuǎn)義字符,用來(lái)表示回車(chē)符。答案是B用單引號(hào)括起來(lái)的單個(gè)字符,稱(chēng)為字符常量,所以選項(xiàng)B錯(cuò)誤。答案是C先將cl變量中的字符的ASCII碼值輸出,即為65,將變量c2中字符的ASCII碼值減2后輸出,即為66。答案是A我們知道異或運(yùn)算,只有兩個(gè)操作數(shù)不同,結(jié)果オ為lo所以0Al=l,1人1=0,由此可推理,任何數(shù)與1進(jìn)行異或運(yùn)算都得它的相反數(shù);變量b中的高4位為1,所以要讓變量a的高4位取反,即可讓變量a和變量b進(jìn)行異或運(yùn)算。答案是A變量cl和c2中的值相同,所以轉(zhuǎn)換成二進(jìn)制數(shù)后,對(duì)應(yīng)的二進(jìn)制位上的值也相同,當(dāng)兩值相同時(shí),只有進(jìn)行異或運(yùn)算,結(jié)果オ為。,所以cPc2值為〇。所以本題的正確答案為A。答案是A413轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制數(shù)即!001011=111再轉(zhuǎn)換為十進(jìn)制數(shù)即為7;而4&3轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制數(shù)即100&011=000,再轉(zhuǎn)換為十進(jìn)制數(shù)即為〇;所以選擇A。答案是Dx/y的值為1,z的值也為1,1和1求反進(jìn)行與運(yùn)算,結(jié)果一定為〇。所以本題選擇Do答案是D2+x=00000010+10100111=10101001;~3=~00000011=11111100;所以就相當(dāng)于1010100171111100=01010101,所以選擇Do答案是Da=0x3轉(zhuǎn)換為二進(jìn)制數(shù)即為00000011;b=alOx8轉(zhuǎn)換為二進(jìn)制數(shù)即為00000011100001000=00001011 即b=ll,b?l即0000101l?l=00010110即c=22,所以本題選擇D。二,填空題位〇1關(guān)鍵字預(yù)定義標(biāo)識(shí)符 用戶(hù)標(biāo)識(shí)符8八十十六intfloat double54-3.6/2=5+1.8=6.815 16 a++表達(dá)式的值是a變化之前的值,當(dāng)然a本身增加了1把10賦給變量B123.46(int)(x*100+0.5)/100.0=(int)(l2345.67+0.5)/100.0=(int)(l2346.17)/100.0=12346/100.0=123.46o3整個(gè)表達(dá)式是一個(gè)逗號(hào)表達(dá)式,變量n和i賦值為2后,通過(guò)++i將i的值增加1變?yōu)?,然后再通過(guò)i++為i增加1,整個(gè)逗號(hào)表達(dá)式的值為i++的值,此時(shí)是后綴,所以整個(gè)i++表達(dá)式的值為3,而變量i的值為2〇11110111第11題沒(méi)有詳細(xì)解析而且答案出錯(cuò):~xAy?l=-00000010A00000101?l=11111101A00001010=111101112只有‘\\‘和‘'b’是正確的220.000000x=f*=n/=(c=50)是ー個(gè)賦值表達(dá)式,它的順序是從右向左賦值,先執(zhí)行c=50,然后執(zhí)行n/=50即n=n/50=100/50=2I接著執(zhí)行f*=2即f=f*2=10*2=20.000000,最后再將值賦給變量X。輸出變量n和x的值,即為220.000000。a=14表達(dá)式a=(3*5,a+4)的括號(hào)中是ー個(gè)逗號(hào)表達(dá)式,其結(jié)果是最后ー個(gè)表達(dá)式的值,即將a+4=14的值賦給變量a。所以輸出結(jié)果為a=14。第二章順序結(jié)構(gòu)―選擇題I,答案是C隨意使用空語(yǔ)句會(huì)導(dǎo)致邏輯上出現(xiàn)錯(cuò)誤,不要隨便使用。2?答案是B語(yǔ)句必須以分號(hào)結(jié)尾,A,C,D表達(dá)式后面均沒(méi)有分號(hào)。答案是Cintx=13,y=4;說(shuō)明x,y均為整型,所以x/y只取整數(shù)部分(舍去法),值為3,把3賦值給x,整個(gè)x=x/y表達(dá)式的值為左邊變量x的值,所以輸出為3〇答案是Aa,b均為整型,a/b是取a+b所得商的整數(shù)部分,所以是〇,再把〇賦值給c,所以是c的值是〇。答案是DA注釋語(yǔ)句可以放在代碼的任何位置B將r定義為整型不會(huì)在編譯時(shí)出錯(cuò),會(huì)自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換C變量s為浮點(diǎn)型,格式描述符%f時(shí)正確的Dn是非法的變量答案是D(x,y)是逗號(hào)表達(dá)式,它的值只有一個(gè),所以格式說(shuō)明符的個(gè)數(shù)和輸出項(xiàng)的個(gè)數(shù)是相等的。并且逗號(hào)表達(dá)式的值為最后一個(gè)表達(dá)式的值,最后ー個(gè)表達(dá)式是y=2003,所以整個(gè)表達(dá)式的值是2003,因此輸出值為2003〇公空是A:‘是十進(jìn)制整數(shù)以十進(jìn)制有符號(hào)的形式輸出,即照原樣輸32767,n=032767,032767是八進(jìn)制的整數(shù)以八進(jìn)制無(wú)符號(hào)形式輸出,去掉前面的〇。見(jiàn)教材P34答案是Cm,n的值都是十六進(jìn)制數(shù)Oxabc,m-=n即是m=m-n,把m-n的值賦給m,即把〇賦給m,再把m值以十六進(jìn)制無(wú)符號(hào)的形式輸出,輸出的十六進(jìn)制數(shù)不用在前面Ox或者0X。見(jiàn)教材P35答案是B表達(dá)式iーー的值是在變量自減之前的值,i的初值為10,所以該表達(dá)式的值也為10;表達(dá)式j(luò)++的值是變量自加之后的值,j初值為1,所以該表達(dá)式在值是2。10,答案是Cm=0256,即m是ハ進(jìn)制的數(shù)0256,要以八進(jìn)制無(wú)符號(hào)的形式輸出,即輸出256;n=256,即n是十進(jìn)制的數(shù)256,也要以ハ進(jìn)制無(wú)符號(hào)的形式輸出,首先要把十進(jìn)制數(shù)轉(zhuǎn)化為ハ進(jìn)制數(shù),256轉(zhuǎn)化為ハ進(jìn)制為0400,以無(wú)符號(hào)形式輸出,即輸出400。1b答案是B在printf語(yǔ)句中,格式控制的個(gè)數(shù)只有一個(gè),即%d,而輸出項(xiàng)有兩項(xiàng),即a和b。而得到的結(jié)果應(yīng)該只有一個(gè),所以應(yīng)該輸出第一個(gè)變量的值,即變量a的值。12,答案是C第一個(gè)數(shù)據(jù)的輸出控制寬度是2位,但是x的值是102,占3位,要輸出的數(shù)據(jù)寬度大于規(guī)定的輸出寬度,所以按數(shù)據(jù)的實(shí)際寬度輸出,輸出102。第二個(gè)數(shù)據(jù)要求以十進(jìn)制形式輸出,輸出控制寬度是2,y的值為012,是ハ進(jìn)制數(shù),所以要轉(zhuǎn)換成十進(jìn)制數(shù)10后再輸出。13.答案是B表達(dá)式a=f/=c*=(x=6.5),按從右到左結(jié)合,先把6.5賦值給x,再執(zhí)行c=c*6.5,c的值變?yōu)?5,再執(zhí)行f=f/65,為浮點(diǎn)數(shù)的除法,f的值為1.53……,再把f的值賦給a,a為整型數(shù)據(jù),執(zhí)行強(qiáng)制類(lèi)型轉(zhuǎn)換,a的值為1〇a對(duì)應(yīng)的輸出格式為%d,即輸出1;c對(duì)應(yīng)的輸出格式為%d,輸出65,f對(duì)應(yīng)的輸出格式%3.If,即輸出控制寬度為3位,保留小數(shù)點(diǎn)后一位小數(shù),即輸出1.5,x對(duì)應(yīng)的輸出格式也為%3.If,輸出6.5。14?答案是Dfloatx=-123.456;說(shuō)明x為單精度浮點(diǎn)數(shù)據(jù),單精度浮點(diǎn)數(shù)據(jù)對(duì)應(yīng)的輸出格式應(yīng)該為%f。m=(k+=i*=k);按從右到左結(jié)合,先執(zhí)行i=i*k;即i被賦值為4,再執(zhí)行k=k+4;k被賦值為6,最后把6賦給m,輸出m和i的值。16?答案是C略(參考12題)17,答案是D一m++遵循從右向左結(jié)合的原則;m++的值為m自增之前的值,所以執(zhí)行完x=—m++以后,x被賦值為ー3;表達(dá)式x=x+8/++n中有加號(hào)除號(hào),先算8/++n,++n的值為自增之后的值為5,8/5取整為!,即x=x+8/++n轉(zhuǎn)化為x=x+l,即把x+1的值賦給x,x的值變?yōu)椹`2。18,答案是DA輸入函數(shù)應(yīng)為scanf();B,C輸入數(shù)據(jù)列表必須是地址表達(dá)式;19.答案是A從鍵盤(pán)輸入數(shù)據(jù)的格式必須與輸入控制要求的格式ー樣B答案三個(gè)之間不要有空格;C答案用逗號(hào)分開(kāi)是多余的;D答案格式不匹配。20,答案是A格式控制要求輸入的兩個(gè)數(shù)據(jù)之間要用逗號(hào)隔開(kāi),A沒(méi)有逗號(hào)所以錯(cuò)誤,D兩個(gè)輸入數(shù)之間的回車(chē)換行可以忽略。21,答案是Cx乘以100是為了把x小數(shù)點(diǎn)后的兩位小數(shù)變?yōu)檎麛?shù),再加上0.5,如果小數(shù)點(diǎn)后一位大于等于5則會(huì)進(jìn)一位,如果小數(shù)點(diǎn)后一位小于5則不會(huì)出現(xiàn)進(jìn)位的情況,再對(duì)其進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,采用舍去法丟掉小數(shù)部分,即對(duì)x乘上100后的數(shù)實(shí)現(xiàn)了小數(shù)位到整數(shù)位的四舍五入。最后再除以!00.0,把數(shù)字變回原來(lái)的大小,整數(shù)與浮點(diǎn)數(shù)相除結(jié)果為浮點(diǎn)數(shù),即實(shí)現(xiàn)了要求。答案是C從鍵盤(pán)輸入數(shù)據(jù)的格式必須與輸入控制要求的格式ー樣。答案是B輸入控制中第一個(gè)數(shù)要求以‘‘%2d”形式輸入,即要求輸入一個(gè)兩位的數(shù),而從鍵盤(pán)輸入的數(shù)為876,所以從左到右取兩位數(shù)字87,即把87賦值給整型變量a,余下的6再賦值給浮點(diǎn)型變量b,自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換,b的值為6.000000I后面輸入的543則沒(méi)有賦值給變量。答案是D“%%”會(huì)輸出ー個(gè)“%”,“d”會(huì)照原樣輸出,因?yàn)闆](méi)有格式說(shuō)明,m,n無(wú)法輸出到屏幕。答案是D第1個(gè)輸出語(yǔ)句要求ch以%c(字符)形式輸出所以為輸出“a”,以%d(整數(shù))形式輸出為,字符轉(zhuǎn)換為整型要使用ASCI!碼所以為“97”,k沒(méi)有對(duì)應(yīng)的輸出符所以沒(méi)有輸出,第2個(gè)輸出語(yǔ)句要求以整型方式輸出k得到“12”。結(jié)果為“a,97,k=12”答案是Ba+b的結(jié)果為30,按照“a+b=%d\n”的輸出格式得到輸出結(jié)果“a+b=30”B答案是Bprintf可以沒(méi)有輸出項(xiàng),沒(méi)有輸出項(xiàng)的printf只是沒(méi)有輸出內(nèi)容;整數(shù)不能以十二進(jìn)制輸出,getchar()只能讀入字符。答案是Agetchar()可以讀入空格符合回車(chē)符。二填空題一條語(yǔ)句 分號(hào)88首先將ハ進(jìn)制數(shù)0210轉(zhuǎn)化為十六進(jìn)制的數(shù)0X88,輸出格式說(shuō)明要以十六進(jìn)制無(wú)符號(hào)的形式輸出,所以省略0X,直接輸出88。11把十進(jìn)制數(shù)轉(zhuǎn)化為ハ進(jìn)制數(shù),以無(wú)符號(hào)的形式輸出252137b為ハ進(jìn)制數(shù)025,c為十六進(jìn)制數(shù)0X25,首先把b、c都轉(zhuǎn)化為十進(jìn)制的整數(shù),分別為21、37,按照輸出格式要求a、b、c以十進(jìn)制整數(shù)形式輸出,中間以空格分開(kāi),所以輸出為252137。nl=%d\nn2=%d除了nl,n2的值之外,還必須加入“nli“n2=”照原樣輸出的字符,很明顯在兩個(gè)數(shù)據(jù)之間還加了換行符。i=10,j=20く回車(chē)〉格式控制中加入了格式說(shuō)明以外的其他字符,則在輸入數(shù)據(jù)時(shí)這些字符也要同樣輸入。輸入格式控制為i=%d,j=%d,所以則應(yīng)該從鍵盤(pán)輸入i=10,j=20261a為十進(jìn)制數(shù)177轉(zhuǎn)化為ハ進(jìn)制的數(shù)為0261I以無(wú)符號(hào)的形式輸出為26116a的初值為〇,在表達(dá)式a+=(a=8)中,a首先被賦值為8,再執(zhí)行操作a=a+a,所以a最后被賦值為16,即輸出a的值為16printf(“a=%d,b趣d”,a,b);B66B在ASCII碼中派在A的后面A為65,那么B為66。10012為ハ進(jìn)制數(shù),轉(zhuǎn)換為十進(jìn)制為10。1234在scanf函數(shù)中指定了寬度為2,輸入123456,a=12,b=34,后面的567無(wú)效。12程序運(yùn)行時(shí)輸入12,getchar()函數(shù)只能接受單個(gè)字符,所以chl='1',ch2='2‘〇nl=chl-,〇,轉(zhuǎn)化為ASCII碼計(jì)算nl=50-49,nl的值為!〇n2=nl*10+(ch2-‘〇’)轉(zhuǎn)化為ASCII碼計(jì)算n2=1*10+(51-49),n2的值為12。第三章選擇結(jié)構(gòu)ー、選擇題1、D此題主要是考語(yǔ)句的特征。一條語(yǔ)句只包含ー個(gè)分號(hào),D項(xiàng)有兩個(gè)分號(hào),應(yīng)該是兩條語(yǔ)句,所以選Do2、C此題主要是考真假條件的等價(jià)。題目中的E為非〇時(shí)條件為真,為〇時(shí)為假。那么把非〇和〇帶到選項(xiàng)中可知,C項(xiàng)正好是E為〇時(shí)表達(dá)式為真,非〇時(shí)為假,所以選C。3、D任意合法的表達(dá)式都可以作為邏輯運(yùn)算符的運(yùn)算對(duì)象4、D此題主要是考邏輯運(yùn)算和關(guān)系運(yùn)算的優(yōu)先級(jí)別.只要掌握!、算術(shù)運(yùn)算和&&的優(yōu)先級(jí)別便可選對(duì).這幾種運(yùn)算符的具體優(yōu)先級(jí)關(guān)系見(jiàn)見(jiàn)教材P188,附錄5、A此題主要是考邏輯運(yùn)算符!、&&和丨丨之間的優(yōu)先級(jí)別。!最高,&&次之,||最低。先求得!a為0,所以不必計(jì)算!b的t,即!a&&!b的值為〇,由c=0,!c=l,而0|1=1,所以選A。6、A此題主要是考了邏輯、關(guān)系和算術(shù)運(yùn)算,熟練掌握邏輯運(yùn)算、關(guān)系運(yùn)算和算術(shù)運(yùn)算的優(yōu)先級(jí)別后,就不難了。A選項(xiàng)中!a為0?所以!a==l為假,那么就不用計(jì)算&&后面的表達(dá)式了,因?yàn)椹柵c任何數(shù)均為假:B項(xiàng)中先計(jì)算出aくb為假,貝リ(aくb)&&!c也為假,而0|1=1;C項(xiàng)中a和b均為真,所以a&&b的值為1;D項(xiàng)中先計(jì)算出(b+b)&&(c-a)=l,又a=2,21=1所以選A。7、D此題考到了++運(yùn)算符以及邏輯運(yùn)算。當(dāng)計(jì)算機(jī)碰到a&&b時(shí),先計(jì)算表達(dá)式a的值,若為真オ會(huì)計(jì)算表達(dá)式b的值,否則將不會(huì)去計(jì)算b的值,因?yàn)椹`旦a=0,則0&&b必為0;而ab則正好是相反的,即先計(jì)算表達(dá)式a的值,若a為假オ會(huì)計(jì)算表達(dá)式b的值,否則將不會(huì)去計(jì)算b的值,因?yàn)橐坏゛=l,則111b的值必為1,理解了這兩點(diǎn)后,我們?cè)诳搭}目:i++==l的值為1,此時(shí)i為2,所以計(jì)算&&后的表達(dá)式,首先計(jì)算++j==3的值為1,j的值為3,由上面的原理我們可知,丨后面的表達(dá)式不用再計(jì)算,所以此時(shí)i,j,k的值分別為2,3,3〇8、D此題和題2非常的相似,也是考真假條件的轉(zhuǎn)換,其中D項(xiàng)中只有k為〇時(shí),!k%2==lオ成立,顯然和A、B、C三項(xiàng)不同。9、C此題主要是考if和else的配對(duì)問(wèn)題。見(jiàn)教材P51。10、D此題主要是考if和else的一般形式。if后面的語(yǔ)句要么是單條語(yǔ)句,要么是由{}擴(kuò)起來(lái)的復(fù)合語(yǔ)句,不能是if后有兩條語(yǔ)句的,所以本題程序在運(yùn)行的時(shí)候會(huì)出錯(cuò)。11、C此題考到了關(guān)系運(yùn)算和邏輯運(yùn)算及一定數(shù)學(xué)知識(shí)。x-y|<10可等價(jià)為-10<x-y<10,首先選項(xiàng)A表示x-y的絕對(duì)值小于10,與題中的數(shù)學(xué)關(guān)系ー樣;將一10<x-yく10用邏輯表達(dá)式表示的話就是B選項(xiàng);而D選項(xiàng)只是數(shù)學(xué)變換,所以選擇C12、D此題也是考到了真假條件的變換和if-else語(yǔ)句。A、B、C三項(xiàng)都是表示a為真時(shí)輸出X,為假時(shí)輸出y,而D則是a為假時(shí)輸出x,為真時(shí)輸出y。13、D此題考查了賦值表達(dá)式的一般格式,=的左邊是變量名,右邊是表達(dá)式,所以D項(xiàng)錯(cuò)誤。14、C此題主要是考查邏輯運(yùn)算符|I,當(dāng)計(jì)算機(jī)碰到a|b,先計(jì)算表達(dá)式a的值,若為假オ會(huì)計(jì)算表達(dá)式b的值,否則將不會(huì)去計(jì)算b的值,因?yàn)橐坏゛=l,則0||b必為必題ドb>a為真,所以(n=b>a)為1.那么將不會(huì)去計(jì)算m=aくb的值,k被并賦值1,所以m依然為〇。15、C此題主要是考査if-else-if和if語(yǔ)句。具體分析見(jiàn)教材第49頁(yè)例7。16、C此題主要是考查if-else-if以及關(guān)系表達(dá)式的運(yùn)算。首先判斷第一個(gè)條件a>b>c的值為0?所以不執(zhí)行第一條語(yǔ)句;在判斷第二個(gè)條件,c-l>=c表達(dá)式的結(jié)果為假,所以也不執(zhí)行其下面的語(yǔ)句,因此執(zhí)行最后一條語(yǔ)句,將輸出d+2的值為4〇17、C此題主要是考査條件表達(dá)式和條件運(yùn)算符。首先要注意條件表達(dá)式的結(jié)合方向,它是從右至左的(可參照附錄三)第一個(gè)條件表達(dá)式的值為a,第二個(gè)條件表達(dá)式的值為c,而c=6,所以答案選C18、A此題主要是考査if-else語(yǔ)句和條件表達(dá)式的轉(zhuǎn)化。只要理解了if-else語(yǔ)句和條件表達(dá)式的運(yùn)算規(guī)則的話,就很容易選出A19、D此題主要是考查在switch語(yǔ)句中break和default的作用及break的適用范圍。詳細(xì)說(shuō)明可參看教材第三章P53對(duì)switch的說(shuō)明部分。20、B此題考查的是條件表達(dá)式求解問(wèn)題。先看第一個(gè)條件表達(dá)式語(yǔ)句,aくb為真,所以k=b=2;再看第二個(gè)條件表達(dá)式語(yǔ)句,k〉c為假,所以k=k=2選B21、A此題考查的是條件表達(dá)式的求解順序。參照附錄三可知,它的結(jié)合方向是自右至左,所以先求得右邊一個(gè)條件表達(dá)式的值為2,再求得左邊ー個(gè)的值為1,即選A22、C此題考查的是真假條件的等價(jià)問(wèn)題。x-y為真表示x-y是非〇的,也即x-y<0或x-y>0即選C23答案是BC語(yǔ)言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫(xiě)字母,只要確定它的ASCII碼在‘A‘和‘Z,之間就可以了,選項(xiàng)A和C符合要求。大寫(xiě)字母的ASCI!碼值的范圍為65到90.所以D選項(xiàng)符合要求,所以只有C是錯(cuò)誤的。24答案是B滿(mǎn)足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6〇當(dāng)變量c的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個(gè)為真,即不論c為何值,B選項(xiàng)中的表達(dá)式的值都為真,所以B選項(xiàng)正確。條件x==Ollx==l為真,所以執(zhí)行y=l,然后執(zhí)行y=x*x-(x-2)*(x-2)=1-(-1)*(-1)=1-1=0?所以選擇A。26答案是B當(dāng)表達(dá)式EXP為非。值時(shí)條件成立,即執(zhí)行語(yǔ)句i++;當(dāng)EXP等于〇時(shí)執(zhí)行語(yǔ)句j—:。這就等同于條件表達(dá)式“(EXP!=0)?i++:j—所以本題選擇Bo27答案是DC語(yǔ)言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫(xiě)字母,只要確定它的ASCII碼在‘A‘和‘Z,之間就可以了,選項(xiàng)B的書(shū)寫(xiě)格式錯(cuò)誤,而選項(xiàng)C不符合要求。大寫(xiě)字母的ASCII碼值的范圍為65到90,所以A選項(xiàng)不符合要求,小寫(xiě)字母的ASCII碼比大寫(xiě)字母的ASCII碼大32,所以只有D是正確的。28答案是D奇數(shù)和2求余一定不為0.所以當(dāng)x為奇數(shù)時(shí),x%2==0是不成立的,值為0,此題選擇D。29答案是B兩個(gè)if語(yǔ)句的判斷條件都不滿(mǎn)足,程序只執(zhí)行了c=a這條語(yǔ)句,所以變量c的值等于3,變量b的值沒(méi)有變化,程序輸出的結(jié)果是3,5,3。所以本題選擇Bo30答案是C表達(dá)式y(tǒng)%3==0的值為1,所以執(zhí)行下面的輸出語(yǔ)句,表達(dá)式ーy的值為8,所以輸出結(jié)果是8。選擇C。31答案是C表達(dá)式x%3的值為2,非〇所以執(zhí)行下面的輸出語(yǔ)句,將x—的值8輸出,此時(shí)x的值變?yōu)?,然后再執(zhí)行下ー個(gè)輸出語(yǔ)句,將一x的值6輸出,x的值也變?yōu)?,所以選擇C。32答案是D這是嵌套形式的switch語(yǔ)句,因?yàn)閎reak結(jié)構(gòu)影響較大,而此程序中的第一個(gè)case后沒(méi)有break語(yǔ)句,程序執(zhí)行時(shí),x=l,執(zhí)行內(nèi)嵌的switch語(yǔ)句,因y=0,執(zhí)行a++,使變量a的值為1并終止內(nèi)層switch結(jié)構(gòu),回到外層。程序繼續(xù)執(zhí)行case2后面的語(yǔ)句a++;b++;,這使變量a,b的值分別為2和1,外層switch語(yǔ)句結(jié)束。所以此題選擇D。33答案是Dbreak與continue語(yǔ)句都可用于switch語(yǔ)句中。選擇D。二、填空題1、答案是:10200分析:多數(shù)同學(xué)得到的答案是10201,顯然是沒(méi)有弄清楚第三條賦值語(yǔ)句:c=(a%b〈l)|(a/b〉l).這是將后面一個(gè)邏輯表達(dá)式的值給c,那么關(guān)于邏輯表達(dá)式的考題,無(wú)非就是考察運(yùn)算符的優(yōu)先級(jí),也就是說(shuō)先算哪個(gè),后算哪個(gè)的問(wèn)題。在這個(gè)題里面,先計(jì)算第一個(gè)圓括號(hào)里面的內(nèi)容,a%b的值是10,所以10<1為假;a/b的值為0,0>!為假。在邏輯或運(yùn)算的時(shí)候,兩個(gè)運(yùn)算對(duì)象都為假,則結(jié)果為假。所以c的值為〇.答案是:102002、答案是:1分析:程序中是ー個(gè)if—else結(jié)構(gòu)。這個(gè)題最容易出錯(cuò)的地方在于if的條件,注意,里面的是c=a是ー個(gè)賦值表達(dá)式,不是將c與a的值進(jìn)行比較。所以條件為真,輸出賦值以后c的值,為1。3、答案是:4,5,99分析:題中的重點(diǎn)在于兩個(gè)if結(jié)構(gòu),大家要注意兩點(diǎn):第一,如果if后面沒(méi)有花括號(hào),則它后面的第一條語(yǔ)句是它的結(jié)構(gòu)體,并且只有一條語(yǔ)句。(如果后面是一個(gè)結(jié)構(gòu),則整個(gè)結(jié)構(gòu)都屬于if結(jié)構(gòu)的結(jié)構(gòu)體)。第二,變量在不斷的被重新賦值,所以其值在不斷的變化。4、答案是:yes分析:該題與第二題是同一回事。5、答案是:1分析:這個(gè)題還上一個(gè)if-else結(jié)構(gòu),考查點(diǎn)仍然是考察考生是否能夠正確識(shí)別if后面括號(hào)里的表達(dá)式p=a!=O,根據(jù)運(yùn)算符的優(yōu)先級(jí)知道,這里應(yīng)該先算a!=0,這是ー個(gè)邏輯運(yùn)算,a的值為5,所以a!=0為真,其邏輯值為1,將1賦值給P,所以條件為真,輸出P的值,為1。6、答案是:20,0分析:見(jiàn)第3題分析。7,答案是:585858分析:題中有三個(gè)if結(jié)構(gòu),注意,這三個(gè)if結(jié)構(gòu)是相互獨(dú)立的,是互不相關(guān)的,只要他們的條件成立,就要執(zhí)行其結(jié)構(gòu)體(后面的輸出語(yǔ)句)。通過(guò)鍵盤(pán)輸入,得a的值為58,所以a>50為真,輸出58;然后判斷a〉40,仍然為真,再輸出58,最后判斷a>30,肯定為真,所以再輸出58,連續(xù)三次輸出58〇8、答案是:0分析:本題的關(guān)鍵在于關(guān)系運(yùn)算符的運(yùn)算次序,a=5,b=4,c=3.a>b>c看起來(lái)是真的,但是這這是數(shù)學(xué)里面是這樣的,這里我們要一步ー步的計(jì)算,先算a>b,a確實(shí)大于b,所以為真,邏輯值為1,后面的計(jì)算就變成了l>c,顯然為假,邏輯值為〇,并將它賦值給d,所以最后輸出d的值為〇。9、答案是:3分析:這個(gè)題主要考察條件運(yùn)算符。程序要輸出(P/3>0?p/10:p%3)這個(gè)條件表達(dá)式的值。P為30.所以p/3-10,10>0顯然為真,所以整個(gè)表達(dá)式的值應(yīng)該是P/10的值,p/10得3。10、答案是:21分析:題中是ー個(gè)switch嵌套結(jié)構(gòu)。里面的switch是case1的語(yǔ)句,題的關(guān)鍵點(diǎn)在于這個(gè)語(yǔ)句(即里面的這個(gè)switch結(jié)構(gòu))的后面并沒(méi)有跳出整個(gè)結(jié)構(gòu)的break語(yǔ)句。所以,當(dāng)x=l,與case相配以后,執(zhí)行完后面的語(yǔ)句(即里面的這個(gè)switch結(jié)構(gòu)),然后沒(méi)有遇到break語(yǔ)句,所以并不跳出結(jié)構(gòu)體,而是繼續(xù)執(zhí)行case2后面的語(yǔ)句。所以最后得到的結(jié)果應(yīng)該是21,而不是1〇〇11、答案是:〇字符空格的ASCII碼不為0,所以本題中表達(dá)式!c的值為0,b=0&&l的結(jié)果顯然為〇〇12、答案是:1執(zhí)行‘‘j=!ch&&i++”時(shí),首先判斷j=!ch的值,因?yàn)閏h='$‘不為〇,所以j=!ch=O,編譯便不再計(jì)算表達(dá)式i++的值,i的值不變?nèi)詾?。13、答案是:-4表達(dá)式!n的值為1,所以執(zhí)行x-=l后x=l;表達(dá)式m的值為非〇值,所以執(zhí)行其后的語(yǔ)句x-=2后x的值為ー1,表達(dá)式x的值也為非〇,所以執(zhí)行其后的語(yǔ)句后x的值為?4,最后輸出x的值即為ー4。14、答案是?#&表達(dá)式c==5的值為真,所以表達(dá)式的值等于1,因此輸出符號(hào)“#”,然后執(zhí)行“break",繼而去執(zhí)行“default:printf(“&”);”語(yǔ)句,輸出符號(hào)“&”。15、答案是:1因?yàn)樵跅l件表達(dá)式(a<b)a:b中,比較表達(dá)式a<b為真,所以x的值為a的值等于1。后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都真,所以最終x的值等于1。16、答案是:a:b c:tl條件表達(dá)式類(lèi)似于if語(yǔ)句,根據(jù)“?”前面子表達(dá)式的邏輯值來(lái)判斷應(yīng)該計(jì)算“:”前面的子表達(dá)式還是后面的作為整個(gè)條件表達(dá)式的結(jié)果。題目要求輸出a、b、c3個(gè)變量中的最小值,所以當(dāng)a〈b時(shí),應(yīng)該選a,否則選b,幫前ー空應(yīng)填a:b。同理,后一空應(yīng)填c:tl。第四章循環(huán)結(jié)構(gòu)選擇題:.答案:B①N的值為10,n〉7為真,執(zhí)行循環(huán)體,n的值減1后為9,輸出n的值9②N的值為9,n>7為真,執(zhí)行循環(huán)體,n的值減1后為8,輸出n的值8③N的值為8,n>7為真,執(zhí)行循環(huán)體,n的值減1后為7,輸出n的值7④N的值為7,n>7為假,結(jié)束循環(huán)。.答案:Ak的值為5,進(jìn)入循環(huán),(-k)表達(dá)式的值為4(真),同時(shí)k的值改變?yōu)?,輸出表達(dá)式k-=3的值1,同寸k的值為1。k為1,表達(dá)式(一k)的值為0,結(jié)束循環(huán)。.答案:AX=0,y=5,z=3,(z>0&&x<4)值為真,進(jìn)入循環(huán)體,y值為4,z值為2,x值為1(z>0&&x<4)值為真,進(jìn)入循環(huán)體,y值為3,z值為1,x值為2(z>O&&xく4)值為真,進(jìn)入循環(huán)體,y值為2,z值為0,x值為3(z>O&&xく4)值為假,結(jié)束循環(huán)。5.輸出Xイ,2的值3,2,0.答案:D分析:當(dāng)K的值為3時(shí),只執(zhí)行case3后面的語(yǔ)句n+=k,n的值為3;當(dāng)k的值為2時(shí),先執(zhí)行case2后面的語(yǔ)句,但沒(méi)有break,所以不會(huì)退出,繼續(xù)執(zhí)行case3后面的語(yǔ)句n+=k,n的值為5;當(dāng)k的值為1時(shí),先執(zhí)行case1后面的語(yǔ)句n+=k,n的值為6,先執(zhí)行case2后面的語(yǔ)句(沒(méi)有),繼續(xù)執(zhí)行case3后面的語(yǔ)句n+=k,n的值為7。輸出n的值7。.答案:B在循環(huán)體中有“s+=l;"s的初始值為0,要讓s的值等于2必須是循環(huán)體執(zhí)行兩遍。當(dāng)循環(huán)提執(zhí)行兩遍后a的值等于ー3,所以在n=-3的時(shí)候循環(huán)體執(zhí)行兩遍后條件表達(dá)試(a!=0)為假,會(huì)退出循環(huán)。.答案:A分析:t值為1,s的值為0。從鍵盤(pán)中輸入ー3后,n的值為一3.先執(zhí)行循環(huán)體。執(zhí)行s=s+t;s的值為!,執(zhí)行t=t-2;t的值為ー1.再判斷表達(dá)式的值便=1I為真,再次執(zhí)行循環(huán)體。執(zhí)行s=s+t;s的值為〇,執(zhí)行t=t-2;t的值為-3.再判斷表達(dá)式的值t!=n為假,結(jié)束do..while循環(huán)。最后輸出s的值〇。.答案:A分析:x=3:先執(zhí)行循環(huán)體,輸出表達(dá)式x-=2的值1,同時(shí)x的值也改變成1,再判斷表達(dá)式的值(!x),x的值為1(真),(!x)為假,循環(huán)結(jié)束。.答案:B分析:B選項(xiàng)每次進(jìn)入循環(huán)體,都要先執(zhí)行p=l;即1賦值給p.所以不能求出5!的值.答案:D分析:變量i每次增量為2,變化過(guò)程為:1->3ー>5->7ー〉9,語(yǔ)句s+=l每次執(zhí)行使s增加的數(shù)為:2,4,6,8,10,所以s的值為自然數(shù)P10中偶數(shù)的值。.答案:C分析:C項(xiàng)s=s+l/n,1/n首先運(yùn)算,n為整型變量,1也是整型變量,當(dāng)n=2…10時(shí),1/n的值為整數(shù)〇,故C不正確111答案:A執(zhí)行第一次循環(huán)時(shí),a=7,b=4通!=1)為真繼續(xù)循環(huán)。第二次循環(huán)a=3,b=l,2!ユ為真繼續(xù)循環(huán)。第三次循環(huán)a=2,b=1,2!=1)為真繼續(xù)循環(huán)。第四次循環(huán)a=1,b=l,2!ユ為假退出循環(huán)。.答案:C.答案:C分析:x的值為15〇執(zhí)行while循環(huán),(x>10)為真,執(zhí)行循環(huán)體。執(zhí)行x++;x的值為16。用I行if調(diào)〇(x%3)執(zhí)行x++,x的值為17,再執(zhí)行break;語(yǔ)句,退出循環(huán)體,結(jié)束while語(yǔ)句的執(zhí)行。最后輸出x的值17。.答案:D在循環(huán)中當(dāng)x等于0,3,6,9時(shí)x%3等于0,這時(shí)會(huì)進(jìn)入if語(yǔ)句執(zhí)行printf語(yǔ)句,在輸出前x會(huì)先自加。屏幕上輸出14710。.答案:D分析:continue語(yǔ)句會(huì)提前結(jié)束此次循環(huán)體的執(zhí)行,不會(huì)結(jié)束整個(gè)for語(yǔ)句的執(zhí)行。.答案:2345選擇中沒(méi)有此答案。解析:本題注意的是在循環(huán)第一次進(jìn)入switch語(yǔ)句的時(shí)候是執(zhí)行的default后面的語(yǔ)句塊,由于沒(méi)有break,所以還會(huì)執(zhí)行case2:case4:后面的語(yǔ)句。.答案:A本題答案為A解析:A首先執(zhí)行++n,判斷條件表達(dá)式n<=0為假退出循環(huán)。B條件表達(dá)式1永遠(yuǎn)為真是無(wú)限循環(huán),C條件表達(dá)式n的值為10永遠(yuǎn)為真是無(wú)限循環(huán),D沒(méi)有條件表達(dá)式,所以沒(méi)有退出條件,是無(wú)限循環(huán)。此題要注意的是〇為假,非〇為真。.答案:Ado-while循環(huán)先執(zhí)行后判斷,先執(zhí)行循環(huán)體中的printf語(yǔ)句輸出n的值〇,在while(i++)中i先執(zhí)行再自加,所以while(i++)的等于while(0)為假退出循環(huán)。輸出結(jié)果為“0,0”。.答案:D分析:第一次循環(huán)x=8,x%3<>0,進(jìn)入if語(yǔ)句輸出x的值為8,然后x自減1,執(zhí)行continue立即進(jìn)行下次循環(huán)條件判斷。第二次循環(huán)x=6,x%3=0,不進(jìn)入if語(yǔ)句,執(zhí)行if語(yǔ)句后面的printf("%d,",—x),x先自減1再輸出得到5。第三次循環(huán)x=4,x%3<>0,進(jìn)入if語(yǔ)句輸出x的值為4,然后x自減1,執(zhí)行continue立即進(jìn)行下次循環(huán)條件判斷。第四次循環(huán)x=2,x%3<>0,進(jìn)入if語(yǔ)句,輸出x的值為2,然后x自減1,執(zhí)行continue立即進(jìn)行下次循環(huán)條件判斷。第五次循環(huán)x=0,判斷表達(dá)式x>0為假。結(jié)束循環(huán)輸出結(jié)果為8,5,4,2〇答案D.C第一次循環(huán)y=9,y%3=0,進(jìn)入if語(yǔ)句y先自減,輸出y的值為8。第二次循環(huán)y=7,y%3<>0,進(jìn)入下次循環(huán)。第三次循環(huán)y=6,y%3=0,進(jìn)入if語(yǔ)句y先自減,輸出y的值為5。第四次循環(huán)y=4,y%3く>0,進(jìn)入下次循環(huán)。第五次循環(huán)y=3,y%3=0,進(jìn)入if語(yǔ)句y先自減,輸出y的值為2。第六次循環(huán)y=l,y%3<>0,進(jìn)入下次循環(huán)。第七次循環(huán)y=0,判斷表達(dá)式y(tǒng)>0為假結(jié)束循環(huán)。輸出結(jié)果為8,5,2〇答案C.B在第一層循環(huán)中,當(dāng)i自加到值等于3的時(shí)候オ會(huì)進(jìn)入第二層循環(huán)55%3=1。輸出m的值為1.B外層循環(huán)3次,i的值在內(nèi)層循環(huán)中依次為1,2,3內(nèi)層循環(huán)次數(shù)依次為3,2,1次。D代碼"if(n%3!=0)continue;"無(wú)實(shí)際意義。當(dāng)n自加到4的時(shí)候結(jié)束循環(huán)。答案DB需要填入的實(shí)際是每行輸出“*”的個(gè)數(shù),從圖形看到每行“*”的個(gè)數(shù)是行數(shù)的兩倍減ー,i可以代表行數(shù)。所以填入的是‘'2*i-l”。答案BA0為任何數(shù)等于0,所以第一次循環(huán)的時(shí)候就進(jìn)入了if語(yǔ)句退出了for循環(huán)。i=21,iく20為假,退出了while循環(huán)。a的值為21。Di的初值為0.第一次循環(huán)的時(shí)候滿(mǎn)足i<0,進(jìn)入第一個(gè)if語(yǔ)句,另行continue直接進(jìn)行下次循環(huán),i的值沒(méi)有改變。第二次循環(huán)又重復(fù)了第一次循環(huán)的操作,所以是死循環(huán)。二、填空題:.答案:一1分析:此題的循環(huán)體是省略了大括號(hào)的空語(yǔ)句;,x的初值是2;執(zhí)亍while語(yǔ)句,先判斷表達(dá)式的值,(x--)的值為1(真),同時(shí)x的值減1變?yōu)?,再執(zhí)行循環(huán)體(空語(yǔ)句;),再判斷表達(dá)式(x--)的值,表達(dá)式的值為〇,同時(shí)x值減1,變?yōu)椹`1,因?yàn)楸磉_(dá)式的值為0(假),循環(huán)結(jié)束。最后輸出x的值一1。.答案:11循環(huán)的判斷表達(dá)式為i<5,i的初值是1,所以i得值依次是1,2,3,4。sum=sum+l+2+3+4,sum的值等于11.答案是11.答案:n=n/10此題的解法是先用輸入的數(shù)據(jù)%10可以得到個(gè)位數(shù),再讓輸入的數(shù)據(jù)除以10,使十位變成個(gè)位。循環(huán)使用上面的方法。當(dāng)只剩下個(gè)位的時(shí)候也就是n小于10的時(shí)候n/10等于〇退出循環(huán)。所以填入的是“n=n/10”。.答案:〇分析:i的值從5變化到〇時(shí),for語(yǔ)句中的第二個(gè)表達(dá)式都為真。t=5*4*3*2*l*0=0。最后輸出i的值為0。.答案:5分析:for循環(huán)語(yǔ)句的循環(huán)體是空語(yǔ)句。.答案:6分析:此題屬于循環(huán)的嵌套。當(dāng)i=l時(shí),輸出〇個(gè)#號(hào),當(dāng)i=2時(shí),輸出1個(gè)#號(hào),當(dāng)i=3時(shí),輸出2個(gè)#號(hào),當(dāng)i=,4時(shí),輸出3個(gè)#號(hào),共輸出6個(gè)#號(hào)。.答案:〇分析:getcharO只能獲得單個(gè)字符,輸入“1234567890”ch的值為T(mén)。循環(huán)條件為假,循環(huán)一次也沒(méi)有執(zhí)行。答案為:。.答案:23分析:參考第3題。答案:54321.答案:k<=nk++分析:見(jiàn)書(shū)59,64頁(yè)while和for循環(huán)的執(zhí)行過(guò)程。答案:k<=nk++.答案:ACE分析:理解字符轉(zhuǎn)化為整形數(shù)使用到ASCII碼‘a(chǎn)'的ASCII碼是97,'f'是102,'A'是65。答案是ACE.答案:120分析:i的值是1,sum的值是1,執(zhí)行while循環(huán)。①i<=5為真,sum的值為!,i自加1,值為2。②iく=5為真,sum的值為2,i自加1,值為3〇③iく=5為真,sum的值為6,i自加1,值為40④iく=5為真,sum的值為24,i自加1,值為5〇⑤iく=5為真,sum的值為120,i自加1,值為6。⑥iく=5為假,結(jié)束循環(huán)。輸出sum=120。.答案:23分析:此題需理解的是在switch中case后面沒(méi)有break的話會(huì)繼續(xù)執(zhí)行下ー個(gè)case或default后面的語(yǔ)句。答案為23.答案:132分析:m=0,n=0,k=0,i=9①當(dāng)i值為9時(shí),iく=11為真,執(zhí)行switch語(yǔ)句,(i/10)的值為〇,匹配case0,執(zhí)行m++,n++,再執(zhí)行break語(yǔ)句,跳出switch體,再執(zhí)行i++,i值為10;此時(shí)m值為1,n的值為1,k的值為〇.②當(dāng)i值為10時(shí),iく=11為真,執(zhí)行switch語(yǔ)句,(i/10)的值為1,匹配default,執(zhí)行k++,n++1結(jié)束switch體,執(zhí)行i++,i值為!1.此時(shí)m值為1,n的值為2,k的值為1.③當(dāng)i值為11時(shí),iく=11為真,執(zhí)行switch語(yǔ)句,(i/10)的值為1,匹配default,執(zhí)行k++,n++,結(jié)束switch體,執(zhí)行i++,i值為12.此時(shí)m值為1,n的值為3,k的值為2.⑤i值為12時(shí),iく=11為假,結(jié)束for循環(huán)。最后輸出m,n,k的值132..答案:i<10i%3根據(jù)題意先得到100以?xún)?nèi)所有個(gè)位是6的數(shù),在判斷哪些能被3整除。答案為iく10i%3!=〇。第五章函數(shù)ー、選擇題:.答案:B分析:在C語(yǔ)言中,函數(shù)可以在任何地方出現(xiàn),而main函數(shù)作為函數(shù)中的ー類(lèi),沒(méi)有特殊的限制和要求,故也可以在任何地方出現(xiàn)。.答案:B分析:C語(yǔ)言默認(rèn)規(guī)定.答案:D分析:選項(xiàng)A中“abc”和C中的’65,是ー個(gè)字符串,而形參要求的是單個(gè)字符不符合要求,選項(xiàng)B是一個(gè)賦值語(yǔ)句,而fun函數(shù)沒(méi)有返回值,所以不符合要求,只有選項(xiàng)D正確,將32傳給ch字符變量,那么32就相當(dāng)于是ASCII碼值。.答案:A分析:sin(1/2)會(huì)當(dāng)作sin(0)處理。實(shí)參的類(lèi)型決定了重載函數(shù)的選擇。.答案:D分析:函數(shù)的調(diào)用不可以作為ー個(gè)函數(shù)的形參。.答案:D分析:fun(a,析的作用是返回a、b中較大的。fun(x,y)=fun(3,8)=8,r=fun(fun(x,y),2*z)=fun(8,12)=12.答案:C分析:fl(x,y)的作用是返回x、y中較大的,f2(x,y)的作用是返回X、y中較小的。d=fl(a,b)=fl(4,3)=4d=fl(dIc)=fl(4,5)=5e=f2(a,b)=f2(4,3)=3e=f2(e,c)=f2(3,5)=3此時(shí)各值為a=4,b=3,c=5,d=5,e=3,f=a+b+c-d-e=4。所以答案d,f,e為5,4,3.答案:A分析:c程序的基本單位是函數(shù)。函數(shù)中不可以嵌套定義函數(shù)。main〇函數(shù)可以放在任意位置。被調(diào)用的函數(shù)只要在調(diào)用之前說(shuō)明了即可。.答案:B分析:fun(x,y)的作用是求x、y的和。fun(a+c,b)=a+c+b=15,(int)fun(a+c,b)=(int)15=15〇fun((int)fun(a+c,b),a-c)=fun(15,-6)=9〇.答案:D分析:fun(x,y)的作用是選擇x,y里面較小的ー個(gè)。fun(9,8)=8,fun(8,7)=7;fun(fun(a,b),fun(b,c))=fun(8,7)=7.答案:C分析:funl(a)=a2,fun2(x,y)=(int)(funl(x)+funl(y))=(int)(x2+y2),所以funl(l.1,2.0)=(int)(1.21+4.0)=(int)5.21=5由于W是double型的,所以W的值為5.0。.答案:A分析:函數(shù)的說(shuō)明有其自己的格式,應(yīng)該包括函數(shù)類(lèi)型、函數(shù)名、以及形參類(lèi)型,形參名可有可無(wú),但是一定要統(tǒng)ー,形參名隨便取。.答案:C分析:允許這種函數(shù)說(shuō)明的方式存在。如果只在主函數(shù)中說(shuō)明,則只能在主函數(shù)中調(diào)用f:如果在主函數(shù)以前說(shuō)明,則包括主函數(shù)的所有函數(shù)都可以調(diào)用,如果同時(shí)主函數(shù)又說(shuō)明了,則不影響。.答案:D分析:函數(shù)的形參不可以傳給對(duì)應(yīng)的實(shí)參。.答案:D分析:形式參數(shù)的改變不影響實(shí)參。所以本題是ー個(gè)迷惑題,不需要看函數(shù)體的內(nèi)容。.答案:C分析:C語(yǔ)言中改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值;函數(shù)可以返回地址值,當(dāng)函數(shù)沒(méi)有指定返回值類(lèi)型時(shí),默認(rèn)返回類(lèi)型為void型,C語(yǔ)言的函數(shù)不能嵌套定義,所以本題選擇C。.答案:A分析:本題答案為A,程序的執(zhí)行總是從main函數(shù)開(kāi)始,在main函數(shù)結(jié)束,無(wú)論main函數(shù)在程序的什么地方。.答案:A分析:在C語(yǔ)言中,函數(shù)返回值的類(lèi)型取決于函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類(lèi)型。.答案:C分析:函數(shù)f(intv,intw)的功能是將實(shí)參v和w進(jìn)行交換,但是實(shí)參值的變化對(duì)形參沒(méi)有影響,所以本題中x,y,z中的值不發(fā)生變化。.答案:C分析:因?yàn)閒un(intx)函數(shù)是ー個(gè)遞歸函數(shù),所以主函數(shù)中的調(diào)fun(3)經(jīng)過(guò)1次遞歸調(diào)用,其過(guò)程可以描述為fun(3)=3*3-f(3-2)=9-fun(l)=9-3=6。.答案:D分析:在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在C語(yǔ)言中,僅在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。故本題答案為D。.答案:C分析:變量a,b,c的初始值分別為!,2,3〇因此逗號(hào)表達(dá)式“a++,b++,a+b”值等于5,表達(dá)式C++的值為3,這樣主函數(shù)main。中調(diào)用子函數(shù)的表達(dá)式為fun(5,3);其返回值等于8。所以變量sum的值等于8。本題選擇C。二、填空題:.答案:a=1.0,b=1.0,s=1.0;分析:分別求出變量的初始值。a=a*x為的是求xn,所以其初始值為l,b=b*i位的是求n!,所以其初始值為1,當(dāng)n=0時(shí),s=l,所以s的初始值為1。由于定義的是double型的數(shù)據(jù),所以答案為a=1.0,b=1.0,s=1.0;.答案:m=fun(a,4)+fiin(b,4)-fun(a+b,3);分析:由程序可以看出fun(x,n)=xn。fun(a,4)=a4,fun(b,4)=b4,fun(a+b,3)=(a+b)3,當(dāng)要計(jì)算m=a4+b4+(a+b)3時(shí),函數(shù)調(diào)用語(yǔ)句為m=fun(a,4)+fun(b,4)+fun(a+b,3);.答案:xx*x+l分析:1)求f(x)的累加和,即為求f(0)+f(1)+f(2)+f(3)+f(4)+……,函數(shù)SunFun來(lái)實(shí)現(xiàn)此功能。括號(hào)中應(yīng)該填入累加的序號(hào)值,即為Xof(x)=x2+l,F(intx)函數(shù)來(lái)實(shí)現(xiàn)這個(gè)功能,所以填寫(xiě)x*x+l。.答案:-ffiin(10)分析:函數(shù)的作用為計(jì)算m=l-2+34+5-6+7-8+9-10,實(shí)際上為計(jì)算m=l*1+(-1)*2+1*3+(-1)*4+ +1*9+(-1)*10,在循環(huán)體中,i為1,2,3.....f為1的符號(hào)。每循環(huán)一次,f的符號(hào)應(yīng)該變換ー下,所以變換的語(yǔ)句為f=-fo當(dāng)n=l時(shí),計(jì)算的是m=l:當(dāng)n=2時(shí),計(jì)算的是m=I-2……因?yàn)橛?jì)算的是m=1-2+3-4+5-6+7-8+9-10,所以答案為n=10,即fiin(10)。.答案:9分析:1)函數(shù)的意思為f(x,y)=(y-x)*xf(3,4)=(4-3)*3=3f(3,5)=(5-3)*3=62)d=f(3,6)=(6-3)*3=9..答案:doublemax分析:通過(guò)程序可以看出,main函數(shù)中使用了max函數(shù),而其他地方?jīng)]有對(duì)max函數(shù)進(jìn)行說(shuō)明。所以程序中應(yīng)該對(duì)max函數(shù)進(jìn)行說(shuō)明。說(shuō)明的格式為doublemax(double,double)〇.答案:3,2,2,3分析:1)x=2,y=3,當(dāng)調(diào)用fun(x,y)時(shí),相當(dāng)于執(zhí)行fun(2,3)〇x=x+y; x=2+3=5;y=x-y; y=5-3=2;x=x-y;x=5-2=3;此時(shí)x,y的值為3,2?所以輸出的結(jié)果為3,2〇2)在main函數(shù)中,實(shí)參不會(huì)因?yàn)樾螀⒌母淖兌淖?x,y的值仍為2,3,所以所以輸出的結(jié)果為2,3.8、答案:13分析:fun函數(shù)是ー個(gè)遞歸函數(shù),主函數(shù)中調(diào)用的fun(3)共遞歸兩次,fun(3)中又調(diào)用fun(3/2)即fun(l), 出fun(l)中x的值,為1,然后再輸出fun(3)中x的值為3〇所以結(jié)果為!309、答案:m=9k=14i=5j=5分析:為爰量i和j賦初值為4,調(diào)用fun(i++,++j)即ftin(4,5),在ftin函數(shù)中計(jì)算m和k的值,m+=k即m=m+k=4+5=9,k+=m即k=k+m=5+9=14,分別輸出m和k的值,即輸出m=9,k=14;然后到主函數(shù)中輸出自增1后的i和j的值,即i=5,j=5。第六章指針ー、選擇題1答案:A分析:本題主要考指針賦值,n2=nl;是把n2的值賦給nl,故根據(jù)指針賦值的定義可知選A,即把q所指對(duì)象的值賦給p所指對(duì)象。2答案:B分析:本題主要考指針定義,因?yàn)閜指向變量x,故輸出其值的時(shí)候應(yīng)該是x的值。3答案:C分析:本題主要考指針的定義和賦值,C前面是定義一個(gè)量a并賦值為10,后面定義一個(gè)指針,并把a(bǔ)的值賦給這個(gè)指針。4答案:C分析:本題主要考指針的定義及賦值,開(kāi)始時(shí)使p指向a,q指向b,把它們的值交換,然后再顯示。故得正確答案C。5答案:C分析:本題主要考函數(shù)指針的定義,函數(shù)前面的?號(hào)表求返回值是指針類(lèi)型,void表示返回?zé)o值弄的。故選C。6答案:A分析:本題主要考的是指針的變量的賦值,在使用scanf()函數(shù)的時(shí)候,后面跟的是一個(gè)地址,由于pa本身保存的是地址,故選A7答案:D分析:本題主要考的指針的賦值及指向指針的指針的賦值,根據(jù)定義知選D。B的正確形式是**q=2;C的正確形式應(yīng)該是q=&po8答案:C分析:本題主要考的是全局變量和局部變量,以及指針的用法,第一個(gè)f(&a)的返回值是5,第二個(gè)返回值是2。9答案:A分析:本題主要考的是變量自加,指針傳值,以及指針的賦值。通過(guò)第二行a=b可知pl,p2指向的變量的值相同,都指向了b所指的對(duì)象,也是p2所指的對(duì)象由于(*a)++;是實(shí)現(xiàn)a所指對(duì)象的自加,故由H變成ゼ,故最終選Ao10答案:A分析:本題主考NULL,一般來(lái)說(shuō)當(dāng)我們把ー個(gè)空值以整數(shù)的形式輸出出來(lái)的時(shí)候,默認(rèn)的情況是〇。答案?c分析:本題考的是指針變量的賦值,雖然P沒(méi)有賦值,表示沒(méi)有指向某個(gè)具體的對(duì)象,但事實(shí)上系統(tǒng)會(huì)讓它隨機(jī)的指向存儲(chǔ)單元里的ー個(gè)對(duì)象,那么它的返回值應(yīng)該是所指存儲(chǔ)單元中的值。答案:B分析:本題主要考函數(shù)中參數(shù)變量的定義,在B中連續(xù)定義兩個(gè)變量,這在函數(shù)中是不可以的。13答案:C分析:本題主要考指針的指針,c先指向b,b是ー個(gè)指針,它指向a,故c最終是指向a的,故其值是a中的值。

1415161718192021222324答案:A分析:本題主要考指針的賦值,我們不能把一個(gè)具體的值賦給ー個(gè)指針變量。B選項(xiàng)是w,p指向同一對(duì)象。C是p指向a。D是把w所指對(duì)象的值賦給p所指對(duì)象。答案.B分析:本題主要考指針傳值,p,q分別指向a,b,然而r會(huì)指向它們的較小值。答案:D分析:在D中把一個(gè)整形變量的值賦給ー個(gè)指針的地址,故而是錯(cuò)的。應(yīng)該寫(xiě)成p=&a。答案:D分析:本題主要考調(diào)用函數(shù)時(shí)指針傳值和一般的變量的傳值區(qū)別。指針通過(guò)地址傳值,而變量是直接傳值。c指針指向b,故對(duì)c指針里面的值的修改等于直接修改b中的值。答案.D分析:本題主要考指針的定義及指針變量的值的輸出方式,指針b指向a,故輸出其值是511。答案:C分析:本題主要考指針標(biāo)識(shí)符?和乘號(hào)?的區(qū)別,*p=*pl*(*p2)中第1,2,4個(gè)?號(hào)是指針標(biāo)識(shí)符,而第三個(gè)是乘號(hào),故其運(yùn)算的結(jié)果是3。答案:C分析:本題主考函數(shù)的嵌套調(diào)用和數(shù)據(jù)的類(lèi)型轉(zhuǎn)換,注意的是(int)(a+b),所以得到5.0。答案:A分析:本題主要說(shuō)的是函數(shù)的遞歸調(diào)用,函數(shù)fun()實(shí)現(xiàn)的功能是從1加到n,然后返回給主函數(shù)。答案:D分析:A不能把一個(gè)具體的值賦給ー個(gè)指針變量。Bq是指向指針的指針只能保存指針的地址。C同B。答案:D分析:A指針賦處初值時(shí)不能把一個(gè)具體的值賦給ー個(gè)指針變量指向的地址。B語(yǔ)法錯(cuò)誤,C不能發(fā)地址賦給浮點(diǎn)型變量。答案:C分析:指針只能存放地址。

25答案:C分析:scanf()函數(shù)的輸入數(shù)據(jù)列表應(yīng)該是合法的地址表達(dá)式。26答案:D分析:A中b需要預(yù)先定義,B中字符變量b只能接收單個(gè)字符。C中二級(jí)指針應(yīng)定義為?*c。答案D27答案:D分析:代碼“s+=2”是錯(cuò)誤的,s是數(shù)組的首地址,但S是常量不能改變它的值。28答案:A分析:B的正確格式是“p=&n”,C的正確格式是“scanf("%d",p)”,D的正確格式是“printf("%d\n",*p)”。答案A二、填空題1答案:84分析:voidf()函數(shù)里的x,y分別是ー個(gè)指針變量和整型變量,指針x指向ー個(gè)整型的變量,即指向主函數(shù)里的x,故在函數(shù)voidf()里修改指針x的值,會(huì)影響到主函數(shù)里的x的值,但修改voidf()里的y的值卻不會(huì)影響到主函數(shù)里的y的值。因?yàn)橹骱瘮?shù)x傳的是地址,y傳的是值。2答案:k*k分析:由于k是ー個(gè)指針,故第一個(gè)空應(yīng)該填k。由于第二個(gè)空要輸出指針k所指對(duì)象的值,故應(yīng)該填?k表示該指針?biāo)笇?duì)象的值3答案:35分析:p,q分別指向x,y,然后調(diào)用函數(shù)swap。;它的功能是把兩個(gè)指針?biāo)赶虻膶?duì)象交換,原來(lái)a,b分別指向x,y,但交換后分別指向y,x,所以并不把指向的對(duì)象的值交換。函數(shù)返回后,p,q仍然分別指向x,y。故其值不變。4答案:n=n/10分析:把n除以10,每執(zhí)行ー次就可以把數(shù)的陽(yáng)未位去掉,因?yàn)閮蓚€(gè)整數(shù)相除,不會(huì)保留小數(shù),故最低位會(huì)丟掉,并且把數(shù)縮小到十分之一。然后依次從個(gè)位到最高位把數(shù)字輸出。5答案:35第七章數(shù)組ー、選擇題!答案.B分析:此題考察ー維數(shù)組的定義,ー維數(shù)組的說(shuō)明中,下標(biāo)必須為正的整型常量,不能為變量,在ー維數(shù)組的初始化中,指出在單純的定義時(shí)不能省略數(shù)組的長(zhǎng)度。2答案:B分析:首先i=0時(shí),判斷i++<7成立,進(jìn)入循環(huán)體,但此時(shí)i=l,p[l]=12不滿(mǎn)足if語(yǔ)句,不執(zhí)行j+=p[i]。按照此方法,得到j(luò)=p⑵+p⑷+p[6]=45,即B正確。3答案:D分析:首先i=0<7&&p[0]%2!=0,滿(mǎn)足循環(huán)條件,執(zhí)行k=k+p[〇],即k=l1,然后執(zhí)行i++,再進(jìn)行判斷,滿(mǎn)足循環(huán)條件,k=ll+p[l],所以k=24,執(zhí)行i++,i=2?再進(jìn)行判斷,此時(shí)不滿(mǎn)足循環(huán)條件,循環(huán)結(jié)束,輸出k值,為24〇4答案:A分析:此題主要考察循環(huán)嵌套,第一個(gè)循環(huán)體執(zhí)行完是將x[O],x[l],x[2],x[3],進(jìn)行從大到小排序,第二個(gè)循環(huán)體執(zhí)行完是將x[4],x[5],x[6],x[7]進(jìn)行從小到大排序。5答案:B分析:此題考察二維數(shù)組的定義,單純定義二維數(shù)組時(shí),行和列都不能缺省。在初始化過(guò)程中,列不能缺省,賦值的行數(shù)和列數(shù)不能超過(guò)數(shù)組的行數(shù)和列數(shù)。6答案.D分析:同上題分析ー樣。7答案:D分析:同上。8答案:C分析:此題分別輸出m[2][0],m[2][l],m[2][2]o9答案:A分析:此題考察在for循環(huán)后,i=O,i=l時(shí),執(zhí)行if語(yǔ)句,使得a[l][0],a[l][l]的值分別減!,而當(dāng)i=2時(shí),執(zhí)行else語(yǔ)句,a[l][2]=lo因此輸出a[O][l]+a[l][l]+a[l]⑵=2+4+1=7;10答案:B分析:此題考察for循環(huán),計(jì)算aa[0][l],aa[l][l],aa⑵⑵,aa[3][l]的和,即為19〇11答案:c分析:由于自增加運(yùn)算符(++)的優(yōu)先級(jí)別高于取地址運(yùn)算符(&),所以選項(xiàng)C無(wú)法表示aa[l]的地址,其他三個(gè)選項(xiàng)都可以。12答案:D分析:數(shù)組名實(shí)際代表數(shù)組的首地址,也就是數(shù)組中第一個(gè)元素a[0]的地址,那么a+i就代表數(shù)組a中下標(biāo)為i的元素a[i]的地址,*(a+i)就代表a[i]這個(gè)元素,所以?(*(a+i))的表示是錯(cuò)誤的,此題選擇D。13答案:A分析:本題答案為A,指針p指向數(shù)組a中第一個(gè)元素,此時(shí)p中存放的是數(shù)組中a[0]的地址,將指針p+2不是單純的加一個(gè)整數(shù)2,而是將指針后移,兩個(gè)存儲(chǔ)單元,指向了a[2]這個(gè)數(shù)組元素,所以輸出的是a[2]中的值3。14答案:B分析:此題答案為B,通過(guò)程序我們可知指針p指向數(shù)組中元素a[3],指針q指向元素a[5],輸出?p+*q即輸出a[3]+a[5]=10,所以選擇B。15答案:C分析:本題通過(guò)循環(huán)控件用y累計(jì)p[l]+p[2]的值,由于指針p指向數(shù)組中元素a[l]所以p[l]即數(shù)組中元素a[2],p[2]即數(shù)組中元素a[3],a[2]+a[3]=6+8=14o16答案:A分析:我們讓指針p指向數(shù)組a中第一個(gè)元素,然后通過(guò)循環(huán)控制輸出指針p每次后移ー個(gè)存儲(chǔ)單元,并輸出其所指存儲(chǔ)單元中的內(nèi)容,而指針P指向數(shù)組a,所以就是輸出數(shù)組a中的每一個(gè)元素,選擇A。17答案:D分析:*p表示指針p所指存儲(chǔ)單元中的內(nèi)容,所以(*p)++表示將p所指存儲(chǔ)單元中的內(nèi)容加1,不符合題目要求,其他三項(xiàng)都符合要求,所以選擇D。18答案.A分析:為指針賦ー個(gè)NULL值,就是指針具有一個(gè)空值,讓ー個(gè)空指針去訪問(wèn)ー個(gè)存儲(chǔ)單元時(shí),將會(huì)得到ー個(gè)出錯(cuò)的信息。19答案:D分析:變量p是ー個(gè)指針,所以我們只能為其賦ー個(gè)地址值,不能為其賦ー個(gè)表達(dá)式或ー個(gè)常量值,所以A、B、C三個(gè)選項(xiàng)不符合要求,D選項(xiàng)中,a代表數(shù)組a的首地址,是ー個(gè)地址值,所以D正確。分析:讓指針p指向數(shù)組中元素a[3],那p[5]即數(shù)組中元素a[7],所以b中的值是8。2I答案:B分析:與上一題同理,指針s指向數(shù)組元素a[3],s⑵即數(shù)組中元素a[4],即為〇〇22答案:C分析:數(shù)組名t代表數(shù)組的首地址,所以?(t+i)就代表巾]元素中的值,通過(guò)循環(huán)控制求累加和s,實(shí)際上s=ar0]+a[2]+a[4]+a[6]+a[8]=l+3+5+7+9=25〇23答案:B分析:讓指針p指向二維數(shù)組a的第一個(gè)元素,那么可用p[0]代表a[0][0],用pロ]代表a[O][l] ,用p[8]代表a[2][2],通過(guò)循環(huán)為數(shù)組a中的每ー個(gè)元素賦了一個(gè)值。輸出a[l][2]即p[5]的值為6〇24答案:D分析:讓指針p指向二維數(shù)組a的第一個(gè)元素,那么可用p[0]代表a[0][0],用pロ]代表a[0][l] ,用p[8]代表a[2][2],通過(guò)循環(huán)為數(shù)組a中的每ー個(gè)元素賦了一個(gè)值。再通過(guò)循環(huán)輸出a口][0]、aロ]ロ]、a[l][2],即p[3]、p[4]、p[5]的值,所以輸出的是3、4、5025答案:B分析:在這里我們通過(guò)(*ptr)[2]定義了一個(gè)行指針ptr,ptr存放的是含有兩個(gè)整型元素的ー維數(shù)組的首地址。a是二維數(shù)組名,就是數(shù)組的首地址,ptr=a+i就代表,將數(shù)組中第i行的首地址賦給行指針ptr。能過(guò)第一個(gè)循環(huán)控制,為第0行和第1的首元素賦值,也就是為a[〇][〇]和aロ][0]賦值,輸入的是1、2、3,但是只賦給兩個(gè)元素,所以取前面兩個(gè)值,所以輸出時(shí),a[〇][〇]的值為1,aロ][0]的值為2,其他的默認(rèn)都為〇。26答案:B分析:int*p[3]是表示定義ー個(gè)指針數(shù)組,數(shù)組名為p,其中包含3個(gè)元素,每個(gè)元素都是一個(gè)指向int類(lèi)型的指針。27答案.D分析:通過(guò)(*p)[5]則定義了一個(gè)行指針,存放長(zhǎng)度為5的ー維數(shù)組的指針,通過(guò)p=c,讓p指向二維數(shù)組c,那么p[i]就是指向數(shù)組c中第i行的指針。p[i]+n就是數(shù)組中第i行,第n列的地址,如果要引用第i行第n列的元素,就可以表示成?(p[i]+n),所以本題選擇D。28答案:D分析:二維數(shù)組元素的地址可以用表達(dá)式&a[i][j]求得,也可以通過(guò)每行的首地址來(lái)表示,第i行的首地址可以通過(guò)a[i]來(lái)表示,a[i]+j就表示第i行第j列的地址,等價(jià)于?(a+i)+j,如果要引用第i行第j列的元素,則可表示成?(a[i]+j),*(*(a+i)+j)或(*(a+i))|j]所以本題選擇D。29答案:C分析:p是ー個(gè)指針數(shù)組,通過(guò)p[0]=a[l]可知p[0]中存放的是數(shù)組a中第1行的首地址,所以p[O]+l就代表第1行第1列元素的地址,所以*(p[O]+l)就代表元素a[l][l]o30答案:C分析:通過(guò)(*ps)[5]則定義了一個(gè)行指針,存放長(zhǎng)度為5的ー維數(shù)組的指針,通過(guò)ps=s,讓ps指向二維數(shù)組s,那么ps[i]就是指向數(shù)組s中第i行的指針,可用ps[i][j]或?(ps[i]+j)表示第i行第j列的元素。所以選項(xiàng)C正確。31答案:A分析:通過(guò)(*pa)[3]定義了一個(gè)行指針pa指向二維數(shù)組a,這樣p[i][j]就表示a[i][j],通過(guò)循環(huán)語(yǔ)句控制將a[l][0]和a[l][l]中的值分別減1變?yōu)?和4,給a[l]⑵賦值為1。a[0][l]+a[l][l]+a[l"2]=2+4+l=7,所以本題選擇Ao32答案:B分析:循環(huán)共執(zhí)行3次:i=0并且j=0時(shí):t=t+b[O][b[0][0]]=1+b[0][0]=1+0=1,當(dāng)i=l并且j=l時(shí):t=t+b[l][b[l][l]]=l+b[l][l]=l+l=2.當(dāng)i=2并且j=2時(shí):t=t+b[2][b⑵⑵]=2+b⑵⑵=2+2=4。33答案:B分析:第一個(gè)for循環(huán)控制輸出的空格,第二個(gè)for循環(huán)控制輸出數(shù)組中元素,分析可知,輸出數(shù)組元素時(shí),第〇行輸出〇個(gè)空格,并從第0列元素開(kāi)始輸出,第1行輸出1個(gè)空格后,并從第1列元素開(kāi)始輸出依此類(lèi)推,第i行輸出i個(gè)空格后,從第i列開(kāi)始輸出,所以空格處填i。34答案:A本題中通過(guò)嵌套循環(huán)找出數(shù)組中最小的元素的值,存放在min變量中,并且將相應(yīng)的行號(hào)放在row變量列中,列號(hào)放在co!變量中輸出。35答案:A分析:p=s就表示讓指針p指向數(shù)組s的首地址,數(shù)組中第一個(gè)元素,所以?p可以表示s[0],A選項(xiàng)正確;數(shù)組s中的元素個(gè)數(shù)由定義數(shù)組時(shí)的下標(biāo)決定,P所指的字符串長(zhǎng)度由實(shí)際的字符個(gè)數(shù)決定,是不相等的,所以B錯(cuò)誤,s數(shù)組名代表數(shù)組的首地址,是ー個(gè)地址常量,不是變量所以C錯(cuò)誤;數(shù)組s中存放的是數(shù)組中的每ー個(gè)元素,而指針變量p中存放的是數(shù)組的首地址,所以D錯(cuò)誤。36答案:A分析:通過(guò)pc=ch,讓指針pc指向數(shù)組ch中的第一個(gè)元素,此時(shí)pc+i即表示ch[i]的地址,所以輸出?(pc+5)即輸出元素ch[5]中的字符“z”。37答案:D分析:swap1(a,a+1)是將數(shù)組中元素a[0]和a[l]的地址傳遞給形參cO和cl兩個(gè)數(shù)組,然后在函數(shù)swapl中對(duì)它們進(jìn)行交換,由于傳遞的是地址值,所以形參變化,對(duì)應(yīng)的實(shí)參也發(fā)生改變:所以a[0]與a[l]中的值也相互交換;swap2(&b[〇],&b[l])是將數(shù)組b中元素b[0]和b[l]的地址傳遞給形參指針變量cO和cl,然后對(duì)指針變量所指的存儲(chǔ)單元中的值進(jìn)行交換,所以b[0]和b[l]中的值相對(duì)也發(fā)生變化,因此最后輸出的值為5353〇38答案:C分析:循環(huán)for(i=0;i<12;i++)c[s[i]]++;共執(zhí)行12次,分別為:c[l]++,c[2]++,c[3]++,c[4]++,c[4]++,c[3]++,c[2]++,c[l]++,c[l]++,c[l]++,c[2]++,c[3]++,其中c[l]自加了4次,c⑵自加了3次,c[3]自加了3次,c[14]自加了2次,所以c[l]的值為4,c⑵的值為3,c[3]的值為3,c[4]的值為2,輸出結(jié)果為4332。39答案:C分析:函數(shù)fun的功能是將數(shù)組中下標(biāo)從i至リj的元素倒序,在主函數(shù)中先通過(guò)調(diào)用fun(a,O,3)將a[〇]到a[3]的元素倒序得到[4,3,2,1,5,6,7,8,9,0},再通過(guò)fun(a,4,9)

溫馨提示

  • 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)論