2009年9月全国计算机等级考试二级C语言笔试真题及参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2009年9月二級C語言筆試真題及答案

一、選擇題(每題2分,共計70分)

(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圖 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.(12)以下選項中,能用作用戶識別字的是

A)void B)8_8 C)_0_ D)unsigned

(13)閱讀以下程式

#include

main()

{ int case; float printF;

printf("請輸入2個數:");

scanf("%d %f",&case,&printF);

printf("%d %f\n",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("%d",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("%d\n",c);

}

程式運行後的輸出結果是

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

19.(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("%d\n",n);

}

程式運行後的輸出結果是

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

(21)有以下程式

#include

main()

{ int n=2,k=0;

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

printf("%d %d\n",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,%d\n",c1,c2);

}

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

A)E,68 B)D,69 C)E,D D)輸出無定值

(24)有以下程式

#include

void fun(int p)

相关文档
最新文档