2018年計算機二級考試C語言試題及答案(2)
2018年計算機二級考試C語言試題及答案(2)
選擇題(每小題1分,***40分)
1[單選題] 若有定義語句:double a,* P=&a;以下敘述中錯誤的是( )。
A.定義語句中的*號是壹個間址運算符
B.定義語句中的*號是壹個說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,*P=&a把變量a的地址作為初值賦給指針變量P
參考答案:A
參考解析:在變量定義double a,* P=&a;中,*號是壹個指針運算符,而非間址運算符,所以A錯誤。
6[單選題] 若有定義語句:int x=10;,則表達式x-=x+x的值為( )。
A.0
B.-20
C.-10
D.10
參考答案:C
參考解析:算術運算符+的優先級高於-=,且-=的結合方向為自右向左,所以表達式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,選擇C。
2[單選題] 若有定義語句:double x,y,*px,*py;執行了px=&x;py=&y;之後,正確的輸入語句是( )。
A.scanf(”%If%le”,px,py);
B.scanf(”%f%f”&x,&y);
C.sceanf(”%f%f”,x.y);
D.scanf(”%If%If'’,x,y);
參考答案:A
參考解析:因為x,y都是double型數據,所以輸入時的格式字符應為%lf,所以B與C錯誤。D選項中scanf("%lf%If",x,y);應為scanf(“%If%If"”,&x,&y);。
3[單選題] 下列數據結構中,屬於非線性結構的是( )。
A.循環隊列
B.帶鏈隊列
C.二叉樹
D.帶鏈棧
參考答案:C
參考解析:樹是簡單的非線性結構,所以二叉樹作為樹的壹種也是壹種非線性結構。
4[單選題] 對於循環隊列,下列敘述中正確的是( )。
A.隊頭指針是固定不變的
B.隊頭指針壹定大於隊尾指針
C.隊頭指針壹定小於隊尾指針
D.隊頭指針可以大於隊尾指針,也可以小於隊尾指針
參考答案:D
參考解析:循環隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進行變化。因為是循環利用的隊列結構,所以隊頭指針有時可能大於隊尾指針,有時也可能小於隊尾指針。
5[單選題] 若變量已正確定義,在if(W)printf(”%d\n”,k);中,以下不可替代w的是( )。
A.a<>b+c
B.ch=getchar()
C.a==b+c
D.a++
參考答案:A
參考解析:選項A是非法的表達式,C語言中沒有<>運算符。
6[單選題] 下列排序方法中,最壞情況下比較次數最少的是( )。
A.冒泡排序
B.簡單選擇排序
C.直接插入排序
D.堆排序
參考答案:D
參考解析:冒泡排序與筒單插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數是nlog2n。
7[單選題] 數據庫管理系統是( )。
A.操作系統的壹部分
B.在操作系統支持下的系統軟件
C.壹種編譯系統
D.壹種操作系統
參考答案:B
參考解析:數據庫管理系統是數據庫的機構,它是壹種系統軟件,負責數據庫中數據組織、數據操縱、數據維護、控制及保護和數據服務等。是壹種在操作系統之上的系統軟件。
8[單選題] 以下選項中,能用作用戶標識符的是( )。
A._0_
B.8_8
C.void
D.unsigned
參考答案:A
參考解析:C語言中標識符由字母、下劃線、數字組成,且開頭必須是字母或下劃線。另外,關鍵字不能作為標識符。B中以數字8開頭,所以錯誤。C與D中用的是關鍵字void與unsigned,所以錯誤。
9[單選題] 以下敘述中錯誤的是( )。
A.使用三種基本結構構成的程序只能解決簡單問題
B.結構化程序由順序、分支、循環三種基本結構組成
C.C語言是壹種結構化程序設計語言
D.結構化程序設計提倡模塊化的設計方法
參考答案:A
參考解析:使用順序,選擇(分支),循環三種基本結構構成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。
10[單選題] 下列敘述中正確的是( )。
A.棧是“先進先出”的線性表
B.隊列是“先進後出”的線性表
C.循環隊列是非線性結構
D.有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構
參考答案:D
參考解析:棧是先進後出的線性表,所以A錯誤;隊列是先進先出的線性表,所以B錯誤;循環隊列是線性結構的線性表,所以C錯誤。
11[單選題] 以下不構成無限循環的語句或語句組是( )。
A.n=0:
do{++n;}while(n<=0);
B.n=0;
while(1){n++;}
C.n=10;
while(n);{n--;}
D.for(n=0,i=1;;i++)n+=i;
參考答案:A
參考解析:選項A中do後面的語句只執行了壹次便結束了循環;B選項中條件while(1)永遠成立,所以是死循環;C選項中n的值為10,而循環體為空語句,所以wilile(n)永遠為真,進入死循環;D選項中for語句第二個表達式為空,所以沒有判別條件,進入死循環。
12[單選題] 若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能確定
參考答案:A
參考解析:邏輯或”||”要求只要兩邊的運算對象有壹個非零,結果就為真。雖然不知道a的值,但是若a為l,則左邊運算對象為1;若a的值不是1,則右邊運算對象的值為1,所以總能保證壹邊非零,所以結果為真,即1。
13[單選題] 下列選項中不屬於結構化程序設計原則的是( )。
A.可封裝
B.自頂向下
C.模塊化
D.逐步求精
參考答案:A
參考解析:結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
14[單選題] 某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是( )。
A.10
B.8
C.6
D.4
參考答案:C
參考解析:根據二叉樹的基本性質3:在任意壹棵二叉樹中,度為0的葉子結點總是比度為2的結點多壹個,所以本題中是5+1=6個。
15[單選題] 支持子程序調用的數據結構是( )。
A.棧
B.樹
C.隊列
D.二叉樹
參考答案:A
參考解析:棧支持子程序調用。棧是壹種只能在壹端進行插入或刪除的線性表,在主程序調用子函數時要首先保存主程序當前的狀態,然後轉去執行子程序,最終把子程序的執行結果返回到主程序中調用子程序的位置,繼續向下執行,這種調用符合棧的特點,因此本題的答案為A。