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