二级C语言考试复习题库(500题)_第1页
二级C语言考试复习题库(500题)_第2页
二级C语言考试复习题库(500题)_第3页
二级C语言考试复习题库(500题)_第4页
二级C语言考试复习题库(500题)_第5页
已阅读5页,还剩234页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(新版)二级c语言考试复习题库(500题)

一、单选题

1.关系数据库管理系统能实现的专门关系运算包括()。

A、排序、索引、统计

B、选择、投影、连接

C、关联、更新、排序

D、显示、打印、制表

答案:B

解析:关系运算包括:①传统集合运算,包括并、交、差、广义笛卡尔积;②专

门关系运算,包括选择、投影、连接、除等。答案选择B选项。

2.下列叙述中错误的是()。

A、在数据库系统中,数据的物理结构必须与逻辑结构一致

B、数据库技术的根本目标是要解决数据的共享问题

C、数据库设计是指在已有数据库管理系统的基础上建立数据库

D、数据库系统需要操作系统的支持

答案:A

解析:数据库物理结构主要指数据的存放位置和存储结构,包括关系、索引、聚

簇、日志、备份等的存储安排和存储结构;数据库的逻瑁结构是用户所看到和使

用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。

A项错误,存储位置的改变并不影响逻辑关系。答案选择A选项。

3.有以下程序:#includemain(){char*s="12134";intk=0,a=0;while(s[k+l]!='

\0'){k++;if(k%2==0){a=a+s[k]-,0'+l;continue;}a=a+(s[k]-,0');}printf(nk=%

da=%d\n",k,a);}程序运行后的输出结果是()。

A、k=6a=ll

B、k=3a=14

C、k=4a=12

D、k=5a=15

答案:C

解析:第一次循环,k=l,s[l]=2,执行a=a+s[l]・O=2;第二次循环,k=2,

s[2]=l,执行a=a+s[2]-O+l=2+2=4;第三次循环,k=3,s[3]=3,执行a

=a+s[3]-'0,=4+3=7;第四次循环,k=4,s[4]=4,执行a=a+s[k]・'0'+l=7+

5=12,可得到结果k=4,a=12o答案选择C选项。

4有以下程序#includevoidfun(int*p,int*q){intt;t=*p;*p=*q;*q=t;*q=*p;}ma

in(){inta=0,b=9;fun(&a,&b);printf("%d%d\n"ab);}程序的输出结果是()。

A、09

B、00

C、90

D、99

答案:D

解析:main函数中变量a和b以传地址的方式传递参数,形参的改变会导致实

参的改变。fun函数的作用是先交换两个指针的指向的渣,即p指针指向的值是

9,q指针指向的值是0,然后将p指针指向的值赋给q指针,q指针指向的值

也成了9,所以a和b的值均为9,答案选择D选项。

5.有以下程序:#includemain(){intx=0xl3;if(x=0xl2)printf("True");printf("F

alse'n");}程序运行后的输出结果是()。

A、True

B、TrueFalse

C、False

D、TrueFalseTrue

答案:B

解析:if(x=0xl2)条件语句为赋值语句,注意赋值操作符与相等操作符“二

二"的区别,此处是赋值语句"="0x12即十进制的18,给x赋值18,因此if

的判断条件为真,执行输出语句,输出True;之后再执行下一个输出语句,输

出False,答案选择B选项。

6有以下程序(注:字符a的ASCII码值为97):#includemain(){char*s={"

abc-};do{printf("%d",*s%10);++s;}while(*s);}程序运行后的输出结果是()。

A、be

B、789

C、7890

D、979800

答案:B

解析:abc的ASCH值分别为97、98、99。程序中执行输出s中字符对应的A

SCII码与10进行模运算后的值,s是一个指针,首先指向字符a,先执行97%

10,结果为7;然后++s,指针指向下一个字符b,执行98%10,结果为8,

直到s所指为空,故最后输出的结果为789。答案选择B选项。

7.某二叉树共有845个结点,其中叶子结点有45个,则度为1的结点数为()。

A、400

B、754

C、756

D、不确定

答案:C

解析:在二叉树中,度为0的结点总是比度为2的结点多一个,那么,结点共

有845个,度为0的结点有45个,度为2的结点数有44个,所以度为1的结

点数有756个。答案选择C选项。

8.对建立良好的程序设计风格,下面描述正确的是()。

A、程序应简单、清晰、可读性好

B、符号名的命名只要符合语法

C、充分考虑程序的执行效率

D、程序的注释可有可无

答案:A

解析:程序不仅仅要能够正常运行,还要便于调湖口维护,所以程序语句结构应

该简单直接,具有良好的可读性,建立良好的程序设计风格。答案选择A选项。

9.支持子程序调用的数据结构是()o

A、栈

B、树

C、队列

D、二叉树

答案:A

解析:在高级语言中,函数的调用是通过栈来实现的。在进行函数调用时,系统

将所需的信息压入栈中,如函数的局部变量、返回值等,每个函数的状态是由函

数中的局部变量、函数参数值、函数的返回值地址决定的,存储这些信息的数据

区域称为活动记录,或叫做栈帧,它是运行时系统栈上分配的空间。答案选择A

选项。

10以下是if语句的基本形式:if(表达式)语句其中"表达式"()。

A、必须是逻辑表达式

B、必须是关系表达式

C、必须是逻辑表达式或关系表达式

D、可以是任意合法的表达式

答案:D

解析:if中的表达式一般是关系表达式或逻辑表达式,用于描述选择结构的条件,

但也可以是其他类型表达式,在其值非零时为真,所以任意合法的表达式都可以

做if语句的判断条件。答案选择D选项。

11.以下关于指针的叙述正确是()。

A、所有类型的指针变量所占内存的大小是一样的

B、指针变量所占内存的大小与具类型有关,char型指针变量只占1个字节,d

ouble型指针变量占8个字节

C、指针变量可直接指向任何类型的变量,而不会出现编译或运行错误

D、指针变量既可以直接指向结构体,也可直接指向结沟体中某个成员,而不会

出现编译或运行错误

答案:A

解析:所有变量地址值所占字节都相同,故指针变量所占内存大小相同,A项正

确,B项错误。只能把具有相同类型的变量地址,存放到指针变量中,结构体变

量与某个成员类型不同,不能用同样的指针指向它们,C、D两项错误。答案选

择A选项。

12.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)

的程序段是()。

A、n=O;while((ch=getchar())!="\nM)n++;

B、n=O;while(getchar()!="\n";n++);

C、for(n=0;getchar()!="\n";n++);

D、n=0;for(ch=getchar()!="\n";n++);

答案:D

解析:要统计一行中输入宁符个数(不包含回车符)的程序实现,首先定义一个用

作统计的变量n,赋初值为0;因为字符结束应该有换行符,所以该行字符是否

结束的判断条件应为"getchar()!="\n"";D项中for循环表达式格式错误,

应在ch前添加丁,注意for循环中有三个表达式,必须有两个分号,D项编

译错误。答案选择D选项。

13.下面描述不属于软件特点的是()。

A、软件是一种逻辑实体,具有抽象性

B、软件在使用中不存在磨损、老化问题

C、软件复杂性高

D、软件使用不涉及知识产权

答案:D

解析:软件具有以下特点:①软件是一种逻辑实体,具有抽象性;②软件没有明

显的制作过程;③软件在使用期间不存在磨损、老化问题;④软件对硬件和环境

具有依赖性;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素,如

知识产权等。答案选择D选项。

14.下列选项中不属于面向对象程序设计特征的是()。

A、分类性

B、多态性

C、类比性

D、封装性

答案:C

解析:面向对象设计是建立在"对象”概念上的方法学,对象是面向对象语言中

类的实体,其特点包括:①标识唯一性,对象可区分;②分类性,可以将具有相

同属性和操作的对象抽象成类:③多态性,同一个操作对于不同对象表现不同的

行为;④封装性,屏蔽数据的具体结构以及操作的算法;⑤模块独立性好,对象

内部各种元素结合紧密,内聚性强。答案选择C选项。

15.设有定义而此位[10]即二4以下能给数组x下标为6的元素读入数据的正

确语句是()。

A、scanf("%f",&x[6]);

B、scanf("%lf",*(x+6));

C、scanf("%lf",p+6);

D、scanf("%lf",p[6]);

答案:C

解析:scanf函数的一般形式为:scanf(格式控制字符串,地址列表)"其中的地

址列表应当是存放输入数据变量的地址。A项,"%f”格式符对应的是float类

型的变量;BD两项,*仅-6)和p⑹都表示下标为6的元素的值而非其地址;C

项,P+6表示数组x下标为6的元素的地址。答案选择C选项。

16.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

()o

A、函数的形参和实参分别占用不同的存储单元

B、形参只是形式上的存在,不占用具体存储单元

C、同名的实参和形参占同一存储单元

D、函数的实参和其对应的形参共占同一存储单元

答案:A

解析:函数体中,变量(包括形参)只在函数被调用时才临时开辟存储单元,当

退出函数时,这些临时开辟的存储单元全被释放掉。C语言中函数调用可以分成

传值和传引用,传值调用,形参是实参的数据拷贝;传引用调用,形参是实参的

指针拷贝;所以,形参和实参占用不同的存储单元。答案选择A选项。

17.若变量已正确定义并赋值,则错误的赋值语句是()。

A、=a+l;

B、a=sizeof(double);

C、a=d||c;

D、a+l=a;

答案:D

解析:赋值号的左边必须是一个代表某个存储单元的变量名,赋值号的右边必须

是C语言中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把

此值赋给赋值号左边的变量。答案选择D选项。

18.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后

序序列为()。

A、EFGDCBA

B、DCBEFGA

C、BCDGFEA

D、CBGFEA

答案:D

解析:二叉树的前序序列为ABCDEFG,A为根结点。中序序列为DCBAEFG,

可知DCB为左子树结点,EFG为右子树结点。依此类推,画出该二叉树,二叉

树的后序序列为DCBGFEA。答案选择D选项。

19.以下叙述正确的是()。

A、C程序总是以main。作为程序执行的起始行

B、main。函数若不带参数,其后面的一对圆括号可省略

C、函数体内的定义语句和可执行语句允许任意穿插出现

D、C语言中的语句之间必须用分号1乍为分隔符

答案:A

解析:main函数后面的括号告诉编译器这是一个函数,不可以省略,排除B选

项;在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出

现在执行语句的前面,故^除C选项;C语言中的某些语句可以不用分号,例如

if语句,宏定义,故D选质错误。答案选择A选项。

20.有以下程序#includemain(){char

B,c;inti;b='a';c=,A';for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}

printf("\n");}程序运行后的输出结果是()。

A、BcDeF

B、ABCDEF

C、AbCdEf

D、abcdef

答案:C

解析:本题中,当i为偶数时,即0、2、4,执行pu析har(i+c)会依次输出AC

E;当i为奇数时,即1、3、5,执行putchar(i+b)会依次输出bdf,所以最终

输出AbCdEf。答案选择C选项。

21.若有定义语句:intx=12,y=8,乙在其后执行语句:z=0.9+x/y;则z的值为()。

A、1.9

B、1

C、2

D、2.4

答案:B

解析:由于X,y,z都是整型数据,所以x除以y的值为整型数值1,之后1和

0.9相加得到1.9,再转换为整型数1赋给整型变量z。答案选择B选项。

22.有两个关系R和T如下:则由关系R得到关系T的操作是()。

A、投影

B、交

C、选择

D、并

答案:A

解析:关系T是由关系R的第1、3列的元组组成,这是对关系R进行投影运算

的结果。可以简单理解为:选择运算是对行(元组)的噪作,投影运算是对列的

操作。投影运算是对列的操作。投影是从表中选出指定的属性值组成新表,是单

目运算,答案选择A选项,

23若a是数值类型,则逻辑表达式(a=二l)||(a!=l)的值是()。

A、1

B、0

C、2

D、不知道a的值,不能确定

答案:A

解析:运算符"II"为逻辑或运算符,即只要两边的条件表达式中有一个为"真",

则“逻辑或"的运算结果就为"真"。当a==l时,运算符左边的表达式为"真";

当a!=l时,运算符右边的表达式为"真"。因此,逻辑表达式(a==l)||(a!=l)

的值恒为1。答案选择A选项。

24.有两个关系R与S如下,由关系R和S得到关系T,则所使用的操作为()。

A、并

B、自然连接

C、除法

D、交

答案:C

解析:除运算可以近似地看作笛卡尔积的逆运算。R-S=T,T称为R除以S的

商。S中属性为A和Al,T中属性为B和B1,在R元组中找到对应于S中两

个元组的中元组为与中最后一个元组与中无对应关系,所以在

Tf3n2oRST

中也不会出现。答案选择C选项。

25.若变量已正确定义,在if(W)printf("%d\n",k);中以下不可替代W的是()。

A、<>b+c

B、c=getchar()

C、a==b+c

D、a++

答案:A

解析:在C语言中,表示不等于不能用,而只能使用"!="。答案选择

A选项。

26.关于C语言的变量名,以下叙述正确的是()。

A、变量名不可以与关键字同名

B、变量名不可以与预定义标识符同名

C、变量名必须以字母开头

D、变量名是没有长度限制的

答案:A

解析:合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以

字母或下划线开头。关键字是指被C语言保留的,不能用作其他用途的标识符,

它们在程序中都代表着固定的含义,用户不可重新定义,A项正确、BC两项错

误。变量名没有长度限制,但不可超过编译器可以辨识的范围,D项错误。答案

选择A选项。

27有以下程序#includemain(){intx,y,z;x=y=l;z=x++,y++,++y;printf("%d,%

d,%d\n",x,y,z);}程序运行后的输出结果是()。

A、231

B、2,3,2

C、2,3,3

D、2,2,1

答案:A

解析:考查逗号表达式。注意区分,z=x++是先将x的值赋给z,在令x臼增;

z=++x是先将x自增,再将自增后的值赋给z;而无论是++x还是x++,都会

完成x自增的运算。对于表达式"z=x++»++,++%”,因为赋值运算符的优先

级高于逗号运算符的优先级,所以可以将上式改成"(z=x++),(y++),(++y『。

然后从左向右先计算表达式z=x++,后缀自增运算先进行其他运算,再执行自

增运算,所以z的值为1,x的值为2,再计算逗号表达式第二个表达式y++,

此时y的值为1,y++的值为2,最后计算第三个表达式++y,y的值为3。答

案选择A选项。

28.数据库管理系统是()。

A、操作系统的一部分

B、在操作系统支持下的系统软件

C、一种编译系统

D、一种操作系统

答案:B

解析系统软件主要包括:①操作系统软件;②各种语言的解释程序和编译程序;

③各种服务性程序;④各种数据库管理系统。数据库管理系统是一种系统软件,

负责数据库中的数据组织、数组操纵、数据维护、控制和保护以及数据服务等。

答案选择B选项。

29.以下选项中,不能对主函数中变量i和j的值进行交换的程序是()。

A#includevoidswap(int*p,int*q){int*t;*t=*p;*p=*q;*q=*t;}main(){inti=10/

j=20,*a=&i,*b=&j;swap(a,b);printf("i=%dj=%d\n",i,j);}

B、#includevoidswap(int*pjnt*q){intt;t=*p;*p=*q;*q=t;}main(){inti=10j=

20,*a-84i,*b-84j;swap(a,b);printf("i-%dj=%d\n"/i,j);}

C、#include#includevoidswap(int*pjnt*q){int*t;t=(int*)malloc(sizeof(int));

*t=*p;*p=*q;*q=*t;free(t);}main(){inti=10/j=20;swap(&i/&j);printf("i=%dj

=%d\n\ij);}

D、#includevoidswap(int*p,int*q){intt;t=*p;*p=*q;*q=t;}main(){inti=10j=

20,*x=&i/*y=&j;swap(x,y);printf("i=%dj=%d\n",iJ);)

答案:A

解析:A项,定义了一个临时指针t,实现两个指针地址的交换,而传入的参数

是两个变量i和j的地址,但是函数内部交换的是地址值,并没有交换主函数中

变量i与j的值;B项,调用函数传入的是i与j地址,函数体内交换的是地址内

元素,临时变量t为整型变量,能实现i与j值交换;C项,调用函数传入的是i

与j地址,函数体内交换的是地址内元素,临时变量t为整型指针,且已正确开

辟内存,能实现i与j值交换;D项与B项相同,能实现i与j值交换。答案选

择A选项。

30.下列叙述中正确的是()。

A、栈是〃先进先出"的线性表

B、队列是“先进后出"的线性表

C、循环队列是非线性结构

D、有序线性表既可以采用顺序存储结构,也可以采用睫式存储结构

答案:D

解析:有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错

误,栈是"先进后出”的线性表;B项错误,队列是“先进先出"的线性表;C

项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采

用链式存储结构。答案选择D选项。

31.在数据库系统中,数据库用户能够看见和使用的局部数据的逻辑结构和特征

的描述是()。

A、外模式

B、逻辑模式

C、概念模式

D、物理模式

答案:A

解析:数据库的标准结构为三级模式结构,包括:①外模式;②模式;③内模式。

其中,外模式也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑

结构和特征描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表

示。答案选择A选项。

32.若函数中有定义语句:intk则()。

A、系统将自动给k赋初值0

B、这时k中的值无定义

C、系统将自动给k赋初值-1

D、这时k中无任何值

答案:B

解析:intk;这条语句是定义一个整型变量k,这是动态定义,编译程序仅为k开

辟存储单元,而没有在存储单元中存放彳玉可初值,此时变量中的值时无意义的。

若是静态定义,则会臼动初始化,其默认值为答案选择选项。

O0B

33.以下叙述正确的是()。

A、C语言函数可以嵌套调用,例如:fun(fun(x))

B、C语言程序是由过程和函数组成的

C、语言函数不可以单独编译

D、C语言中除了main团数,具他函数不可作为单独文件形式存仕

答案:A

解析:一个函数的返回值可以作为参数然后彳专给另一个函数,因此函数是可以嵌

套调用的。B项错误,C语言程序只有函数构成,没有过程;C项错误,编译系

统的任务在于检查语法错误,只要符合语法规则的C程序都可以通过编译,就

算是单独的函数也可以;D项错误,在C语言中除main。函数以外的其他函数

可以和main。函数在同一个C文件中,也可以单独处于其他的C文件,只要在

使用到这些函数的main。函数的C文件中用预编译指令^include"包含进来

即可。答案选择A选项。

34.以下描述中,不是线性表顺序存储结构特征的是()。

A、可随机访问

B、需要连续的存储空间

C、不便于插入和删除

D、逻辑相邻的数据物理位置上不相邻

答案:D

解析:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素称

为顺序存储,其中逻辑上相邻的元素在物理位置上也相邻。顺序存储结构中可以

随机访问元素,但插入和删除需要移动大量数据,耗费资源。答案选择D选项。

35.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),

课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键

或码)为().

A、课号,成绩

B、学号,成绩

C、学号,课号

D、学号,姓名,成绩

答案:C

解析:学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键

字应该是与前两个表能够直接联系且能唯一定义的学号和课号。答案选择C选

项。

36.已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n二c<d)后

n的值为()。

A、1

B、0

C、2

D、-1

答案:C

解析:"="优先级低于"<"、。"&&"逻辑与表达式。expl&&exp

2,规则为:对expl求值,若为0,则表达式为0,则不计算exp2;若expl

非0,则求exp2值,作为表达式值。本题计算过程为:先判断a、b为假,m二

0,整个逻辑表达式为假,不计算右表达式,n=2e答案选择C选项。

37.下列特征中不是面向对象方法的主要特征的是()。

A、多态性

B、标识唯一性

C、封装性

D、耦合性

答案:D

解析:面向对象设计是建立在"对象"概念上的方法学,对象是面向对象语言中

类的实体,其特点包括:①标识唯一性,对象可区分;②分类性,可以将具有相

同属性和操作的对象抽象成类:③多态性,同一个操作对于不同对象表现不同的

行为;④封装性,屏蔽数据的具体结构以及操作的算法;⑤模块独立性好,对象

内部各种元素结合紧密,内聚性强。答案选择D选项。

38.下列数据结构中,能用二分法进行查找的是()。

A、顺序存储的有序线性表

B、线性链表

C、二叉链表

D、有序线性链表

答案:A

解析:二分查找只适用于顺序存储的有序表。此处所说的有序表是指线性表中的

元素按值非递减排列或非递增排列。答案选择A选项。

39.线性表常采用的两种存储结构是()。

A、散列方法和索引方式

B、链表存储结构和数组

C、顺序存储结构和链式存储结构

D、线性存储结构和非线性存储结构

答案:C

解析:线性表常用的存储结构为:①顺序存储结构,物理上连续存储,空间位置

隐含逻辑位置;②链式存储结构,各元素物理存储上不连续,通过指针相连。答

案选择C选项。

40.以下叙述中错误的是()。

A、基类型不同的指针可以直接相互赋值

B、函数可以通过指针形参向所指单元传回数据

C、字符型指针可以指向一个字符串

D、一般情况下,指针的运用可使程序代码效率更高

答案:A

解析:把一个指针变量的值赋给另一个指针变量,但一定要确保这两个指针变量

的基类型是相同的。答案选择A选项。

41有以下程序#includeintk=5;voidf(int*s){s=&k;*s=7;}main(){intm=3;f(&

m);printf("%d,%d\n",m,k);濯序运行后的输出结果是()。

A、3,5

B、7.7

C、5,7

D、3,7

答案:D

解析:函数f的功能是定义一个整型的指针变量s,指向全局变量k,然后修改s

指向地址中的值为7,因此f函数只是修改全局变量k的值为7,与main函数

中临时变量m无关,因此最后输出为3,7。答案选择D选项。

42.在E-R图中,用来表示实体联系的图形是()。

A、椭圆形

B、矩形

C、菱形

D、三角形

答案:C

解析:在E-R图中,菱形表示联系,矩形表示实体,椭圆形表示属性。答案选

择C选项。

43.设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top

=30(指向栈顶元素)。则栈中的元素个数为()。

A、30

B、29

C、20

D、19

答案:C

解析:栈是一种特殊的线性表,它所有的插入与删除操作都限定在表的同一端进

行。入栈运算即在栈顶位置插入一个新元素,退栈运算即取出栈顶元素赋予指定

变量。在内存中,栈的增大方向是地址递减,元素依次存储在单元30:49中,

个数为:49-30+1=20个。答案选择C选项。

44.有以下函数:#includevoidexch(intt[]){t[0]=t[5];}main(){intx[10]={1,2,3,

4f5/6/7,8,9,10}/i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%d

\n",x[i]);}程序运行后的输出结果是()。

A、246810

B、13579

C、12345

D、678910

答案:D

解析:函数exch的作用就是把数组某个元素的值变为这个元素位置加5后对应

的元素值,所以执行完之后输出数组x的前五个元素的值,其实就是数组x的后

五个元素的值,答案选择D选项。

45.下面不属于软件设计阶段任务的是()。

A、软件的功能确定

B、软件的总体结构设计

C、软件的数据设计

D、软件的过程设计

答案:A

解析:软件设计阶段的任务包括:①结构设计;②数据设计;③接口设计;④过

程设计。软件的功能确定是在需求分析阶段完成的。答案选择A选项。

46.下列选项中属于面向对象设计方法主要特征的是()。

A、继承

B、自顶向下

C、模块化

D、逐步求精

答案:A

解析:面向对象设计方法的主要特征有封装性、继承性和多态性。而结构化程序

设计方法的主要原则有自顶向下、逐步求精、模块化、限制使用goto语句。B

CD三项是结构化程序的主要特征。答案选择A选项。

47.设有定义:doublex=2.12;,以下不能完整输出变量x值的语句是()。

A、pnntf("x=%5.0f\n",x);

B、printf("x=%f\n",x);

C、printf(wx=%lf\n",x);

D、printf("x=%0.5An';x);

答案:A

解析:printf函数控制字符%f输出float类型,%lf输出double类型。格式控

制%01.吊,表示数据输出总的宽度为m位,其中小数部分占n位。当数据的小

数位多于指定宽度n时,截去右边多余的小数,并对截去的第一位小数做四舍

五入处理;而当数据的小数位少于指定宽度n时,在小数的右边补零;当m小

于有效位数时,整数部分输出所有有效数字并且自动龙齐,小数部分按照n指

定位数输出。A项按照flcat格式输出数据,宽度为5位,保留小数。位,输出

为2,不能完整输出x。B项按照float格式输出数据,输出为2.120000。C项

按照double格式输出数据,输出为2.120000.D项按照float格式输出数据,

保留小数位数为5,输出为2.12000.答案选择A选项。

48.以下选项中,当x为大于1的奇数时,值为0的表达式是()。

A、x%2==l

B、x/2

C、x%2!=0

D、x%2==0

答案:D

解析:当x为大于1的奇数,x%2==l,则表达式x%2==0为假(即值为0),

答案选择D选项。

49.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于()。

A、定义阶段

B、开发阶段

C、维护阶段

D、上述三个阶段

答案:B

解析:软件生命周期可分为:①定义阶段,包括可行性研究、需求分析;②开发

阶段,包括概要设计、详细设计、实现、测试;③维护阶段,包括使用、维护、

退役。答案选择B选项。

50.数据库系统在其内部具有3级模式,用来描述数据库中全体数据的全局逻辑

结构和特性的是()。

A、外模式

B、概念模式

C、内模式

D、存储模式

答案:B

解析:概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,

由若干个概念记录类型组成,还包含记录间联系、数据的完整性、安全性等要求。

它不涉及具体的硬件环境与平台,与具体的软件环境也无关。答案选择B选项。

51.有以下函数:#includevoidfunc(intn){inti;for(i=0;i<=n;i++)printf("*");pri

ntf("#");}main(){func(3);printf("????");func(4);printf("\n");}程序运行后的输

出结果是()。

A、****#????***#

B、***#????*****#

C、**#????*****#

D****#????*****#

答案:D

解析:从main函数开始,执行func()函数,for循环执行4次,连续输出四个

“,然后输出一个"#;输出"????”;再次调用func(),for循环执行5

次,连续输出五个,然后输出一个“铲’;最后输出换行符。答案选择D

选项。

52.对有序线性表(23,29,34,55,60,70,78)用二分法查找值为60的

元素时,需要比较次数为()。

A、1

B、2

C、3

D、4

答案:C

解析:二分法查找法不断的将序列分为可能包含和必然不包含的两部分,本题流

程为:①将60与中间的元素55进行比较,60>55,所以60不可能在前4个

元素中;②第二次将60与中间的元素70进行比较,60<70,所以60不可能在

后2个元素中;③第三次将60与中间元素60比较,这时食找成功。答案选择

C选项。

53.有以下程序:#includemain(){inta=l,b=2;for(;a<8;a++){b+=a;a+=2;}pri

ntf("%d,%d\n”ab);}程序运行后的输出结果是()。

A、9,18

B、8,11

C、7,11

D、10,14

答案:D

解析:初始值a=l,b=2,第一次循环:b=b+a=2+l=3,a=a+2=l+2=3,a

=a+l=3+l=4;第二次循环:b=b+a=3+4=7,a=a+2=4+2=6,a=a+l=6

+1=7;第三次循环:b=b+a=7+7=141a=a+2=7+2=9,a=a+l=9+l=10,

不满足for循环条件退出循环,最终a=10,b=14。答案选择D选项。

54.以下关于C语言的叙述中正确的是()。

A、C语言中的注释不可以夹在变量名或关键字的中间

B、C语言中的变量可以在使用之前的任何位置进行定义

C、在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D、C语言的数值常量中夹带空格不影响常量值的正确表示

答案:A

解析:A项正确,C语言中,程序中的注释可以出现在程序中任何合适的地方,

但是,不能写在变量名或关键字的中间,一旦写在其中旬,将会失去变量名或关

键字的意义,导致报错;B项错误,条件没有说全,应该是在有效的范围内,变

量可以在任何位置定义,例如注释中定义无效。C项错误,在C语言的算术运算

符中,取余运算符"%〃的两个运算分量必须是整数,但对于其他运算符,如,

来说,两侧的运算符类型也可以不一样,例如左侧为一个字符类型,右侧

为一个整数类型,系统在执行程序时会自动将字符类型转换为ASCH值进行运算;

D项错误,C语言的数值表示时各个数位必须紧靠在一起,否则编译系统只会识

别紧靠运算符的一部分数值,另一部分数值会发生语法错误。答案选择A选项。

55.以下选项中可用作C程序合法实数的是()。

A、leO

B、3.0e0.2

C、E9

D、9.12E

答案:A

解析:C程序的合法实数有小数和指数两种表示形式。其中,对于用指数形式表

示的实数来说,字母e或E之前必须要有数字,且字母e或E后面的指数必须

为整数。B项,e后的指数不能为小数形式;C项,E前必须要有数字;D项,E

后缺少整数形式的指数。答案选择A选项。

56.在黑盒测试方式中,设计测试用例的主要根据是()。

A、程序外部功能

B、程序内部逻辑

C、程序数据结构

D、程序流程图

答案:A

解析:黑盒测试也称功能测试或数据驱动测试,完全不考虑程序内部逻辑结构和

具体代码,把程序看作是一个不能打开的黑盒子,依据软件需求规格说明书,检

查程序的功能是否符合它的功能说明,主要针对软件界面和软件功能进行测试。

答案选择A选项。

57.若有定义语句intabdoublex;则下列选项中没有错误的是()。

A、switch(x%2){case0:a++;break;casel:b++;break:default:a++;b++;}

B、switch((int)x/2.0){case0:a++;break;casel:b++;break;default:a++;b++;}

C、switch((int)x%2){case0:a++;break;casel:b++;break;default:a++;b++;}

D、switch((int)(x)%2){case0.0:a++;break;casel.0:b4-+;break;default:a++;

b++;}

答案:C

解析:switch语句中,表达式的类型应与case语句后的常量类型保持一致,并

且switch的判断条件只能为整型或字符型,case后面为常量表达式。A项,x%

2得到的是浮点型数据,而case语句后的常量是整型数据,类型不一致;B项,

(int)x/2.。得到的也是浮点型数据,类型不一致;口项,(int)x%2.0得到的是整

型数据,而case语句后的常量是浮点型数据,类型也不一致。答案选择C选项。

58.有以下程序:#includemain(){intA-O,B-O,C=O;C=(A-A-5);(A=B,B+-4);

printf("%d,%d,%d\n",ABC);}程序运行后输出的结果是()。

A、0,4,5

B、4,4,5

C、4,4,4

D、0,0,0

答案:A

解析:C语言中可以将多条语句放在同一行,用丁隔开。赋值运算和逗号运

算都是从左到右结合。首先执行A-=A-5,即A=A-(A-5),得A的值为5,然

后执行C=(A-=A-5),即将A的值5赋给变量C,使得C的值也为50然后执

行下句逗号表达式中的A二B,把B的值。赋给A,此E寸A的值为0,然后执行

B=B+4,使得B的值为4,最后打印输出。答案选择A选项。

59.下列叙述中,不符合良好程序设计风格要求的是()。

A、程序的效率第一,清晰第二

B、程序的可读性好

C、程序中要有必要的注释

D、输入数据前要有提示信息

答案:A

解析:"清晰第一,效率第二"是当今主导的程序设计风格。对程序的要求不仅

是能够运行正常,还要便于调试和维护,所以程序要具有良好的可读性,语句结

构应该简单直接,这有利于程序的开发与维护。答案选择A选项。

60.若有以下程序#includemain(){inta=-2,br0;do{++b;}while(a++);printf("%

d,%d\n"ab);}则程序的输出结果是()。

A、2,3

B、0,2

C、1,2

D、1,3

答案:D

解析:while(a++)是先判定a是否为0,不管判定结果如何,都执行a++。当

a++的值为。时,a的值为1,即a增加了3,因此,b也增加3。答案选择D

选项。

6L有以下程序#includemain(){inta=l,b=3,c=5;int*pl=&a,*p2=&b,*p=&c;

*p=*pl*(*p2);printf("%d\n"©;}执行后的输出结果是()。

A、4

B、2

C、1

D、3

答案:D

解析本题中*p=*pl*(*p2)=a*b=3,也就是将指针p所指存储空间的值改为3,

即c改为3。答案选择D选项。

62.下列叙述中正确的是()。

A、所谓有序表是指在顺序存储空间内连续存放的元素序列

B、有序表只能顺序存储在连续的存储空间内

C、有序表可以用链接存储方式存储在不连续的存储空间内

D、任何存储方式的有序表均能采用二分法进行查找

答案:C

解析:"有序”是指线性表中的元素按照升序或降序(允许相邻元素相同)的方

式排列。有序是一个逻辑概念,与物理存储无关。二分法食找时涉及下标运算,

要求有序表必须顺序存储。答案选择C选项。

63.有如下程序:#includemain(){inta=O,b=l;if(++a==b++)printf(',T");elsep

rintf(nF");printf("a=%d,b=%d\n"ab);printf("\n");}程序运行后的输出结果是

()o

A、Ta=O,b=l

B、Fa=l,b=2

C、Ta=l,b=2

D、Fa=0,b=2

答案:C

解析:程序执行过程为:判断++a==b++是否成立,++a前置运算先加1,则

运算符二二左边表达式值为1,a=l,b++后置运算先取值,则二二右边表达式值

我1,b=2,即是判断1==1,成立,输出T,输出a=l,b=2。答案选择C选

项。

64.在E-R图中,用()来表示实体之间联系。

A、矩形

B、菱形

C、椭圆形

D、正方形

答案:B

解析:E-R图是实体联系模式图,其中用矩形表示实体集;用椭圆形表示属性;

用菱形表示联系。答案选择B选项。

65.以下程序段中,不能实现条件〃如果a

A、x=(a>=b)?-10:10;

B、if(a<b)x=10;elsex=-10;

C、x=-10;if(b>a)x=10;

D、if(a<b)x=10;if(b<a)x=-10;

答案:D

解析:A项:条件运算符?运算过程为:如果a>=b,x=-10,否则x=10,能

实现题目中功能。B项:如果a<b,则x=10,否则x=-10,能实现题目中功能。

c项:首先赋值x=-10,如果a<b,则x=10,即在a>二b情况下有x=-10,

能实现题目中功能。D项:如果a<

B,贝I」x=10,如果b<a,贝Ux=-10,其中没有对a=b进行判断,不能实现题

目中功能,答案选择D选项。

66.结构化程序设计的基本原则不包括()。

A、多态性

B、自顶向下

C、模块化

D、逐步求精

答案:A

解析:结构化程序设计的基本原则包括:①模块化;②自顶向下;③逐步求精;

④限制使用got。语句。多态性是面向对象的设计思想。答案选择A选项。

67.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为()。

(假设根结点仕第1层)

A、3

B、4

c、6

D、7

答案:D

解析:在任意一个二叉树中,度为0的叶子结点总比度为2的结点多一个,所

以本题中度为2的结点为1-1=0个,即二叉树的每一个结点都只有一个孩子,7

个结点共7层。答案选择D选项。

68.有以下程序:#includemain(){char*s="120119110";intn0,nl,n2,nn/i;n0=

nl=n2=nn=i=0;do{switch(s[i++]){default:nn++;case'0':n0++;case'l,:nl+

+;case'2':n2++;}}while(s[i]);printf("n0=%d,nl=%d,n2=%d,nn=%d\n",n0,

r)Ln2,nn);}程序的运行结果是()。

A、n0=3,nl=8,n2=9,nn=l

B、n0=2,nl=5,n2=l,nn=l

Gn0=2,nl=7,n2=10,nn=l

D、n0=4,nl=8,n2=9,nn=l

答案:A

解析:本题执行过程为:s[0]='l',匹配caseT,nl=l,n2=l;s[l]='2',匹

,,

配case2,n2=2;s[2]='0',匹配case'。',n0=l,nl=2,n2=3;s[3]=lz

匹配caseT,nl=3,n2=4;s[4]='l',匹配caseT,nl=4,n2=5;s[5]='

9',匹配default,nn=l,n0=2,nl=5,n2=6;s[6]='l',匹配caseT,nl

=6,n2=7;s[7]=*r,匹配case'l',nl=7,n2=8;s[8]='O',匹配ease'。’,

n0=3,nl=8,n2=9;s[9]='\0'f退出循环。输出nO,nl,n2,nn为3,8,

9,1,答案选择A选项。

69.若实体A和B是一对一的联系,实体B和C是多对一的联系,则实体A和C

的联系是()。

A、多对一

B、一对多

C、一对一

D、多对多

答案:A

解析:实体集之间必须通过联系来建立联接关系,分为:①一对一联系,即1:

1;②一对多联系,即1:m;③多对多联系,即m:n。本题中,A与B是1:

1联系,B与C是m:1联系,所以A与C是m:1联系,即多对一。答案选

择A选项。

70.当数据库中数据总体逻辑结构发生变化,而应用程序不受影响,称为数据的

()。

A、逻辑独立性

B、物理独立性

C、应用独立性

D、空间独立性

答案:A

解析:数据独立性是指数据独立于程序,包括:①物理独立性,指数据的物理结

构改变,应用程序不用改变;②逻辑独立性,指数据的逻辑结构改变,应用稗*

不用改变。答案选择A选项。

71.设变量已正确定义并赋值,以下正确的表达式是()。

A、x=y*5=x+z

B、intQ5.8%5)

C、x=y+z+5,++y

D、x=25%5.0

答案:C

解析:赋值运算左边必须是单一变量名。A项错误,"y*5=x+z"部分是非法赋

值。BD两项错误,求余运算中的操作对象只能是整型,C项,为逗号表达式。

答案选择C选项。

72.有如下程序:#includeintsub(doublea,doubleb){return(int)(a-b);}main()

{primf("%d\n",sub(3.8,2.1));}程序运行后的输出结果是()。

A、2.0

B、1.7

C、2

D、1

答案:D

解析:在类型转换过程中,如果较高类型转换成较低类型,直接忽略多余位数。

程序执行过程为:调用函数sub(3.8,2.1),3.8-21=1.7(double类型),(int)

强制转换将1.7转换成int类型1,然后返回1并输出。答案选择D选项。

73.下列叙述中正确的是()。

A、数据的逻辑结构与存储结构必定是一一对应的

B、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线

性结构

C、程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性

结构

D、以上三种说法都不对

答案:D

解析:A项错误,数据的逻辑结构反映数据元素之间逻辑关系,与存储的物理结

构并没有——对应关系;B项错误,线性结构和非线性结构是关于逻辑结构的两

种不同分类,存储结构上没有线性和非线性之分;C项,利用数组也能处理非线

性结构,比如用数组存储二叉树。答案选择D选项。

74.在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而

一名患者可在多个科室治疗,则实医生和患者之间的联系是()。

A、多对多

B、多对一

C、一对多

D、一对一

答案:A

解析:一般来说,实体集之间必须通过联系来建立连接关系,分为三类:①一对

一联系(1:1);②一对多联系(l:m);③多对多联系(m:n)。医生可

为多位患者看病,患者也可以找多位医生看病,实体医生与患者联系是多对多,

答案选择A选项。

75后以下程序段:inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%

db=%dc=%d",abc);程序的输出结果是()。

A、=10b=50c=10

B、a=10b=50c=30

C、a=10b=30c=10

D、a=10b=30c=50

答案:A

解析:因为a=10,b=50,所以a<b,if语句判断条件不成立,于是执行c=a,

得到c=10,a和b的值不变。答案选择A选项。

76.结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是

()。

A、三种基本结构不可以嵌套使用

B、顺序结构是按语句在程序中的先后JI质序逐条执行,没有分支,没有转移

C、选择结构是根据不同的条件执行不同分支中的语句

D、循环结构是根据条件决定是否重复、重复执行多少次循环体语句

答案:A

解析结构化程序主要由3种基本控制结构组成顺序结构是最基本的算法结构,

当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,

没有分支,没有转移,没有步骤之间的相互约束,没有对某一步骤的多次使用,

完全按照步骤的原有次序依次执行,B选项叙述正确。选择结构根据不同的条件

去执行不同分支中的语句,C选项叙述正确。循环结构就是根据各自的条件,使

同一组语句重复执行多次,D选项叙述正确。三种结构可以嵌套使用,A选项叙

述错误,答案选择A选项,

77.数据流程图(DFD图)是()。

A、软件概要设计的工具

B、软件详细设计的工具

C、结构化方法的需求分析工具

D、面向对象方法的需求分析工具

答案:C

解析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,

它直接支持系统的功能建模,是结构化方法的需求分析工具。答案选择C选项。

78.有以下程序:#includemain(){chara,b,c,d;scanf("%c%c",&a,&b);c=getch

ar();d=getchar();printf("%c%c%c%c\n"abcd);}当执行程序时,按下列方式

输入数据(从第一列开始,代表回车,注意:回车是一人字符)1234则输出结果

是()O

A、123

B、12

C、1234

D、1234

答案:A

解析:scanf()函数的一般调用形式为:scanf(格式控制,输入地址列表)。其中,

格式控制是用双引号括起来的字符串,包括格式字符和普通字符格式是由"%"

和格式字符组成。getchar()函数的功能是从标准输入设备上读入一个字符。根

据程序中的格式控制可知,接收输入时分别把1赋给了a,2赋给了b,然后g

etchar()函数提取一个换行符赋给c,再提取一个字符3赋给了d。所以程序的

输出结果为:123。答案选择C选项。

79.在教师表中,如果要找出职称为"教授"的教师,所采用的关系运算是()。

A、投影

B、选择

C、联接

D、自然选择

答案:B

解析:投影表示从关系模式中指定若干属性组成新的关系。选择表示从关系中找

出满足给定条件的元组的操作。联接是关系的横向结合,联接运算将两个关系模

式拼接成一个更宽的关系模式,生成新的关系中包含满足联接条件的元组。属性

同为〃教授"的教师组成新的关系。答案选择B选项。

80.有以下程序:#includevoidfun(intajntb){intt;t=a;a=b;b=t;}main(){intc[l

0]={l/23A5/6/7/8/9/0}J;for(i=0;i<10;i+=2)fun(c[i]/c[i+l]);for(i=0;i<10;i++)

primf(-%d,,c[i]);primf(”\n");}程序运行的结果是()。

A、1,2345678,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论