第 1 頁:選擇題 |
第 2 頁:程序填空題 |
第 3 頁:程序修改題 |
第 4 頁:程序設計題 |
第 5 頁:參考答案及解析 |
(1)B【解析】在一個C語言程序中可以進行多種算法的實現,對算法的個數沒有規定,所以B錯誤。
(2)A【解析】A選項中l15L表示ll5是長整型數據,合法。B選項是八進制常量的表示方法,但是在八進制中不能含有數字8,所以B錯誤。c選項中e后面應該是整數不能是小數1.5,所以c錯誤。D選項中八進制常量應該是數字…0開始,而不是字母…O開始。
(3)D【解析】C語言中標識符由字母、下劃線、數字組成,且開頭必須是字母或下劃線。所以D選項中的連接符不合法。
(4)A【解析】8與D選項中取模運算符%的左右兩個操作數均應為整數,所以B、D錯誤。c選項中不能將X+Y的值賦給表達式Y*5,所以c錯誤。
(5)A【解析】A選項中逗號表達式先計算第一表達式2*x,然后計算表達式x+=2的值,即x=x+2即4,整個逗號表達式為第二個表達式的值4,所以選擇A。B選項中首先計算逗號表達式中第一表達式x++,此時x為3,在執行第二個表達式2·X=2*3=6,所以逗號表達式為第二個表達式的值6。C選項的賦值表達式可以表示為x=x *(1+x)=2}(1+2)=6。D選項中的表達式可以表示為x=X}(x+1)=2·3=60
(6)C【解析】z=X++,Y++,++y;因為賦值運算符的優先級高于逗號運算符的優先級,所以可以將上式表示成(Z=x++),(Y++),(++y)。然后從左向右先計算表達式Z=X++,因為x++先使用后自增,所以z的值為1,X的值為2。再計算逗號表達式第二個表達式Y++,此時Y的值為2,最后計算第三個表達式++y,Y的值為3。
(7)A【解析】本題目中字符變量cl是字符‘A’的ASCIl碼加上4,即69所對應的字符‘E’。字符變量c2是字符‘A’的ASCIl碼加上3,即68所對應的字符‘D’。但是打印輸出時,cl以%C的格式輸出,所以是E,c2以%d的格式輸出,所以是68。
(8)A【解析】條件表達式:x=表達式17表達式2:表送式3的含義是:先求解表達式1,若為非0(真),則求解表達芪2,將表達式2的值賦給x。若表達式1的值為0(假),則求辭表達式3,將表達式3的值賦給x。在本題中與表達式1::x—y)等價的是(x—Y<0I|x—Y>O)。
(9)D【解析】在if else語句中else總是與離它最近的f配對。本題目中x為l所以!X為0,所以執行else if語句中的內容,判斷(x==O)是否成立,因為x為1所以條件不成立,聽以else if內部的if…else語句不再執行,所以Y的值還是初蛤值0。
(10)A【解析】B選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。
(11)A【解析】C語言中的非執行語句不會被編譯,不會生成二進制的機器指令,所以A錯誤。由C語言構成的指令序列稱c源程序,C源程序經過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數連接起來生成一個后綴為.EXE的可執行文件。
(12)A【解析】C語言中八進制整型常量的開頭是數字0,十六進制整型常量的數字開頭是Ox。C語言中的實型常量有兩種表示形式:小數形式,小數形式表示的實型常量必須要有小數點;指數形式,以“e”或“E',后跟一個整數來表示以l0為底數的冪數,且規定字母e或E之前必須要有數字,且e或E后面的指數必須為整數。B選項中028錯誤,八透割中沒有數字8。c選項中4el.5中e后面的指數不是整數:D選項中3.e5小數點后面缺少數字。
(13)A【解析】C語言中標識符由字母、下劃線、數字組成,且開頭必須是字母或下劃線。另外,關鍵字不能作為標識符。因為C語言中區分大小寫,所以B選項中的。FOR。可以作為標識符來用。A選項中含有非法字符&,所以選擇A。
(14)A【解析】B選項中函數pow(x,C)錯誤應該直接使用exp(x)函數。c選項中函數ah(n^x+e“x)錯誤,應該使用fabs()返回浮點數的絕對值。D選項中pow(x,n)參數順序錯誤。
(15)B【解析】取模運算符“%”,二元運算符,具有左結合性,參與運算的量均為整型。選項8中的a變量是doable實型,所以8不符合規定。
(16)D【解析】C語言中利用sizeof()函數判斷數據類型長度,在VC 6.0平臺中,整型int占有4個字節,doable型數據占有8個字節。
(17)D【解析】按照從鍵盤輸入的數據可以_判斷字符l給了變量a,字符2給了變量b,字符<CR>即回車給了變量c,字符3給了變量d。所以打印輸出的結果為D選項。
(18)A【解析】C語言的邏輯運算符比較特別,它的操作數沒有明確的數據類型,可以是任意合法的表達式,所以選擇A。
(19)C【解析】本題中ff(a=1)b=1;與else d=3;之間多了語句c=2;所以會出現else語句的位置錯誤的編譯失敗提示。
(20)B【解析】C88e常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執行switch語句時,根據switch的表達式,找到與之匹配的Case語句,就從此case子句執行下去,不在進行判斷,直到碰到break或函數結束為止。所以執行內層switch(y)時只執行了a++,此時a的值為1。然后執行外層case 2語句的a十+;b++;a為2,b為1。所以結果為B。
二、程序填空題
【參考答案】
(1)0
(2)10*x
(3)n/10
【考點分析】
本題考查:已知某數,如何求該數各個位數值,已知各個位數值,如何表示該數;除法運算。
【解題思路】
填空l:定義變量t用來存放某數的各個位數值,此處判斷t是否為偶數,即對2求余結果是否為0。
填空2:將t作為x的個位數,原來x的各個位上升l位,即x=10{x+1。
填空3:每循環一次,通過除法運算,去掉數值最后一位。
【解題寶典】
如果知道某數n的各個位的數值,可以得到該數值n,如n的個位為a、十位為b、百位為c,那么n=c}100+b*10+a。如果知道數值n,可以采用求余和除法操作來表示其各個位,如n%10(取個位)、n/J0(取十位),讀者可以自己考慮一下,如果是三位數,如何提取各個位?四位數呢?
三、程序修改題【參考答案】(1)}t=0;(2)if(d%2 1=O)或if(d%2==1)
【考點分析】
本題考查:指針型變量作為函數參數;if語句條件表達式,結合奇偶數的表示方法來確定該表達式內容。
【解題思路】
(1)由函數定義可知,變量t是指針變量,所以對t進行賦初值0是不對的。因為t指向的是存放新數的變量,所以此處應給新數賦初值0,即。t=0。
(2)變量d表示數S各個位上的數,此處的if條件應為判斷d是否為奇數。
四、程序設計題【參考答案】voidfun(char pl[],char p2[])
in“,j;
for(i=0;pl[i]f=。、0’;i++);
for(j=0;p2[j]!=。、0’;j++)p1[i++]=p2[j];
p1[i],_。、0’;}
【考點分析】“
本題考查:不使用字符串函數實現字符串連接操作。通過for循環語句來完成,不要忘了最后需要加上字符串結束標識‘、0’。
【解題思路】
本題用兩個循環完成操作,第1個循環的作用是求出第l個字符串的長度,即將i指到第1個字符串的末尾。第2個循環的作用是將第2個字符串的字符連到第l個字符申的末尾。最后在第l個字符串的結尾加上字符串結束標識‘、0’。
微信搜索"考試吧"獲取更多考試資訊、備考資料
相關推薦: