2015年9月計算機二級《C語言》突破模擬卷
B.ptr是指向int型數據的指針變量
C.ptr是指向函數的指針,該函數返回一個int型數據
D.ptr是一個函數名,該函數的返回值是指int型數據的指針
參考答案:C
參考解析:本題中int(*ptr)()的含義是指向函數的指針變量,其為指向函數的指針變量,該函數返回一個int型數據,故選擇C選項。
2以下程序的輸出結果是( )。
A.O650B.1470C.5430 D.輸出值不定
參考答案:A
參考解析:當所賦的值不夠其列的寬度時,系統在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。
3若有定義:int c[4][5],(*cp)[5];和語句cp=c;,則能正確引用c數組元素的是( )。
A.cp+1B.*(cp+3)C.*(cp+1)+3 D.*(*cp+2)
參考答案:D
參考解析:cp是行指針,只表示行。若要表示元素,則需要配合列,A:表示第二行;B:表示第四行的內容,但是設指出那一列;C:*(cp+1)+3只是地址不是元素值,需改為*(*(cp+1)+3)。
4有以下程序:
輸出的結果是( )。
A.ZhangB.B.ZhaoC.Wang D.18
參考答案:B
參考解析:從實參傳遞過去的是結構體系數組的第3個元素,所以輸出的name為Zhao。
5若有下列定義和語句:
則輸出結果是( )。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
參考答案:C
參考解析:“%o”表示八進制無符號型輸出整型數據(即不帶前導0);“%x”表示以十六進制無符號型輸出整型數據(即不帶前導ox或0X);“%d”表示輸出帶符號的十進制整型數。
6有下列程序:
程序執行后的輸出結果是( )。
A.45B.20C.25 D.36
參考答案:C
參考解析:在for循環語句中自變量i從0開始,每次自加2,執行s+一*(t+i)語句,因為C語言規定數組名做表達式相當于數組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數組的第i+1個元素,所以程序運行的結果是1+3+5+7+9=25,即變量S的值等于25。
7若有正確定義語句double x=5.16894:
A.輸出格式說明與輸出頂不匹配,輸出無定值B.5.170000C.5.168000D.5.169000
參考答案:D
參考解析: (x*1000+0.5)--x移動3位小數,加0.5,也就是小數第4位加5,若這位大于等于5,則進1到個位。5.16894*1000-)5168.94+0.5->5169.44接下來:(int)(x*1000+0.5)取整變51 69,5169/(double)1000)-)5.169。所以printf(″%f\n″,5.169)結果是5.16900。因此正確答案為D。
8
A.隨機值B.B.0C.x的地址D.p的地址
參考答案:B
參考解析:*p的意思是取其指向地址的內容,p是指向x地址的指針,因此輸出*p也就是輸出X的內容,即0,故選擇B選項。
9有以下程序:
執行后的輸出結果是( )。
A.1B.2C.4D.死循環
參考答案:A
參考解析:當k=5時,while條件中的值為4,k為4,循環不成立,k-=3可寫成k=k-3,輸出1;接著執行--k后k為0,當k=0時,while循環不成立,退出。
10以下四個程序中不能對兩個整型值進行交換的是( )。
A.
B.
C.
D
參考答案:C
參考解析:
main()
11有以下程序段:
以上程序段的輸出結果是( )。
A.9B.1C.11D.10
參考答案:D
參考解析:因為首先k-2,然后你進行一次循環后,k自增兩次,變成4,所以這時候s又成l了。然后當k-4的時候,s=1,j=4,然后執行內層循環,s=1+4,然后j自增等于5,s=5+5,然后j再自增為6,跳出內層循環。k自增兩次后等于6,不成立,跳出外層循環。然后輸出s的值,即為10。因此正確選項為D。
12若a為int類型,且其值為3,則執行完表達式a+=a-=a*a后,a的值是( )。
A.-3B.9C.-12D.6
參考答案:C
參考解析: 在表達式中,其+=,-=的優先級相同,按從右到左的結合方向運算,而*的優先級最高,表達式寫成a=a+(a-(a*a)),代入3可得-12。
13下列4個關于C語言的結論中錯誤的是( )。
A.可以用do-while語句實現的循環一定可以用while語句實現
B.可以用for語句實現的循環一定可以用while語句實現
C.可以用while語句實現的循環一定可以用for語句實現
D.do-while語句與while語句的區別僅是關鍵字“while”出現的位置不同
參考答案:D
參考解析:本題考查對各個循環語句的理解。①do-while語句、for語句、while語句所實現的循環可以相互替代;②do-while語句至少執行一次,而while是符合條件執行,不符合不執行。
14已定義了以下函數:
該函數的類型是( )。
A.與參數x的類型相同B.void類型C.int類型D.無法確定
參考答案:C
參考解析:函數返回值類型由函數頭部的返回值類型決定,特別地,如果函數頭部沒有顯示的說明返回值類型,則在C中一般是默認當作返回int型,本題中fff(float x),則返回值類型為int型。因此正確答案為C。
15在C語言中,函數返回值的類型最終取決于( )。
A.函數定義時在函數首部所說明的函數類型
B.return語句中表達式值的類型
C.調用函數時主調函數所傳遞的實參類型
D.函數定義時形參的類型
參考答案:A
參考解析:在C語言中,函數返回的類型最終取決于函數定義時在函數首部所說明的函數類型,與調用函數時主調函數所傳遞的實參類型和函數定義時形參的類型無關,而return語句表達式的值將強制轉換為函數定義時在函數首部所說明的函數類型返回。
16若有以下的說明和語句,則在執行for語句后,*(*(pt+1)+2)表示的數組元素是( )。
A.
B.
C.
D.
參考答案:C
參考解析:從for循環可知,pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。
17下列程序中函數sort()的功能是對數組a中的數據進行由大到小的排序。
程序運行后的輸出結果是( )。
A.1,2,3,4,5,6,7,8,9,l0,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10,D.1,2,10,9,8,7,6,5,4,3,
參考答案:C
參考解析:本程序中的函數sort(int a[],int n)實現的功能是將數組a中的前n個數進行從大到小排序。sort(&a[1],7)是將數組中從a[1]~a[7]這7個數進行從大到小排序,其他數不變。
18設有程序段:
int k=12:
while(k=1)k=k-1:
則下列描述中正確的是( )。
A.while循環執行10次
B.循環是無限循環
C.循環體語句一次也不執行
D.循環體語句執行一次
參考答案:C
參考解析:本題考查while,while循環表達式k-1是個賦值表達式而不是邏輯表達式,k的初值為12不符合循環條件,所以循環體語句一次也不執行。
19有以下程序:
程序的輸出結果是( )。
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
參考答案:C
參考解析:即輸出x[0][2]x[l][1]x[2][0]分別為3 5 7。
20下列工具中為需求分析常用工具的是( )。
A.PADB.BFDC.N-SD.DFD
參考答案:D
參考解析:需求分析常用的工具有4種:數據流圖(DFD)、數據字典(DD)、判斷樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N—S(盒式圈)都是詳細設計的常用工具,不是需求分析的工具。
21有以下程序:
程序的輸出結果是( )。
A.
B.
C.
D.
參考答案:A
參考解析:
#include
int main()
所以輸出為*#*#*#$和一個換行符*/,因此正確答案為A。