计算机二级考试习题练习

国家计算机二级c语言历年真题及答案
1题:下列数据结果中,能够按照“先进后出”原则存取数据的是()
A.循环队列
B.栈
C.队列
D.二叉树
【单选题】:      

2题:对于循环队列,下列叙述中正确的是()
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针可以大于队尾指针,也可以小于队尾指针

【单选题】:      

3题:算法的空间复杂度是指()
A.算法在执行过程中所需要的计算机存储空间
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的临时工作单元数

【单选题】:      

4题:软件设计中划分模块的一个准则是()
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合

【单选题】:      

5题:下列选项中不属于结构化程序设计原则的是()
A. 可封装
D. 自顶向下
C. 模块化
D. 逐步求精

【单选题】:      

6题:数据库管理系统是()
A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统

【单选题】:      

7题:在E-R图中,用来表示实体联系的图形是()
A. 椭圆图
B. 矩形
C. 菱形
D. 三角形

【单选题】:      

8题:以下叙述中正确的是()
A.程序设计的任务就是编写程序代码并上机调试
B.程序设计的任务就是确定所用数据结构
C.程序设计的任务就是确定所用算法
D.以上三种说法都不完整

【单选题】:      

9题:以下选项中,能用作用户标识符的是()
A.void
B.8_8
C._0_
D.unsigned
【单选题】:      

10题:阅读以下程序
#include
main()
{ int case; float printF;
printf(“请输入2个数:”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f\n”,case,printF);
}
该程序编译时产生错误,其出错原因是()
A.定义语句出错,case是关键字,不能用作用户自定义标识符
B.定义语句出错,printF不能用作用户自定义标识符
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出case的值

【单选题】:      

11题:表达式:(int)((double)9/2)-(9)%2的值是()
A.0
B.3
C.4
D.5

【单选题】:      

12题:若有定义语句:int x=10;,则表达式x-=x+x的值为()
A.-20
B.-10
C.0
D.10

【单选题】:      

13题:设有定义: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;}

【单选题】:      

14题:以下程序段中,与语句: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;

【单选题】:      

15题:有以下程序
#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.输出无定值
【单选题】:      

16题:以下函数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;放错了位置

【单选题】:      

17题:若有定义语句: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]
【单选题】:      

18题:下面是有关C语言字符数组的描述,其中错误的是()
A.不可以用赋值语句给字符数组名赋字符串
B.可以用输入语句把字符串整体输入给字符数组
C.字符数组中的内容不一定是字符串
D.字符数组只能存放字符串

【单选题】:      

19题:下列函数的功能是()
fun(char * a,char * b)
{ while((*b=*a)!=’\0’) {a++,b++;} }
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有’\0’

【单选题】:      

20题:设有以下函数
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;

【单选题】:      

21题:下面结构体的定义语句中,错误的是()
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;

【单选题】:      

22题:设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是()
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=”string”;

【单选题】:      

23题:若有以下程序段
int r=8;
printf(“%d\n”,r>>1);
输出结果是()
A.16
B.8
C.4
D.2

【单选题】:      

24题:下列关于C语言文件的叙述中正确的是()
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件

【单选题】:      

25题:某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有 【】个结点。
【填空题】:

26题:程序流程图中的菱形框表示的是【】。
【填空题】:

27题:软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中【】阶段产生“软件需求规格说明书。
【填空题】:

28题:在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为【】。
【填空题】:

29题:人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是【】。
【填空题】:

30题:若有定义语句:inta=5;,则表达式:a++的值是【】。
【填空题】:

31题:若有语句doublex=17;inty;,当执行y=(int)(x/5)%2;之后y的值为【】。
【填空题】:

32题:以下程序运行后的输出结果是 【 】 。
#include
main()
{ int x=20;
printf(“%d”,0
printf(“%d\n”,0

【填空题】:

33题:以下程序运行后的输出结果是 【 】 。
#include
main()
{ int a=1,b=7;
do {
b=b/2;a+=b;
} while (b>1);
printf(“%d\n”,a);}
【填空题】:

34题:有以下程序
#include
main()
{ int f,f1,f2,i;
f1=0;f2=1;
printf(“%d %d”,f1,f2);
for(i=3;i<=5;i++)
{ f=f1+f2; printf(“%d”,f);
f1=f2; f2=f;
}
printf(“\n”);
}
程序运行后的输出结果是 【 】 。

【填空题】:

 

您正在结束答题

请确认是否提交试卷?

继续做题 确认提交