



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
12345注:67891011第一章C語言基礎(chǔ)知識(shí)一,選擇題答案是AA正確B{}可以作為復(fù)合語句的標(biāo)志Cmain函數(shù)不是用戶命名的D分號(hào)是語句結(jié)束的標(biāo)志,肯定是語句的一部分做這個(gè)題目需要對(duì)書上的概念透徹的理解答案是AA錯(cuò)誤用戶標(biāo)識(shí)符:命名時(shí),標(biāo)識(shí)符的選擇由用戶自定,但是不能與關(guān)鍵字相同,所以A選項(xiàng)錯(cuò)誤。這個(gè)題目考察用戶標(biāo)識(shí)符答案是B用戶標(biāo)識(shí)符是標(biāo)識(shí)符,所以可以是有下劃線,但是中劃線不屬于字母,數(shù)字,下劃線其中一種。這個(gè)題目考察用戶標(biāo)識(shí)符的概念。答案是Bdefine是預(yù)定義標(biāo)識(shí)符,而預(yù)定義標(biāo)識(shí)符可以是用戶標(biāo)識(shí)符,所以define可以是用戶標(biāo)識(shí),if是關(guān)鍵字,而關(guān)鍵字不能是用戶標(biāo)識(shí)符,所以if不可以是用戶標(biāo)識(shí)符答案是Dlong是關(guān)鍵字,參照附錄ニ6-13考察用戶標(biāo)識(shí)符概念答案是DD答案以數(shù)字2開頭了,不符合標(biāo)識(shí)符定義答案是CC答案以數(shù)字開頭了答案是Dint是關(guān)鍵字答案是B答案A是關(guān)鍵字,答案C是以數(shù)字開頭了,不符合概念,答案口出現(xiàn)了小數(shù)點(diǎn)答案是A答案A出現(xiàn)了小數(shù)點(diǎn)答案是C答案C以數(shù)字開頭了
1213141516171819202122答案是AB答案中float是關(guān)鍵字,C答案中3c以數(shù)字3開頭了,D答案中一5d中一不屬于字母,數(shù)字,下劃線中一種答案是AB答案中一max中一錯(cuò)誤,C答案中3coM以字母3開頭了,D答案中int是關(guān)鍵字,不是用戶標(biāo)識(shí)符答案是BA答案中15.后面不應(yīng)該有點(diǎn),C答案中出現(xiàn)了逗號(hào),D中字母B有問題答案是DVisualC++6.0中int類型的變量占的字節(jié)數(shù)為4〇答案是BB中出現(xiàn)了8,而八進(jìn)制只能有〇到7組成答案是D答案D中開頭是〇不是。答案是C答案A中E后面是整數(shù),0.5是小數(shù)答案B中E后面不能為空答案D中E前面不能為空本題目考察指數(shù)的表示形式答案是C答案A中2.0有問題,不能為小數(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)制類型轉(zhuǎn)換,正確的是(double)x/l0答案是A本題考察的是注釋需要注意的地方,具體解答見課本第2頁中間部分答案是B答案A中n2沒有定義,答案C中在定義f之前不能使用它,答案D中E后面必須是整數(shù)答案是C考察的是強(qiáng)制類型轉(zhuǎn)換,正確的是k%(int)f答案是D本題目類似與第七課時(shí)的例」解題方法是要抓住++m,-n,-m,表達(dá)式的值是變量變化之后的值,而n-表達(dá)式的值是變量n變化之前的值答案是B本題目考察的是負(fù)整數(shù)與無符號(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頁的關(guān)于自加與自減運(yùn)算符的第一點(diǎn)說
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)算符來說,其運(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的類型是double型的答案是Dlong和short不能相互修飾答案是C標(biāo)識(shí)符中不能有$答案是CA選項(xiàng)中,在變量賦值時(shí)不能賦給表達(dá)式,而y*5是表達(dá)式;選項(xiàng)B中進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí),類型標(biāo)識(shí)符要加上括號(hào),所以錯(cuò)誤;選項(xiàng)D中,%(求余運(yùn)算符)運(yùn)算對(duì)象只能是整形數(shù)。答案是A選項(xiàng)A中,b變量還沒有定義答案是C選項(xiàng)A中l(wèi)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開頭,并且由0—9以及a—f組成,Oabc不正確;
選項(xiàng)D中10,000包含逗號(hào),不正確。答案是BC語言的標(biāo)識(shí)符中只能包含字線、數(shù)字和下劃線,沒有連接符。答案是C既然在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),它的存儲(chǔ)形式就與整數(shù)的存儲(chǔ)形式類似。這樣使字符型數(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ù)類型所占用的字節(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á)式的值為增1后的值,而選項(xiàng)A為后綴形式,其表達(dá)式的值為增1之前的值。而選項(xiàng)B和D的表達(dá)式都是k加1之后的值答案是A答案是C選項(xiàng)A中將一個(gè)變量j的值賦給了一個(gè)表達(dá)式,這種寫法是錯(cuò)誤的,只能給變量賦值,而不能給常量和表達(dá)式賦值;選項(xiàng)B中強(qiáng)制類型轉(zhuǎn)換的格式使用出錯(cuò),強(qiáng)制類型轉(zhuǎn)換時(shí),類型標(biāo)識(shí)符必須用括號(hào)括起來;選項(xiàng)口中,求余運(yùn)算符(%)的兩端必須是整形數(shù)。答案是D字符常量是用單引號(hào)括起來的單個(gè)字符,所以選項(xiàng)B錯(cuò)誤;此外還有一種特殊的字符專為控制設(shè)計(jì),稱為轉(zhuǎn)義字符,有三種轉(zhuǎn)義字符:ー種是由一個(gè)“ヽ”開頭加一個(gè)普通字符組成,代表一個(gè)字符。如‘\"表示一個(gè)單引號(hào)字符,所以選項(xiàng)D正確;'\\'表示一個(gè)斜杠字符,而選項(xiàng)C中的‘'’則是錯(cuò)誤的;用“ヽ”與其后的1?3位ハ進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該ハ進(jìn)制數(shù)的字符;用“\x”與其后的1?2位十六進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該十六進(jìn)制數(shù)的字符;所以選項(xiàng)A錯(cuò)誤。答案是B字符常量是用單引號(hào)括起來的單個(gè)字符,所以選項(xiàng)A正確;此外還有一種特殊的字符專為控制設(shè)計(jì),稱為轉(zhuǎn)義字符,有三種轉(zhuǎn)義字符;ー種是由一個(gè)“ヽ”開頭加一個(gè)普通字符組成,代表一個(gè)字符。如‘\n,表示一個(gè)換行符,所以選項(xiàng)D正確;用“'”與其后的1?3位ハ進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCI!碼等值于該ハ進(jìn)制數(shù)的字符,所以選項(xiàng)B錯(cuò)誤,因?yàn)?不是八進(jìn)制數(shù)字;用“\x”與其后的I?2位十六進(jìn)制數(shù)字構(gòu)成的字符序列,表示ASCII碼等值于該十六進(jìn)制數(shù)的字符;所以選項(xiàng)C正確。答案是D大寫字母的ASCII碼值比小寫字母的ASCII碼值小32梵案是A£項(xiàng)A中的字符變量ch只能接收單個(gè)字符,'ab’不是單個(gè)字符,所以錯(cuò)誤。答案是Bcharx='C’將一個(gè)大寫字母賦給了字符型變量x;然后通過x=x+32將x中字符的ASCII碼值加32,即為小寫字符‘c'的ASCII碼值;然后將X以字符形式輸出,即為小寫字母Co答案是A語句charx,y;定義兩個(gè)字符型變量x,y;然后通過x='B'-'A'+'a,將用大寫字母B的ASCII碼送去大寫字母A的ASCII碼,結(jié)果便為!,然后再加上小寫字每a的ASCII碼,結(jié)果就為小寫字母b的ASCII碼,然后再賦值給變量x5通過y=x+2,將變量x中的ASCII碼值加2,即變成小寫字母d的ASCI!碼值再賦值給變量y;然后以數(shù)值形式輸出變量x中的ASCII碼值為98,再以字符形式輸出變量y中的字符為d。答案是B選項(xiàng)A中字符'0'的ASCII碼值為48,所以A的結(jié)果不為1;選項(xiàng)B中''0'代表空值,空值NULL的ASCII碼值為〇所以結(jié)果為1;選項(xiàng)C中字符'I'的ASCII碼值為49,所以結(jié)果不為I;選項(xiàng)D相當(dāng)于用0-48結(jié)果也不為1〇答案是D如果要表示十六進(jìn)制字符,則要用'\x,開頭,所以選項(xiàng)A錯(cuò)誤;如果要表示八進(jìn)制,則''O'開頭,后面跟I?3位的ハ進(jìn)制數(shù),ハ進(jìn)制數(shù)由〇?7組成,不包含8,所以選項(xiàng)B錯(cuò)誤;用單引號(hào)括起來的單個(gè)字符オ是字符常量,所以C錯(cuò)誤;而'\n’是轉(zhuǎn)義字符,用來表示回車符。答案是B用單引號(hào)括起來的單個(gè)字符,稱為字符常量,所以選項(xiàng)B錯(cuò)誤。答案是C先將cl變量中的字符的ASCH碼值輸出,即為65,將變量c2中字符的ASCII碼值減2后輸出,即為66。答案是A我們知道異或運(yùn)算,只有兩個(gè)操作數(shù)不同,結(jié)果オ為lo所以0へ1=1,Pl=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é)果オ為〇,所以c"c2值為0。所以本題的正確答案為A。答案是A413轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制數(shù)即1001011=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)于1010100"11111100=01010101,所以選擇D。答案是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í)符 用戶標(biāo)識(shí)符8八十十六int float double5+3.6/2=54-1.8=6.815 16 a++表達(dá)式的值是a變化之前的值,當(dāng)然a本身增加了1把10賦給變量B123.46(int)(x*100+0.5)/100.0=(int)(12345.67+0.5)/100.0=(int)(12346.17)/100.0=12346/100.0=123.46o3整個(gè)表達(dá)式是一個(gè)逗號(hào)表達(dá)式,變量n和i賦值為2后,通過++i將i的值增加1變?yōu)?,然后再通過i++為i增加1,整個(gè)逗號(hào)表達(dá)式的值為i++的值,此時(shí)是后綴,所以整個(gè)i++表達(dá)式的值為3,而變量i的值為2。11110111第11題沒有詳細(xì)解析而且答案出錯(cuò):~xAy?l=~00000010A00000101?l=llll1101A00001010=l11101112只有‘\\‘和‘'b’是正確的220.000000x=f*=n/=(c=50)是ー個(gè)賦值表達(dá)式,它的順序是從右向左賦值,先執(zhí)行c=50,然后執(zhí)行n/=50即n=n/50=100/50=2,接著執(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)ー選擇題1, 答案是C隨意使用空語句會(huì)導(dǎo)致邏輯上出現(xiàn)錯(cuò)誤,不要隨便使用。2? 答案是B語句必須以分號(hào)結(jié)尾,A,C,D表達(dá)式后面均沒有分號(hào)。答案是Cintx=13,y=4;說明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注釋語句可以放在代碼的任何位置B將r定義為整型不會(huì)在編譯時(shí)出錯(cuò),會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換C變量s為浮點(diǎn)型,格式描述符%f時(shí)正確的DJ!是非法的變量答案是D(x,y)是逗號(hào)表達(dá)式,它的值只有一個(gè),所以格式說明符的個(gè)數(shù)和輸出項(xiàng)的個(gè)數(shù)是相等的。并且逗號(hào)表達(dá)式的值為最后一個(gè)表達(dá)式的值,最后一個(gè)表達(dá)式是y=2003,所以整個(gè)表達(dá)式的值是2003,因此輸出值為2003。答案是Am是十進(jìn)制整數(shù)以十進(jìn)制有符號(hào)的形式輸出,即照原樣輸32767,"032767,032767是八進(jìn)制的整數(shù)以八進(jìn)制無符號(hào)形式輸出,去掉前面的0。見教材P34答案是Cm,n的值都是十六進(jìn)制數(shù)Oxabc,m-=n即是m=m-n,把m-n的值賦給m,即把〇賦給m,再把m值以十六進(jìn)制無符號(hào)的形式輸出,輸出的十六進(jìn)制數(shù)不用在前面Ox或者0X。見教材P35答案是B表達(dá)式iーー的值是在變量自減之前的值,i的初值為10,所以該表達(dá)式的值也為10:表達(dá)式j(luò)++的值是變量自加之后的值,j初值為1,所以該表達(dá)式在值是2。10t答案是Cm=0256,即m是ハ進(jìn)制的數(shù)0256,要以八進(jìn)制無符號(hào)的形式輸出,即輸出256;n=256,即n是十進(jìn)制的數(shù)256,也要以ハ進(jìn)制無符號(hào)的形式輸出,首先要把十進(jìn)制數(shù)轉(zhuǎn)化為ハ進(jìn)制數(shù),256轉(zhuǎn)化為ハ進(jìn)制為0400,以無符號(hào)形式輸出,即輸出400。11,答案是B在printf語句中,格式控制的個(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í)際寬度輸出,輸出102o第二個(gè)數(shù)據(jù)要求以十進(jìn)制形式輸出,輸出控制寬度是2,y的值為012,是ハ進(jìn)制數(shù),所以要轉(zhuǎn)換成十進(jìn)制數(shù)10后再輸出。13J答案是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)制類型轉(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;說明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從鍵盤輸入數(shù)據(jù)的格式必須與輸入控制要求的格式ー樣B答案三個(gè)之間不要有空格;C答案用逗號(hào)分開是多余的;D答案格式不匹配。20,答案是A格式控制要求輸入的兩個(gè)數(shù)據(jù)之間要用逗號(hào)隔開,A沒有逗號(hào)所以錯(cuò)誤,D兩個(gè)輸入數(shù)之間的回車換行可以忽略。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)制類型轉(zhuǎn)換,采用舍去法丟掉小數(shù)部分,即對(duì)x乘上100后的數(shù)實(shí)現(xiàn)了小數(shù)位到整數(shù)位的四舍五入。最后再除以!00.0,把數(shù)字變回原來的大小,整數(shù)與浮點(diǎn)數(shù)相除結(jié)果為浮點(diǎn)數(shù),即實(shí)現(xiàn)了要求。答案是C從鍵盤輸入數(shù)據(jù)的格式必須與輸入控制要求的格式ー樣。答案是B輸入控制中第一個(gè)數(shù)要求以“%2d”形式輸入,即要求輸入一個(gè)兩位的數(shù),而從鍵盤輸入的數(shù)為876,所以從左到右取兩位數(shù)字87,即把87賦值給整型變量a,余下的6再賦值給浮點(diǎn)型變量b,自動(dòng)進(jìn)行類型轉(zhuǎn)換,b的值為6.000000,后面輸入的543則沒有賦值給變量。24J礬空是D“%%”會(huì)輸出ー個(gè)“%”,“d”會(huì)照原樣輸出,因?yàn)闆]有格式說明,m,n無法輸出到屏幕。25, 答案是D第1個(gè)輸出語句要求ch以枇(字符)形式輸出所以為輸出“a”,以%d(整數(shù))形式輸出為,字符轉(zhuǎn)換為整型要使用ASCI!碼所以為“97”,k沒有對(duì)應(yīng)的輸出符所以沒有輸出,第2個(gè)輸出語句要求以整型方式輸出k得到“12”。結(jié)果為“a,97,k=I2”26I 答案是Ba+b的結(jié)果為30,按照“a+b二%d\n”的輸出格式得到輸出結(jié)果“a+b=30”B答案是Bprintf可以沒有輸出項(xiàng),沒有輸出項(xiàng)的printf只是沒有輸出內(nèi)容;整數(shù)不能以十二進(jìn)制輸出,getchar〇只能讀入字符。答案是Agetchar〇可以讀入空格符合回車符。二填空題1?一條語句 分號(hào)88首先將ハ進(jìn)制數(shù)0210轉(zhuǎn)化為十六進(jìn)制的數(shù)0X88,輸出格式說明要以十六進(jìn)制無符號(hào)的形式輸出,所以省略0X,直接輸出88。11把十進(jìn)制數(shù)轉(zhuǎn)化為ハ進(jìn)制數(shù),以無符號(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ù)形式輸出,中間以空格分開,所以輸出為252137〇nl=%d\nn2=%d除了nl,n2的值之外,還必須加入“nl=”“n2=”照原樣輸出的字符,很明顯在兩個(gè)數(shù)據(jù)之間還加了換行符。i=10,j=20く回車〉格式控制中加入了格式說明以外的其他字符,則在輸入數(shù)據(jù)時(shí)這些字符也要同樣輸入。輸入格式控制為i=%d,j=%d,所以則應(yīng)該從鍵盤輸入i=10,j=20261a為十進(jìn)制數(shù)177轉(zhuǎn)化為ハ進(jìn)制的數(shù)為0261I以無符號(hào)的形式輸出為26116a的初值為〇,在表達(dá)式a+=(a=8)中,a首先被賦值為8,再執(zhí)行操作a=a+a,所以a最后被賦值為16,即輸出a的值為16printf(Ma=%d,b=%dM,a,b);B66B在ASCII碼中派在A的后面A為65t那么B為66〇10012為ハ進(jìn)制數(shù),轉(zhuǎn)換為十進(jìn)制為!0o1234在scanf函數(shù)中指定了寬度為2,輸入123456,a=12,b=34,后面的567無效。12程序運(yùn)行時(shí)輸入12,getchar()函數(shù)只能接受單個(gè)字符,所以chl='1',ch2='2’〇nl=chl-,〇,轉(zhuǎn)化為ASCII碼計(jì)算n1=50-49,nl的值為!〇n2=nl*10+(ch2-‘〇')轉(zhuǎn)化為ASCII碼計(jì)算n2=1*10+(51-49),n2的值為12。第三章選擇結(jié)構(gòu)ー、選擇題1、D此題主要是考語句的特征。一條語句只包含ー個(gè)分號(hào),D項(xiàng)有兩個(gè)分號(hào),應(yīng)該是兩條語句,所以選D。2、C此題主要是考真假條件的等價(jià)。題目中的E為非〇時(shí)條件為真,為〇時(shí)為假。那么把非0和0帶到選項(xiàng)中可知,C項(xiàng)正好是E為0時(shí)表達(dá)式為真,非0時(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)系見見教材P188,附錄-〇5、A此題主要是考邏輯運(yùn)算符!、&&和||之間的優(yōu)先級(jí)別。!最高,&&次之,丨丨最低。先求得!a為0.所以不必計(jì)算!b的值,即!a&&!b的值為0,由c=0,!c=l,而0|11=1,所以選Ao6、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,2||l=l所以選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)橐坏゛=0,則0&&b必為〇;而a||b則正好是相反的,即先計(jì)算表達(dá)式a的值,若a為假オ會(huì)計(jì)算表達(dá)式b的值,否則將不會(huì)去計(jì)算b的值,因?yàn)橐坏゛=l,則11lb的值必為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ì)問題。見教材P51。10、D此題主要是考if和else的一般形式。if后面的語句要么是單條語句,要么是由{}擴(kuò)起來的復(fù)合語句,不能是if后有兩條語句的,所以本題程序在運(yùn)行的時(shí)候會(huì)出錯(cuò)。11、C此題考到了關(guān)系運(yùn)算和邏輯運(yùn)算及一定數(shù)學(xué)知識(shí)。|x-y|く10可等價(jià)為-10<x-y<10J首先選項(xiàng)A表示x-y的絕對(duì)值小于10,與題中的數(shù)學(xué)關(guān)系ー樣;將一l(Kx-yく10用邏輯表達(dá)式表示的話就是B選項(xiàng);而D選項(xiàng)只是數(shù)學(xué)變換,所以選擇C12、D此題也是考到了真假條件的變換和if-else語句。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)算符||,當(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語句。具體分析見教材第49頁例7。16、C此題主要是考查if-else-if以及關(guān)系表達(dá)式的運(yùn)算。首先判斷第?個(gè)條件a>b>c的值為0.所以不執(zhí)行第一條語句;在判斷第二個(gè)條件,c-l>=c表達(dá)式的結(jié)果為假,所以也不執(zhí)行其下面的語句,因此執(zhí)行最后一條語句,將輸出d+2的值為4〇17、C此題主要是考查條件表達(dá)式和條件運(yùn)算符。首先要注意條件表達(dá)式的結(jié)合方向,它是從右至左的(可參照附錄三)第一個(gè)條件表達(dá)式的值為a,第二個(gè)條件表達(dá)式的值為c,而c=6,所以答案選C18、A此題主要是考查if-else語句和條件表達(dá)式的轉(zhuǎn)化。只要理解了if-else語句和條件表達(dá)式的運(yùn)算規(guī)則的話,就很容易選出A19、D此題主要是考査在switch語句中break和default的作用及break的適用范圍。詳細(xì)說明可參看教材第三章P53對(duì)switch的說明部分。20、B此題考查的是條件表達(dá)式求解問題。先看第一個(gè)條件表達(dá)式語句,aくb為真,所以k=b=2;再看第二個(gè)條件表達(dá)式語句,k>c為假,所以k=k=2選B21、A此題考查的是條件表達(dá)式的求解順序。參照附錄三可知,它的結(jié)合方向是自右至左,所以先求得右邊一個(gè)條件表達(dá)式的值為2,再求得左邊一個(gè)的值為1,即選A22、C此題考查的是真假條件的等價(jià)問題。x-y為真表示x-y是非〇的,也即x-yく0或x-y>0即選C23答案是BC語言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫字母,只要確定它的ASCII碼在‘A’和‘Z’之間就可以了,選項(xiàng)A和C符合要求。大寫字母的ASCII碼值的范圍為65到90,所以D選項(xiàng)符合要求,所以只有C是錯(cuò)誤的。24答案是B滿足表達(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.所以選擇A26答案是B當(dāng)表達(dá)式EXP為非〇值時(shí)條件成立,即執(zhí)行語句i++;當(dāng)EXP等于〇時(shí)執(zhí)行語句j-;。這就等同于條件表達(dá)式“(EXP!=0)?i++:j—所以本題選擇Bo27答案是DC語言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫字母,只要確定它的ASCII碼在‘A'和'Z,之間就可以了,選項(xiàng)B的書寫格式錯(cuò)誤,而選項(xiàng)C不符合要求。大寫字母的ASCII碼值的范圍為65到90,所以A選項(xiàng)不符合要求,小寫字母的ASCII碼比大寫字母的ASCII碼大32,所以只有D是正確的。28答案是D奇數(shù)和2求余一定不為0,所以當(dāng)x為奇數(shù)時(shí),x%2==0是不成立的,值為0,此題選擇Do29答案是B兩個(gè)if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所以變量c的值等于3,變量b的值沒有變化,程序輸出的結(jié)果是3,5,3〇所以本題選擇Bo30答案是C表達(dá)式y(tǒng)%3==0的值為1,所以執(zhí)行下面的輸出語句,表達(dá)式一y的值為8,所以輸出結(jié)果是8〇選擇C。3I答案是C表達(dá)式x%3的值為2,非〇所以執(zhí)行下面的輸出語句,將x--的值8輸出,此時(shí)x的值變?yōu)?,然后再執(zhí)行下ー個(gè)輸出語句,將一X的值6輸出,x的值也變?yōu)?,所以選擇Co32答案是D這是嵌套形式的switch語句,因?yàn)閎reak結(jié)構(gòu)影響較大,而此程序中的第一個(gè)case后沒有break語句,程序執(zhí)行時(shí),x=l,執(zhí)行內(nèi)嵌的switch語句,因y=0,執(zhí)行a++,使變量a的值為1并終止內(nèi)層switch結(jié)構(gòu),回到外層。程序繼續(xù)執(zhí)行case2后面的語句a++;b++;,這使變量a,b的值分別為2和1,外層switch語句結(jié)束。所以此題選擇Do33答案是Dbreak與continue語句都可用于switch語句中。選擇Do二、填空題1、答案是:10200分析:多數(shù)同學(xué)得到的答案是10201,顯然是沒有弄清楚第三條賦值語句:c=(a%bく1)|丨(a/b>l).這是將后面一個(gè)邏輯表達(dá)式的值給c?那么關(guān)于邏輯表達(dá)式的考題,無非就是考察運(yùn)算符的優(yōu)先級(jí),也就是說先算哪個(gè),后算哪個(gè)的問題。在這個(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后面沒有花括號(hào),則它后面的第一條語句是它的結(jié)構(gòu)體,并且只有一條語句。(如果后面是一個(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分析:見第3題分析。7、答案是:585858分析:題中有三個(gè)if結(jié)構(gòu),注意,這三個(gè)if結(jié)構(gòu)是相互獨(dú)立的,是互不相關(guān)的,只要他們的條件成立,就要執(zhí)行其結(jié)構(gòu)體(后面的輸出語句)。通過鍵盤輸入,得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看起來是真的,但是這這是數(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分析:題中是ーswitch嵌套結(jié)構(gòu)。里面的switch是case1的語句,題的關(guān)鍵點(diǎn)在于這個(gè)語句(即里面的這個(gè)switch結(jié)構(gòu))的后面并沒有跳出整個(gè)結(jié)構(gòu)的break語句。所以,當(dāng)x=l,與case相配以后,執(zhí)行完后面的語句(即里面的這個(gè)switch結(jié)構(gòu)),然后沒有遇到break語句,所以并不跳出結(jié)構(gòu)體,而是繼續(xù)執(zhí)行case2后面的語句。所以最后得到的結(jié)果應(yīng)該是21,而不是1〇〇11、答案是:〇字符空格的ASC口碼不為〇,所以本題中表達(dá)式!c的值為0,b=O&&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í)行其后的語句x-=2后x的值為ー1,表達(dá)式x的值也為非。,所以執(zhí)行其后的語句后x的值為ー4,最后輸出x的值即為イ。14、答案是:#&表達(dá)式c==5的值為真,所以表達(dá)式的值等于1,因此輸出符號(hào)“#”,然后執(zhí)行“break”,繼而去執(zhí)行“default:printf(“&”);”語句,輸出符號(hào)“&”。15、答案是:1因?yàn)樵跅l件表達(dá)式(aくb)a:b中,比較表達(dá)式a<b為真,所以x的值為a的值等于1。后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都真,所以最終x的值等于lo16、答案是:a:bc:tl條件表達(dá)式類似于if語句,根據(jù)“?”前面子表達(dá)式的邏輯值來判斷應(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的值!,同時(shí)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〉0&&x<4)值為真,進(jìn)入循環(huán)體,y值為2,z值為0,x值為3(z〉O&&xく4)值為假,結(jié)束循環(huán)。輸出x,y,z的值3,2,0.答案:D分析:當(dāng)K的值為3時(shí),只執(zhí)行case3后面的語句n+=k,n的值為3;當(dāng)k的值為2時(shí),先執(zhí)行case2后面的語句,但沒有break,所以不會(huì)退出,繼續(xù)執(zhí)行case3后面的語句n+=k,n的值為5;當(dāng)k的值為1時(shí),先執(zhí)行case1后面的語句n+=k,n的值為6?先執(zhí)行case2后面的語句(沒有),繼續(xù)執(zhí)行case3后面的語句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的值為〇。從鍵盤中輸入ー3后,n的值為ー3.先執(zhí)行循環(huán)體。執(zhí)行s=s+t;s的值為!,執(zhí)行t=t-2;t的值為ー1.再判斷表達(dá)式的值1;!=1I為真,再次執(zhí)行循環(huán)體。執(zhí)行s=s+t;s的值為〇,執(zhí)行t=t-2;t的值為-3.再判斷表達(dá)式的值t!=n為假,結(jié)束do..while循環(huán)。最后輸出s的值0。.答案:A分析:x=3I先執(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,變化過程為:1ー〉3ー〉5ー〉7ー〉9,語句s+=l每次執(zhí)行使s增加的數(shù)為:2,4,6,8,10I所以s的值為自然數(shù)C10中偶數(shù)的值。.答案:C分析:(:項(xiàng)5=5+1ん,1/n首先運(yùn)算,n為整型變量,1也是整型變量,當(dāng)n=2…10時(shí),1/n的值為整數(shù)O,故C不正確.答案:A執(zhí)行第一次循環(huán)時(shí),a=7,b=4,a!=b為真繼續(xù)循環(huán)。第二次循環(huán)a=3,b=l,2!=1)為真繼續(xù)循環(huán)。第三次循環(huán)a=2,b=1,a!=b為真繼續(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。再執(zhí)行if語句。(x%3)為真,執(zhí)行x++,x的值為17,再執(zhí)行break;語句,退出循環(huán)體,結(jié)束while語句的執(zhí)行。最后輸出x的值17。.答案:D在循環(huán)中當(dāng)x等于0,3,6,9時(shí)x%3等于0,這時(shí)會(huì)進(jìn)入if語句執(zhí)行printf語句,在輸出前x會(huì)先自加。屏幕上輸出14710。.答案:D分析:continue語句會(huì)提前結(jié)束此次循環(huán)體的執(zhí)行,不會(huì)結(jié)束整個(gè)for語句的執(zhí)行。.答案:2345選擇中沒有此答案。解析:本題注意的是在循環(huán)第?一次進(jìn)入switch語句的時(shí)候是執(zhí)行的default后面的語句塊,由于沒有break,所以還會(huì)執(zhí)行case2:case4:后面的語句。.答案:A本題答案為A解析:A首先執(zhí)行++n,判斷條件表達(dá)式nく=0為假退出循環(huán)。B條件表達(dá)式1永遠(yuǎn)為真是無限循環(huán),C條件表達(dá)式n的值為10永遠(yuǎn)為真是無限循環(huán),D沒有條件表達(dá)式,所以沒有退出條件,是無限循環(huán)。此題要注意的是〇為假,非〇為真。.答案:Ado-while循環(huán)先執(zhí)行后判斷,先執(zhí)行循環(huán)體中的printf語句輸出n的值0,在while(i++)中i先執(zhí)行再自加,所以while(i++)的等于while(0)為假退出循環(huán)。輸出結(jié)果為“0,0”。.答案:D分析:第一次循環(huán)x=8,x%3<>0,進(jìn)入if語句輸出x的值為8,然后x自減1,執(zhí)行continue立即進(jìn)行下次循環(huán)條件判斷。第二次循環(huán)x=6,x%3=0,不進(jìn)入if語句,執(zhí)行if語句后面的printf("%后”,一x),x先自減1再輸出得到5。第三次循環(huán)x=4,x%3<>0,進(jìn)入if語句輸出x的值為4,然后x自減1,執(zhí)行continue立即進(jìn)行下次循環(huán)條件判斷。第四次循環(huán)x=2,x/3く>0,進(jìn)入if語句,輸出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〇答案。.C第一次循環(huán)y=9,*3=0,進(jìn)入if語句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的值為5。第四次循環(huán)y=4,y%3?0,進(jìn)入下次循環(huán)。第五次循環(huán)y=3,y%3=0,進(jìn)入if語句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。答案C21.B在第一層循環(huán)中,當(dāng)1自加到值等于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;”無實(shí)際意義。當(dāng)n自加到4的時(shí)候結(jié)束循環(huán)。答案DB需要填入的實(shí)際是每行輸出“*”的個(gè)數(shù),從圖形看到每行“*”的個(gè)數(shù)是行數(shù)的兩倍減一,i可以代表行數(shù)。所以填入的是“2*iT”。答案BA0%任何數(shù)等于〇,所以第一次循環(huán)的時(shí)候就進(jìn)入了if語句退出了for循環(huán)。i=21,iく20為假,退出了while循環(huán)。a的值為21。Di的初值為〇,第一次循環(huán)的時(shí)候滿足i<0,進(jìn)入第一個(gè)if語句,執(zhí)行continue直接進(jìn)行下次循環(huán),i的值沒有改變。第二次循環(huán)又重復(fù)了第一次循環(huán)的操作,所以是死循環(huán)。二、填空題:.答案:一1分析:此題的循環(huán)體是省略了大括號(hào)的空語句;,x的初值是2;執(zhí)行while語句,先判斷表達(dá)式的值,(x--)的值為1(真),同時(shí)x的值減1變?yōu)椹?再執(zhí)行循環(huán)體(空語句;),再判斷表達(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”。4,答案:〇分析:i的值從5變化到〇時(shí),for語句中的第二個(gè)表達(dá)式都為真。t=5*4*3*2*l*0=0o最后輸出i的值為〇〇.答案.5分析:for循環(huán)語句的循環(huán)體是空語句。.答案: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。循環(huán)條件為假,循環(huán)??次也沒有執(zhí)行。答案為:。.答案:23分析:參考第3題。答案:54321.答案:k<=nk++分析:見書59,64頁while和for循環(huán)的執(zhí)行過程。答案:k<=nk++.答案:ACE分析:理解字符轉(zhuǎn)化為整形數(shù)使用到ASCII碼,'a'的ASCII碼是97,‘廣是102,‘A'是65。答案是ACE.答案:120分析:i的值是1,sum的值是1,執(zhí)行while循環(huán)。①iく=5為真,sum的值為1,i自加1,值為2。②iく=5為真,sum的值為2,i自加1,值為3。③iく=5為真,sum的值為6,i自加1,值為4。④iく=5為真,sum的值為24,i自加1,值為5。⑤iく=5為真,sum的值為120,i自加1,值為6。⑥iく=5為假,結(jié)束循環(huán)。輸出sum=120o.答案:23分析:此題需理解的是在switch中case后面沒有break的話會(huì)繼續(xù)執(zhí)行下?個(gè)case或default后面的語句。答案為23.答案:132分析:m=0,n=0,k=0,i=9①當(dāng)i值為9時(shí),iく=11為真,執(zhí)行switch語句,(i/10)的值為〇,匹配case0J執(zhí)行m++,n++1再執(zhí)行break語句,跳出switch體,再執(zhí)行i++,i值為10;此時(shí)m值為1,n的值為1,k的值為〇.②當(dāng)i值為10時(shí),iく=11為真,執(zhí)行switch語句,(i/10)的值為1,匹配default,執(zhí)行k++,n++,結(jié)束switch體,執(zhí)行i++,i值為11.此時(shí)m值為1,n的值為2,k的值為1.③當(dāng)i值為11時(shí),iく=11為真,執(zhí)行switch語句,(i/10)的值為1,匹配default,執(zhí)行k++,n++,結(jié)束switch體,執(zhí)行i++,i值為!2.此時(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以內(nèi)所有個(gè)位是6的數(shù),在判斷哪些能被3整除。答案為i<10i%3!=0o第五章函數(shù)ー、選擇題:.答案:B分析:在C語言中,函數(shù)可以在任何地方出現(xiàn),而main函數(shù)作為函數(shù)中的ー類,沒有特殊的限制和要求,故也可以在任何地方出現(xiàn)。.答案:B分析:C語言默認(rèn)規(guī)定.答案:D分析:選項(xiàng)A中“abc”和C中的’65,是ー個(gè)字符串,而形參要求的是單個(gè)字符不符合要求,選項(xiàng)B是一個(gè)賦值語句,而fun函數(shù)沒有返回值,所以不符合要求,只有選項(xiàng)D正確,將32傳給ch字符變量,那么32就相當(dāng)于是ASCII碼值。.答案:A分析:sin(1/2)會(huì)當(dāng)作sin(0)處理。實(shí)參的類型決定了重載函數(shù)的選擇。.答案:D分析:函數(shù)的調(diào)用不可以作為ー個(gè)函數(shù)的形參。.答案:D分析:fun(a,b)的作用是返回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(d,c)=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)用之前說明了即可。.答案: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ù)的說明有其自己的格式,應(yīng)該包括函數(shù)類型、函數(shù)名、以及形參類型,形參名可有可無,但是一定要統(tǒng)一,形參名隨便取。.答案:C分析:允許這種函數(shù)說明的方式存在。如果只在主函數(shù)中說明,則只能在主函數(shù)中調(diào)用f;如果在主函數(shù)以前說明,則包括主函數(shù)的所有函數(shù)都可以調(diào)用,如果同時(shí)主函數(shù)又說明了,則不影響。.答案:D分析:函數(shù)的形參不可以傳給對(duì)應(yīng)的實(shí)參。.答案:D分析:形式參數(shù)的改變不影響實(shí)參。所以本題是ー個(gè)迷惑題,不需要看函數(shù)體的內(nèi)容。.答案:C分析:C語言中改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值;函數(shù)可以返回地址值,當(dāng)函數(shù)沒有指定返回值類型時(shí),默認(rèn)返回類型為void型,C語言的函數(shù)不能嵌套定義,所以本題選擇C。.答案:A分析:本題答案為A,程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束,無論main函數(shù)在程序的什么地方。.答案:A分析:在C語言中,函數(shù)返回值的類型取決于函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型。.答案:C分析:函數(shù)f(intv,intw)的功能是將實(shí)參v和w進(jìn)行交換,但是實(shí)參值的變化對(duì)形參沒有影響,所以本題中x,y,z中的值不發(fā)生變化。.答案:C分析:因?yàn)閒un(intx)函數(shù)是ー遞歸函數(shù),所以主函數(shù)中的調(diào)fun(3)經(jīng)過1次遞歸調(diào)用,其過程可以描述為fun(3)=3*3-f(3-2)=9-fun(1)=9-3=6〇.答案:D分析:在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在C語言中,僅在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。故本題答案為D。.答案:C分析:變量a,b,c的初始值分別為1,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。二、填空題:1.答案:a=1.0,b=1.0,s=1.0;分析:分別求出變量的初始值。a=a*x為的是求xn,所以其初始值為1,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;2I答案:m=fun(a,4)+fun(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)用語句為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來實(shí)現(xiàn)此功能。括號(hào)中應(yīng)該填入累加的序號(hào)值,即為X。f(x)=x2+l,F(intx)函數(shù)來實(shí)現(xiàn)這個(gè)功能,所以填寫x*x+l。.答案:-ffun(10)分析:函數(shù)的作用為計(jì)算m=l-2+3-4+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)該變換ー下,所以變換的語句為f=-f。當(dāng)n=l時(shí),計(jì)算的是m=l:當(dāng)n=2時(shí),計(jì)算的是m=l-2……因?yàn)橛?jì)算的是m=1-2+3-4+5-6+7-8+9-10,所以答案為n=10,即fun(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分析:通過程序可以看出,main函數(shù)中使用了max函數(shù),而其他地方?jīng)]有對(duì)max函數(shù)進(jìn)行說明。所以程序中應(yīng)該對(duì)max函數(shù)進(jìn)行說明。說明的格式為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é)果為!3〇9、答案:m=9k=14i=5j=5分析:為變量i和j賦初值為4,調(diào)用fun(i++,++j)即fun(4,5),在fun函數(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分析:本題主要考指針的定義及賦值,開始時(shí)使p指向a,q指向b,把它們的值交換,然后再顯示。故得正確答案C。答案.c分析:本題主要考函數(shù)指針的定義,函數(shù)前面的?號(hào)表求返回值是指針類型,void表示返回?zé)o值弄的。故選C。6答案:A分析:本題主要考的是指針的變量的賦值,在使用scanf()函數(shù)的時(shí)候,后面跟的是ー個(gè)地址,由于pa本身保存的是地址,故選A答案.D分析:本題主要考的指針的賦值及指向指針的指針的賦值,根據(jù)定義知選D。B的正確形式是**q=2;C的正確形式應(yīng)該是q=&po答案.C分析:本題主要考的是全局變量和局部變量,以及指針的用法,第一個(gè)f(&a)的返回值是5,第二個(gè)返回值是2〇答案.へ分析:本題主要考的是變量自加,指針傳值,以及指針的賦值。通過第二行a=b可知pl,p2指向的變量的值相同,都指向了b所指的對(duì)象,也是p2所指的對(duì)象‘a(chǎn),,由于(*a)++;是實(shí)現(xiàn)a所指對(duì)象的自加,故由,a,變成,ゼ,故最終選Ao10答案:A分析:本題主考NULL,?般來說當(dāng)我們把ー個(gè)空值以整數(shù)的形式輸出出來的時(shí)候,默認(rèn)的情況是〇。1j答案.C分析:本題考的是指針變量的賦值,雖然P沒有賦值,表示沒有指向某個(gè)具體的對(duì)象,但事實(shí)上系統(tǒng)會(huì)讓它隨機(jī)的指向存儲(chǔ)單元里的ー個(gè)對(duì)象,那么它的返回值應(yīng)該是所指存儲(chǔ)單元中的值。12答案: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)該寫成p=&a。答案:D分析:本題主要考調(diào)用函數(shù)時(shí)指針傳值和一般的變量的傳值區(qū)別。指針通過地址傳值,而變量是直接傳值。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ù)的類型轉(zhuǎn)換,注意的是(int)(a+b),所以得到5.0o答案:A分析:本題主要說的是函數(shù)的遞歸調(diào)用,函數(shù)fun()實(shí)現(xiàn)的功能是從1加到n,然后返回給主函數(shù)。答案:D分析:A不能把一個(gè)具體的值賦給ー個(gè)指針變量。Bq是指向指針的指針只能保存指針的地址。C同B。答案:D分析:A指針賦處初值時(shí)不能把一個(gè)具體的值賦給ー個(gè)指針變量指向的地址。B語法錯(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二、填空題!答案: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ì)象交換,原來a,b分別指向x,y,但交換后分別指向y,x,所以并不把指向的對(duì)象的值交換。函數(shù)返回后,p,q仍然分別指向x,y。故其值不變。4答案:n=n/10分析:把n除以10,每執(zhí)行一次就可以把數(shù)的陽未位去掉,因?yàn)閮蓚€(gè)整數(shù)相除,不會(huì)保留小數(shù),故最低位會(huì)丟掉,并且把數(shù)縮小到十分之一。然后依次從個(gè)位到最高位把數(shù)字輸出。5答案:35第七章數(shù)組ー、選擇題1答案:B分析:此題考察ー維數(shù)組的定義,ー維數(shù)組的說明中,下標(biāo)必須為正的整型常量,不能為變量,在ー維數(shù)組的初始化中,指出在單純的定義時(shí)不能省略數(shù)組的長度。2答案:B分析:首先i=0時(shí),判斷i++<7成立,進(jìn)入循環(huán)體,但此時(shí)i=l,p[l]=12不滿足if語句,不執(zhí)行j+=p[i]。按照此方法,得至リj=p[2]+p⑷+p[6]=45,即B正確。3答案:D分析:首先i=0<7&&p[0]%2!=〇,滿足循環(huán)條件,執(zhí)行k=k+p[0],即k=ll,然后執(zhí)行i++,再進(jìn)行判斷,滿足循環(huán)條件,k=ll+p[l],所以k=24,執(zhí)行i++,i=2,,再進(jìn)行判斷,此時(shí)不滿足循環(huán)條件,循環(huán)結(jié)束,輸出k值,為24〇4答案:A分析:此題主要考察循環(huán)嵌套,第一個(gè)循環(huán)體執(zhí)行完是將x[0],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í),行和列都不能缺省。在初始化過程中,列不能缺省,賦值的行數(shù)和列數(shù)不能超過數(shù)組的行數(shù)和列數(shù)。6答案:D分析:同上題分析ー樣。7答案:D分析:同上。8答案:C分析:此題分別輸出m[2][0],m[2][l],m[2][2]o9答案:A分析:此題考察在for循環(huán)后,i=0,i=l時(shí),執(zhí)行if語句,使得a[l][0],a[l][l]的值分別減!,而當(dāng)i=2時(shí),執(zhí)行else語句,a[l][2]=l。因此輸出a[〇][1]+a[1][1]+a[1]⑵=2+4+1=7;10答案:B分析:此題考察for循環(huán),計(jì)算aa[〇][l],aa[l][l],aa⑵⑵,aa[3][l]的和,即為19011答案:c分析:由于自增加運(yùn)算符(++)的優(yōu)先級(jí)別高于取地址運(yùn)算符(&),所以選項(xiàng)C無法表示aa川的地址,其他三個(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,通過程序我們可知指針p指向數(shù)組中元素a[3],指針q指向元素a[5],輸出?p+*q即輸出a[3]+a[5]=10,所以選擇B。15答案:C分析:本題通過循環(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=14016答案.a分析:我們讓指針p指向數(shù)組a中第一個(gè)元素,然后通過循環(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)都符合要求,所以選擇Do18答案:A分析:為指針賦ー個(gè)NULL值,就是指針具有一個(gè)空值,讓ー個(gè)空指針去訪問一個(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。21答案:B分析:與上??題同理,指針s指向數(shù)組元素a[3],s[2]即數(shù)組中元素a[4],即為〇〇22答案:C分析:數(shù)組名t代表數(shù)組的首地址,所以?(t+i)就代表t[i]元素中的值,通過循環(huán)控制求累加和s,實(shí)際上s=a[0]+a[2]+a[4]+a[6]+a[8]=1+3+5+7+9=25〇23答案:B分析:讓指針p指向二維數(shù)組a的第一個(gè)元素,那么可用p[〇]代表a[0][0],用p[l]代表a[0][l] ,用p網(wǎng)代表a[2][2],通過循環(huán)為數(shù)組a中的每ー個(gè)元素賦了一個(gè)值。輸出a[l][2]即p[5]的值為6。24答案:D分析:讓指針p指向二維數(shù)組a的第一個(gè)元素,那么可用p[0]代表a[0][0],用p[l]代表a[0][l] ,用p[8]代表a[2][2],通過循環(huán)為數(shù)組a中的每ー個(gè)元素賦了一個(gè)值。再通過循環(huán)輸出a[l][0]、a[l][l]、a[l][2],即p[3]、p[4]、p[5]的值,所以輸出的是3、4、5。25答案:B分析:在這里我們通過(*ptr)[2]定義了?個(gè)行指針ptr,ptr存放的是含有兩個(gè)整型元素的ー維數(shù)組的首地址。a是二維數(shù)組名,就是數(shù)組的首地址,pt匸a+i就代表,將數(shù)組中第i行的首地址賦給行指針ptr。能過第一個(gè)循環(huán)控制,為第0行和第1的首元素賦值,也就是為a[〇][〇]和a[l][〇]賦值,輸入的是1、2、3,但是只賦給兩個(gè)元素,所以取前面兩個(gè)值,所以輸出時(shí),a[〇][〇]的值為1,a[l][0]的值為2,其他的默認(rèn)都為〇。26答案:B分析:int*p[3]是表示定義ー個(gè)指針數(shù)組,數(shù)組名為p,其中包含3個(gè)元素,每個(gè)元素都是ー個(gè)指向int類型的指針。27答案:D分析:通過(*p)[5]則定義了一個(gè)行指針,存放長度為5的ー維數(shù)組的指針,通過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]求得,也可以通過每行的首地址來表示,第i行的首地址可以通過a[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ù)組,通過p[0]=aロ]可知p[O]中存放的是數(shù)組a中第1行的首地址,所以p[O]+l就代表第1行第1列元素的地址,所以*(p[O]+l)就代表元素aロ][1]。30答案:C分析:通過(*ps)[5]則定義了一個(gè)行指針,存放長度為5的ー維數(shù)組的指針,通過ps=s,讓ps指向二維數(shù)組s,那么ps[i]就是指向數(shù)組s中第i行的指針,可用ps[i][j]或?(ps[i]+j)表示第i行第j列的元素。所以選項(xiàng)C正確。3I答案:A分析:通過(*pa)[3]定義了一個(gè)行指針pa指向二維數(shù)組a,這樣p[i][j]就表示a[i][j],通過循環(huán)語句控制將aロ][0]和aロ]ロ]中的值分別減1變?yōu)?和4,給aロ]⑵賦值為1。a[〇]ロ]+aロ]ロ]+aロ][2]=2+4+1=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口][bロ]ロ]]=l+b口]ロ]=1+1=2,當(dāng)i=2并且j=2時(shí):t=t+b⑵[b[2][2]]=2+b⑵⑵=2+2=4。33答案:B分析:第一個(gè)for循環(huán)控制輸出的空格,第二個(gè)for循環(huán)控制輸出數(shù)組中元素,分析可知,輸出數(shù)組元素時(shí),第〇行輸出〇個(gè)空格,并從第0列元素開始輸出,第1行輸出1個(gè)空格后,并從第1列元素開始輸出依此類推,第i行輸出i個(gè)空格后,從第i列開始輸出,所以空格處填i。34答案:A本題中通過嵌套循環(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所指的字符串長度由實(shí)際的字符個(gè)數(shù)決定,是不相等的,所以B錯(cuò)誤,s數(shù)組名代表數(shù)組的首地址,是ー個(gè)地址常量,不是變量所以C錯(cuò)誤;數(shù)組s中存放的是數(shù)組中的每ー個(gè)元素,而指針變量p中存放的是數(shù)組的首地址,所以D錯(cuò)誤。36答案:A分析:通過pc=ch,讓指針pc指向數(shù)組ch中的第一個(gè)元素,此時(shí)pc+i即表示ch[i]的地址,所以輸出?(pc+5)即輸出元素ch[5]中的字符“z”。37答案:D分析:swapl(a,a+l)是將數(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[0],&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⑵++,c[l]++,c[1]++,c[1]++,c[2]++,c[3]++,其中cロ]自加了4次,c[2]自加了3次,c[3]自加了3次,c[14]自加了2次,所以c[l]的值為4,c[2]的值為3,c[3]的值為3,c[4]的值為2,輸出結(jié)果為4332。39答案:C分析:函數(shù)fun的功能是將數(shù)組中下標(biāo)從i至打的元素倒序,在主函數(shù)中先通過調(diào)用fun(a,O,3)將a[〇]到a[3]的元素倒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 秋季學(xué)期心理健康宣傳活動(dòng)計(jì)劃
- 跨區(qū)域安保協(xié)作的模式與機(jī)制研究計(jì)劃
- 年度預(yù)算執(zhí)行及監(jiān)控策略計(jì)劃
- 完善人事檔案管理系統(tǒng)計(jì)劃
- 倉庫人員崗位職責(zé)與分工計(jì)劃
- 企業(yè)文化建設(shè)與數(shù)字化轉(zhuǎn)型的融合思考
- 中國傳統(tǒng)文化在世界舞臺(tái)的傳播案例
- 中醫(yī)藥在預(yù)防醫(yī)學(xué)中的應(yīng)用價(jià)值
- 中國電子商務(wù)物流發(fā)展現(xiàn)狀與趨勢分析
- 中西餐烹飪技藝交流與融合
- (正式版)QB∕T 8049-2024 家用和類似用途微壓富氧艙
- 2024風(fēng)力發(fā)電機(jī)組預(yù)應(yīng)力基礎(chǔ)錨栓籠組合件技術(shù)規(guī)范
- 2024年2月時(shí)政熱點(diǎn)總結(jié)
- 2024年廣東省高三一模高考英語試卷試題答案祥解(含作文范文)
- (高清版)JTGT 3364-02-2019 公路鋼橋面鋪裝設(shè)計(jì)與施工技術(shù)規(guī)范
- 人體成分分析在健康管理中的應(yīng)用
- 2024漢服趨勢白皮書-京東
- 2024年04月中國兒童藝術(shù)劇院招考聘用應(yīng)屆生筆試歷年??键c(diǎn)黑鉆版附帶答案詳解
- 2024屆江蘇省江陰市初級(jí)中學(xué)中考聯(lián)考?xì)v史試卷含解析
- 特殊教育學(xué)校?;赵O(shè)計(jì)含義
- 生產(chǎn)加工型小微企業(yè)安全管理考試(含答案)
評(píng)論
0/150
提交評(píng)論