歷年全國計算機等級考試二級C語言筆試選擇真題
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共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)以下選項中,能用作使用者識別符號的是
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 %f ”,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 ”,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(“%d ”,n);
}
程式執行後的輸出結果是
A.0
B.2
C.3
D.5
(21)有以下程式
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d ”,k,n);
}
程式執行後的輸出結果是
A.0 2
B.1 3
C.5 7
D.1 2
(22)有以下定義語句,編譯時會出現編譯錯誤的是
A.char a=’a’;
B.char a=’ ’;
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 ”,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(“%d ”,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,%d ”,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(“%s ”,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(“ ”);
}
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,%d ”,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)!=’’) {a++,b++;} }
A.將a所指字串賦給b所指空間
B.使指標b指向a所指字串
C.將a所指字串和b所指字串進行比較
D.檢查a和b所指字串中是否有’’
(33)設有以下函式
void fun(int n,char * s) {……}
則下面對函式指標的定義和賦值均是正確的是
A.void (*pf)(); pf=fun;
B.viod *pf(); pf=fun;
C.void *pf(); *pf=fun;
D.void (*pf)(int,char);pf=&fun;
(34)有以下程式
#include
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d ”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程式執行以後的輸出結果是
A.7
B.8
C.9
D.10
(35)有以下程式
#include
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d ’,s,t);
}
程式執行後的輸出結果是
A.10,64
B.10,10
C.64,10
D.64,64
(36)下面結構體的定義語句中,錯誤的是
A.struct ord {int x;int y;int z;}; struct ord a;
B.struct ord {int x;int y;int z;} struct ord a;
C.struct ord {int x;int y;int z;} a;
D.struct {int x;int y;int z;} a;
(37)設有定義:char *c;,以下選項中能夠使字元型指標c正確指向一個字串的是
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,C.;
C.c=get);
D.*c=”string”;
(38)有以下程式
#include
#include
struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;
}
struct A f(struct A t)
( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )
程式執行後的輸出結果是
A.1001,ZhangDa,1098.0
B.1001,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1001,ChangRong,1202.0
(39)若有以下程式段
int r=8;
printf(“%d ”,r>>1);
輸出結果是
A.16
B.8
C.4
D.2
(40)下列關於C語言檔案的敘述中正確的是
A.檔案由一系列資料依次排列組成,只能構成二進位制檔案
B.檔案由結構序列組成,可以構成二進位制檔案或文字檔案
C.檔案由資料序列組成,可以構成二進位制檔案或文字檔案
D.檔案由字元序列組成,其型別只能是文字檔案
-
期會考試前的週記【薦】
歲月無痕,流水時光,眨眼間,一個星期已經過去,相信大家都有不少體會吧,現在的你想必不是在寫週記,就是在準備寫週記吧。那麼寫週記需要注意哪些問題呢?下面是小編為大家收集的期會考試前的週記,僅供參考,大家一起來看看吧。期會考試前的週記1離期會考試的時間越來越近了!...
-
考試結束後作文彙總(8篇)
在日常生活或是工作學習中,大家都接觸過作文吧,藉助作文人們可以反映客觀事物、表達思想感情、傳遞知識資訊。相信寫作文是一個讓許多人都頭痛的問題,下面是小編整理的考試結束後作文8篇,歡迎大家借鑑與參考,希望對大家有所幫助。考試結束後作文篇1叮鈴鈴……伴隨著...
-
考試後的感想作文3篇[熱門]
無論在學習、工作或是生活中,說到作文,大家肯定都不陌生吧,寫作文可以鍛鍊我們的獨處習慣,讓自己的心靜下來,思考自己未來的方向。那要怎麼寫好作文呢?下面是小編整理的考試後的感想作文3篇,希望對大家有所幫助。考試後的感想作文篇1雖然月考結束了,但心久久不能平靜下...
-
語文考試反思(精)
在現在的社會生活中,我們的任務之一就是教學,反思過往之事,活在當下之時。那麼應當如何寫反思呢?下面是小編為大家整理的語文考試反思,僅供參考,歡迎大家閱讀。語文考試反思1這次語文考試沒有考好。我要深刻反思。首先,要學會審題。我要改掉考試不細心讀題目的壞習慣...