二级C200份真题.docx
- 文档编号:16609203
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:26
- 大小:36.92KB
二级C200份真题.docx
《二级C200份真题.docx》由会员分享,可在线阅读,更多相关《二级C200份真题.docx(26页珍藏版)》请在冰点文库上搜索。
二级C200份真题
一、选择题
在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(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如下:
R
A
B
C
a
1
2
b
2
1
c
3
1
S
A
B
C
d
3
2
T
A
B
C
a
1
2
b
2
1
c
3
1
d
3
2
其中关系T由关系R和S通过某种操作得到,该操作为________。
A)选择B)投影C)交D)并
(11)以下叙述中正确的是________。
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
(12)以下选项中,能用作用户标识符的是________。
A)voidB)8_8
C)_0_D)unsigned
(13)阅读以下程序:
#include
main()
{ intcase;floatprintF;
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)0B)3
C)4D)5
(15)若有定义语句:
int x=10;,则表达式x-=x+x的值为________。
A)-20B)-10
C)0D)10
(16)有以下程序:
#include
main()
{ int a=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2]
程序运行后的输出结果是________。
A)0,0B)1,0
C)3,2D)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;
case2:
c++;break;
case4:
c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是________。
A)3B)5
C)7D)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;
elsek=0;
C)if(a<=b)k=0;
elseif(b<=c)k=1;
D)if(a>b)k=1;
else if(b>c) k=1;
else k=0;
(20)有以下程序:
#include
main()
{ chars[]={"012xy"};inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>='a'&&s[i]<='z') n++;
printf("%d\n",n);
}
程序运行后的输出结果是________。
A)0B)2
C)3D)5
(21)有以下程序:
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf("%d %d\n",k,n);
}
程序运行后的输出结果是________。
A)0 2B)1 3
C)5 7D)1 2
(22)有以下定义语句,编译时会出现编译错误的是________。
A)char a='a';
B)char a='\n';
C)char a='aa';
D)char a='\x2d';
(23)有以下程序:
#include
main()
{ charcl,c2;
cl='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",cl,c2);
}
已知字母A的ASCIl码为65,程序运行后的输出结果是________。
A)E,68B)D,69
C)E,DD)输出无定值
(24)有以下程序:
#include
void fun(intp)
{ intd=2;
p=d++; printf("%d",p);}
main()
{ int a=1;
fun(a);printf("%d\n",a);}
程序运行后的输出结果是________。
A)32B)12
C)21D)22
(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致
不能实现预定功能。
#defineMIN-2147483647
intfindmax(int x[],intn)
{ int i,max;
for(i=0;i { max=MIN; if(max return max; } 造成错误的原因是________。 A)定义语句inti,max;中max未赋初值 B)赋值语句max=MIN;中,不应给max赋MIN值 C)语句if(max D)赋值语句max=MIN;放错了位置 (26)有以下程序: #include main() { intm=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("%d,%d,%d,%d\n",m,n,*p,*q); } 程序运行后的输出结果是________。 A)1,2,1,2B)1,2,2,1 C)2,1,2,1D)2,1,1,2 (27)若有定义语句: int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是________。 A)p=aB)q[i]=a[i] C)p=a[i]D)p=&a[2][1] (28)有以下程序: #include #include main() { charstr[][20]={"Qne*World","one*Dream! "},*p=str[1]; printf("%d,",strlen(p));printf("%s\n",p); } 程序运行后的输出结果是________。 A)9,One*WorldB)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) { case0: switch(a[i]%2) {case0: a[i]++;break; case1: a[i]--; }break; case1: a[i]=0; } for(i=0;i<4;i++) printf("%d",a[i]);printf("\n"); } 程序运行后的输出结果是________。 A)3344B)2050 C)3040D)0304 (30)有以下程序: #include #include main() { chara[10]="abcd"; printf("%d,%d\n",strlen(a),sizeof(a)); } 程序运行后的输出结果是________。 A)7,4B)4,10 C)8,8D)10,10 (31)下面是有关C语言字符数组的描述,其中错误的是________。 A)不可以用赋值语句给字符数组名赋字符串 B)可以用输入语句把字符串整体输入给字符数组 C)字符数组中的内容不一定是字符串 D)字符数组只能存放字符串 (32)下列函数的功能是________。 fun(char *a,char *b) { while((*b=*a)! ='\0') {a++;b++;}} A)将a所指字符串赋给b所指空间 B)使指针b指向a所指字符串 C)将a所指字符串和b所指字符串进行比较 D)检查a和b所指字符串中是否有'\0' (33)设有以下函数: voidfun(intn,char *s){……} 则下面对函数指针的定义和赋值均正确的是________。 A)void (*pf)(); pf=fun; B)void *pf(); pf=fun; C)void *pf(); *pf=fun; D)void(*pf)(int,char); pf=&fun; (34)有以下程序: #include intf(intn); main() { inta=3,s; s=f(a);s=s+f(a);printf("%d\n",s); } intf(intn) { staticinta=1; n+=a++; returnn; } 程序运行后的输出结果是________。 A)7B)8 C)9D)10 (35)有以下程序: #include #definef(x)x*x*x main() { inta=3,s,t; s=f(a+1);t=f((a+1)); printf("%d,%d\n",s,t); } 程序运行后的输出结果是________。 A)10,64B)10,10 C)64,10D)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)charstr[]="string";c=str; B)scanf("%s",c); C)c=getchar(); D)*c="string"; (38)有以下程序: #include #include structA { inta;charb[10];doublec;}; structAf(structAt); main() { structAa={1001,"ZhangDa",1098.0); a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c); } structAf(structAt) { t.a=1002;strcpy(t.b,"changRong");t.c=1202.0;returnt;} 程序运行后的输出结果是________。 A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0 C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0 (39)若有以下程序段: int r=8; printf("%d\n",r>>1); 输出结果是________。 A)16B)8 C)4D)2 (40)下列关于C语言文件的叙述中正确的是________。 A)文件由一系列数据依次排列组成,只能构成二进制文件 B)文件由结构序列组成,可以构成二进制文件或文本文件 C)文件由数据序列组成,可以构成二进制文件或文本文件 D)文件由字符序列组成,其类型只能是文本文件 二、填空题 请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。 (1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有__【1】__个结点。 (2)程序流程图中的菱形框表示的是__【2】__。 (3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中__【3】__阶段产生"软件需求规格说明书"。 (4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么"学生"和"可选课程"的联系为__【4】__。 (5)人员基本信息一般包括: 身份证号,姓名,性别,年龄等。 其中可以作为主关键字是__【5】__。 (6)若有定义语句: inta=5;,则表达式: a++的值是__【6】__。 (7)若有语句doublex=17;inty;,当执行y=(int)(x/5)%2;之后y的值为__【7】__。 (8)以下程序运行后的输出结果是__【8】__。 #include main() { int x=20; printf("%d",0 printf("%d\n",0 (9)以下程序运行后的输出结果是__【9】__。 #include main() { inta=1,b=7; do{ b=b/2;a+=b; }while(b>1); printf("%d\n",a);} (10)有以下程序: #include main() { intf,fl,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"); } 程序运行后的输出结果是__【10】__。 (11)有以下程序: #include inta=5; voidfun(intb) { inta=10; a+=b;printf("%d",a); } main() { intc=20; fun(c);a+=c;printf("%d\n",a); } 程序运行后的输出结果是__【11】__。 (12)设有定义: structperson { intID;charname[12];}p; 请将scanf("%d",__【12】__);语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。 (13)有以下程序: #include main() { chara[20]="Howareyou? ",b[20]; scanf("%s",b);printf("%s%s\n",a,b); } 程序运行时从键盘输入: Howareyou? <回车> 则输出结果为__【13】__。 (14)有以下程序: #include typedefstruct { intnum;doubles;}REC; voidfunl(RECx) {x.num=23;x.s=88.5;} main() { RECa={16,90.0); fun1(a); printf("%d\n",a.num); } 程序运行后的输出结果是__【14】__。 (15)有以下程序: #include fun(intx) { if(x/2>0)fun(x/2); printf("%d .",x); } main() { fun(6),printf("\n");} 程序运行后的输出结果是__【15】__。 答案 一、选择题 (1)C 【解析】根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型: 线性结构与非线性结构。 线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。 根据各种结构的定义知二叉树是一种非线性结构。 (2)B 【解析】栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。 栈顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。 栈是按照"先进后出"或"后进先出"的原则组织数据的。 (3)D 【解析】循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为D)。 (4)A 【解析】算法的空间复杂度是指: 算法执行过程中所需的存储空间。 一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 (5)B 【解析】模块划分应考虑的因素包括模块之间的耦合和内聚。 一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即遵循高内聚、低耦合的原则。 (6)A 【解析】模块化、自顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计原则。 (7)C 【解析】N-S图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图(ProblemAnalysisDiagram),它是一种由左往右展开的二维树形结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E-R图即实体-联系图(EntityRelationshipDiagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。 本题答案为C)。 (8)B 【解析】数据库管理系统是指位于用户与操作系统之间的数据管理软件。 数据库管理系统是为数据库建立、使用和维护而配置的软件。 (9)C 【解析】E-R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。 (10)D 【解析】两个相同结构关系的并是由属于这两个关系的元组组成的集合。 (11)D 【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。 所以选项A)、B)、C)说法都不完整。 (12)C 【解析】C语言的标识符命名规则为: ①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同。 (13)A 【解析】标识符不能与C编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名,否则程序在编译时会出现错误。 题目源程序中使用了已经预定义的关键字case,所以将出现错误。 (14)B 【解析】(int)((double)9/2)的值为4,(9)%2的值为1,因此(int)((double)9/2)-(9)%2的值为3。 (15)B 【解析】x-=x+x可化为: x=x-(x+x),由于x初始值为10,所以计算后,x=10-20=-10,因此选B)。 (16)D 【解析】执行第一个printf语句时,b=a+b=1,所以输出1,执行第二个printf语句时,a=2*b=2,所以输出结果为2。 (17)C 【解析】逗号表达式的求解过程是: 按表达式顺序从左往右依次求解。 本题中由于判断条件a>b的值为假,所以选项A)、B)、D)中if语句后面的语句均未被执行,而C)中的后两条语句a=b和b=c被执行,因此选项C)的执行效果与其他三个不同。 (18)A 【解析】第一次循环时,k=1,在switch语句中,先执行default后面的语句,即c=c+k=1,因为没有break语句,所以不会跳出switch结构,会接着执行case2后面的语句,即c=c+1=2,然后跳出switch;第二次循环时,k=2,直接执行case2后面的语句,即c=c+1=3,然后跳出switch语句,结束循环,执行输出语句。 (19)A 【解析】表达式k=a>b? (b>c? 1∶0)∶0表示: 如果(a>b)条件为真,则k取值(b>c? 1∶0),否则k取值0;当a>b的情况下,如果b>c,则k值为1,否则为0。 所以该表达式与选项A)功能相同。 (20)B 【解析】在字符串数组s[i]中,只有当下标i=3和i=4时,才满足if条件,所以n的值从0增加两次,结果为2。 (21)D 【解析】本题考查逻辑运算符的"短路"现象,由于k的值为0,表达式首先去求k++
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 C200 份真题