2016年全國計算機等級考試二級筆試試卷及答案

才智咖 人氣:1.09W

一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)

2016年全國計算機等級考試二級筆試試卷及答案

(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) 可封裝

D) 自頂向下

C) 模組化

D) 逐步求精

(7)軟體詳細設計產生的圖如下:

該圖是

A) N-S圖

B) PAD圖

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)以下選項中,能用作使用者識別符號的是

A)void

B)8_8

C)_0_

D)unsigned

(13)閱讀以下程式

#include

main()

{ int case; float printF;

printf(“請輸入2個數:”);

scanf(“%d %f”,&case,&pjrintF);

printf(“%d %fn”,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)-10

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)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;}

(18)有以下程式

#include

main()

{ int c=0,k;

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

switch (k)

{ default: c+=k

case 2: c++;break;

case 4: c+=2;break;

}

printf(“%dn”,c);

}

程式執行後的輸出結果是

A)3

B)5

C)7

D)9

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

A)if((a>b)&&(b>c)) k=1;

else k=0;

B)if((a>b)||(b>c) k=1;

else k=0;

C)if(a<=b) k=0;

else if(b<=c) k=1;

D)if(a>b) k=1;

else if(b>c) k=1;

else k=0;

20)有以下程式

#include

main()

{ char s[]={“012xy”};int i,n=0;

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)0 2

B)1 3

C)5 7

D)1 2

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

A)char a=’a’;

B)char a=’n’;

C)char a=’aa’;

D)char a=’x2d’;

(23)有以下程式

#include

main()

{ char c1,c2;

c1=’A’+’8’-‘4’;

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

printf(“%c,%dn”,c1,c2);

}

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

A)E,68

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;放錯了位置

(26)有以下程式

#include

main()

{ int m=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf(“%d,%d,%d,%dn”,m,n,*p,*q);

}

程式執行後的輸出結果是

A)1,2,1,2

B)1,2,2,1

C)2,1,2,1

D)2,1,1,2

(27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是

A)p=a

B)q[i]=a[i]

C)p=a[i]

D)p=&a[2][1]

(28)有以下程式

#include

#include

main()

{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];

printf(“%d,”,strlen(p));printf(“%sn”,p);

}

程式執行後的輸出結果是

A)9,One*World

B)9,One*Dream

C)10,One*Dream

D)10,One*World

(29)有以下程式

#include

main()

{ int a[ ]={2,3,5,4},i;

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

switch(i%2)

{ case 0:switch(a[i]%2)

{case 0:a[i]++;break;

case 1:a[i]--;

}break;

case 1:a[i[=0;

}

for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“n”);

}

A)3 3 4 4

B)2 0 5 0

C)3 0 4 0

D)0 3 0 4

(30)有以下程式

#include

#include

main()

{ char a[10]=”abcd”;

printf(“%d,%dn”,strlen(a),sizeof(a));

}

程式執行後的輸出結果是

A)7,4

B)4,10

C)8,8

D)10,10

(31)下面是有關C語言字元陣列的描述,其中錯誤的是

A)不可以用賦值語句給字元陣列名賦字串

B)可以用輸入語句把字串整體輸入給字元陣列

C)字元陣列中的內容不一定是字串

D)字元陣列只能存放字串

(32)下列函式的功能是

fun(char * a,char * b)

{ while((*b=*a)!=’