第一章 数据结构
一、选择题
(1)下列数据结构中,能用二分法进行查找的是
A)顺序存储的有序线性表 B)线性链表 C)二叉链表 D)有序线性链表
【答案】A
【解析】二分查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大.但允许相邻元素值相等)的。选项A正确。 (2)下列关于栈的描述正确的是
A)在栈中只能插入元素而不能删除元素 B)在栈中只能删除元素而不能插入元素
C)栈是特殊的线性表,只能在一端插入或删除元素
D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素【答案】C
【解析】栈是一种特殊的线性表,其插入与删除运算都只在线性表的一端进行。由此可见,选项A、选项B和选项D错误,正确答案是选项C。 (3)下列叙述中正确的是
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率【答案】D
【解析】一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。由此可见,选项D的说法正确。
(4)算法执行过程中所需要的存储空间称为算法的
A)时间复杂度B)计算工作量C)空间复杂度D)工作空间
【答案】c
【解析】算法执行时所需要的存储空间,包括算法程序所占的空间、输入的初始数据 所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。这些存储空间共称为算法的空间复杂度。
(5)下列关于队列的叙述中正确的是
A)在队列中只能插入数据B)在队列中只能删除数据 C)队列是先进先出的线性表D)队列是先进后出的线性表
【答案】c
【解析】对队列可以进行插入和删除数据的操作,只是插入数据只能在队尾,删除数据只能在队头。所以队列是先进先出的线性表。
(6)设有下列二叉树: A B E C F D 对此二叉树后序遍历的结果为【答案】D
A)ABCDEF B)BDAECF C)ABDCEF D)DBEFCA 【解析】二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历。其遍历顺序应该为:后序遍历左子树一>后序遍历右子树一>访问根结点。按照定义,后序遍历序列是DBEFCA,故答案为D。 (7) 下列叙述中正确的是( )
A)程序执行的效率与数据的存储结构密切相关 B)程序执行的效率只取决于程序的控制结构 C)程序执行的效率只取决于所处理的数据量 D)以上三种说法都不对 【答案】A
【解析】本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项A的说法是正确的。 (8) 下列叙述中正确的是( )
A)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构 D)以上三种说法都不对 【答案】D
【解析】本题考查数据结构的基本知识。
数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中;链式存储结构是使用指针把相互直接关联的节点链接起来。因此,这两种存储结构都是线性的。可见,逻辑结构和存储结构不是一一对应的。因此,选项A和选项B的说法都是错误的。
无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。可以用数组来实现树型逻辑结构的存储,比如二叉树。因此,选项c的说法是错误的 (9) 冒泡排序在最坏情况下的比较次数是( ) A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2 【答案】C
【解析】冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需n-1趟排序,第i趟对从l到n-i个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第l趟比较n-1次,第2趟比较n-2次。依此类推,最后趟比较1次,一共进行n-l趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+…+l,结果为n(n-1)/2。本题的正确答案是选项c。
(10) 一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为( )
A)219 B)221 C)229 D)231 【答案】A
【解析】本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0= n2+l。 根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结
点数为69+80+70,即219。因此,本题的正确答案是选项A。 (11) 下列叙述中正确的是( )
A)算法的效率只与问题的规模有关,而与数据的存储结构无关 B)算法的时间复杂度是指执行算法所需要的计算工作量 C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关 【答案】B
【解析】本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项B的说法是正确的。
数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项c的说法是错误的。有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项D的说法是错误的。
(12)下列关于算法的时间复杂度陈述正确的是 A) 算法的时间复杂度是指执行算法程序所需要的时间 B) 算法的时间复杂度是指算法程序的长度
C) 算法的时间复杂度是指算法执行过程中所需要的基本运算次数 D) 算法的时间复杂度是指算法程序中的指令条数
【答案】C
【解析】算法的时间复杂度是指执行算法所需要的计算工作量,也就是算法在执行过程中所执行的基本运算的次数,而不是指程序运行需要的时间或是程序的长度。
(13)下列关于栈的叙述中正确的是
A)在栈中只能插入数据 B)在栈中只能删除数据 C)栈是先进先出的线性表 D)栈是先进后出的线性表
【答案】D
【解析】对栈可进行插入和删除数据的操作,但必须牢记插入和删除数据都只能是在栈顶,是一种特殊的线性表。所以栈是先进后出的线性表。
(14)设有下列二叉树: A
B D E C F FF 对此二叉树中序遍历的结果为 A)ABCDEF B)DAECF C)BDAECF D)DBEFCA
【答案】C
【解析】二叉树的遍历分为先序、中序、后序三种不同方式。本题要求中序遍历,其遍历顺序应该为:中序遍历左子树->访问根结点->中序遍历右子树。按照定义,中序遍历序列是BDAECF,故答案为B。
(15)按照“后进先出”原则组织数据的数据结构是 A)队列 B)栈 C)双向链表? 【答案】B
【解析】“后进先出”表示最后被插入的元素最先能被删除。选项A中,队列是指允许在一端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则:选项B中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。队列和栈都属于线性表,它们具有顺序存储的特点,所以才有“先进先出”和“后进先出”的数据组织方式。双向链表使用链式存储方式.二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。所以选项c和选项D错。 (16)下列叙述中正确的是
A)线性链表是线性表的链式存储结构 B)栈与队列是非线性结构 C)双向链表是非线性结构 D)只有根结点的二叉树是线性结构 【答案】A
【解析】一个非空的数据结构如果满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。则称为线性结构。线性链表是线性表的链式存储结构,选项A的说法是正确的。栈与队列是特殊的线性表,它们也是线性结构,选项B的说法是错误的;双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,
D)二叉树
而不是非线性结构,选项c的说法是错误的;二叉树是非线性结构,而不是线性结构,选项D的说法是错误的。因此,本题的正确答案为A (17)对如下二叉树
进行后序遍历的结果为 A)ABCDEF B C)ABDECF 【答案】D D E A B)DBEAFC C D)DEBFCA F 【解析】二叉树后序遍历的简单描述如下:若二叉树为空,则结束返回。否则(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。也就是说,后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。根据后序遍历的算法,后序遍历的结果为DEBFCA。 (18) 下列对队列的叙述正确的是( ) A)队列属于非线性表
B)队列按“先进后出”原则组织数据 C)队列在队尾删除数据
D)队列按“先进先出”原则组织数据 【答案】D
【解析】本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。因此,本题中只有选项D的说法是正确的。
(19) 对下列二叉树进行前序遍历的结果为( )
A) DYBEAFCZX B) YDEBFZXCA C) ABDYECFXZ D) ABCDEFXYZ 【答案】C
【解析】本题考查数据结构中二叉树的遍历。根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。这三种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。下面就是前序遍历方法的递归定义。当二叉树的根不为空时,依次执行如下3个操作:
(1)访问根结点 (2)按先序遍历左子树 (3)按先序遍历右子树
根据如上前序遍历规则,来遍历本题中的二叉树。首先访问根结点,即A,然后遍历A的左子树。遍历左子树同样按照相同的规则首先访问根结点B,然后遍历B的左子树。遍历B的左子树,首先访问D,然后访问D的左子树,D的左子树为空,接下来访问D的右子树,即Y。遍历完B的左子树后,再遍历B的右子树,即E。到此遍历完A的左子树,接下来遍历A的右子树。按照同样的规则,首先访问C,然后遍历c的左子树。即F。c的左子树遍历完,接着遍历c的右子树。首先访问右子树的根结点X,然后访问X的左子树,X的左子树,即Z,接下来访问X的右子树,右子树为空。到此,把题目的二叉树进行了一次前序遍历。遍历的结果为ABDYECFXZ,故本题的正确答案为选项C。 (20) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为( )
A) n+1 B) n-1 C) 2n D) n/2 【答案】A
【解析】本题考查数据结构中二叉树的性质。 二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为no,而其度数为2的结点数为n2,则n0=n2+l。 根据这条性质可知,若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为n+l。因此,本题的正确答案是选项A。
(21)在深度为7的满二叉树中,叶子结点的个数为 A)32 【答案】C
【解析】在二叉树的第k层上,最多有2k-1(k≥1)个结点。对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。因此,在深度为7的满二叉树中,所有叶子结点在第7层上.即其结点数为2k-1=27-1=64因此.本题的正确答案为c。
(22)下列叙述中正确的是
A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则期时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 【答案】D
【解析】时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程
B)31??
C)64 D)63
中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾。但是二者不存在必然的联系。因此,选项A、B、c的说法都是错误的。故本题的正确答案是D。
(23)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为 A)63 B)64 C)6 D)7 【答案】B
【解析】在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较。若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表中进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为B。 (24)对下列二叉树 进行中序遍历的结果是 A)ACBDFEG C)ABDCGEF
【答案】A F 【解析】二叉树的中序遍历递归算法为:如果根不空,则(1)按中序次序访问左子树;(2)C E 访问根结点:(3)按中序次序访问右子树。否则返回。本题中,根据中序遍历算法.应首A D G 先按照中序次序访问以c为根结点的左子树,然后再访问根结点F,最后才访问以E为根
B 结点的右子树。遍历以c为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为ACBD;然后遍历根结点F;遍历以E为根结点的右子树,同样要遵循中序遍历算法,因此中序遍历结果为EG。最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为ACBDFEG。因此,本题的正确答案是A。 (25)数据的存储结构是指______。
A)存储在外存中的数据
B)数据所占的存储空间量
B)ACBDFGE D)FCADBEG
C)数据在计算机中的顺序存储方式 【答案】D
D)数据的逻辑结构在计算机中的表示
【解析】数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。所以选项D正确。
(26)下列关于栈的描述中错误的是______。
A) 栈是先进后出的线性表 B) 栈只能顺序存储 C) 栈具有记忆作用
D) 对栈的插入与删除操作中,不需要改变栈底指针 【答案】B
【解析】本题考核栈的基本概念,我们可以通过排除法来确定本题的答案。栈是限定在一端进行插入与删除的线性表,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的,这便是栈的记忆作用,所以选项A和选项C正确。对栈进行插入和删除操作时,栈顶位置是动态变化的,栈底指针不变,选项D正确。由此可见,选项B的描述错误。
(27)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______。
A)冒泡排序为n/2 C)快速排序为n 【答案】D
【解析】假设线性表的长度为n,在最坏情况下,冒泡排序和快速排序需要的比较次数为n(n—1)/2。由此可见,选项D正确。
(28)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。
A)log2n 【答案】C
【解析】在长度为n的线性表中进行顺序查找,最坏情况下需要比较n次。选项C正确。 (29)下列对于线性链表的描述中正确的是______。
A) 存储空间不一定是连续,且各元素的存储顺序是任意的
B)n/2
C)n
D)n+1
B)冒泡排序为n D)快速排序为n(n-1)/2
B) 存储空间不一定是连续,且前件元素一定存储在后件元素的前面 C) 存储空间必须连续,且前件元素一定存储在后件元素的前面 D) 存储空间必须连续,且各元素的存储顺序是任意的 【答案】A
【解析】在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。
(30)某二叉树中度为2的结点有18个,则该二叉树中有 ____ 个叶子结点。 【答案】19
【解析】二叉树具有如下性质:在任意一棵二叉树中,度为O的结点(即叶子结点)总是比度为2的结点多一个。根据题意,度为2的节点为18个,那么,叶子结点就应当是19个。 (1)线性表若采用链式存储结构时,要求内存中可用存储单元的地址 A)必须是连续的
B)部分地址必须是连续的 C)一定是不连续的 D)连续不连续都可以
解析: 在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。故本题答案应该为选项D) (2)在待排序的元素序列基本有序的前提下,效率最高的排序方法是 A)冒泡排序 B)选择排序 C)快速排序 D)归并排序
解析: 从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项A)。 (3)下列叙述中,错误的是
A)数据的存储结构与数据处理的效率密切相关 B)数据的存储结构与数据处理的效率无关
C)数据的存储结构在计算机中所占的空间不一定是连续的 D)一种数据的逻辑结构可以有多种存储结构
解析: 一般来说,一种数据结构根据需要可以表示成多种存储结构。常用的存储结构有顺序、链接、索引等,而采用不同的存储结构,其数据处理的效率是不同的;一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的。故本题答案应该为选项B)。 (4)希尔排序属于 A)交换排序 B)归并排序 C)选择排序 D)插入排序
解析: 希尔排序的基本思想是把记录按下标的一定增量分组,对每组记录使用插入排序,随增量的逐渐减小,所分成的组包含的记录越来越多,到增量的值减小到1时,整个数据合成一组,构成一组有序记录,故其属于插入排序方法。故本题答案应该为选项D)。 (1)栈和队列的共同特点是 A)都是先进先出 B)都是先进后出
C)只允许在端点处插入和删除元素 D)没有共同点
解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。故本题答案应该为选项C)。
(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed
B)decab C)deabc D)cedba
解析: 依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成,如下图所示。求得该二叉树的前序遍历序列为选项D)。 (3)链表不具有的特点是 A)不必事先估计存储空间 B)可随机访问任一元素 C)插入删除不需要移动元素 D)所需空间与线性表长度成正比
解析: 链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处:① 每个结点中的指针域需额外占用存储空间;② 链式存储结构是一种非随机存储结构。故本题答案应该为选项D)。 (6)算法的时间复杂度是指 A)执行算法程序所需要的时间 B)算法程序的长度
C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数
解析: 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。故本题答案应该为选项A)。
(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为 A)GEDHFBCA B)DGEBHFCA
C)ABCDEFGH D)ACBFEDHG
解析: 利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下:① 前序遍历的第一个结点A为树的根结点;② 中序遍历中A的左边的结点为A的左子树,A右边的结点为A的右子树;③ 再分别对A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。故本题答案应该为选项B)。 (2)树是结点的集合,它的根结点数目是 A)有且只有1 B)1或多于1 C)0或1 D)至少2
解析: 树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又是一棵树。树有且只有1个根结点。故本题答案应该为选项A)。
(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D)任意顺序
解析: 由栈\"后进先出\"的特点可知:A)中e1不可能比e2先出,C)中e3不可能比e4先出,且e1不可能比e2先出,D)中栈是先进后出的,所以不可能是任意顺序。B)中出栈过程如图所示:
故本题答案应该为选项
B)。
(4)在设计程序时,应采纳的原则之一是
A)不限制goto语句的使用 B)减少或取消注解行 C)程序越短越好
D)程序结构应有助于读者理解
解析:滥用goto 语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。故本题答案应该为选项D)。
(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和 A)对象成分 B)变量成分 C)语句成分 D)传输成分
解析: 程序设计语言是用于书写计算机程序的语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。故本题答案应该为选项D)。
(1)循环链表的主要优点是 A)不再需要头指针了
B)从表中任一结点出发都能访问到整个链表
C)在进行插入、删除运算时,能更好的保证链表不断开 D)已知某个结点的位置后,能够容易的找到它的直接前件
解析: 循环链表就是将单向链表中最后一个结点的指针指向头结点,使整个链表构成一个环形,这样的结构使得从表中的任一结点出发都能访问到整个链表。故本题答案应该为选项B)。
(2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是 A)ABCED
B)DCBEA C)DBCEA D)CDABE
解析: 栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。故本题答案应该为选项B)。
(3)对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。 A) N+1 B) N C) (N+1)/2 D) N/2
解析:[答案]B,很简单,我们的二级程序设计语言书中都有此算法,另外还要掌握二分法查找,这也是我们二级中常考的。那么二分法最坏的情况为多少次呢?log2 n的最小整数值。比如n为4,最坏的情况要比较3次;n为18,最坏的情况要比较5次。 (1)下列叙述中正确的是 A)线性表是线性结构 B)栈与队列是非线性结构 C)线性链表是非线性结构 D)二叉树是线性结构
解析: 线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。故本题答案应该为选项A)。 (2)非空的循环单链表head的尾结点(由p所指向),满足 A)p->next==NULL B)p==NULL C)p->next=head D)p=head
解析: 循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即
p->next=head。故本题答案应该为选项C)。
(3)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是 A)堆排序 B)直接插入排序 C)快速排序 D)直接选择排序
解析: 当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少,故答案为选项B)。 (1)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为 A)log2n B)n2
C)O(n1.5) D)n(n-1)/2
解析: 假设线性表的长度为n,则在最坏情况下,冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。故本题答案应该为选项D)。 (2)算法分析的目的是 A)找出数据结构的合理性
B)找出算法中输入和输出之间的关系 C)分析算法的易懂性和可靠性 D)分析算法的效率以求改进
解析: 算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。故本题答案应该为选项D)。 (3)线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是 A)每个元素都有一个直接前件和直接后件 B)线性表中至少要有一个元素
C)表中诸元素的排列顺序必须是由小到大或由大到小
D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
解析: 线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。故本题答案应该为选项D)。 (4)在单链表中,增加头结点的目的是 A)方便运算的实现
B)使单链表至少有一个结点 C)标识表结点中首结点的位置 D)说明单链表是线性表的链式存储实现
解析: 头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。故本题答案应该为选项A)。 (1)算法的空间复杂度是指 A)算法程序的长度 B)算法程序中的指令条数 C)算法程序所占的存储空间 D)执行过程中所需要的存储空间
解析: 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。故本题答案应该为选项D)。 (2)用链表表示线性表的优点是 A)便于随机存取
B)花费的存储空间较顺序存储少 C)便于插入和删除操作
D)数据元素的物理顺序与逻辑顺序相同
解析: 链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。故本题答案应该为选项C)。 (3)数据结构中,与所使用的计算机无关的是数据的 A)存储结构 B)物理结构 C)逻辑结构 D)物理和存储结构
解析: 数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。故本题答案应该为选项C)。 (1)由两个栈共享一个存储空间的好处是 A)减少存取时间,降低下溢发生的机率 B)节省存储空间,降低上溢发生的机率 C)减少存取时间,降低上溢发生的机率 D)节省存储空间,降低下溢发生的机率
解析: 常常一个程序中要用到多个栈,为了不发生上溢错误,就必须给每个栈分配一个足够大的存储空间。但实际中,很难准确地估计,若每个栈都分配过大的存储空间,势必造成系统空间紧张;若让多个栈共用一个足够大的连续存储空间,则可利用栈的动态特性使他们的存储空间互补。故本题答案应该为选项B)。 (2)设有两个串p和q,求q在p中首次出现位置的运算称作 A)连接 B)模式匹配 C)求子串 D)求串长
解析: 子串的定位操作通常称作串的模式匹配,是各种串处理系统中最重要的操作之一,算法的基本思想是:从主串的开始字符起和模式的第一个字符比较,若相等则继续比较后续字符,否则从主串的下一个字符起再重新和模式的字符比较,依次类推,直至模式中的
每一个字符依次和主串中的一个连续的字符序列相等,称匹配成功,否则称匹配不成功。 (3)下列关于队列的叙述中正确的是______。 A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表 解析:C
队列是先进先出的,栈是先进后出的,2者的区别一定要搞清楚。 (1)算法的空间复杂度是指 A)算法程序的长度 B)算法程序中的指令条数 C)执行算法程序所占的存储空间 D)算法执行过程中所需要的存储空间 【答案】D
【解析】算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。
(2)线性表的链式存储结构是一种 A)随机结构 B)顺序结构 C)索引结构 D)散列结构 【答案】B
【解析】线性表的链式存储结构中的每一个存储结点不仅含有一个数据元素,还包括指针,每一个指针指向一个与本结点有逻辑关系的结点。此类存储方式属于顺序存储。 (3)设有下列二叉树:对此二叉树先序遍历的结果是
A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA 【答案】C
【解析】二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历;遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF。
(1)算法分析的目的是______。
A)找出数据结构的合理性 B)找出算法中输入和输出之间的关系 C)分析算法的易懂性和可靠性 D)分析算法的效率以求改进 答案:D
评析:算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。
(3)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。 A)堆排序 C)快速排序 答案:B
评析:当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少,故答案为选项B。 (4)用链表表示线性表的优点是______。 A)便于插入和删除操作
B)数据元素的物理顺序与逻辑顺序相同
B)直接插入排序
D)直接选择排序
C)花费的存储空间较顺序存储少 D)便于随机存取 答案:A
评析:链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻
辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。
1. 以下数据结构中不属于线性数据结构的是______。
A、队列 B、线性表 C、二叉树 D、栈
解析:线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一
种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称后进先出表(Last In First Out);队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。因此队列又称先进先出表(First In First Out)。 本题答案为C。
5. 下列关于栈的叙述中正确的是______。
A、在栈中只能插入数据 B、在栈中只能删除数据 C、栈是先进先出的线性表 D、栈是先进后出的线性表
解析:栈是限定在一端进行插入与删除的线性表。
栈是按照\"先进后出\"的或后进先出的原则组织数据的,因此,栈也被称为\"先进后出\"表或\"后进先出\"表。
本题答案是D。
7. 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。
A、N+1 B、N C、(N+1)/2 D、N/2
解析:在进行顺序查找过程中,如果线性表中被查的元素是线性表中的最后一个,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。
本题答案为B。
1. 在一棵二叉树上第5层的结点数最多是______。 A、8 B、16 C、32 D、15
解析:根据二叉树的性质:二叉树第i(i≥1)层上至多有2i-1个结点。得到第5层的结点数最多是16。
本题答案为B。
3. 下列叙述中正确的是______。 A、线性表是线性结构 B、栈与队列是非线性结构
C、线性链表是非线性结构 D、二叉树是线性结构
解析:根据数据结构中各数据元素之间前后间关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。 所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。 本题答案是A。
7. 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。 A、确定性 B、可行性 C、无穷性
D、拥有足够的情报
解析:作为一个算法,一般应具有以下几个基本特征。 1)可行性 2)确定性 3)有穷性
4)拥有足够的情报
本题答案为C。
5. 在计算机中,算法是指______。 A、查询方法 B、加工方法
C、解题方案的准确而完整的描述 D、排序方法
解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。
本题答案为C。
7. 在单链表中,增加头结点的目的是______。 A、方便运算的实现
B、使单链表至少有一个结点 C、标识表结点中首结点的位置 D、说明单链表是线性表的链式存储实现
解析:头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。 本题答案为A。
1. 数据的存储结构是指______。
A、存储在外存中的数据 B、数据所占的存储空间量 C、数据在计算机中的顺序存储方式 D、数据的逻辑结构在计算机中的表示 解析:本题考查的是数据结构的基本概念。
数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。
故本题答案为D。
2. 下列关于栈的描述中错误的是______。 A、栈是先进后出的线性表 B、栈只能顺序存储 C、栈具有记忆作用
D、对栈的插入与删除操作中,不需要改变栈底指针 解析:本题考查的是栈和队列。
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称先进后出表(FILO-First In Last Out)。线性表可以顺序存储,也可以链式存储,而栈是一种线性表,也可以采用链式存储结构。
故本题答案为B。
3. 对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______。
A、冒泡排序为n/2 B、冒泡排序为n C、快速排序为n
D、快速排序为n(n-1)/2
解析:本题考查的是基本排序算法。
假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。
故本题答案为D。
4. 对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。 A、log2n B、n/2 C、n
D、n+1
解析:本题考查的是顺序查找。
在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
故本题答案为C。
5. 下列对于线性链表的描述中正确的是______。 A、存储空间不一定是连续,且各元素的存储顺序是任意的 B、存储空间不一定是连续,且前件元素一定存储在后件元素的前面 C、存储空间必须连续,且前件元素一定存储在后件元素的前面 D、存储空间必须连续,且各元素的存储顺序是任意的
解析:本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。 故本题答案为A。
1. 算法的时间复杂度是指______。 A、执行算法程序所需要的时间 B、算法程序的长度
C、算法执行过程中所需要的基本运算次数 D、算法程序中的指令条数
解析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
本题答案是C。
2. 下列叙述中正确的是______。 A、线性表是线性结构 B、栈与队列是非线性结构 C、线性链表是非线性结构 D、二叉树是线性结构
解析:根据数据结构中各数据元素之间前后间关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一
个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。 所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。 本题答案是A。
3. 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。 A、349 B、350 C、255 D、351
解析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=699,故父结点数等于int(699/2)=349,叶子结点数等于699-349=350。 本题答案是B。
1. 算法的空间复杂度是指______。 A、算法程序的长度 B、算法程序中的指令条数 C、算法程序所占的存储空间 D、算法执行过程中所需要的存储空间
解析:一个算法的空间复杂度,一般是指执行这个算法所需的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 本题答案是D。
2. 下列关于栈的叙述中正确的是______。 A、在栈中只能插入数据 B、在栈中只能删除数据 C、栈是先进先出的线性表 D、栈是先进后出的线性表
解析:栈是限定在一端进行插入与删除的线性表。
栈是按照\"先进后出\"的或后进先出的原则组织数据的,因此,栈也被称为\"先进后出\"表或\"后进先出\"表。
本题答案是D。
3. 在深度为5的满二叉树中,叶子结点的个数为______。 A、32 B、31 C、16
D、15
解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2K-1个结点,且深度为m的满二叉树有2m个结点。
在满二叉树中,最后一层的结点个数就是叶子结点的个数,本题中深度为5,故叶子结点数为25-1=24=16。
本题答案是C。
1. 算法一般都可以用哪几种控制结构组合而成______。 A、循环、分支、递归 B、顺序、循环、嵌套 C、循环、递归、选择 D、顺序、选择、循环
解析:算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。 本题答案为D。
2. 数据的存储结构是指______。 A、数据所占的存储空间量
B、数据的逻辑结构在计算机中的表示 C、数据在计算机中的顺序存储方式 D、存储在外存中的数据
解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。 本题答案为B。
3. 设有下列二叉树:
对此二叉树中序遍历的结果为______。 A、ABCDEF B、DBEAFC C、ABDECF D、DEBFCA
解析:所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。 本题答案为B。
1. 在计算机中,算法是指______。 A、查询方法
B、加工方法
C、解题方案的准确而完整的描述 D、排序方法
解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。 本题答案为C。
2. 栈和队列的共同点是______。 A、都是先进后出 B、都是先进先出
C、只允许在端点处插入和删除元素 D、没有共同点
解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种\"后进先出\"的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种\"先进先出\"的线性表。
本题答案为C。
3. 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。 A、cedba B、acbed C、decab D、deabc
解析:依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成。求得该二叉树的前序遍历序列为选项A。 本题答案为A。
4. 在下列几种排序方法中,要求内存量最大的是______。 A、插入排序 B、选择排序 C、快速排序 D、归并排序
解析:快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中
选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。
本题答案为D。
1. 数据结构中,与所使用的计算机无关的是数据的______。 A、存储结构 B、物理结构 C、逻辑结构 D、物理和存储结构
解析:数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。
本题答案为C。
2. 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。 A、ABCED B、DBCEA C、CDABE D、DCBEA
解析: 栈操作原则是\"后进先出\",栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。
本题答案为D。
3. 线性表的顺序存储结构和线性表的链式存储结构分别是______。 A、顺序存取的存储结构、顺序存取的存储结构 B、随机存取的存储结构、顺序存取的存储结构 C、随机存取的存储结构、随机存取的存储结构 D、任意存取的存储结构、任意存取的存储结构
解析:顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。
本题答案为B。
4. 在单链表中,增加头结点的目的是______。 A、方便运算的实现
B、使单链表至少有一个结点
C、标识表结点中首结点的位置 D、说明单链表是线性表的链式存储实现
解析:头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。 本题答案为A。
1. 下面叙述正确的是______。
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对
解析:算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。它们是一个不可分割的整体。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。
本题答案为C。
2. 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。 A、349 B、350 C、255 D、351
解析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=699,故父结点数等于int(699/2)=349,叶子结点数等于699-349=350。 本题答案是B。
9. 已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。 A、堆排序 B、直接插入排序 C、快速排序 D、直接选择排序
解析:当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少。 本题答案为B。 二、填空题
(1)问题处理方案的正确而完整的描述称为 _____ 。
【答案】算法或程序或流程图
【解析】算法是问题处理方案正确而完整的描述
(2)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ____ 。 【答案】45
【解析】在冒泡排序中,最坏情况下,需要比较的次数为n(n-1/2),也就是:10*(lO-1)/2=45
(3)算法复杂度主要包括时间复杂度和 ____ 复杂度。【答案】空间
【解析】算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
(4)一棵二叉树第六层(根结点为第一层)的结点数最多为 _______个。【答案】32
【解析】二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。此,26-1等于32。所以答案为32。
(5)数据结构分为逻辑结构和存储结构,循环队列属于______ 结构。 【答案】存储或物理或存储结构或物理结构
【解析】数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。可知,循环队列应当是物理结构。 (6)下列软件系统结构图的宽度为 ____ 。 A 【答案】 3
【解析】题目中的图形是倒置的树状结构,这是用层次图表示的软件结构。结构图中同一B C D 层模块的最大模块个数称为结构的宽度,它表示控制的总分布。根据上述结构图宽度的定义,从图中可以看出,第二层的模块个数最多,即为3。因此,这个系统结构图的宽度就F E 为3。
(7)按“先进后出”原则组织数据的数据结构是 ____ 。 【答案】栈或 Stack
【解析】栈和队列是两种特殊的线性表,其特殊性在于对它们的操作只能在表的端点进行。栈中的数据按照后进先出的原则进行组织,而队列中的数据是按照先进先出的原则进行组织。因此,本题的正确答案是栈(Stack)。
(8)数据结构分为线性结构和非线性结构,带链的队列属于 ___ 。
【答案】 线性结构
【解析】数据结构分为线性结构和非线性结构,其中队列是属于线性结构。队列有两种存储结构,一种是顺序存储结构,称为顺序队列;另一种是链式存储结构,称为链队列。题目中所说的带链的队列就是指链队列。无论队列采取哪种存储结构,其本质还是队列,还属于一种线性结构。因此,本题的正确答案是线性结构。 (9) 在深度为7的满二叉树中,度为2的结点个数为_______。 【答案】63或26-1
【解析】本题考查数据结构中满二叉树的性质。在满二叉树中,每层结点都是满的,即每层结点都具有最大结点数。深度为k的满二叉树,一共有2k-1个结点,其中包括度为2的结点。因此,深度为7的满二叉树,一共有27-1个结点,即127个结点。
根据二叉树的另一条性质,对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2则n0= n2+1。设尝试为7的满二叉树中,度为2的结点个数为x,则改树中中子结点的个数为x+1。则应满足x+(x+1)=127,解该方程得到,x的值为63。 结果上述分析可知,在深度为7的满二叉树中,度为2的结点个数为63。
(10) 线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的_____存储结构。 【答案】顺序
【解析】本题考查数据结构的队列。队列是一种特殊的线性表,即限定在表的一端进行删除,在表的另一端进行插入操作的线性表。允许删除的一端叫做队头,允许插入的一端叫做队尾。线性表的存储结构主要分为顺序存储结构和链式存储结构。当队列用链式存储结构实现时,就称为链队列;当队列用顺序存储结构实现时,就称为循环表。因此,本题划线处应填入“顺序”。
(11) 对下列二叉树进行中序遍历的结果为 ____ 。 【答案】ACBDFEHGP
【解析】本题考查数据结构中二叉树的遍历。根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。这三种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。下面就是中序遍历方法的递归定义。 当二叉树的根不为空时,依次执行如下3个操作: (1)按中序遍历左子树。 (2)访问根结点。 (3)按中序遍历右子树。
根据如上前序遍历规则,来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问c,接着访问c的右子树,同样按中序遍历c的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树.同样
按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此.划线处应填入“ACBDFEHGP”。
(11)用链表表示线性表的突出优点是 。 答案:插入和删除操作方便,不必移动数据元素,执行效率高
解析: 为了克服顺序表中插入和删除时需要移动大量数据元素的缺点,引入了链式存储结构。链表表示线性表的突出优点是插入和删除操作方便,不必移动数据元素,执行效率高。
(12)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 。 答案:log2n
解析: 对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。
(11)数据结构分为逻辑结构与存储结构,线性链表属于 。 答案:存储结构
解析: 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 (11)冒泡排序算法在最好的情况下的元素交换次数为 。 答案:0
解析: 根据冒泡排序算法思想可知,若待排序的初始序列为“正序”序列,则只需进行一趟排序,在排序过程中进行n-1次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为0。 (13)若串s=\"MathTypes\",则其子串的数目是 。 答案:46
解析: 串s中共有9个字符,由于串中字符各不相同,则其子串中有0个字符的1个(空串),1个字符的9个,2个字符的8个,3个字符的7个,4个字符的6个,5个字符的5个,6个字符的4个,7个字符的3个,8个字符的2个,9个字符的1个,共有1+2+3+4+5+6+7+8+9+1=46。
(11)在算法正确的前提下,评价一个算法的两个标准是 。 答案:时间复杂度和空间复杂度
(12)将代数式答案:(x+y*y)/(a+b)
转换成程序设计中的表达式为 。
(11)数据的逻辑结构有线性结构和 两大类。 答案:非线性结构
解析: 数据的逻辑结构有线性结构和非线性结构两大类。
(12)顺序存储方法是把逻辑上相邻的结点存储在物理位置 的存储单元中。 答案:也相邻
解析: 常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。 (11)当线性表采用顺序存储结构实现存储时,其主要特点是 。 答案:逻辑结构中相邻的结点在存储结构中仍相邻
解析: 顺序存储结构的主要特点是数据元素按线性表的逻辑次序,依次存放在一组地址连续的存储单元中。在存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的。
52. 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。 解析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=500,故父结点数等于int(500/2)=250,叶子结点数等于500-250=250。 标准答案为:250
51. 算法的基本特征是可行性、确定性、______和拥有足够的情报。
解析:算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。
标准答案为:有穷性
52. 顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。 解析:常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。 标准答案为:相邻
(1)算法的复杂度主要包括空间复杂度和【1】复杂度。 【答案】空间
【解析】算法的复杂度主要指时间复杂度和空间复杂度。
(2)在线性结构中,队列的操作顺序是先进先出,而栈的操作顺序是【2】 。 【答案】先进后出
【解析】队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。
(2)在最坏情况下,堆排序需要比较的次数为 【2】 。 答案:O(nlog2n)
评析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。
(3)若串s=\"Program\",则其子串的数目是 【3】 。 答案:29
评析:串s中共有7个字符,由于串中字符各不相同,则其子串中有0个字符的1个(空串),1个字符的7个,2个字符的6个,3个字符的5个,4个字符的4个,5个字符的3个,6个字符的2个,7个字符的1个,共有1+2+3+4+5+6+7+1=29。
51. 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 解析:算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。 标准答案为:空间复杂度和时间复杂度
52. 数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。
解析:数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。 标准答案为:存储结构
53在最坏情况下,冒泡排序的时间复杂度为______。
解析:冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。
假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
标准答案为:n(n-1)/2 或 n*(n-1)/2 或 O(n(n-1)/2) 或 O(n*(n-1)/2)
54. 顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。 解析:常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。
标准答案为:相邻
52. 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。 标准答案为:中序
解析: 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前
序遍历、中序遍历和后序遍历。
前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。
55. 数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。 标准答案为:存储结构
解析: 数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。 50. 算法具有五个特性,以下选项中不属于算法特性的是______。 A、有穷性 B、简洁性 C、可行性 D、确定性
解析:本题考查的是算法的特性。
有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的五大特性。 故本题答案为B。
51. 某二叉树中度为2的结点有18个,则该二叉树中有 个叶子结点。 标准答案为:19
解析:本题考查的是二叉树的定义及其存储结构。
二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。 55. 问题处理方案的正确而完整的描述称为 。 标准答案为:算法 本题考查的是算法的基本概念。
解析:所谓算法是指解题方案的准确而完整的描述。
51. 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。 标准答案为:250
解析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=500,故父结点数等于int(500/2)=250,叶子结点数等于500-250=250。 52. 在最坏情况下,冒泡排序的时间复杂度为______。
标准答案为:n(n-1)/2 或 n*(n-1)/2 或 O(n(n-1)/2) 或 O(n*(n-1)/2)
解析:冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。
假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。 51. 数据结构包括数据的______结构和数据的存储结构。 标准答案为:逻辑
解析:数据结构是指带有结构的数据元素的集合。它包括数据的逻辑结构和数据的存储结构。
数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。 数据的存储结构是指在计算机存储空间中的存放形式。
第二章 程序设计基础
一、选择题
(1)下列叙述中正确的是
A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试 【答案】C
【解析】软件测试仍然是保证软件可靠性的主要手段,测试的目的是要尽量发现程序中的错误,调试主要是推断错误的原因,从而进一步改正错误。测试和调试是软件测试阶段的两个密切相关的过程,通常是交替进行的。选项C正确。
(2)下面描述中,不符合结构化程序设计风格的是
A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B)注重提高程序的可读性 D)使用goto语句
【答案】 D
【解析】在结构化程序设计中,应严格控制使用GOTO语句,必要时才可以使用,故答案为D。
(3)在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的”这一性质指的是对象的 A)分类性B)标识惟一性C)多态性D)封装性
【答案】D
【解析】从外面看只能看到对象的外部特性,而对象的内部,即处理能力的实行和内部状态,指的是对象的封装性。
(4)结构化程序设计的一种基本方法是
A)筛选法B)递归法C)归纳法D)逐步求精法
【答案】D
【解析】在结构化程序设计中通常采取自上而下、逐步求精的方法,其总的思想是先全局后局部、先整体后细节、先抽象后具体。而筛选法、递归法和归纳法指的都是程序的某种具体算法。
(5)函数重载是指
A)两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B)两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C)两个以上的函数名字不同,但形参的个数或类型相同 D)两个以上的函数取相同的函数名,并且函数的返回类型相同
【答案】A
【解析】函数重载指的是两个或两个以上的函数具有相同的函数名,但形参的个数或类型不同。程序中通过判断主调函数传过来的参数的个数和类型,来决定选择调用哪个具体的函数。
(6)下列选项中不符合良好程序设计风格的是 A)源程序要文档化 B)数据说明的次序要规范化 C)避免滥用goto?语 D)模块设计要保证高耦合、高内聚 【答案】D
【解析】编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接的说,风格就是意味着要按照规则进行编程。这些规则包括:程序文档化。就是程序文档包含恰当的标识符.适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率.但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语,因此,本题的正确答案是D。 (7) 在结构化程序设计中,模块划分的原则是( ) A)各模块应包括尽量多的功能 B)各模块的规模应尽量大
C)各模块之间的联系应尽量紧密
D)模块内具有高内聚度、模块间具有低耦合度 【答案】D
【解析】本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:
1.改进软件结构,提高模块独立性。通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。
2.模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分;过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。
3.模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点;如果模块的功能过分的局限,使用范围就过分狭窄。 经过上述分析,本题的正确答案是选项D。
(8) 下面选项中不属于面向对象程序设计特征的是( )
A)继承性 B)多态性 C)类比性 D)封装性 【答案】C
【解析】通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。
封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,是面向对象程序设计的基础。 继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承件自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式,继承有利于提高软件开发效率,容易达到一致性。
多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。 经过上述分析可知,选项C的说法是错误的。 (9) 在面向对象方法中,实现信息隐蔽是依靠( ) A)对象的继承 B)对象的多态 C)对象的封装 D)对象的分类
【答案】c
【解析】通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。
封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,也是面向对象程序设计的基础。 继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。
多态性;多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作.但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。
经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。正确答案是选项c。
(10) 下列叙述中,不符合良好程序设计风格的是( ) A)程序的效率第一,清晰第二 B)程序的可读性好 C)程序中有必要的注释 D)输入数据前要有提示信息 【答案】A
【解析】本题考查软件工程的程序设计风格。软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。
人们在软件生存期要经常阅读程序,特别是在软件测试和维护阶段,编写程序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。
正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。
I/O信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。
经过上述分析可知,选项A是不符合良好程序设计风格要求的。 (11)结构化程序设计的3种结构是 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构
C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构
解析: 顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的3种基本结构。故本题答案应该为选项D)。
(12)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的 A)安全性 B)一致性 C)可理解性 D)合理性 答案:C
(13)对建立良好的程序设计风格,下面描述正确的是 A)程序应简单、清晰、可读性好 B)符号名的命名只要符合语法 C)充分考虑程序的执行效率 D)程序的注释可有可无
解析: 程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。故本题答案应该为选项A)。 (14)结构化程序设计主要强调的是 A)程序的规模 B)程序的效率
C)程序设计语言的先进性 D)程序易读性
解析: 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。故本题答案应该为选项D)。
(15)对象实现了数据和操作的结合,是指对数据和数据的操作进行 A)结合 B)隐藏 C)封装 D)抽象
解析: 对象是由数据及可以对这些数据施加的操作组成的统一体。对象的内部,即处理能力的实行和内部状态,对外是看不见的,这一特性称做对象的封装。故本题答案应该为选项C)。
(4)编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑 A)仅为整个程序作注释 B)仅为每个模块作注释 C)为程序段作注释 D)为每个语句作注释 【答案】C
【解析】功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或者执行了下面的语句会怎么样。所以它描述的是一段程序,是为程序段做注释,而不是每条语句。
(5)下列哪个是面向对象程序设计不同于其他语言的主要特点? A)继承性 B)消息传递 C)多态性 D)静态联编 【答案】A
【解析】继承是一个子类直接使用父类的所有属性和方法。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,也是其不同于其他语言的主要特点。
3. 结构化程序设计主要强调的是______。
A、程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性
解析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。 本题答案为B。
2. 下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类 D、过程调用
解析:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象,类,消息,继承等概念。 本题答案为D。
3. 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。 A、模拟现实世界中不同事物之间的联系 B、强调模拟现实世界中的算法而不强调概念
C、使用现实世界的概念抽象地思考问题从而自然地解决问题 D、鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
解析:面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。 本题答案为C。
4. 对建立良好的程序设计风格,下面描述正确的是______。 A、程序应简单、清晰、可读性好 B、符号名的命名要符合语法 C、充分考虑程序的执行效率 D、程序的注释可有可无
解析:要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。 本题答案为A。
5. 下面对对象概念描述错误的是______。
A、任何对象都必须有继承性 B、对象是属性和方法的封装体 C、对象间的通讯靠消息传递 D、操作是对象的动态性属性
解析:对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。
本题答案为A。
4. 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。 A、调用语句 B、命令 C、口令 D、消息
解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。 本题答案为D。
5. 在设计程序时,应采纳的原则之一是______。 A、程序结构应有助于读者理解 B、不限制goto语句的使用 C、减少或取消注解行 D、程序越短越好
解析:滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。 本题答案为A。
3. 对建立良好的程序设计风格,下面描述正确的是______。 A、程序应简单、清晰、可读性好 B、符号名的命名要符合语法 C、充分考虑程序的执行效率 D、程序的注释可有可无
解析:要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。 本题答案为A。 二、填空题
(1)在面向对象方法中, ______描述的是具有相似属性与操作的一组对象。 【答案】类
【解析】在面向对象方法中,类描述的是具有相似属性与操作的一组对象。 (2)在面向对象方法中,类的实例称为 ______。 【答案】对象
【解析】类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。
(3)子程序通常分为两类: 和函数,前者是命令的抽象,后者是为了求值。 答案:过程
解析: 当程序之间发生调用关系时,调用命令所在的代码段被称为主程序,被调用的代码段被称为子程序。子程序是对功能的抽象,可分为过程和函数两类,两者的区别是函数是通过函数名来返回值的,而过程只能通过形式参数或对全局变量进行修改以返回值。 (4)在面向对象的程序设计中,类描述的是具有相似性质的一组 。 答案:对象
解析: 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。
(5)在面向对象方法中,类之间共享属性和操作的机制称为 。 答案:继承
解析: 类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。 (6)在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为 。 答案:消息
解析: 在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。
(7)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 。
答案:可重用性
解析:本题考查了继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
53. 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。
解析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
标准答案为:可重用性 或 重用性 或 复用性 或 可复用性 54. 面向对象的模型中,最基本的概念是对象和 ______。
解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。 标准答案为:类
54. 在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
解析:软件工程的基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
信息隐蔽是指采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 标准答案为:封装
51. 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。 解析:面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。 标准答案为:实体
52. 在面向对象方法中,类的实例称为 。 标准答案为:对象
解析:本题考查的是面向对象方法的基本概念。
将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。
52. 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。 标准答案为:模块化
解析:结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用goto语句。
自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
逐步求精:对复杂问题,应设计一些子目标作过度,逐步细化。
模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的
总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。 限制使用goto语句。
53. 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。 标准答案为:实体
解析:面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。
第三章 软件工程基础
一、选择题
(1) 下列叙述中正确的是( )
A)软件测试的主要目的是发现程序中的错误 B)软件测试的主要目的是确定程序中错误的位置
C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
D)软件测试是证明软件没有错误 【答案】A
【解析】本题考查软件工程中测试的目的和方法。仅就软件测试而言,,它的目的是发现软件中的错误,但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。由于测试的目标是暴露程序中的错误.从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。因此,经过上述分析可知选项A的说法是正确的,而选项B、c、D的说法是错误的。 (2)下列描述中正确的是
A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题
C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题【答案】C
【解析】软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。由此可见,选项A、B
和D的说法均不正确.选项C正确。
(3)在软件设计中,不属于过程设计工具的是
A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图 【答案】D
【解析】数据流图DFD,是结构化分析方法最主要的一种图形工具,不属于过程设计具。 (4)下列叙述中正确的是
A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 【答案】A
【解析】本题考核软件维护的概念。维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段,在软件交付使用后,还需要进行维护。软件维护通常有以下四:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。综上所述,本题的正确答案是A,其余选项的说法错误。
(5)用黑盒技术测试用例的方法之一为
A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试
【答案】A
【解析】黑盒测试主要方法有等价值划分法、边界值分析法、错误推测法、因果图法等。白盒测试的主要方法有逻辑覆盖、基本路径测试循环覆盖等。只有A属于黑盒测试。
(6)软件需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求分析说明书和 A)阶段性报告B)需求评审C)总结D)都不正确
【答案】B
【解析】需求分析的四个方面是:需求获取、需求分析、编写需求分析说明书和需求评审。
(7)在数据库的两级映射中,从概念模式到内模式的映射一般由______实现。 A)数据库系统B)数据库管理系统C)数据库管理员D)数据库操作系统
【答案】B
【解析】从概念模式到内模式的映射一般数据库管理系统(DBMS)实现。
(8)下面不属于软件设计原则的是
A)抽象B)模块化C)自底向上D)信息隐藏
【答案】C
【解析】软件设计的原则包括:抽象、模块化、信息隐蔽和模块独立性。所以自底向上不是软件设计原则。答案为C。 (9) 软件是指( )
A)程序 B)程序和文档
C)算法加数据结构 D)程序、数据和相关文档的集合 【答案】D
【解析】本题考查软件的定义。软件是计算机系统中与硬件相互依存得另一部分,它包括程序、相关数据及其说明文档得总和。因此,本题得正确答案是选项D。 (10) 软件调试的目的是( ) A)发现错误 B)改正错误 C)改善软件的性能 D)验证软件的正确性 【答案】 B
【解析】本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此.软件调试的目的是为了改正软件中的错误。本题的正确答案是选项B。 (11)下列选项中不属于结构化程序设计方法的是 A)自顶向下
B)逐步求精 D)可复用
C)模块化? 【答案】D
【解析】结构化程序设计方法的主要原则有4点:自顶向下(先从最上层总目标开始设计,逐步使问题具体化)、逐步求精(对于复杂问题,设计一些子目标作为过渡,逐步细化)、模块化(将程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标作为一个模块)、限制使用GOTO语句。没有可复用原则,所以选项D为答案。 (12)两个或两个以上模块之间关联的紧密程度称为 A)耦合度 C)复杂度 【答案】A
【解析】本题考核模块独立性的评价,评价模块独立性的主要标准有两个:一是模块之间的耦合.它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关
B)内聚度
D)数据传输特性
联的紧密程度(所以,本题的正确答案为选项A):二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。 (13)下列叙述中正确的是
A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对 【答案】D
【解析】本题考核软件测试、软件调试和软件维护的概念。软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试具有挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。所以,选项A的说法错误。 调试也称排错,目的是发现错误的位置,并改正错误。经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。所以,选项B的说法错误。
软件维护通常有4类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护.还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。所以,选项c的说法错误。
综上所述,选项A、B、c的说法都错误,所以,选项D为正确答案。 (14)从工程管理解度,软件设计一般分为两步完成,它们是 A)概要设计与详细设计
B)数据设计与接口设计 D)过程设计与数据设计
C)软件结构设计与数据设计 【答案】A
【解析】从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成.包括总体结构设计、数据设计和过程设计。因此,本题的正确答案是A。
(15)下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试
B)概要设计
C)软件维护 【答案】c
D)详细设计
【解析】软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久的满足用户的需要。即当软件在使用过程中发现错误时应加以改正:当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项c中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是c。 (16)下列对于软件测试的描述中正确的是______。
A) 软件测试的目的是证明程序是否正确 B) 软件测试的目的是使程序运行结果正确
C) 软件测试的目的是尽可能多地发现程序中的错误 D) 软件测试的目的是使程序符合结构化原则 【答案】C
【解析】软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。可见选项C的说法正确。 (17)为了使模块尽可能独立,要求______。
A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
【答案】B
【解析】系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项B的答案正确 (18)下列描述中正确的是______。
A)程序就是软件
B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体 D)软件是程序、数据与相关文档的集合 【答案】D
【解析】计算机软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据与相关文档的完整集合。选项D的描述正确。 (19)下列叙述中,不属于结构化分析方法的是 A)面向数据流的结构化分析方法 B)面向数据结构的Jackson方法
C)面向数据结构的结构化数据系统开发方法 D)面向对象的分析方法
解析: 常见的需求分析方法有结构化分析方法和面向对象的分析方法两类。其中结构化分析方法又包括面向数据流的结构化分析方法(SA-Structured analysis),面向数据结构的Jackson方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSD-Data structured system development method)。故本题答案应该为选项D)。
(20)详细设计的结果基本决定了最终程序的 A)代码的规模 B)运行速度 C)质量 D)可维护性
解析: 详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,但详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码,因此,详细设计阶段的结果基本上就决定了最终的程序代码的质量。故本题答案应该为选项C)。 (21)下列不属于静态测试方法的是 A)代码检查 B)白盒法 C)静态结构分析 D)代码质量度量
解析: 静态测试包括代码检查、静态结构分析和代码质量度量等。其中白盒测试属于动态测试。故本题答案应该为选项B)。
(22)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是 A)多对多 B)一对一 C)多对一 D)一对多
解析: 现实世界中事物之间的联系在信息世界中反映为实体集之间的联系,实体集间的联系个数不仅可以是单个的也可以是多个的,这种关系可以有下面几种对应:一对一、一对多(多对一)多对多。两个实体集间的联系可以用下图表示:
故本题答案应该为选项C)。
(23)为了提高测试的效率,应该 A)随机选取测试数据
B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划
D)集中对付那些错误群集的程序
解析: 测试的目的是发现软件中的错误。经验表明,程序中存在错误的概率与该程序中已发现的错误数成正比。这一现象说明,为了提高测试效率,测试人员应该集中对付那些错误群集的程序。故本题答案应该为选项D)。 (24)软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护
解析: 软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。故本题答案应该为选项D)。
(25)下列叙述中,不属于软件需求规格说明书的作用的是 A)便于用户、开发人员进行理解和交流
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 C)作为确认测试和验收的依据 D)便于开发人员进行需求分析
解析: 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。 (26)下列不属于软件工程的3个要素的是 A)工具 B)过程 C)方法 D)环境
解析: 软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。故本题答案应该为选项D)。
(27)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的 A)抽象和信息隐蔽 B)局部化和封装化 C)内聚性和耦合性 D)激活机制和控制方法
解析: 模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。故本题答案应该为选项C)。 (28)软件开发的结构化生命周期方法将软件生命周期划分成 A)定义、开发、运行维护 B)设计阶段、编程阶段、测试阶段 C)总体设计、详细设计、编程调试 D)需求分析、功能定义、系统设计
解析: 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。
(29)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是 A)路径的集合 B)循环的集合 C)目标的集合 D)地址的集合
解析: 软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。故本题答案应该为选项A)。
(30)下列不属于结构化分析的常用工具的是 A)数据流图
B)数据字典 C)判定树 D)PAD图
解析: 结构化分析的常用工具有数据流图、数据字典、判定树和判定表。而PAD图是常见的过程设计工具中的图形设计。故本题答案应该为选项D)。 (31)在软件生产过程中,需求信息的给出是 A)程序员 B)项目管理者 C)软件分析设计人员 D)软件用户
解析: 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。故本题答案应该为选项D)。
(32)下列工具中为需求分析常用工具的是 A)PAD B)PFD C)N-S D)DFD
解析: 需求分析中的常用工具有PAD、PFD及N-S等,而DFD(数据流图)为结构化分析工具。故本题答案应该为选项D)。
(33)NULL是指 A)0 B)空格
C)未知的值或无任何值 D)空字符串
解析: 此题属于记忆性的题目,NULL是指未知的值或无任何值。故本题答案应该为选项C)。
(34)软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
解析: 软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。故本题答案应该为选项C)。
(35)软件开发离不开系统环境资源的支持,其中必要的测试数据属于 A)硬件资源 B)通信资源 C)支持软件 D)辅助资源 答案:D
(36)在数据流图(DFD)中,带有名字的箭头表示 A)模块之间的调用关系 B)程序的组成成分 C)控制程序的执行顺序 D)数据的流向
解析: 数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。故本题答案应该为选项D)。 (37)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指 A)模块间的关系
B)系统结构部件转换成软件的过程描述
C)软件层次结构 D)软件开发过程
解析: 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。故本题答案应该为选项B)。 (38)检查软件产品是否符合需求定义的过程称为 A)确认测试 B)集成测试 C)验证测试 D)验收测试
解析: 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明定的各种需求;集成测试的主要目的是发现与接口有关的错误。故本题答案应该为选项A)。 (39)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 A)控制流 B)加工 C)数据存储 D)源和潭
解析: 数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。故本题答案应该为选项A)。
(40)下列叙述中,正确的是 A)软件就是程序清单
B)软件就是存放在计算机中的文件 C)软件应包括程序清单及运行结果
D)软件包括程序和文档
解析: 软件(software)是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。故本题答案应该为选项D)。 (41)软件设计中,有利于提高模块独立性的一个准则是 A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
解析: 模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。一般优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。故本题答案应该为选项C)。
(42)软件生命周期中花费时间最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护
解析: 软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。故本题答案应该为选项D)。 (6)需求分析最终结果是产生 A)项目开发计划 B)需求规格说明书 C)设计说明书 D)可行性分析报告 【答案】B
【解析】需求分析应交付的主要文档就是需求规格说明书。 (7)在进行单元测试时,常用的方法是 A)采用白盒测试,辅之以黑盒测试 B)采用黑盒测试,辅之以白盒测试 C)只使用白盒测试 D)只使用黑盒测试 【答案】A
【解析】白盒测试是测试程序内部逻辑结构,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试为辅。
(5)下列不属于结构化分析的常用工具的是______。 A)数据流图 答案:D
评析:结构化分析的常用工具有数据流图、数据字典、判定树和判定表。而PAD图是常见的过程设计工具中的图形设计。
(6)软件设计的基本原理中,______是评价设计好坏的重要度量标准。 A)信息隐蔽性 B)模块独立性 C)耦合性 D)内聚性 答案:B
评析:信息隐蔽是指,在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
模块的独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立性是评价设计好坏的重要度量标准,而衡量软件的模块独立性使用的是耦合性和内聚性两个度量标准:内聚性是指一个模块内部各个元素间彼此结合的紧密程度的度量。一个模块的内聚性越强,则该模块的模块独立性越强;耦合性是模块间互相连接的紧密程度的度量。耦合性取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
(7)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。 A)循环的集合
B)地址的集合 B)数据字典
C)判定树 D)PAD图
C)路径的集合 答案:C
D)目标的集合
评析:软件的白盒测试方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 2. 结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
A、可行性分析 B、需求分析 C、详细设计 D、程序编码
解析:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。
本题答案为B。
4. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
A、概要设计 B、详细设计 C、可行性分析 D、需求分析
解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
软件生命周期的主要活动阶段为:
(1)可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。 (2)需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
(3)软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
(4)软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
(5)软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
(6)运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。 本题答案是D。
6. 下面不属于软件设计原则的是______。
A、抽象 B、模块化 C、自底向上 D、信息隐蔽
解析:在软件设计过程中,必须遵循软件工程的基本原则:这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。 本题答案为C。
4. 程序流程图(PFD)中的箭头代表的是______。 A、数据流 B、控制流 C、调用关系 D、组成关系
解析:程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。
本题答案为B。
8. 在结构化方法中,软件功能分解属于下列软件开发中的______阶段。 A、详细设计 B、需求分析 C、总体设计 D、编程调试
解析:总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。 本题答案为C。
9. 软件调试的目的是______。 A、发现错误 B、改正错误 C、改善软件的性能 D、挖掘软件的潜能
解析:由程序调试的概念可知:程序调试活动由两部分组成,其一是根据错误的迹象确定程序中错误的确切性质、原因和位置。其二,对程序进行修改,排除这个错误。所以程序调试的目的就是诊断和改正程序中的错误。
本题答案为B。
6. 下列叙述中,不属于软件需求规格说明书的作用的是______。
A、便于用户、开发人员进行理解和交流
B、反映出用户问题的结构,可以作为软件开发工作的基础和依据 C、作为确认测试和验收的依据 D、便于开发人员进行需求分析
解析:软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。
本题答案为D。
9. 软件开发的结构化生命周期方法将软件生命周期划分成______。 A、定义、开发、运行维护 B、设计阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计
解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护三个阶段。
本题答案为A。 10. 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。 A、循环的集合 B、地址的集合 C、路径的集合 D、目标的集合
解析:软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 本题答案为C。
6. 下列对于软件测试的描述中正确的是______。 A、软件测试的目的是证明程序是否正确 B、软件测试的目的是使程序运行结果正确
C、软件测试的目的是尽可能多地发现程序中的错误 D、软件测试的目的是使程序符合结构化原则 解析:本题考查的是软件测试的目的。
关于软件测试的目的,Grenford J.Myers再《The Art of Software Testing》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。
故本题答案为C。
7. 为了使模块尽可能独立,要求______。
A、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 解析:本题考查的是软件工程基本概念。
模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
故本题答案为B。
8. 下列描述中正确的是______。 A、程序就是软件
B、软件开发不受计算机系统的限制 C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与相关文档的集合 解析:本题考查的是软件工程基本概念。
计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。软件具有以下特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性;②软件的生产过程与硬件不同,它没有明显的制作过程;③软件在运行、使用期间不存在磨损、老化问题;④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素。
故本题答案为D。
5. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。 A、概要设计 B、详细设计 C、可行性分析 D、需求分析
解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
软件生命周期的主要活动阶段为:
(1)可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。 (2)需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
(3)软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
(4)软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
(5)软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
(6)运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
本题答案是D。
6. 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。 A、控制流 B、加工 C、数据存储 D、源和潭
解析:本题答案为A。
7. 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。 A、阶段性报告 B、需求评审 C、总结 D、都不正确
解析:软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。
需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
需求评审是对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整
性和有效性。
本题答案是B。
6. 下面不属于软件工程的3个要素的是______。 A、工具 B、过程 C、方法 D、环境
解析:软件工程包括3个要素,即方法、工具和过程。 本题答案为D。
7. 程序流程图(PFD)中的箭头代表的是______。 A、数据流 B、控制流 C、调用关系 D、组成关系
解析:程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。
本题答案为B。
5. 检查软件产品是否符合需求定义的过程称为______。 A、确认测试 B、集成测试 C、验证测试 D、验收测试
解析:确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。 本题答案为A。
6. 下列工具中不属于需求分析常用工具的是______。 A、PAD B、PFD C、N-S D、DFD
解析:常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的常用工具有:数据流图(DFD)、数据字典(DD)、判定树和判定表等。 本题答案为D。
7. 下面不属于软件设计原则的是______。 A、抽象
B、模块化 C、自底向上 D、信息隐蔽
解析:在软件设计过程中,必须遵循软件工程的基本原则:这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。 本题答案为C。
6. 下列不属于软件调试技术的是______。 A、强行排错法 B、集成测试法 C、回溯法 D、原因排除法
解析:调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。
本题答案为B。
7. 下列叙述中,不属于软件需求规格说明书的作用的是______。 A、便于用户、开发人员进行理解和交流
B、反映出用户问题的结构,可以作为软件开发工作的基础和依据 C、作为确认测试和验收的依据 D、便于开发人员进行需求分析
解析:软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:① 便于用户、开发人员进行理解和交流;② 反映出用户问题的结构,可以作为软件开发工作的基础和依据;③ 作为确认测试和验收的依据。
本题答案为D。
8. 在数据流图(DFD)中,带有名字的箭头表示______。 A、控制程序的执行顺序 B、模块之间的调用关系 C、数据的流向 D、程序的组成成分
解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
本题答案为C。
5. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。 A、模块间的关系
B、系统结构部件转换成软件的过程描述 C、软件层次结构 D、软件开发过程
解析:软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。
本题答案为B。
6. 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。 A、PAD图 B、N-S图 C、结构图 D、数据流图
解析:常见的过程设计工具有:程序流程图、N-S图、PAD图和HIPO图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为N-S图。
本题答案为B。
10. 需求分析阶段的任务是确定______。 A、软件开发方法 B、软件开发工具 C、软件开发费用 D、软件系统功能
解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务;选项C)软件开发费用是在可行性研究阶段需完成的任务。
本题答案为D。
5. 检查软件产品是否符合需求定义的过程称为______。 A、确认测试 B、集成测试 C、验证测试 D、验收测试
解析:确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的
确定的各种需求,以及软件配置是否完全、正确。 本题答案为A。
7. 在数据流图(DFD)中,带有名字的箭头表示______。 A、控制程序的执行顺序 B、模块之间的调用关系 C、数据的流向 D、程序的组成成分
解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
本题答案为C。
8. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。 A、模块间的关系
B、系统结构部件转换成软件的过程描述 C、软件层次结构 D、软件开发过程
解析:软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。 本题答案为B。 二、填空题
(1)诊断和改正程序中错误的工作通常称为 ____ 。
【答案】调试或程序调试或软件调试或Debug(英文字母大小写均可)或调试程序或调试软件
【解析】调试也称排错,调试的目的是发现错误的位置,并改正错误。一般的调试过程分为错误侦查、错误诊断和改正错误。
(2)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 _____ 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 【答案】驱动模块
【解析】由于模块不是一个独立的程序,不能单独运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中驱动模块的作用是将
测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是模拟被测试模块的下层模块。通常,承接模块有多个。 (3) ____ 的任务是诊断和改正程序中的错误。
【答案】调试(阶段)或程序调试(阶段)或软件调试(阶段)或Debug(阶段)
【解析】软件测试的目的是发现程序中的错误,而调试的目的是确定程序中错误的位置和引起错误的原因,并加以改正。换句话说,测试的目的就是诊断和改正程序中的错误。调试不是测试,但是它总是发生在测试之后。因此,本题的正确答案是调试(阶段)或程序调试(阶段或软件调试(阶段)或Debug(阶段)。
(4) 软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于______测试。 【答案】黑箱或黑盒或黑箱(盒)
【解析】本题考查软件工程的测试。对于软件测试而言,黑箱(盒)测试是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接收输入数据产生正确的输出信息。与黑箱(盒)测试相反,白箱(盒)测试的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。它按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确处理。
等价类划分是把所有可能的输入数据(有效的和无效的)划分成若干个等价类,则可以合理的做出下述假定:每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同。显然,等价类划分完全不考虑程序的内部结构和处理过程,因此它属于黑箱(盒)测试。 (5) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于_______阶段。 【答案】开发或软件开发
【解析】本题考查软件工程的软件生命周期及其各阶段的基本任务。一般说来,软件生命周期由软件定义、软件开发和软件维护三个时期组成。
软件定义时期的任务是确定软件开发工程必须完成的总目标;导出实现工程目标应该采用的的策略及系统必须完成的功能;确定工程的可行性;估计完成该项工程需要的资源和成本,并且制定工程进度表。
软件开发时期的任务是设计程序结构,给出程序的详细规格说明;编写程序代码,并且仔细测试编写出的每一个程序模块;最后进行综合测试,也就是通过各种类型的测试使软件达到预定的要求。
软件维护时期的任务是使软件持久的满足用户的需要。具体地说,就是诊断和改正在使用过程中发现的软件错误;修改软件从而适应环境的变化;根据用户的要求改进或扩充软件使其更完善;修改软件为将来的维护活动预先做准备。
显然,编码和测试属于软件开发阶段。划线处心填入“开发”或“软件开发”。
(6) 在结构化分析使用的数据流图(DFD)中,利用______对其中的图形元素进行确切解释。
【答案】数据字典或DD
【解析】本题考查数据流图和数据字典的概念。数据流图(Data Flow Diagram,DFD)是一种结构化分析描述模型,用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。尽管数据流图给出了系统数据流向和加工等情况,但其各个成分的具体含义仍然不清楚或不明确,因此,在实际中常采用数据词典这一基本工具对其作进-步的详细说明。数据词典(Data Dictionary,简称DD)和数据流图密切配合,能清楚地表达数据处理的要求。数据词典用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存贮名字具有确切的解释。每一条解释就是一条词条,按一定的顺序将所有词条排列起来,就构成了数据词典,就象日常使用的英汉词典、新华词典一样。因此,划线处应填入“数据字典”或“DD”。 (7) 软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的 ____ 。 【答案】正确性
【解析】本题考查软件工程中需求规格说明书的评审。衡量需求规格说明书好坏的标准按重要性次序排列为:正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。因此,划线处应填入“正确性”。
(8) 在两种基本测试方法中, ____测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
【答案】白盒或白箱或白盒子或WhiteBox
【解析】本题考查软件工程的测试。测试一般有两种方法:黑盒测试和白盒测试。黑盒测试不考虑程序的内部逻辑结构和处理过程,只着眼于程序的外部特性。用黑盒测试来发现程序中的错误,必须用所有可能的输入数据来检查程序能否都能产生正确的输出。白盒测试是在了解程序内部结构和处理过程的基础上,对程序的所有路径进行测试,检查路径是否都能按预定要求正确工作。因此,划线处应填入“白盒(箱)”或“White Box”。 (9)程序测试分为静态分析和动态测试。其中 ___ 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。 【答案】静态分析
【解析】程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(10)软件的 设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 答案:概要
(11)对软件是否能达到用户所期望的要求的测试称为 。 答案:有效性测试
(12)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 。 答案:软件生命周期
解析: 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
(13)耦合和内聚是评价模块独立性的两个主要标准,其中 反映了模块内各成分之间的联系。 答案:内聚
解析: 内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。
(14)常用的黑箱测试有等价分类法、 、因果图法和错误推测法4种。 答案:边值分析法
解析: 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法4种。 (15)测试的目的是暴露错误,评价程序的可靠性;而 的目的是发现错误的位置并改正错误。 答案:调试
解析: 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。 (16)软件维护活动包括以下几类:改正性维护、适应性维护、 维护和预防性维护。 答案:完善性维护
解析: 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提
高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
(17)软件开发环境是全面支持软件开发全过程的 集合。 答案:软件工具
(18)软件危机出现于60年代末,为了解决软件危机,人们提出了 的原理来设计软件,这就是软件工程诞生的基础。 答案:软件工程学
(19)软件工程研究的内容主要包括: 技术和软件工程管理。 答案:软件开发技术
解析: 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学,以及软件心理学等内容。
(20)软件工程的出现是由于 。 答案:软件危机
解析: 从20世纪60年代中期到70年代中期,随着计算机应用的日益普及,软件数量急剧膨胀,在程序运行时发现的错误必须设法改正,用户有了新的需求时必须相应的修改程序以适应新的环境。种种软件维护工作耗费惊人的资源,更严重的是许多程序个体化使得程序最终无法维护,“软件危机”就这样出现了。为了更有效的开发与维护软件,新兴了一门软件工程学即软件工程。
(21)单元测试又称模块测试,一般采用 测试。 答案:白盒法
解析: 软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试和系统测试。单元测试的技术可以采用静态分析和动态测试。对动态测试多采用白盒动态测试为主,辅之以黑盒测试。
(3)数据流图的类型有【3】和事务型。 【答案】变换型
【解析】典型的数据流图有两种,即变换型和事务型。
(1)测试的目的是暴露错误,评价程序的可靠性;而 【1】 的目的是发现错误的位置并改正错误。 答案:调试
评析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序
可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。 53. Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。
解析:结构化分析方法主要包括:面向数据流的结构化分析方法(SA-Structured analysis),面向数据结构的Jackson方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSD-Data structured system development method)。
标准答案为:数据结构
55. 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。 解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
标准答案为:完善性
51. 若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。 解析:软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试方法和白盒测试方法。在使用黑盒法设计测试实例时,测试人员将程序看成一个\"黑盒\",也就是说,他不关心程序内部是如何实现的,而只是检查程序是否符合它的\"功能说明\",所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的;如用白盒法,则需要了解程序内部的结构,此时的测试用例是根据程序的内部逻辑来设计的,如果想用白盒法发现程序中所有的错误,则至少必须使程序中每种可能的路径都执行一次。实际上这是不可能的,即使测遍所有的路径,仍不一定能保证符合相应的功能要求。
标准答案为:黑盒
52. 与结构化需求分析方法相对应的是______方法。
解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才能解决好某个具体且有清楚定义的问题。
标准答案为:结构化设计
53. 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。 解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、
排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
标准答案为:完善性
52. 软件工程研究的内容主要包括:______技术和软件工程管理。 标准答案为:软件开发
解析:基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软开发方法学。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。 53. 与结构化需求分析方法相对应的是______方法。 标准答案为:结构化设计
解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才能解决好某个具体且有清楚定义的问题。
53. 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 标准答案为:数据存储
解析: 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项,是数据的最小单位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出;数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件;处理过程。
54. 软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。 标准答案为:需求获取
解析:软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。
需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进度的
依据。
需求评审是对需求分析阶段的工作进行的复审,验证需求文档的一致性、可行性、完整性和有效性。
53. 诊断和改正程序中错误的工作通常称为 。 标准答案为:程序调试
解析:本题考查的是软件的调试。
程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿整个软
件生命期,调试主要再开发阶段。
53. 软件的调试方法主要有:强行排错法、______和原因排除法。 标准答案为:回溯法
解析:调式的关键在于推断程序内部的错误位置及原因。其主要的调试方法有:强行排错法、回溯法和原因排除法。
强行排错法:是传统的调试方法,其过程可概括为:设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多、效率较低的调试方法。
回溯法:该方法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现\"症状\"的位置。然后,从发现\"症状\"的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。
原因排除法:是通过演绎和归纳,以及二分法来实现的。
55. 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 标准答案为:数据存储
解析:数据字典是各类数据描述的集合,它通常包括5个部分,即数据项,是数据的最小单位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出;数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件;处理过程。
第四章 数据库基础
一、选择题
(1) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是( )
A)并 B)交 C)投影 D)笛卡儿乘积 【答案】B
【解析】本题考查数据库的关系运算。两个关系的并运算是指将第一个关系的元组加到第二个关系中,生成新的关系。因此,并运算不改变关系表中的属性个数,也不能减少元组
个数。两个关系的交运算是包含同时出现在第一和第二个关系中的元组的新关系。因此,交运算不改变关系表中的属性个数,但能减少元组个数。投影是一元关系操作。投影操作选取关系的某些属性,这个操作是对一个关系进行垂直分割,消去某些属性,并重新安排属性的顺序,再删除重复的元组。因此,投影运算既可以减少关系表中的属性个数,也可以减少元组个数。两个关系的笛卡儿乘积是指一个关系中的每个元组和第二个关系的每个元组连接。因此,笛卡儿乘积运算能够增加元组属性的个数。
经过上述分析可知,在上述四种运算中,交运算不改变关系表中的属性个数但能减少元组个数。因此,正确答案是选项B。
(2) 在E-R图中,用来表示实体之间联系的图形是( )
A)矩形 B)椭圆形 C)菱形 D)平行四边形 【答案】C
【解析】E-R模型中,有三个基本的抽象概念:实体、联系和属性。E-R图是E-R模型的图形表示法,在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。因此,本题的正确答案是选项C。 (3) 下列叙述中错误的是( )
A)在数据库系统中,数据的物理结构必须与逻辑结构一致 B)数据库技术的根本目标是要解决数据的共享问题
C)数据库设计是指在已有数据库管理系统的基础上建立数据库
D)数据库系统需要操作系统的支持 【答案】A
【解析】本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。
数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。
数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构:二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。
数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作
系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。 因此,本题的正确答案是选项A。 (4)数据库设计的根本目标是要解决
A)数据共享问题 B)数据安全问题 C)大量数据存储问题 D)简化数据维护 【答案】A
【解析】本题考核数据库技术的根本目标,很简单,记忆性题目。数据库技术的根本目标就是要解决数据的共享问题,选项A正确。 (5)设有如下关系表:
R S T A B C A B C A B C 1 1 2 3 1 3 1 1 2 2 2 3 2 2 3 3 1 3
则下列操作中正确的是
A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S 【答案】B
【解析】选项A、B、c分别进行交运算、并运算、笛卡尔积运算,选项D不是关系运算。T由属于关系R以及关系S的元组组成,简单来说,就是S和R的元组之和,是并运算,选项B正确。
(6)数据库系统的核心是
A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员 【答案】B
【解析】数据库管理系统(DBMS)是整个数据库系统的核心,它对数据库中的数据进行管理,还在用户的个
别应用与整体数据库之间起接门作用。选项B正确。
(7)在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是 A)数据定义语言B)数据转换语言C)数据操纵语言D)数据控制语言
【答案】c
【解析】在数据库管理系统提供的数据语言中,数据操纵语言负责数据的查询及增、删、改等操作。
(8)关系数据库的数据及更新操作必须遵循_____等完整性规则。 A)实体完整性和参照完整性 B)参照完整性和用户定义的完整性
D)实体完整性、参照完整性和用户定义的完整性
【答案】D
【解析】关系模型中包括关系的数据结构、关系的操纵和关系中的数据约束。关系完整性约束即数据完整性,包括实体完整性、参照完整性和用户自定义完整性。
(9)实体联系模型中实体与实体之间的联系不可能是 A)一对一B)多对多C)一对多D)一对零
【答案】D
【解析】实体联系模型中实体与实体之间的联系有一对一(1:1),一对多或多对一(1:m或m:1),多对多(m:n)其中一对一是最常用的关系。
(10)支持数据库各种操作的软件系统叫做
A)数据库管理系统B)文件系统C)数据库系统D)操作系统
【答案】A
【解析】数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护维护、控制及保护和数据服务等操作。所以答案为A。
(11)在关系数据库模型中,通常可以把______称为属性,其值称为属性值。 A)记录B)基本表C)模式D)字段
【答案】D
【解析】数据库表中字段转化为属性,把记录的类型转化为关系模式。
(12)用树形结构来表示实体之间联系的模型称为 A)关系模型B)层次模型C)网状模型D)数据模型
【答案】B
【解析】关系模型以二维表表示实体之间的联系,网状模型以一个不加任何条件限制 的无向图表示实体之间的联系。层次模型的基本结构为树形结构。而D选项数据模 型包括关系模型、网状模型和层次模型。 (13)“商品”与“顾客”两个实体集之间的联系一般是 A)一对一?
B)一对多
C)多对一D)多对多 【答案】D
【解析】本题考核实体集之间的联系。实体集之间的联系有3种:一对一、 一对多和多对多。因为一类商品可以由多个顾客购买,而一个顾客可以购买多类商品.所以.“商品”
与“顾客”两个实体集之间的联系一般是“多对多”,选项D正确。 (14)在E—R图中,用来表示实体的图形是 A)矩形 【答案】A
【解析】在E—R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。所以,选项A正确。 (15)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是 A)DB包含DBS和DBMS? B)DBMS包含DB和DBS C)DBS包含DB和DBMS? D)没有任何关系 【答案】C
【解析】数据库管理系统DBMS是数据库系统中实现各种数据管理功能的核心软件。它负责数据库中所有数据的存储、检索、修改以及安全保护等,数据库内的所有活动都是在其控制下进行的。所以,DBMS包含数据库DB、操作系统、数据库管理系统与应用程序在一定的硬件支持下就构成了数据库系统。所以,DBS包含DBMS,也就包含DB。综上所述.选项C正确。
(16) 下列叙述中正确的是( )
A)数据库系统是一个独立的系统,不需要操作系统的支持 B)数据库技术的根本目标是要解决数据的共享问题 C)数据库管理系统就是数据库系统 D)以上三种说法都不对 【答案】B
【解析】本题考查数据库系统的基本概念和知识。
数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项A的说法是错误的。 数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们
B)椭圆形 C)菱形
D)三角形
所需要的子集,而且允许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。
通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。 因此,选项C的说法是错误的。本题的正确答案是选项B。 (17) 下列叙述中正确的是( )
A)为了建立一个关系,首先要构造数据的逻辑关系
B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项 C)一个关系的属性名表称为关系模式 D)一个关系可以包括多个二维表 【答案】C
【解析】本题考查数据库的关系模型。关系模型的数据结构是一个“二维表”,每个二维表可称为一个关系,每个关系有一个关系名。表中的一行称为一个元组;表中的列称为属性,每一列有一个属性名。表中的每一个元组是属性值的集合,属性是关系二维表中最小的单位,它不能再被划分。关系模式是指一个关系的属性名表,即二维表的表框架。因此,选项c的说法是正确的。
(18)在数据库系统中,用户所见的数据模式为 A)概念模式 C)内模式 【答案】B
【解析】数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述。是所有用户所见到的数据视图的总和。内模式也称存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方法的描述。根据上述介绍可知,数据库系统中用户所见到的数据模式为外模式。因此,本题的正确答案是B。
(19)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 A)编码设计 C)运行阶段 【答案】D
B)测试阶段 D)物理设计
B)外模式 D)物理模式
【解析】数据库的生命周期可以分为两个阶段: 一是数据库设计阶段;二是数据库实现阶段。数据库的设计阶段又分为如下四个子阶段:即需求分析、概念设计、逻辑设计和物理设计。因此,本题的正确答案是D。 (20)设有如下三个关系表
R A m n
S B 1
C 3
T A m n B 1 1 C 3 3 下列操作中正确的是
A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S 【答案】c
【解析】本题考查数据库的关系代数运算。R表中只有一个域名A,有两个记录(也叫元组),分别是m和n;s表中有两个域名,分别是B和c,其所对应的记录分别为l和3。注意观察表T,它是由R的第一个记录依次与s的所有记录组合,然后再由R的第二个记录与s的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数的笛卡尔积运算规则。关系代数中,笛卡尔积运算用“×”来表示。因此,上述运算可以表示为T=R×s。因此,本题的正确答案为c。
(21)数据库核技术的根本目标是要解决数据的 A)存储问题 C)安全问题 【答案】B
【解析】数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。
(22)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______。
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
B)共享问题 D)保护问题
C)不同的数据只能被对应的应用程序所使用 D)以上三种说法都不对 【答案】D
【解析】数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结须有构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。综上所述,本题的正确答案是D。
(23)用树形结构表示实体之间联系的模型是______。
A)关系模型 B)网状模型 【答案】C
【解析】在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。 (24)下列关系运算的叙述中,正确的是
A)投影、选择、连接是从二维表行的方向进行的运算 B)并、交、差是从二维表的列的方向来进行运算 C)投影、选择、连接是从二维表列的方向进行的运算 D)以上3种说法都不对
解析: 在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等),还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的。后者是从二维表的列的方向来进行运算的。故本题答案应该为选项C)。 (25)关系数据库管理系统应能实现的专门的关系运算包括 A)排序、索引、统计 B)选择、投影、连接
C)层次模型
D)以上三个都是
C)关联、更新、排序 D)显示、打印、制表
解析: 关系数据库建立在关系数据模型基础上,具有严格的数学理论基础。关系数据库对数据的操作除了包括集合代数的并、差等运算之外,更定义了一组专门的关系运算:连接、选择和投影。关系运算的特点是运算的对象都是表。故本题答案应该为选项B)。 (26)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)C B)Basic C)DDL D)DML
解析: 选项A)、B)显然不合题意。数据定义语言(Data Definition Language,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(Data Manipulation Language,简称DML)负责数据的操纵,包括查询及增、删、改等操作。故本题答案应该为选项C)。
(27)下列有关数据库的描述,正确的是 A)数据库是一个DBF文件 B)数据库是一个关系
C)数据库是一个结构化的数据集合 D)数据库是一组文件
解析: 数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”之特点。故本题答案应该为选项C)。 (28)下列有关数据库的描述,正确的是 A)数据处理是将信息转化为数据的过程
B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 C)关系中的每一列称为元组,一个元组就是一个字段
D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,
则称其为本关系的外关键字
解析: 数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。故本题答案应该为选项D)。 (29)单个用户使用的数据视图的描述称为 A)外模式 B)概念模式 C)内模式 D)存储模式
解析: 选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。
(30)将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域
解析: 数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。故本题答案应该为选项B)。 (31)SQL语言又称为 A)结构化定义语言 B)结构化控制语言 C)结构化查询语言 D)结构化操纵语言
解析: 结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。故本题答案应该为选项C)。
(32)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有 A)特定的数据模型 B)数据无冗余 C)数据可共享 D)专门的数据管理软件
解析: 在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。故本题答案应该为选项A)。 (33)数据库设计包括两个方面的设计内容,它们是 A)概念设计和逻辑设计 B)模式设计和内模式设计 C)内模式设计和物理设计 D)结构特性设计和行为特性设计 答案:A
(34)实体是信息世界中广泛使用的一个术语,它用于表示 A)有生命的事物 B)无生命的事物 C)实际存在的事物 D)一切事物
解析: 实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。故本题答案应该为选项C)。
(35)数据库的故障恢复一般是由
A)数据流图完成的 B)数据字典完成的 C)DBA完成的 D)PAD图完成的
解析: 一旦数据库中的数据遭受破坏,需要及时进行恢复,RDBMS一般都提供此种功能,并由DBA负责执行故障恢复功能。故本题答案应该为选项C)。 (36)下列说法中,不属于数据模型所描述的内容的是 A)数据结构 B)数据操作 C)数据查询 D)数据约束
解析: 数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。故本题答案应该为选项C)。 (37)分布式数据库系统不具有的特点是 A)数据分布性和逻辑整体性 B)位置透明性和复制透明性 C)分布性 D)数据冗余
解析: 分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储,数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。故本题答案应该为选项D)。 (38)关系表中的每一横行称为一个 A)元组 B)字段
C)属性 D)码
解析: 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。故本题答案应该为选项A)。
(39)下列数据模型中,具有坚实理论基础的是 A)层次模型 B)网状模型 C)关系模型 D)以上3个都是
解析: 关系模型较之格式化模型(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。故本题答案应该为选项C)。 (40)应用数据库的主要目的是 A)解决数据保密问题 B)解决数据完整性问题 C)解决数据共享问题 D)解决数据量大的问题
解析: 数据库中的数据具有\"集成\"与\"共享\"的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项C)正确。 (41)在数据库设计中,将E-R图转换成关系数据模型的过程属于 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段
解析: E-R模型即实体-联系模型,是将现实世界的要求转化成实体、联系、属性等几个
基本概念,以及它们之间的两种联接关系。数据库逻辑设计阶段包括以下几个过程:从E-R图向关系模式转换,逻辑模式规范化及调整、实现规范化和RDBMS,以及关系视图设计。故本题答案应该为选项B)。
(42)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是 A)数据库系统 B)文件系统 C)人工管理 D)数据项管理
解析: 人工管理阶段是在20世纪50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。故本题答案应该为选项A)。 (43)下列4项中说法不正确的是 A)数据库减少了数据冗余 B)数据库中的数据可以共享 C)数据库避免了一切数据的重复 D)数据库具有较高的数据独立性
解析: 数据库系统具有以下几个特点,一是数据的集成性、二是数据的高共享性与低冗余性、三是数据的独立性、四是数据统一管理与控制。故本题答案应该为选项C)。 (44)下列4项中,必须进行查询优化的是 A)关系数据库 B)网状数据库 C)层次数据库 D)非关系模型
解析: 关系数据模型诞生之后迅速发展,深受用户喜爱,但关系数据模型也有缺点,其最主要的缺点是由于存取路径对用户透明,查询效率往往不如非关系数据模型,因此为了提高性能,必须对用户的查询请求进行优化。故本题答案应该为选项A)。
(45) 最常用的一种基本数据模型是关系数据模型,它的表示应采用 A)树 B)网络 C)图 D)二维表
解析: 关系数据模型用统一的二维表结构表示实体及实体之间的联系(即关系)。故本题答案应该为选项D)。
(8)数据库是()的集合,它具有统一的结构格式并存放于统一的存储介质,可被各个应用程序所共享。 A)视图 B)消息 C)数据 D)关系 【答案】C
【解析】数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系。 (9)下列叙述中,不正确的是
A)数据库技术的根本目标是要解决数据共享的问题 B)数据库系统中,数据的物理结构必须与逻辑结构一致 C)数据库设计是指设计一个能满足用户要求,性能良好的数据库 D)数据库系统是一个独立的系统,但是需要操作系统的支持 【答案】B
【解析】数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。 (10)规范化理论中,分解()是消除其中多余的数据相关性。 A)关系运算
B)内模式 C)外模式 D)视图 【答案】A
【解析】数据库规范化的基本思想是逐步消除数据依赖中不合适的部分,根本思想是通过分解关系运算来消除多余的数据相关性。
(8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。 A)数据无冗余
B)数据可共享
D)特定的数据模型
C)专门的数据管理软件 答案:D
评析:在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。
(9)分布式数据库系统不具有的特点是______。 A)分布式
B)数据冗余
D)位置透明性和复制透明性
C)数据分布性和逻辑整体性 答案:B
评析:分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储,数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。
(10)下列说法中,不属于数据模型所描述的内容的是______。 A)数据结构 C)数据查询 答案:C
评析:数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操
B)数据操作 D)数据约束
作主要是描述在相应数据结构上的操作类型与操作方式。 9. 下列有关数据库的描述,正确的是______。
A、数据库是一个DBF文件 B、数据库是一个关系
C、数据库是一个结构化的数据集合 D、数据库是一组文件
解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有\"集成\"、\"共享\"之特点。
本题答案为C。
10. 下列说法中,不属于数据模型所描述的内容的是______。
A、数据结构 B、数据操作 C、数据查询 D、数据约束
解析:数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。
本题答案为C。
8. 视图设计一般有3种设计次序,下列不属于视图设计的是______。
A、自顶向下 B、由外向内 C、由内向外 D、自底向上
解析:视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。
本题答案为B。
5. 在关系数据库中,用来表示实体之间联系的是______。 A、树结构 B、网结构 C、线性表 D、二维表
解析:在关系数据库中,用二维表来表示实体之间联系。 本题答案为D。
6. 将E-R图转换到关系模式时,实体与联系都可以表示成______。 A、属性 B、关系 C、键 D、域
解析:关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将E-R图转换到关系模式时,实体与联系都可以表示成关系。 本题答案为B。
10. 数据处理的最小单位是______。 A、数据 B、数据元素 C、数据项 D、数据结构
解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。 本题答案为C。
1. 用树形结构来表示实体之间联系的模型称为______。 A、关系模型 B、层次模型 C、网状模型 D、数据模型
解析:层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。 本题答案为B。
4. 按条件f对关系R进行选择,其关系代数表达式为______。 A、B、
C、бf(R) D、∏f(R)
解析:选择运算是一个一元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为f,则R满足f的选择运算可以写成:бf(R)。 本题答案为C。
8. 单个用户使用的数据视图的描述称为______。 A、外模式
B、概念模式 C、内模式 D、存储模式
解析: 外模式是用户的数据视图,也就是用户所见到的数据模式;全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;存储模式即为内模式。
本题答案为A。
9. 数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______。 A、数据与程序独立存放
B、不同的数据被存放在不同的文件中 C、不同的数据只能被对应的应用程序所使用 D、以上三种说法都不对
解析:本题考查的是数据库系统的基本特点。
数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项A、B、C三种说法都是错误的。
故本题答案为D。
10. 用树形结构表示实体之间联系的模型是______。 A、关系模型 B、网状模型 C、层次模型 D、以上三个都是
解析:本题考查的是数据模型。
层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。 故本题答案为C。
8. 下述关于数据库系统的叙述中正确的是______。 A、数据库系统减少了数据冗余 B、数据库系统避免了一切冗余
C、数据库系统中数据的一致性是指数据类型的一致 D、数据库系统比文件系统能管理更多的数据
解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。 本题答案是A。
9. 关系表中的每一横行称为一个______。 A、元组 B、字段 C、属性 D、码
解析:在关系数据库中,关系模型采用二维表来表示,简称\"表\"。二维表是由表框架及表元组组成。
在表框架中,按行可以存放数据,每行数据称为元组。 本题答案是A。
10. 数据库设计包括两个方面的设计内容,它们是______。 A、概念设计和逻辑设计 B、模式设计和内模式设计 C、内模式设计和物理设计 D、结构特性设计和行为特性设计
解析: 数据库设计可分为概念设计与逻辑设计。
数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。
数据库逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。 本题答案是A。
8. 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是______。 A、数据库系统 B、文件系统 C、人工管理 D、数据项管理
解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统。 本题答案为A。
9. 用树形结构来表示实体之间联系的模型称为______。 A、关系模型 B、层次模型 C、网状模型 D、数据模型
解析:层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。
本题答案为B。
10. 关系数据库管理系统能实现的专门关系运算包括______。 A、排序、索引、统计 B、选择、投影、连接 C、关联、更新、排序 D、显示、打印、制表
解析:关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。 本题答案为B。
8. 索引属于______。 A、模式 B、内模式 C、外模式 D、概念模式
解析: 内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。
本题答案为B。
9. 在关系数据库中,用来表示实体之间联系的是______。 A、树结构 B、网结构 C、线性表 D、二维表
解析:在关系数据库中,用二维表来表示实体之间联系。
本题答案为D。
10. 将E-R图转换到关系模式时,实体与联系都可以表示成______。 A、属性 B、关系 C、键 D、域
解析:关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将E-R图转换到关系模式时,实体与联系都可以表示成关系。 本题答案为B。
9. SQL语言又称为______。 A、结构化定义语言 B、结构化控制语言
C、结构化查询语言 D、结构化操纵语言
解析:结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。
本题答案为C。
10. 视图设计一般有3种设计次序,下列不属于视图设计的是______。 A、自顶向下 B、由外向内 C、由内向外 D、自底向上
解析:视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。
本题答案为B。
7. 数据处理的最小单位是______。 A、数据 B、数据元素 C、数据项 D、数据结构
解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。 本题答案为C。
8. 下列有关数据库的描述,正确的是______。 A、数据库是一个DBF文件 B、数据库是一个关系
C、数据库是一个结构化的数据集合 D、数据库是一组文件
解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有\"集成\"、\"共享\"之特点。
本题答案为C。
9. 单个用户使用的数据视图的描述称为______。 A、外模式 B、概念模式 C、内模式
D、存储模式
解析: 外模式是用户的数据视图,也就是用户所见到的数据模式;全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;存储模式即为内模式。 本题答案为A。
4. 关系数据库管理系统能实现的专门关系运算包括______。 A、排序、索引、统计 B、选择、投影、连接 C、关联、更新、排序 D、显示、打印、制表
解析:关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。 本题答案为B。
6. 数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。 A、自顶向下 B、由底向上 C、由内向外 D、由整体到局部
解析:数据库概念设计的过程中,视图设计一般有三种设计次序,它们是:
1)自顶向下。这种方法是先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化。
2)由底向上。这种设计方法是先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。
3)由内向外。这种设计方法是先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其它对象。
本题答案为D。
10. 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。 A、数据无冗余 B、数据可共享 C、专门的数据管理软件 D、特定的数据模型
解析:在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。
本题答案为D。 二、填空题
(1)在关系数据库中,把数据表示成二维表,每一个二维表称为 __ 。 【答案】关系或关系表
【解析】在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名,表中的一行称为一个元组,相当于记录值。
(2)在关系模型中,把数据看成是二维表,每一个二维表称为一个 ____ 。 【答案】关系或关系表
【解析】在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。因此,本题的正确答案是关系。
(3)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______ 。
【答案】数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段 【解析】在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率.避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性。综上所述,数据独立性最高的阶段是数据库系统管理阶段。
(4)一个关系表的行称为 ___ 。 【答案】 记录 或 元组
【解析】关系是关系数据模型的核心。关系可以用一个表来直观的表示,表的每一列表示关系的一个属性,每一行表示一个元组或记录。因此,本题的正确答案是元组或记录。 (5) 在数据库系统中,实现各种数据管理功能的核心软件称为 ____ 。 【答案】数据库管理系统或DBMS
【解析】数据库管理系统(Database Management System,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。 (6) 在E-R图中,矩形表示______ 。
【答案】实体或实体集或Entity
【解析】本题考查数据库的E-R图。E-R模型中,有三个基本的抽象概念:实体、联系和属性。E-R 图是E-R模型的图形表示法,在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。因此,划线处应填入“实体”或“实体集”或“Entity”。 (7)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为? ____ 。 【答案】物理独立性
【解析】数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。
(8)实体之间的联系可以归结为一对一联系、一对多(或多对多)的联系与多对多联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于 的联系。 答案:一对多
(9)数据库管理系统常见的数据模型有层次模型、网状模型和 3种。 答案:关系模型
解析: 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。
(10)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 的联系。 答案:一对多(1∶N)
解析: 两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
(11)数据库设计分为以下6个设计阶段:需求分析阶段、 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 答案:概念设计阶段
解析:数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。 (12)关键字ASC和DESC分别表示 的含义。
答案:ASC表示升序排列,DESC表示降序排列
解析: ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。
(13)关系数据库的关系演算语言是以 为基础的DML语言。 答案:谓词演算
解析: 关系数据库中的关系演算包括元组关系演算和域关系演算。二者都是由原子公式组成的公式。而这些关系演算都是以数理逻辑中的谓词演算为基础的。 (14) 是数据库设计的核心。 答案:数据模型
解析: 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。
(15)在关系模型中,把数据看成一个二维表,每一个二维表称为一个 。 答案:关系
解析: 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于记录值。
(16)关系操作的特点是 操作。 答案:集合操作
解析: 在关系操作中,所有操作对象与操作结果都是关系。而关系定义为元数相同的元组的集合。因此,关系操作的特点是集合操作。
(17)数据库恢复是将数据库从 状态恢复到某一已知的正确状态。 答案:错误状态
解析: 数据库恢复是将数据库中的数据从错误状态中恢复到某种逻辑一致的状态。如果数据库中包含成功事务提交的结果,则称数据库处于一致性状态。 (18)数据的基本单位是 。 解析:数据元素
(4)在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为【4】 。 【答案】物理独立性
【解析】数据的物理结构改变,不影响数据库的逻辑结构,从而不引起应用程序的变化,这种性质叫做物理独立性。
51. 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。
解析:模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。
外模式是模式的子集,所以也称子模式或用户模式,是数据库用户能够看见的和使用的、局部的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
内模式也称物理模式或存储模式。一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据库内部的表示方法。例如,记录的存储方式是顺序存储、索引按照什么方式组织;数据是否压缩存储,是否加密等。
标准答案为:模式 或 逻辑模式 或 概念模式
54. 数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
解析:数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。
标准答案为:概念设计阶段或 数据库概念设计阶段
55. 数据库保护分为:安全性控制 、______、并发性控制和数据的恢复。 解析:考查考生对数据库基本知识的了解。
安全性控制:防止未经授权的用户有意或无意存取数据库中的数据,以免数据被泄露、更改或破坏;完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作;并发控制:正确处理好多用户、多任务环境下的并发操作,防止错误发生;恢复:当数据库被破坏或数据不正确时,使数据库能恢复到正确的状态。
标准答案为:完整性控制
54. 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
标准答案为:参照完整性
解析:关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。
实体完整性约束要求关系的主键中属性值不能为空,这是数据库完整性的最基本要求,因为主键是惟一决定元组的,如为空则其惟一性就成为不可能的了。
参照完整性约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。
自定义完整性是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。
55. 数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。 标准答案为:概念
解析:数据模型按不同的应用层次分为三种类型,它们是概念数据模型、逻辑数据模型和物理数据模型。
概念数据模型简称概念模型,它是一种面向客观世界、面向用户的模型;它与具体的数据库管理系统无关。
逻辑数据模型又称数据模型,它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。
物理数据模型又称物理模型,它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
(5)数据库管理系统是位于用户与【5】之间的软件系统。 【答案】操作系统
【解析】数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。
(5)数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 三种。 答案:关系模型
评析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口,其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。
55. 关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。
解析: 关系模型的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除和修改四种操作。
数据查询:用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。
数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。
数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。 数据修改是在一个关系中修改指定的元组和属性。
标准答案为:查询
55. 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体\"项目主管\"与实体\"项目\"的联系属于______的联系。
解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
标准答案为:一对多或 1对多 或 一对n 或 1:N 或 1:n 或 1:n 或 1:N 或 一对m 或 1:M 或 1:m 或 1:m 或 1:N
51. 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体\"工人\"与实体\"设备\"之间存在______联系。
标准答案为:一对多或 1对多 或 一对n 或 1:N 或 1:n 或 1:n 或 1:N 或 一对m 或
1:M 或 1:m 或 1:m 或 1:N
解析:实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。两个实体间的联系可以归结为三种类型:一对一联系表现为某一实体与另一实体一一对应相关联;一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。
54. 在关系数据库中,把数据表示成二维表,每一个二维表称为 。 标准答案为:关系或 一个关系 本题考查的是关系数据模型。
解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。 54. 数据库系统的三级模式分别为______模式、内部级模式与外部级模式。 标准答案为:概念或 概念级
解析:数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。
外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。
54. 软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。 标准答案为:需求获取
解析:软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。
需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进度的依据。
需求评审是对需求分析阶段的工作进行的复审,验证需求文档的一致性、可行性、完整性和有效性。
55. ______是数据库应用的核心。 标准答案为:数据库设计
解析:数据库设计是数据库应用的核心。在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。
因篇幅问题不能全部显示,请点此查看更多更全内容