【解析】 兩個(gè)if語(yǔ)句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語(yǔ)句,所以變量c的值等于3,變量b的值沒(méi)有變化,程序輸出的結(jié)果為3,5,3。
(20)C
【解析】 C語(yǔ)言中,switch語(yǔ)句專用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰而直觀。switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。
(21)C
【解析】 本題考察變量的自加"++"和自減"--"問(wèn)題。當(dāng)y 的值為9、6或3時(shí),if語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式--y的值,y的自減要先于輸出語(yǔ)句執(zhí)行,故輸出結(jié)果為8 5 2。
(22)C
【解析】 do while語(yǔ)句的一般形式為:do 循環(huán)體語(yǔ)句 while(表達(dá)式);,其中循環(huán)體語(yǔ)句可以是復(fù)合型語(yǔ)句,但必須用花括號(hào)括起來(lái)。while后必須要有分號(hào)作為語(yǔ)句的結(jié)束,在do-while循環(huán)中,不可以省略while。
(23)D
【解析】 在程序中指針變量p初始指向a[3],執(zhí)行p減1后,p指向a[2],語(yǔ)句y=*p的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。
(24)B
【解析】 二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行進(jìn)行初始化;③部分?jǐn)?shù)組元素進(jìn)行初始化;④省略第一維的定義,不省略第二維的定義。選項(xiàng)B)等號(hào)右邊分了3行,大于等號(hào)左邊數(shù)組的行數(shù)2。
(25)D
【解析】 C語(yǔ)言中操作一個(gè)字符串常量的方法有:①將字符串常量存放在一個(gè)字符數(shù)組之中;② 用字符指針指向字符串, 然后通過(guò)字符指針來(lái)訪問(wèn)字符串存儲(chǔ)區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時(shí), 根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則, 將其轉(zhuǎn)換成字符指針。
本題D)項(xiàng)中錯(cuò)誤的關(guān)鍵是對(duì)數(shù)組初始化時(shí),可以在變量定義時(shí)整體賦初值,但不能在賦值語(yǔ)句中整體賦值。
(26)D
【解析】 C語(yǔ)言中數(shù)組下標(biāo)是從0開(kāi)始的,所以二維數(shù)組a[2][3]的第一維下標(biāo)取值為0、1;第二維的下標(biāo)取值為0、1、2,因而選項(xiàng)A)、B)、C)都是錯(cuò)誤的,選項(xiàng)D)表示數(shù)組元素a[0][0]。
(27)B
【解析】 scanf()語(yǔ)句用"空格"區(qū)別不同的字符串;getc()與getchar()語(yǔ)句不能用于字符串的讀入。
(28)A
【解析】 帶參數(shù)的宏定義命令行形式如下:#define 宏名(形參表) 替換文本。首先進(jìn)行M的宏替換,之后再進(jìn)行N的宏替換,替換后的表達(dá)式為 (a)*(b)/(c)。
(29)D
【解析】 結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。
(30)A
【解析】 首先利用fwrite函數(shù)將數(shù)組a中的數(shù)據(jù)寫(xiě)到文件中,接著fseek函數(shù)的功能是讀文件的位置,指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù),這時(shí)文件位置指針指向的是文件中的第4個(gè)int數(shù)據(jù)"4",然后 fread函數(shù)將文件fp中的后3個(gè)數(shù)據(jù)4,5,6讀到數(shù)組a中,這樣就覆蓋了數(shù)組中原來(lái)的前3項(xiàng)數(shù)據(jù)。最后數(shù)組中的數(shù)據(jù)就成了{(lán)4,5,6,4,5,6}。
(31)C
【解析】 在for(i=0;i<12;i++) c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2。
(32)D
【解析】 在本題中,主函數(shù)在調(diào)用fun()函數(shù)進(jìn)行排序時(shí),傳遞的參數(shù)是c+4和6,fun()函數(shù)實(shí)現(xiàn)的功能是將數(shù)組c的第5個(gè)元素開(kāi)始的6個(gè)元素依次進(jìn)行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。
(33)C
【解析】 本題考查的重點(diǎn)是拷貝字符串──使用strcpy()函數(shù),該函數(shù)的調(diào)用方式是:strcpy(字符數(shù)組, 字符串),其中"字符串"可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將"字符串"完整地復(fù)制到"字符數(shù)組"中,字符數(shù)組中原有的內(nèi)容被覆蓋。
使用該函數(shù)時(shí)注意:①字符數(shù)組必須定義得足夠大,以便容納復(fù)制過(guò)來(lái)的字符串。復(fù)制時(shí),連同結(jié)束標(biāo)志'\0'一起復(fù)制;②不能用賦值運(yùn)算符"="將一個(gè)字符串直接賦值給一個(gè)字符數(shù)組,只能用strcpy( )函數(shù)處理。
另外,本題還考查連接字符串的strcat()函數(shù),其調(diào)用方式是:strcat(字符數(shù)組, 字符串)。
功能是把"字符串"連接到"字符數(shù)組"中的字符串尾端,并存儲(chǔ)于"字符數(shù)組"中。"字符數(shù)組"中原來(lái)的結(jié)束標(biāo)志,被"字符串"的第一個(gè)字符覆蓋,而"字符串"在操作中未被修改。
使用該函數(shù)時(shí)注意:①由于沒(méi)有邊界檢查,編程者要注意保證"字符數(shù)組"定義得足夠大,以便容納連接后的目標(biāo)字符串;否則,會(huì)因長(zhǎng)度不夠而產(chǎn)生問(wèn)題;②連接前兩個(gè)字符串都有結(jié)束標(biāo)志'\0',連接后"字符數(shù)組"中存儲(chǔ)的字符串的結(jié)束標(biāo)志'\0'被舍棄,只在目標(biāo)串的最后保留一個(gè)'\0'。
(34)D
【解析】 該程序先判斷a[i]
(35)A 【解析】 本題考查了用字符指針引用字符數(shù)組中的字符及對(duì)字符的操作。函數(shù)abc()的for語(yǔ)句執(zhí)行過(guò)程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開(kāi)始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過(guò)程,若字符為'c'就不執(zhí)行。 (36)A 【解析】 本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)傳遞問(wèn)題。程序在調(diào)用函數(shù)f時(shí),傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個(gè)拷貝,函數(shù)f的所有操作只是針對(duì)這個(gè)數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會(huì)影響變量c的值。 (37)B 【解析】 在函數(shù)中首先把整型數(shù)組a[10]中的每個(gè)元素寫(xiě)入文件d1.dat中,然后再次打開(kāi)這個(gè)文件,把文件d1.dat中的內(nèi)容讀入到整型變量n中,最后輸出變量n的值。 (38)C 【解析】 ^是按位異或運(yùn)算,如果對(duì)應(yīng)位不同則結(jié)果為1,相同則為0。 (39)D 【解析】 在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元,即使退出函數(shù)以后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來(lái)的存儲(chǔ)單元,靜態(tài)局部變量的初值是在編譯的時(shí)候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun(),三次對(duì)靜態(tài)變量x進(jìn)行操作,x的值應(yīng)依次為6,7,8。 (40)D 【解析】 本題中fun函數(shù)實(shí)現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時(shí),形參t和s分別指向了字符串ss和aa,然后通過(guò)一個(gè)while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個(gè)while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\0')逐個(gè)復(fù)制到字符串ss的末尾處。
2010全國(guó)計(jì)算機(jī)等考二級(jí)C語(yǔ)言:考前密卷匯總
2010年計(jì)算機(jī)等考二級(jí)C語(yǔ)言學(xué)習(xí)常見(jiàn)的18種錯(cuò)誤
2010年計(jì)算機(jī)等考二級(jí)C語(yǔ)言上機(jī)考試練習(xí)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |