2017年C語言筆試試題及答案

  書到用時方恨少,事非經過不知難。以下是小編爲大家搜索整理2017年C語言筆試試題及答案,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

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

2017年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_8

C._0_

gned

(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>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

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>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=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=’a’;

a=’n’;

a=’aa’;

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)!=’