2016年計算機二級C語言選擇題專項練習

練習是幫助我們鞏固知識的最好方法,以下是小編爲大家整理的2016年計算機二級C語言選擇題專項練習,希望對大家有幫助!

2016年計算機二級C語言選擇題專項練習

  單選題

1.以下程序的輸出結果是( )。

main()

{ int i;

for(i=0;i<3;i++)

switch(i){case 0:printf("%d",i);

case 2:printf("%d",i);

default:printf("%d",i);

}

}

A.000102

B.000020

C.000122

D.000111

2.下列程序執行後的輸出結果是( )。

main()

{int x=’f’;printf("%cn",’A’+(x-’a’+1));}

A.G

B.H

C.I

D.J

3.有如下程序:

main()

{ int a=2,b=-1.c=2;

if(a<0)if(b<0)c=0;

else c++;

printf("%dn",c);

}

該程序的輸出結果是( )。

A.0

B.1

C.2

D.3

4.在C語言中,函數返回值的類型最終取決於( )。

A.函數定義時在函數首部所說明的函數類型

rn語句中表達式值的類型

C.調用函數時主調函數所傳遞的實參類型

D.函數定義時形參的類型

5.以下程序的輸出結果是( )。

main()

{ int i=0,S=0;

for(;;)

{

if(i==3 ||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

printf("%dn",s);

}

A.10

B.13

C.21

D.程序陷入死循環

6.假設a和b爲int型變量,則執行以下語句後b的值爲( )。

a=1;b=10;

do

{ b-=a;a++;}

while(b--<0);

A.9

B.-2

C.-l

D.8

7.下列程序執行後的輸出結果是( )。

main()

{ int a[3][3],*p,i};

p=&a[0][0];

for(i=p;i<9;i++)p[i]=i+1;

printf("%dn",a[1][2]);

}

A.3

B.6

C.9

D.隨機數

8.以下程序的輸出結果是( )。

int f(int A)

{ return a%2; }

main()

{int s[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

printf("%dn",d);

}

A.9

B.11

C.19

D.21

9.s1和s2已正確定義並分別指向兩個字符串。若要求:當s1所指串大於s2所指串時,執行語句s;則以下選項中正確的是( )。

(s1>s2)S;

(strcmp(s1,s2))S;

(strcmp(s2,sl)>O)S;

(stremp(s1,s2)>O)S;

10.有以下函數:

char fun(char*p)

{return P;}

該函數的返回值是( )。

A.無確切的值

B.形參p中存放的地址值

c.一個臨時存儲單元的'地址

D.形參p自身的地址值

11.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其後序遍歷的結點訪問順序是( )。

efha

cfha

echf

hfca

12.三種基本結構中,能簡化大量程序代碼的是( )。

A.順序結構

B.分支結構

C.選擇結構

D.重複結構

13.算法的時間複雜度是指( )。

A.執行算法程序所需要的時間

B.算法程序的長度

C.算法執行過程所需要的基本運算次數

D.算法程序中的指令條數

14.概要設計中要完成的事情是( )。

A.系統結構和數據結構的設計

B.系統結構和過程的設計

C.過程和接口的設計

D.數據結構和過程的設計

15.在結構化分析方法中,數據字典的作用是( )。

A.存放所有需要處理的原始數據

B.存放所有處理的結果

c.存放所有程序文件

D.描述系統中所用到的全部數據和文件的有關信息

16.一個關係中屬性個數爲1時,稱此關係爲( )。

A.對應關係

B.單一關係

c.一元關係

D.二元關係

17.若有以下定義:

char a;int b;

float c;double d;

則表達式a*b+b-c值的類型爲( )。

t

le

18.下列選擇中,不能用做標識符的是( )。

A.1234

B._1_2

_2_

D.2_int_

19.設x爲int型變量,則執行以下語句後,x的值爲( )。

x=10;x=x-=x-x;

A.10

B.20

C.40

D.30

20.下列敘述中正確的是( )。

A.在面向對象的程序設計中,各個對象之間具有密切的關係

B.在面向對象的程序設計中,各個對象都是公用的

C.在面向對象的程序設中,各個對象之間相對獨立,相互依賴性小

D.上述3種說法都不對

  選擇題答案與解析

1.C。【解析】當i=0時,執行switch語句,對應的執行case 0,輸出0,因爲沒有break,接着執行case 2的語句,又輸出一個0,接着執行default語句,再輸出一個0,返回i+ +;i=1時,沒有case語句,執行default語句,輸出一個1,接着又返回i++;當i=2時執行case 2和default語句分別輸出一個2,此時又返回i++,i變爲3,for循環不成立,終止,最後輸出000122。

2.D。【解析】因爲x=’f’,所以寫成’A’+(x-’a’+1) =’A ’+(’f ’-’a’+1)=’A’+6=’J ’,故選擇D選項。

3.C。【解析]else與離它最近的if構成if…else語句,而當a爲2時,第一個if語句不成立,因此什麼也不做,即c 的值仍然爲2,故選擇C選項。

4.A。【解析】在c語言中,函數返回的類型最終取決於函數定義時在函數首部所說明的函數類型,與調用函數時主調函數所傳遞的實參類型和函數定義時形參的類型無關,而return語句表達式的值將強制轉換爲函數定義時在函數首部所說明的函數類型返回。

5.D。【解析】當i一0時,兩個if都不滿足,所以都不執行,直接執行i++語句,此時i爲1,S爲l,返回for循環中;當i=1時,同樣不執行兩個if語句,執行i++後,i=2,s= 3,返回for循環中;i=2時也不執行if語句,執行i++後,i =3,s=6,接着又執行for循環,此時符合第一個if語句,執行到continue時不再執行i++了,continue是跳出本次循環,接着下次循環。永遠這樣執行下去,i的值永遠爲3,故選擇D選項。

6.D。【解析】當b爲10時,執行b-=a,此時b爲9,接着b--表達式值爲9,b的值爲8,大於0,while不成立,退出循環,故選擇D選項。

7.D。【解析】程序執行在for循環,當i=p時,i中放的是P的地址,類型不符合,因此輸出隨機數,故選擇D 進項.

8.A。【解析】在程序中當i=0時,s[o]=1,f(s[0])爲1,執行d+=s[0],d的值爲1,i++也變爲1。當i=1時,s[1]=3,f(s[1])爲1,也爲非0,繼續執行後面的表達式,此時d的值爲1+3=4,繼續着i++變爲2,接着執行for循環,可知for循環的目的是把S數組中的奇數相加,因此最後d的值爲1+3+5爲9,故選擇A選項。

9.D。【解析】在C語言中,不能直接比較兩個字符串的大小,必須用特定的函數來完成,選項A錯誤;選項B不管大於還是小於都執行S,不符合題意;選項C正好相反,當s2大於s1時,執行語句S,可知選項D正確。

10.A。【解析】在程序中因爲fun函數的返回值爲char,而P是指向char的指針變量,因此類型不匹配,故選擇A選項。

11.D。【解析】後序遍歷是增首先遍歷左子樹或左子結點,然後遍歷右子樹或右子結點,最後訪問根結點。前序遍歷是指首先訪問根結點,依次訪問左子樹、右子樹。本題根據前序和中序遍歷的結果確定,然後再對其進行後序遍歷,正確答案爲選項D。

12.D。【解析】重複結構也稱爲循環結構,它根據給定的條件,判斷是否需要重複執行某一相同或類似的程序段,這種可以簡化大量的程序行。

13.C。【解析】算法複雜度包括時間複雜度和空間複雜度,算法的時間複雜度是指執,亍算法所需要的計算機工作量,即算法執行過程中所需要的基本運算次數。

14.A。【解析】在C語言中軟件概要設計的基本任務是:設計軟件系統結構、數據結構及數據庫設計、編寫概要設計文檔、概要設計文檔評審4種。

15.D。【解析】在c語言中.結構化分析方法中的數據字典的作用是描述系統中所用到的全部數據和文件的有關信息。

16.C。【解析】在關係模型數據庫中,我們把構成基本結構的一維表稱爲關係。關係的列稱爲屬性,具有N個屬性的關係稱爲N元關係。

17.D。【解析】在表達式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉換,所以最後的結果一定是double型。

18.D。【解析】C語言規定標識符是由字母、數字和下劃線組成的,且必須以字母或下劃線開頭,因此可知D選項錯誤。

19.A。【解析】執行x=x-=x-x語句可寫成x=x- (x-x),可看出結果爲10,故八選項正確。

20.C。【解析】本題考查對面向對象的理解,面向對象的程序設計是對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現對象之間的相互聯繫。