當前位置:才華齋>IT認證>計算機等級>

2016下半年計算機二級C語言考前衝刺題

計算機等級 閱讀(1.39W)

計算機等級考試正在報名,為了幫助考生更好複習C語言,yjbys小編為大家分享最新計算機C語言考試試題及答案如下:

2016下半年計算機二級C語言考前衝刺題

  選擇題

1.下列資料結構中,屬於非線性結構的是( )。

A.迴圈佇列

B.帶鏈佇列

C.二叉樹

D.帶鏈棧

2.在面向物件方法中,實現資訊隱蔽是依靠( )。

A.物件的繼承

B.物件的多型

C.物件的封裝

D.物件的分類

3.對於迴圈佇列,下列敘述中正確的是( )。

A.隊頭指標是固定不變的

B.隊頭指標一定大於隊尾指標

C.隊頭指標一定小於隊尾指標

D.隊頭指標可以大於隊尾指標,也可以小於隊尾指標

4.下列敘述中,不符合良好程式設計風格的是( )。

A.程式的效率第一,清晰第二

B.程式的可讀性好

C.程式中有必要的註釋

D.輸人資料前要有提示資訊

5.軟體設計中劃分模組的一個準則是( )。

A.低內聚低耦合

B.高內聚低耦合

C.低內聚高耦合

D.高內聚高耦合

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

A.程式執行的效率與資料的儲存結構密切相關

B.程式執行的效率只取決於程式的控制結構

C.程式執行的效率只取決於所處理的資料量

D.以上三種說法都不對

7.軟體詳細設計產生的圖如圖所示。該圖是( )。

A.N—S圖

C.程式流程圖

D.E—R圖

8.資料庫管理系統是( )。

A.作業系統的一部分

B.在作業系統支援下的系統軟體

C.一種編譯系統

D.一種作業系統

9.在E—R圖中,用來表示實體聯絡的圖形是( )。

A.橢圓形

B.矩形

C.菱形

D.三角形

10.有三個關係R,S和T如下:

其中關係T由關係R和S通過某種操作得到,該操作為(

A.選擇

B.投影

C.交

D.並

11.以下敘述中正確的是( )。

A.程式設計的任務就是編寫程式程式碼並上機除錯

B.程式設計的任務就是確定所用資料結構

C.程式設計的任務就是確定所用演算法

D.以上三種說法都不完整

12.以下選項中,能用做使用者識別符號的是( )。 )。

B_8 C.0 gned

13.閱讀以下程式: #include main( ) {int case;float printF; printf("請輸人2個數:"); scanf("%d%fl"&case,&printF); printf("%d ofofn",case,printF); ) 該程式在編譯時產生錯誤,其出錯原因是( )。

A.定義語句出錯,case是關鍵字,不能用做使用者自定義識別符號 B.定義語句出錯,printF不能用做使用者自定義識別符號 C.定義語句無錯,scanf不能作為輸入函式使用 D.定義語句無錯,printf不能輸出case的值

14.表示式:(int)((double)9/2)-(9)%2的值是( )。

A.0 B.3 C.4 D.5

15.若有定義語句:“int x=10;”,則表示式x-=x+x的值為( )。

A.-20 B.-l0 C.0 D.10

16.有以下程式: #include main( ) {int a=1,b=0; printf("%d,",b=a+b); printf("%dn",a=2+b);‘’ } 程式執行後的輸出結果是( )。

A.0,0 B.1,0 C.3,2 D.1,2

17.設有定義:“int a=1,b=2,C=3;”,以下語句中執行效果與其他三個不同的 是( )。

(a>b)c=a,a=b,b=C; (a>b){c=a,a=b,b=C;} (a>b)c=a;a=b;b=C; (a>b){c=a;a=b.b=C;)

18.有以下程式: #include

main( )

{int c=0,k;

for(k=1;k<3;k++)

switch(k)

{default:c+=k;

case2:c++;break;

case4:c+=2;break;

)

printf("%dn",c);

}

程式執行後的輸出結果是( )。

A.3 B.5 C.7 D.9

19.以下程式段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是(

(a>b)&&(b>c)k=1; else k=0;

((a>b)‖(b>c))k=1;else k=0;

(a<=b)k=0;else if(b>c)k=1;

(a>b)k=1;else if(b<=c)k=1;else k=0:

20.有以下程式:

#include.

main( )

{char s[]={"012xy"};int i,n=o;

for(i=0;s[i]!=0;i++)

if(s[i]>=’a’&&s[i]<=’z’)n++;

printf("%dn",n);

}

程式執行後的輸出結果是( )。

A.0 B.2 C.3 D.5

21.有以下程式

#include

main( )

(int n=2,k=0;

while(k++&&n++>2);

printf("%d%dn",k,n);

)

程式執行後的`輸出結果是( )。

A.O2 B.13 C.57 D.12

22.有以下定義語句,編譯時會出現編譯錯誤的是( )。

a=’a’;

a=’n’

a=’aa’; )。

a=’x2d’;

23.有以下程式

#include

main( )

{char cl,c2;

cl=’A’+’8’-’4’

c2=’A’+’8’-’5’;

printf("%C,%dn",cl,c2);

)

已知字母A的ASCIl碼為65,程式執行後的輸出結果是( )。

A.E,69

B.D,69

C.E,D

D.輸出無定值

24.有以下程式

#include

void fun(int p)

{int d=2;

p=d++;printf("%d".p);}

main( )

{int a=1;

fun(a):printf("%dn",a);)

程式執行後的輸出結果是( )。

A.32 B.12 C.21 D.22

25.以下函式findmax擬實現在陣列中查詢最大值並作為函式值返回,但程式中有錯導致不能實現預定功能。

#define MIN-2147483647

int findmax(int x[],int n)

{int i,max;

for(i=0;i {max=MIN;

if(max return max;

)

造成錯誤的原因是( )。

A.定義語句“int i,max;”中max未賦初值

B.賦值語句“max=MIN;”中,不應給max賦MIN值

C.語句“if(max D.賦值語句“max—MIN;”放錯了位置

  【參考答案】

1.C。【解析】線性結構是指資料元素只有一個直接前驅和直接後驅,線性表是線性結構,迴圈佇列、帶鏈佇列和棧是指對插入和刪除有特殊要求的線性表,是線性結構。而二叉樹是非線性結構。

2.C。【解析】物件的封裝性是指從外部看只能看到物件的外部特徵,即只需知道資料的取值範圍和可以對該資料施加的操作,而不需要知道資料的具體結構以及實現操作的演算法。

3.D。【解析】迴圈佇列是把佇列的頭和尾在邏輯上連線起來,構成一個環。迴圈佇列中首尾相連,分不清頭和尾,此時需要兩個指示器分別指向頭部和尾部。插入就在尾部指示器的指示位置處插入,刪除就在頭部指示器的指示位置處刪除。

4.A。【解析】一般來講,程式設計風格首先應該簡單和清晰,其次程式必須是可以理解的,可以概括為“清晰第一,效率第二”。

5.B。【解析】耦合性和內聚性是模組獨立性的兩個定性標準,是互相關聯的。在軟體設計中,各模組間的內聚性越強,則耦合性越弱。一般優秀的軟體設計,應儘量做到高內聚,低耦合,有利於提高模組的獨立性。

6.A。【解析】資料的儲存結構、程式處理的資料量、程式的演算法等都會影響程式執行效率。

7.C。【解析】N-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程式

流程圖)是詳細設計階段的常用工具。E—R圖即實體一聯絡圖,是資料庫設計的常用工具。從題中圖可以看出該圖屬於程式流程圖。

8.B。【解析】資料庫系統屬於系統軟體的範疇。

9.C。【解析】E-R圖即實體一聯絡圖(Entity Relationship Diagram),提供了表示實體型、屬性和聯絡的方法,是用來描述現實世界的概念模型。構成E-R圖的基本要素是實體型、屬性和聯絡,其表示方法為:實體型(Entity):用矩形表示,矩形框內寫明實體名;屬性(Attribute):用橢圓形表示,並用無向邊將其與相應的實體連線起來;聯絡(Relationship):用菱形表示,菱形框內寫明聯絡名,並用無向邊分別與有關實體連線起來,同時在無向邊旁標上聯絡的型別(1:1,1:n或m:n)。

10.D。【解析】關係的並運算是指由結構相同的兩個關係合併,形成一個新的關係,其中包含兩個關係中的所有元素。由題可以看出,T是R和S的並運算得到的。

11.D。【解析】程式設計是指設計、編制、除錯程式的方法和過程。內容涉及有關的基本概念、工具、方法以及方法學等。程式設計通常分為問題建摸、演算法設計、編寫程式碼和編譯除錯4個階段。

12.C。【解析】識別符號由字母、數字和下劃線組成。開頭必須是字母或下劃線且區分大小寫。在C語言中,預先定義了一些識別符號,以作專門用途,稱為關鍵字,識別符號不能與關鍵字相同。選項A和D是關鍵字,選項B是數字開頭的,所以都不正確。

13.A。【解析】本題中定義了整形變數case,但case是關鍵字,關鍵字不能用做識別符號。單精度printF不是關鍵字,因為識別符號區分大小寫。所以A不正確。

14.B。【解析】本題考查了強制型別轉換。9/2為double型,所以結果為4.5,又強制轉換為整型,所以結果為4。9%2為取餘運算,結果為1。最終結果4-1=3。

15.B。【解析】表示式x-=x+X可以寫成x=x-(x+x),所以X的值為-l0。

16.D。【解析】本題輸出兩個值,第一個printf語句輸出b的值’b=a+b=1。第二個printf語句輸出了a的值,a=2*b,此時b的值為1,所以a的值為2。

17.C。【解析】本題判斷結果。選項A中,如果(a>b),則執行“c=a,a=b,b=c”這個語句(注意分號的位置,如果條件成立,將會執行第一個分號前的語句),顯然if不成立,則a,b,C原樣輸出。選項B和選項D是同理,而選項C因為條件不成立,則不執行第一條語句“c=a”,接著執行“a=b”,將b的值賦給a,a的值為2;“b=C”,b的值為3,C的值原樣輸出,結果為2,3,3。

18.A。【解析】本題考查了switch開關語句,當表示式與某一個ease後面的常量表達式相等時,就執行case後面的語句,若沒有匹配,則執行default後面的語句,各個case和default的出現次序不影響結果,執行完一個case語句,流程就轉移到下一個case並繼續執行。因此在case的分支後,加break語句來跳出switch語句。當k=1時,switch語句中沒

有相對應的case,所以執行default語句,此時C為1,沒有遇到break語句,則執行case2,c++,此時c的值在下次使用前加1等於2,break跳出。繼續for迴圈,當k=2時,執行Case2,C再次自加值為3,遇到break跳出。當k=3時,不符合迴圈,則輸出c的結果,答案為3。

19.A。【解析】本題考查了雙重三目運算子的用法。例如:表示式a>b?c:d可以看成,當a>b時取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當b>c時為真,則k=a>b?1:0。當bb?0:0。也就是說,當a>b並且b>C時,k=1,否則k=0。所以A選項符合題意。

20.B。【解析】本題考查for迴圈。當i=0時,開始for迴圈,因為陣列的下標是從0開始的,所以s[o]=0,不符合for迴圈,不執行下邊的語句,當i=1時,繼續執行if語句,if語句的功能是如果在小寫字母a~ z,則記數n加1。所以本題結果為2。

21.D。【解析】本題判斷while語句中的邏輯關係的真假。“&&”兩端都為真時結果為真,而題中k的值為0,k++是先使用k的值,再將k加1,而k此時的值為0,結果為假,所以不再執行後面的語句,輸出結果時,k的值自加l為1,n的值仍為2。

22.C。【解析】char型別用於儲存單個字元的簡單變數型別,它可以被指定為一個字元常量或一個整數。

23.A。【解析】本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數字。“A”的ASCIl碼為65,再加 4之後為69,也就是字母E,所以本題A正確。

24.C。【解析】本題考查函式呼叫。主函式中呼叫fun( )函式,p=d++,d=2,選取d的值,再加1,所以輸出P的值為2,再回到主函式中,直接輸出a的值為1。

25.D。【解析】“max=MIN;”語句應放在for迴圈之前,否則每次迴圈時都重新賦值,值沒有變化。