全国计算机二级C选择题题库第36套
1、下列叙述中正确的是
A) 算法复杂度是指算法控制结构的复杂程度 B) 算法复杂度是指设计算法的难度
C) 算法的时间复杂度是指设计算法的工作量 D) 算法的复杂度包括时间复杂度与空间复杂度 参考答案:D
算法的复杂度是指运行该算法所需要的计算机资源的多少,所需的资源越多,该算法的复杂度越高;反之,所需资源越少,复杂度越低。算法复杂度包括算法的时间复杂度和算法的空间复杂度,算法的时间复杂度是指执行算法所需要的计算工作量,算法空间复杂度指执行这个算法所需要的内存空间。故选择D选项。
2、设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为 A) 2 B) 1 C) 3 D) 52
参考答案:A
循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置。循环队列长度为50,由初始状态为front=rear=50可知此时循环队列为空。入队运算时,首先队尾指针进1(即rear+1),然后在rear指针指向的位置插入新元素。特别的,当队尾指针rear=50+1时,置rear=1。退队运算时,排头指针进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=50+1时,置front=1。
若经过运算,front=rear=1可知队列空或者队列满。此后又正常地插入了两个元素说明插入前队列为空,则插入后队列元素个数为2。故选A选项。
3、一棵完全二叉树共有360个结点,则在该二叉树中度为1的结点个数为 A) 0 B) 1 C) 180 D) 181
参考答案:B
在二叉树中,一个结点所拥有的后件个数称为该结点的度。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。由定义可以知道,完全二叉树中度为1的结点个数为1或者0。若结点总数为偶数,则有1个度为1的结点;若结点总数为奇数,没有度为1的结点。由于题目中的完全二叉树共有360个结点,则度为1的结点个数为1。故选择B选项。
4、设某二叉树的后序序列与中序序列均为ABCDEFGH,则该二叉树的前序序列为 A) HGFEDCBA B) ABCDEFGH
C) EFGHABCD D) DCBAHGFE 参考答案:A
二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。 二叉树的后序序列与中序序列相同,说明此树结点没有右子树,且最后一个节点H为根节点,而前序遍历中根节点应在最先被访问,即节点H在最先出现,由此推断前序遍历为HGFEDCBA,故A选项正确。
5、在排序过程中,每一次数据元素的移动会产生新的逆序的排序方法是 A) 快速排序
B) 简单插入排序 C) 冒泡排序
D) 以上说法均不正确 参考答案:A
冒泡排序只交换相邻元素,但不是每次移动都产生新的逆序。简单插入排序的元素移动不会产生新的逆序。快速排序每一次交换移动都会产生新的逆序,因为当不会有新的逆序产生时,本轮比较结束。故选择A选项。
6、下面对软件工程描述正确的是
A) 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法
B) 软件工程的三要素是方法、工具和进程
C) 软件工程是用于软件的定义、开发和维护的方法 D) 软件工程是为了解决软件生产率问题 参考答案:A
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。C选项叙述不全面。
软件工程包含3个要素:方法、工具和过程。B选项错误。
软件工程的目标是:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品,追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。D选项错误。
软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。故本题选A选项。
7、耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A) 内聚性是指模块间互相连接的紧密程度
B) 提高耦合性降低内聚性有利于提高模块的独立性
C) 耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D) 降低耦合性提高内聚性有利于提高模块的独立性 参考答案:D
模块的独立程度可以由两个定性标准度量,一个是耦合性,用来衡量不同模块彼此间互
相依赖(连接)的紧密程度。另一个是内聚性,用来衡量一个模块内部各个元素彼此结合的紧密程度。
一般来说,要求模块之间的耦合尽可能弱,即模块尽可能独立,且要求模块的内聚程度尽可能高。故选D选项。
8、下列关于数据库系统的叙述中正确的是
A) 数据库系统中数据的一致性是指数据类型一致 B) 数据库系统避免了一切冗余 C) 数据库系统减少了数据冗余
D) 数据库系统比文件系统能管理更多的数据 参考答案:C
数据管理技术的发展经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
数据库系统共享性大,冗余度小,但只是减少了冗余,并不是避免一切冗余。
数据的一致性是指在系统中同一数据在不同位置的出现应保持相同的值,而不是数据类型的一致。
数据库系统比文件系统有更强的管理控制能力,而不是管理更多的数据。 故本题选C选项。
9、一名演员可以出演多部电影,则实体演员和电影之间的联系是 A) 多对多 B) 一对一 C) 多对一 D) 一对多
参考答案:A
实体集之间通过联系来建立联接关系分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。
由于一名演员可以出演多部电影,而一部电影必定有多个演员参演,则实体演员和电影之间的联系属于多对多。故选A选项。 10、
A) 表S中所有学生都选修了的课程的课号 B) 全部课程的课号
C) 成绩不小于80的学生的学号 D) 所选人数较多的课程的课号 参考答案:A
表示针对属性进行的投影运算, \表示除运算,可以近似地看作笛卡尔积的逆运算。 表达式表示,首先在关系模式SC中选择属性\学号\与\课号\,结果如下左图。其次在这个关系模式中对关系模式S进行除运算,结果如下右图。则关系式结果表示S中所有学生(S1、S2)都选修了的课程的课号(C1、C2)。
πS#,C# (SC)/S的运算结果 πS#,C# (SC)的运算结果
故本题选A选项。
11、有以下程序
#include
main()
{ int a=2,b=3,c=4;
a*=16 +(b++) - (++c); printf(\}
程序运行后的输出结果是 A) 15 B) 30 C) 28 D) 14
参考答案:C
1、后置自增运算:k++表示先运算,后自加。2、前置自增运算:++k表示先自加,后运算。++单目运算符的优先级高于赋值运算符。a*=16 +(b++) - (++c);可转化为:a=a*(16+b-(c+1));b=b+1;代入值计算可得值a=28。答案为C选项。
12、以下叙述正确的是
A) 通过分解成简单子任务,可以完成任何复杂任务 B) 每个结构化程序都要包含全部三种基本结构
C) C语言程序的所有自定义函数只能写在同一个源文件中
D) C语言程序允许使用多个main函数,只要它们的函数体各不相同即可 参考答案:A
算法的三种基本结构:循环、顺序、条件。有的简单的程序只包含其中的若干个,因此B选项错误,C语言程序的自定义函数可以放在多个.c文件中,只要包含其引用的头文件即可链接到,因此选项C错误。C语言程序有且只有一个main函数,因此D选项错误。故答案为A选项。
13、以下选项中,合法的C语言实数是 A) E4.8
B) 4.3e0.2 C) .4e0 D) 0.29E
参考答案:C
C语言\标准化指数形式\:其数值部分是一个小数,小数点前的数字是零,小数点后的第一位数字不是零。一个实数可以有多种指数表示形式,但只有一种属于标准化指数形式。在C语言中e后面的指数必须是整数。因此只有C选项正确。
14、设a,b,c已定义为整型变量,以下选项中不正确的赋值表达式是 A) a = 3 = (b = 2) = 1; B) a = (b = 0) * c + 1; C) a = (b = 0) * c + 1; D) a = 10 % (b = c = 2.0); 参考答案:A
根据()和=运算符的优先级,运算过程为b=2,b=1,之后3=1为非法赋值运算。,,C语言规定常量只能做为右值,不能做左值,,因此选项A的表达式错误。