點擊查看:2016計算機二級《C語言》基礎(chǔ)練習(xí)題及答案匯總
1[簡答題]下列給定程序中函數(shù)fun的功能是:通過某種方式實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達(dá)式。
例如,變量a中的值原為8,b中的值原為3,程序運行后a中的值為3,b中的值為8。
請改正程序中的錯誤,使它得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更
改程序的結(jié)構(gòu)!
試題程序:
參考解析:
【參考答案】
(1)t=*x;*X=Y;(2)return(t);或return t;
【考點分析】
本題考查:指針型變量的使用;通過return語句完成函數(shù)值的返回。
【解題思路】
首先,定義變量t作為中間變量,然后進(jìn)行數(shù)據(jù)交換,注意參數(shù)x是指針變量,交換時應(yīng)使用*x,最后確定返回值;根據(jù)代碼b=fun(8a'b),可以知道返回值將賦給變量b,而b中應(yīng)存放交換前*x中的值,所以函數(shù)應(yīng)返回變量t。
2[單選題] 有以下程序
程序運行后的輸出結(jié)果是
A.3B.1C.2D.4
參考答案:C
參考解析:本題考查函數(shù)的遞歸調(diào)用,將函數(shù)參數(shù)帶入函數(shù)中,一步步遞歸即可得到結(jié)果,結(jié)果為2,選項C正確。
3[單選題] 以下敘述中正確的是( )
A.在算法設(shè)計時,可以把復(fù)雜任務(wù)分解成一些簡單的子任務(wù)
B.在C語言程序設(shè)計中,所有函數(shù)必須保存在一個源文件中
C.只要包含了三種基本結(jié)構(gòu)的算法就是結(jié)構(gòu)化程序
D.結(jié)構(gòu)化程序必須包含所有的三種基本結(jié)構(gòu).缺一不可
參考答案:A
參考解析:C語言的程序中,函數(shù)不一定都放在同一個源文件中,可以分別放在不同源文件中,通過#inClude命令來引用,所以B錯誤。結(jié)構(gòu)化程序可以包含三種基本結(jié)構(gòu)中的一種或幾種,所以C,D錯誤。
4[單選題] 若有語句:int a[3][4],(。P)[4];P=a;,則以下選項中敘述錯誤的是( )。
A.系統(tǒng)將開辟一個名為P的二維數(shù)組,“o][o]中的值即為a[o][o]中的值B.P+1代表a[1][0]的地址C.P中將存放a數(shù)組的首地址D.P+2代表a數(shù)組最后一行的首地址
參考答案:A
參考解析:(+P)[4]定義了一個數(shù)組指針。P可以指向類似于arry[][4]的數(shù)組,題設(shè)中,P不是一個二維數(shù)組,只是可以指向這類二維數(shù)組,因此選項A錯誤。P+1代表了第一行第一個元素的地址,P=a指向數(shù)組a的首地址,則B、C選項正確,同理可知選項D也正確。故答案為A選項。
5[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.11,11B.29,29C.26,29D.121.121
參考答案:B
參考解析:#define命令是c語言中的一個宏定義命令,標(biāo)識符一般使用大寫,為了區(qū)分其他標(biāo)識符,它用來將一個標(biāo)識符定義為一個字符串,該標(biāo)識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進(jìn)行其他操作,僅僅只是替換標(biāo)識符。S(k+j+2)=k+j+2}k+j+2/k+j+2,經(jīng)計算可得29,s(j+k+2)=J+k+2}k+j+2/j+k+2,計算可得29。因此輸出為29。29。答案為B選項。
6[單選題] 有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是( )。
A.自然連接B.交C.除D.并
參考答案:C
參考解析:如果S=T/R,則s稱為T除以R的商。在除運算中s的域由T中那些不出現(xiàn)在R中的域所組成,對于s中的任一有序組,由它與關(guān)系R中每個有序組所構(gòu)成的有序組均出現(xiàn)在關(guān)系T中。所以本題選擇C。
7[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
參考答案:A
參考解析:結(jié)構(gòu)體s中n代表數(shù)組的實際長度,a是個定長數(shù)組。函數(shù)f()對結(jié)構(gòu)體s內(nèi)的a數(shù)組元素使用冒泡法進(jìn)行遞增排序。因此最終數(shù)組的元素是一個遞增序列。故答案為A選項。
8[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2,3B.2,1C.1,2D.3,1
參考答案:B
參考解析:結(jié)構(gòu)體tt是一個遞歸定義,類似于鏈表,
通過成員變量Y鏈接起來。P=s+1指向s[1]。P一>Y指向8[2],但現(xiàn)在P->Y=s,因此s[2]=s[O],此時8[]={1.0,2.0,1.0},而P在s[1]位置,因此P_>x為2,P=P_>Y,P指向s[2],因此P_>x=1,故打印結(jié)果為2,1。答案為B選項。
9[單選題] 以下敘述錯誤的是( )。
A.一個算法所包含的操作步驟應(yīng)該是有限的
B.任何能通過編譯和運行的算法都一定能得到所期望的結(jié)果
C.算法中每一條指令必須有確切的含義
D.算法可以用各種描述方法來進(jìn)行描述
參考答案:B
參考解析:算法的特點:零個或多個輸入,至少一個輸出,可行性(能編程實現(xiàn)),有窮性(有限步出結(jié)果),確定性(描述不能有歧義)?芍x項A,c,D正確。c語言中。通過編譯,可以運行的程序,不一定符合題目的本意,因此即使可以運行得到結(jié)果,也不一定和預(yù)期的結(jié)果一樣,否則就不需要調(diào)試和修改程序了,故B選項錯誤。答案為B選項。
10[單選題] 設(shè)有定義:
int a=1,b=2,C=3;
以下語句中執(zhí)行效果與其他三個不同的是( )。
A.if(a>B.C=a,a=b,b=C;B.if(a>B.{C=a,a=b,b=C;}C.if(a>B.C=a;a=b;b=c;D.if(a>B.{C=a;a=b;b=c;}
參考答案:C
參考解析:由于a小于b,所以所有選項中的條件都為假,c選項中實際執(zhí)行了a=b;b=c;兩個操作。而A、B、D選項由于條件不成立,所以什么也沒有做,所以選擇c選項。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |