全國計算機二級考試《C語言》真題與答案
通過真題的練習,我們可以了解計算機等級考試的題型,有針對性的復習。以下是百分網小編搜索整理的一份全國計算機二級考試《C語言》真題與答案,供參考練習,預祝考生們考出自己理想的成績!想了解更多相關信息請持續關注我們應屆畢業生考試網!
全國計算機二級考試《C語言》真題與答案 篇1
1.下列敘述中正確的是。
A.程序執行的效率與數據的存儲結構密切相關
B.程序執行的效率只取決于程序的控制結構
C.程序執行的效率只取決于所處理的數據量
D.以上三種說法都不對
正確答案:A
2.下列與隊列結構有關聯的是
A.函數的遞歸調用
B.數組元素的引用
C.多重循環的執行
D.先到先服務的作業調度
正確答案:D
3.一個棧的初始狀態為空。現將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是
A.1,2,3,A,B,C
B.C,B,A,1,2,3
C.C,B,A,3,2,1
D.1,2,3,C,B,A
正確答案:C
4.下面屬于白盒測試方法的是______。
A.等價類劃分法
B.邏輯覆蓋
C.邊界值分析法
D.錯誤推測法
正確答案:B
5.下面對對象概念描述正確的'是()。
A.對象間的通信靠消息傳遞
B.對象是名字和方法的封裝體
C.任何對象必須有繼承性
D.對象的多態性是指一個對象有多個操作
正確答案:A
6.軟件設計中模塊劃分應遵循的準則是()。
A.低內聚低耦合
B.高內聚低耦合
C.低內聚高耦合
D.高內聚高耦合
正確答案:B
7.下面描述中不屬于數據庫系統特點的是()。
A.數據共享
B.數據完整性
C.數據冗余度高
D.數據獨立性高
正確答案:C
8.數據庫設計過程不包括()。
A.概念設計
B.邏輯設計
C.物理設計
D.算法設計
正確答案:D
9.以下敘述正確的是()。
A.C語言函數可以嵌套調用,例如:fun(fun(x))
B.C語言程序是由過程和函數組成的
C.c語言函數不可以單獨編譯
D.c語言中除了main函數,其他函數不可作為單獨文件形式存在
正確答案:A
10.以下選項中合法的標識符是
A)1_1
B)1-1
C)_11
D)1_ _
正確答案:C
11.表達式3.6-5/2+1.2+5%2的值是()
A.4.3
B.4.8
C.3.3
D.3.8
正確答案:D
12.設循環隊列的存儲空間為Q(1:35),初始狀態為front=rear=35。現經過一系列人隊與退隊運算后,front=15,rear=15,則循環隊列中的元素個數為()。
A.16
B.20
C.0或35
D.15
正確答案:C
13.下列關于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素
B.棧頂元素一定是最先人棧的元素
C.棧操作遵循先進后出的原則
D.以上三種說法都不對
正確答案:C
14.在關系數據庫中,用來表示實體間聯系的是()。
A.屬性
B.二維表
C.網狀結構
D.樹狀結構
正確答案:B
15.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員,從職員到部門的聯系類型是
A.多對多
B.一對一
C.多對一
D.一對多
正確答案:C
16.數據字典(DD)所定義的對象都包含于()。
A.軟件結構圖
B.方框圖
C.數據流圖(DFD圖)
D.程序流程圖
正確答案:C
17.若有定義語句:“int x=12,y=8,z;”,在其后執行語句“z=0.9+x/y;”,則2的值為()。
A.1.9
B.1
C.2
D.2.4
正確答案:A
18.以下選項中與 if (a==1 ) a=b; else a++; 語句功能不同的 switch 語句是
A )
switch (a )
{case : a=b ; break ;
default:a++ ;
}
B )
switch (a==1 )
{case 0 : a=b ; break ;
case 1 : a++ ;
}
C )
switch (a )
{default : a++ ; break ;
case 1 : a=b ;
}
D )
switch (a==1 )
{case 1 : a=b ; break ;
case 0 : a++ ;
}
正確答案:B
19.若變量已正確定義,有以下程序段: i=0; do printf("%d,",i); while(i++); print f("%d ",i); 其輸出結果是( )。
A.0,0
B.0,1
C.1,1
D.程序進入無限循環
正確答案:B
全國計算機二級考試《C語言》真題與答案 篇2
一、選擇題((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.文件由字符序列組成,其類型只能是文本文件
【全國計算機二級考試《C語言》真題與答案】相關文章:
下半年全國計算機二級C語言考試真題及答案09-25
計算機二級C語言歷年真題及答案05-29
計算機等級考試二級C語言真題09-26
全國計算機二級考試C++真題09-20
計算機二級C語言真題09-30
全國計算機二級考試C語言選擇題練習及答案07-01
計算機二級C語言筆試真題10-12
計算機二級C語言真題填空題05-08