计算机二级公共基础知识题库及答案分析2Word格式.docx
《计算机二级公共基础知识题库及答案分析2Word格式.docx》由会员分享,可在线阅读,更多相关《计算机二级公共基础知识题库及答案分析2Word格式.docx(108页珍藏版)》请在冰豆网上搜索。
![计算机二级公共基础知识题库及答案分析2Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/1/ed2373a5-f225-4d19-809a-09f9796cd742/ed2373a5-f225-4d19-809a-09f9796cd7421.gif)
(4)算法执行过程中所需要的存储空间称为算法的
A)时间复杂度B)计算工作量C)空间复杂度D)工作空间
【答案】c
【解析】算法执行时所需要的存储空间,包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。
这些存储空间共称为算法的空间复杂度.
(5)下列关于队列的叙述中正确的是
A)在队列中只能插入数据B)在队列中只能删除数据
C)队列是先进先出的线性表D)队列是先进后出的线性表
【解析】对队列可以进行插入和删除数据的操作,只是插入数据只能在队尾,删除数据只能在队头。
所以队列是先进先出的线性表.
(6)设有下列二叉树:
对此二叉树后序遍历的结果为
A)ABCDEFB)BDAECFC)ABDCEFD)DBEFCA
【解析】二叉树的遍历分为先序、中序、后序三种不同方式。
本题要求后序遍历。
其遍历顺序应该为:
后序遍历左子树一〉后序遍历右子树一>
访问根结点。
按照定义,后序遍历序列是DBEFCA,故答案为D。
(7)下列叙述中正确的是()
A)程序执行的效率与数据的存储结构密切相关
B)程序执行的效率只取决于程序的控制结构
C)程序执行的效率只取决于所处理的数据量
D)以上三种说法都不对
【解析】本题考查程序效率。
程序效率是指程序运行速度和程序占用的存储空间。
影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。
在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。
因此,本题选项A的说法是正确的。
(8)下列叙述中正确的是()
A)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构
【解析】本题考查数据结构的基本知识。
数据之间的相互关系称为逻辑结构。
通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。
存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象.存储结构在计算机中有两种,即顺序存储结构和链式存储结构.顺序存储结构是把数据元素存储在一块连续地址空间的内存中;
链式存储结构是使用指针把相互直接关联的节点链接起来.因此,这两种存储结构都是线性的。
可见,逻辑结构和存储结构不是一一对应的。
因此,选项A和选项B的说法都是错误的。
无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。
程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。
可以用数组来实现树型逻辑结构的存储,比如二叉树。
因此,选项c的说法是错误的
(9)冒泡排序在最坏情况下的比较次数是()
A)n(n+1)/2B)nlog2nC)n(n—1)/2D)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)219B)221C)229D)231
【解析】本题考查数据结构中二叉树的性质.二叉树满足如下一条性质,即:
对任意一棵二叉树,若终端结点(即叶子结点)数为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)算法的时间复杂度是指算法程序中的指令条数
【解析】算法的时间复杂度是指执行算法所需要的计算工作量,也就是算法在执行过程中所执行的基本运算的次数,而不是指程序运行需要的时间或是程序的长度.
(13)下列关于栈的叙述中正确的是
A)在栈中只能插入数据B)在栈中只能删除数据
C)栈是先进先出的线性表D)栈是先进后出的线性表
【解析】对栈可进行插入和删除数据的操作,但必须牢记插入和删除数据都只能是在栈顶,是一种特殊的线性表。
所以栈是先进后出的线性表。
(14)设有下列二叉树:
FF
对此二叉树中序遍历的结果为
A)ABCDEFB)DAECFC)BDAECFD)DBEFCA
【解析】二叉树的遍历分为先序、中序、后序三种不同方式。
本题要求中序遍历,其遍历顺序应该为:
中序遍历左子树->
访问根结点->
中序遍历右子树.按照定义,中序遍历序列是BDAECF,故答案为B。
(15)按照“后进先出”原则组织数据的数据结构是
A)队列
B)栈
C)双向链表
D)二叉树
【解析】“后进先出”表示最后被插入的元素最先能被删除。
选项A中,队列是指允许在一端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则:
选项B中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
队列和栈都属于线性表,它们具有顺序存储的特点,所以才有“先进先出”和“后进先出"
的数据组织方式.双向链表使用链式存储方式.二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。
所以选项c和选项D错。
(16)下列叙述中正确的是
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
【答案】A
【解析】一个非空的数据结构如果满足下列两个条件:
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件。
则称为线性结构。
线性链表是线性表的链式存储结构,选项A的说法是正确的.栈与队列是特殊的线性表,它们也是线性结构,选项B的说法是错误的;
双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,选项c的说法是错误的;
二叉树是非线性结构,而不是线性结构,选项D的说法是错误的.因此,本题的正确答案为A
(17)对如下二叉树
进行后序遍历的结果为
A)ABCDEF
B)DBEAFC
C)ABDECF
D)DEBFCA
【解析】二叉树后序遍历的简单描述如下:
若二叉树为空,则结束返回。
否则
(1)后序遍历左子树;
(2)后序遍历右子树;
(3)访问根结点。
也就是说,后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。
根据后序遍历的算法,后序遍历的结果为DEBFCA。
(18)下列对队列的叙述正确的是()
A)队列属于非线性表
B)队列按“先进后出”原则组织数据
C)队列在队尾删除数据
D)队列按“先进先出”原则组织数据
【解析】本题考查数据结构中队列的基本知识。
队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。
在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。
这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。
因此,本题中只有选项D的说法是正确的。
(19)对下列二叉树进行前序遍历的结果为()
A)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ
【解析】本题考查数据结构中二叉树的遍历.根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。
这三种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。
下面就是前序遍历方法的递归定义。
当二叉树的根不为空时,依次执行如下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
【解析】本题考查数据结构中二叉树的性质。
二叉树满足如下一条性质,即:
对任意一棵二叉树,若终端结点(即叶子结点)数为no,而其度数为2的结点数为n2,则n0=n2+l。
根据这条性质可知,若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为n+l。
因此,本题的正确答案是选项A。
(21)在深度为7的满二叉树中,叶子结点的个数为
A)32B)31
C)64
D)63
【解析】在二叉树的第k层上,最多有2k-1(k≥1)个结点。
对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k—1个结点.因此,在深度为7的满二叉树中,所有叶子结点在第7层上.即其结点数为2k-1=27-1=64因此.本题的正确答案为c。
(22)下列叙述中正确的是
A)一个算法的空间复杂度大,则其时间复杂度也必定大
B)一个算法的空间复杂度大,则期时间复杂度必定小
C)一个算法的时间复杂度大,则其空间复杂度必定小
D)上述三种说法都不对
【解析】时间复杂度是指一个算法执行时间的相对度量;
空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。
人们都希望选择一个既省存储空间、又省执行时间的算法.然而,有时为了加快算法的运行速度,不得不增加空间开销;
有时为了能有效地存储算法和数据,又不得不牺牲运行时间。
时间和空间的效率往往是一对矛盾,很难做到两全。
但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾。
但是二者不存在必然的联系.因此,选项A、B、c的说法都是错误的。
故本题的正确答案是D。
(23)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为
A)63B)64C)6D)7
【解析】在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。
在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。
按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较。
若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。
同样,若相等,则查找成功,否则,继续进行比较。
依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。
因此,在长度为64的有序线性表中进行顺序查找,最坏的情况下需要比较64次。
因此,本题的正确答案为B。
(24)对下列二叉树
进行中序遍历的结果是
A)ACBDFEGB)ACBDFGE
C)ABDCGEFD)FCADBEG
【解析】二叉树的中序遍历递归算法为:
如果根不空,则
(1)按中序次序访问左子树;
(2)访问根结点:
(3)按中序次序访问右子树。
否则返回。
本题中,根据中序遍历算法.应首先按照中序次序访问以c为根结点的左子树,然后再访问根结点F,最后才访问以E为根结点的右子树。
遍历以c为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为ACBD;
然后遍历根结点F;
遍历以E为根结点的右子树,同样要遵循中序遍历算法,因此中序遍历结果为EG。
最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为ACBDFEG。
因此,本题的正确答案是A。
(25)数据的存储结构是指______。
A)存储在外存中的数据B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示
【解析】数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
所以选项D正确。
(26)下列关于栈的描述中错误的是______。
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
【解析】本题考核栈的基本概念,我们可以通过排除法来确定本题的答案。
栈是限定在一端进行插入与删除的线性表,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;
栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出"
或“后进先出”的原则组织数据的,这便是栈的记忆作用,所以选项A和选项C正确。
对栈进行插入和删除操作时,栈顶位置是动态变化的,栈底指针不变,选项D正确.由此可见,选项B的描述错误。
(27)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______。
A)冒泡排序为n/2B)冒泡排序为n
C)快速排序为nD)快速排序为n(n—1)/2
【解析】假设线性表的长度为n,在最坏情况下,冒泡排序和快速排序需要的比较次数为n(n—1)/2。
由此可见,选项D正确.
(28)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。
A)log2nB)n/2C)nD)n+1
【解析】在长度为n的线性表中进行顺序查找,最坏情况下需要比较n次.选项C正确.
(29)下列对于线性链表的描述中正确的是______。
A)存储空间不一定是连续,且各元素的存储顺序是任意的
B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
【解析】在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。
由此可见,选项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)所需空间与线性表长度成正比
链表采用的是链式存储结构,它克服了顺序存储结构的缺点:
它的结点空间可以动态申请和释放;
它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。
但是链式存储结构也有不足之处:
①每个结点中的指针域需额外占用存储空间;
②链式存储结构是一种非随机存储结构。
(6)算法的时间复杂度是指
A)执行算法程序所需要的时间
B)算法程序的长度
C)算法执行过程中所需要的基本运算次数
D)算法程序中的指令条数
算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。
所谓算法的时间复杂度是指执行算法所需要的计算工作量;
算法的空间复杂度一般是指执行这个算法所需要的内存空间.故本题答案应该为选项A).
(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
利用前