1、下列叙述中正确的是______。
A、栈是\先进先出\的线性表 B、队列是\先进后出\的线性表 C、循环队列是非线性结构
D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称\后进先出\表,所以选项A是错误的。
队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。因此队列又称\先进先出\表,所以选项B是错误的。
循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。它的逻辑结构仍然是线性结构,所以选项C是错误的。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构,所以选项D是正确的。
故本题答案为D。
2、将E-R图转换为关系模式时,实体和联系都可以表示为______。
A、属性 B、键 C、关系 D、域
将E-R图转换为关系模式时,实体和联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。
故本题答案为C。
3、下面叙述中错误的是______。
A、软件测试的目的是发现错误并改正错误
B、对被调试的程序进行\错误定位\是程序调试的必要步骤 C、程序调试通常也称为Debug
D、软件测试应严格执行测试计划,排除测试的随意性
1983年IEEE将软件测试定义为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。因此选项A的叙述是错误的。 软件测试的基本准则为:①所有测试都应追溯到需求。②严格执行测试计划,排除测试的随意性。③充分注意测试中的群集现象。④程序员应避免检查自己的程序。⑤穷举测试不可能。⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。因此选项D正确。
在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。因此选项C正确。 程序调试的任务是诊断和改正程序中的错误。程序调试的基本步骤:①错误定位。②修改设计和代码,以排除错误。③进行回归测试,防止引进新的错误。因此选项B是正确的。 故本题答案为A。
4、下列排序方法中,最坏情况下比较次数最少的是______。 A、冒泡排序 B、简单选择排序 C、直接插入排序 D、堆排序
(1)冒泡排序法:是一种最简单的交换类排序法,它是通过相邻数据元素的交换逐步将线性表变成有
序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。
(2)简单插入排序法:在简单插入排序法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。
(3)简单选择排序法:对于长度为n的序列,选择排序需要扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第一个元素进行交换。简单选择排序法在最坏情况下需要比较n(n-1)/2次。
(4)堆排序法:堆排序的方法为:①首先将一个无序序列建成堆。②然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。在最坏情况下,堆排序需要比较的次数为
。
假设线性表的长度为16,那么冒泡排序、直接插入排序、简单选择排序都需要比较120次,而堆排序需要比较64次。 故本题答案为D。
5、耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是______。
A、提高耦合性降低内聚性有利于提高模块的独立性 B、降低耦合性提高内聚性有利于提高模块的独立性
C、耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D、内聚性是指模块间互相连接的紧密程度
内聚性:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。耦合性:耦合性是模块间互相连接的紧密程度的度量。因此选项C、D是错误的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。因此选项A是错误的,应该降低耦性合提高内聚性,所以选项B是正确的。 故本题答案为B。
6、有两个关系R,S如下:
R
S
由关系R通过运算得到关系S,则所使用的运算为______。
A、选择 B、投影 C、插入 D、连接
专门的关系运算包括:选择、投影和连接。1、选择:从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算,即从水平方向抽取记录。2、投影:从关系模式中指定若干个属性组成新的关系。投影是从列的角度进行的运算,相当于对关系进行垂直分解。3、连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来控制的,连接条件中将出现两个表中的公共属性名,或者具有相同语义、可比的属性。选择和投影运算的操作对象只是一个表。相当于对一个二维表进行切割。连接运算需要两个表作为操作对象。
由图可知关系R通过运算得到关系S,关系S与关系R相比,记录的条数没有发生变化,属性的个数发生
了变化。因此所使用的运算应该是投影。选项C插入运算会增加记录的条数。所以选项B是正确的。
故本题答案为B。
7、数据库应用系统中的核心问题是______。
A、数据库设计 B、数据库系统设计 C、数据库维护
D、数据库管理员培训
数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。所以选项A是正确的。
故本题答案为A。
8、支持子程序调用的数据结构是______。 A、栈 B、树 C、队列 D、二叉树
子程序调用是一种层次关系,子程序调用功能模块,调用功能模块的个数也不确定,可以是一个,也可以是多个。选项A、C中元素之间是一种前后件关系,前后元素之间没有层次之分,每个结点有一个前件也只有一个后件。二叉树是一种很有用的非线性结构,二叉树不同于树形结构。二叉树具有以下两个特点:①非空二叉树只有一个根结点;②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。选项D规定每个结点只能有两个后件。在子程序调用中,调用的功能模块可以是多个,可以调用超过两个功能模块。所以选项A、C、D均不正确。
故本题答案为B。
9、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是______。
A、10 B、8 C、6 D、4
在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为5,故叶子结点数为5+1=6个。
故本题答案为C。
10、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是______。
A、编译程序 B、操作系统 C、教务管理系统 D、汇编程序
软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件、工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的软件。因此选项C教务管理系统属于应用软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等。因此选项A、B、D都属于系统软件。
故本题答案为C。 11、有如下程序: #include