银符考试题库B12
现在是:
试卷总分:100.0
您的得分:
考试时间为:
点击“开始答卷”进行答题
交卷
评分
存入我的题库
晒成绩
打印模式
隐藏答案解析
打印
下载
背景
字体
较大
大
中
小
较小
退出
二级公共基础知识分类模拟题65
单项选择题
1. 下列算法中,最坏情况下时间复杂度最低的为______。
A.二分查找法
B.堆排序
C.快速排序
D.顺序查找法
A
B
C
D
A
[解析] 在《玩转Office轻松过二级(第3版)》的第16章中,形象地介绍了二分查找的过程,并通过一个“小游戏”记住二分查找的最坏情况下的时间复杂度为O(log
2
n)。顺序查找为O(n),快速排序和堆排序都为O(nlog
2
n)。
2. 下列叙述中正确的是______。
A.算法的时间复杂度与计算机系统有关
B.解决一个问题可以有不同的算法,且它们的时间复杂度可以是不同的
C.解决一个问题可以有不同的算法,但它们的时间复杂度必定是相同的
D.解决一个问题的算法是唯一的
A
B
C
D
B
[解析] 解决一个问题可以有不同的算法。为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。一般用时间复杂度和空间复杂度衡量算法的优劣。
3. 下列叙述中正确的是______。
A.对数据进行压缩存储会降低算法的空间复杂度
B.数值型算法只需考虑计算结果的可靠性
C.算法的优化主要通过程序的编制技巧来实现
D.算法的复杂度与问题的规模无关
A
B
C
D
A
[解析] 为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。所需基本运算的执行次数与语句条数没有关系,而一般与循环结构的循环次数有关。然而算法所执行的基本运算次数与问题的规模有关,例如两个20阶矩阵相乘与两个10阶矩阵相乘,所需要的基本运算(即两个数的乘法)次数显然是不同的。在顺序查找法中,基本运算(即比较)的次数也与被查值有关,如要查找的数据恰好是第一个元素,只需比较一次;如要查找的数据是最后一个元素,则n个数据需要比较n次。算法空间复杂度指执行这个算法所需要的内存空间。包括算法程序所占的空间、输入的初始数据所占的空间、算法执行过程中所需的额外空间(而与输出结果无关)。算法的时间复杂度与空间复杂度没有必然的联系。
4. 下列叙述中错误的是______。
A.算法的时间复杂度与空间复杂度没有必然的联系
B.算法的时间复杂度与计算机系统无关
C.算法的时间复杂度与问题规模无关
D.算法的空间复杂度与算法运行输出结果的数据量无关
A
B
C
D
C
[解析] 为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。所需基本运算的执行次数与语句条数没有关系,而一般与循环结构的循环次数有关。然而算法所执行的基本运算次数与问题的规模有关,例如两个20阶矩阵相乘与两个10阶矩阵相乘,所需要的基本运算(即两个数的乘法)次数显然是不同的。在顺序查找法中,基本运算(即比较)的次数也与被查值有关,如要查找的数据恰好是第一个元素,只需比较一次;如要查找的数据是最后一个元素,则n个数据需要比较n次。算法空间复杂度指执行这个算法所需要的内存空间。包括算法程序所占的空间、输入的初始数据所占的空间、算法执行过程中所需的额外空间(而与输出结果无关)。算法的时间复杂度与空间复杂度没有必然的联系。
5. 下列叙述中正确的是______。
A.算法的时间复杂度与算法程序中的语句条数成正比
B.算法的时间复杂度与算法程序编制者的水平有关
C.算法的时间复杂度与计算机的运行速度有关
D.算法的时间复杂度与运行算法时特定的输入有关
A
B
C
D
D
[解析] 为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。所需基本运算的执行次数与语句条数没有关系,而一般与循环结构的循环次数有关。然而算法所执行的基本运算次数与问题的规模有关,例如两个20阶矩阵相乘与两个10阶矩阵相乘,所需要的基本运算(即两个数的乘法)次数显然是不同的。在顺序查找法中,基本运算(即比较)的次数也与被查值有关,如要查找的数据恰好是第一个元素,只需比较一次;如要查找的数据是最后一个元素,则n个数据需要比较n次。算法空间复杂度指执行这个算法所需要的内存空间。包括算法程序所占的空间、输入的初始数据所占的空间、算法执行过程中所需的额外空间(而与输出结果无关)。算法的时间复杂度与空间复杂度没有必然的联系。
6. 下列叙述中错误的是______。
A.对于各种特定的输入,算法的时间复杂度是固定不变的
B.算法的时间复杂度与使用的程序设计语言无关
C.算法的时间复杂度与使用的计算机系统无关
D.算法的时间复杂度与实现算法过程中的具体细节无关
A
B
C
D
A
[解析] 为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。所需基本运算的执行次数与语句条数没有关系,而一般与循环结构的循环次数有关。然而算法所执行的基本运算次数与问题的规模有关,例如两个20阶矩阵相乘与两个10阶矩阵相乘,所需要的基本运算(即两个数的乘法)次数显然是不同的。在顺序查找法中,基本运算(即比较)的次数也与被查值有关,如要查找的数据恰好是第一个元素,只需比较一次;如要查找的数据是最后一个元素,则n个数据需要比较n次。算法空间复杂度指执行这个算法所需要的内存空间。包括算法程序所占的空间、输入的初始数据所占的空间、算法执行过程中所需的额外空间(而与输出结果无关)。算法的时间复杂度与空间复杂度没有必然的联系。
7. 某二叉树的中序遍历序列为CBADE,后序遍历序列为CBADE,则前序遍历序列为______。
A.CBADE
B.CBEDA
C.EDABC
D.EDCBA
A
B
C
D
C
[解析] 由后序遍历序列为CBADE知,根结点为E。再由中序遍历序列为CBADE知,序列CBAD中的结点均位于E的左子树。再由后序遍历序列为CBADE知,序列CBAD中的根结点为D……继续在中序中找局部的左右分支、在后序中找局部根结点,一层一层画出二叉树,然后再求前序遍历序列。这类题需要画图进行分析,详细分析方法可参考《玩转Office轻松过二级(第3版)》的第16章。
8. 某完全二叉树按层次输出(同一层从左到右)的序列为ABCDEFGH。该完全二叉树的前序序列为______。
A.ABCDEFGH
B.ABDHECFG
C.HDBEAFCG
D.HDEBFGCA
A
B
C
D
B
[解析] 完全二叉树除最后一层外,各层结点均达到最大,可据层次输出序列由上到下、由左到右画出此二叉树。然后再按照根结点、左子树、右子树的顺序求其前序序列。
9. 某完全二叉树按层次输出(同一层从左到右)的序列为ABCDEFGH。该完全二叉树的中序序列为______。
A.ABCDEFGH
B.ABDHECFG
C.HDBEAFCG
D.HDEBFGCA
A
B
C
D
C
10. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树的后序序列为______。
A.ABCDEFGH
B.ACEGBDFH
C.HFDBGECA
D.HGFEDCBA
A
B
C
D
C
11. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树按层次输出(同一层从左到右)的序列为______。
A.ABCDEFGH
B.ACEGBDFH
C.HFDBGECA
D.HGFEDCBA
A
B
C
D
A
[解析] 在前序遍历或后序遍历序列中找到根结点,再在中序遍历序列中找到左右分支结点。对左右分支不是一个结点的,对左右分支做同样的分析过程,一层一层进行。最终画出二叉树后,再求题目要求的遍历序列。这类题需要画图进行分析,详细分析方法可参考《玩转Office轻松过二级(第3版)》的第16章。题目解析仅为知识的简要点拨,仅供参考,而非系统学习的手段。请掌握正确的学习方法:系统学习知识原理,然后才能做题练习,否则很难读懂学会。
12. 某二叉树的后序遍历序列与中序遍历序列相同,均为ABCDEF,则按层次输出(同一层从左到右)的序列为______。
A.ABCDEF
B.CBAFED
C.DEFCBA
D.FEDCBA
A
B
C
D
D
[解析] 在前序遍历或后序遍历序列中找到根结点,再在中序遍历序列中找到左右分支结点。对左右分支不是一个结点的,对左右分支做同样的分析过程,一层一层进行。最终画出二叉树后,再求题目要求的遍历序列。这类题需要画图进行分析,详细分析方法可参考《玩转Office轻松过二级(第3版)》的第16章。题目解析仅为知识的简要点拨,仅供参考,而非系统学习的手段。请掌握正确的学习方法:系统学习知识原理,然后才能做题练习,否则很难读懂学会。
13. 某二叉树的前序遍历序列与中序遍历序列相同,均为ABCDEF,则按层次输出(同一层从左到右)的序列为______。
A.ABCDEF
B.BCDEFA
C.DEFABC
D.FEDCBA
A
B
C
D
A
[解析] 在前序遍历或后序遍历序列中找到根结点,再在中序遍历序列中找到左右分支结点。对左右分支不是一个结点的,对左右分支做同样的分析过程,一层一层进行。最终画出二叉树后,再求题目要求的遍历序列。这类题需要画图进行分析,详细分析方法可参考《玩转Office轻松过二级(第3版)》的第16章。题目解析仅为知识的简要点拨,仅供参考,而非系统学习的手段。请掌握正确的学习方法:系统学习知识原理,然后才能做题练习,否则很难读懂学会。
14. 设非空二叉树的所有子树中,其左子树上的结点值均小于根结点值,而右子树上的结点值均不小于根结点值,则称该二叉树为排序二叉树。对排序二叉树的遍历结果为有序序列的是______。
A.中序序列
B.前序序列
C.前序序列或后序序列
D.后序序列
A
B
C
D
A
[解析] 可自行画一棵简单的排序二叉树,如根结点为3,一个左结点为1,一个右结点为5,显然其中序遍历序列1,3,5为有序序列。
15. 设二叉树共有375个结点,其中度为2的结点有187个,则度为1的结点个数是______。
A.0
B.1
C.188
D.不可能有这样的二叉树
A
B
C
D
A
[解析] 叶子结点比度为2的结点多一个,因此,叶子结点为188个。375-187-188=0。
16. 在具有2n个结点的完全二叉树中,叶子结点个数为______。
A.n
B.n+1
C.n-1
D.n/2
A
B
C
D
A
[解析] 叶子结点比度为2的结点多一个,设叶子结点为x个,则度为2的结点为x-1个,完全二叉树中度为1的结点为1个或0个,则分两种情况:①x+x-1+1=2n;②x+x-1+0=2n。解方程第①种情况得x=n,第②种情况不能得到整数解舍去。
17. 设一棵度为3的树,其中度为2、1、0的结点数分别为3、1、6,该树中度为3的结点数为______。
A.1
B.2
C.3
D.不可能有这样的树
A
B
C
D
A
[解析] 树中的结点数=所有结点的度数+1。设度为3的结点为x个,则所有结点的度数表示为2×3+1×1+6×0+3x。可列方程得3+1+6+x=2×3+1×1+6×0+3x+1。解方程得x=1。
18. 设一棵树的度为3,共有27个结点,其中度为3、2、0的结点数分别为4、1、10,该树中度为1的结点数为______。
A.11
B.12
C.13
D.不可能有这样的树
A
B
C
D
B
[解析] 度为3的树的结点度分为3、2、1、0四种,则27-4-1-10=12。
19. 设一棵树的度为3,其中没有度为2的结点,且叶子结点数为6。该树中度为3的结点数为______。
A.1
B.2
C.3
D.不可能有这样的树
A
B
C
D
D
[解析] 树中的结点数=所有结点的度数+1。设度为3的结点为x个,度为1的结点为y个,则树中的结点数表示为0+6+x+y,所有结点的度数表示为:0×2+6×0+x×3+y×1。可列方程得:0+6+x+y=0×2+6×0+x×3+y×1+1,左右两边的未知数y可以约去,解方程得x=2.5,不能得到整数解。
20. 某二叉树共有399个结点,其中有199个度为2的结点,则该二叉树中的叶子结点数为______。
A.198
B.199
C.200
D.不存在这样的二叉树
A
B
C
D
C
[解析] 二叉树的叶子结点数比度为2的结点数多一个,所以叶子结点数为199+1=200个。
21. 设二叉树共有500个结点,其中叶子结点有250个,则度为2的结点个数是______。
A.0
B.1
C.249
D.不可能有这样的二叉树
A
B
C
D
C
[解析] 二叉树的叶子结点数比度为2的结点数多一个,所以度为2的结点个数是250-1=249个。
22. 设一棵树的度为4,其中度为4、3、2、1的结点个数分别为2、3、3、0,则该棵树中的叶子结点数为______。
A.15
B.16
C.17
D.不可能有这样的树
A
B
C
D
B
[解析] 度为4的树包含度为4、3、2、1、0的五种结点,叶子结点是度为0的结点。树中的结点数=所有结点的度数+1。设叶子结点为x个,则2+3+3+0+x=4×2+3×3+2×3+1×0+0×x+1,解方程得x=16。
23. 设一棵树的度为3,其中度为3、2、1的结点个数分别为4、1、3,则该棵树中的叶子结点数为______。
A.10
B.11
C.12
D.不可能有这样的树
A
B
C
D
A
[解析] 度为3的树包含度为3、2、1、0的四种结点,叶子结点是度为0的结点。树中的结点数=所有结点的度数+1。设叶子结点为x个,则4+1+3+x=3×4+2×1+1×3+0×x+1,解方程得x=10。
24. 设一棵树的度为3,其中没有度为2的结点,且叶子结点数为5,该树中度为3的结点数为______。
A.1
B.2
C.3
D.不可能有这样的树
A
B
C
D
B
[解析] 度为3的树包含度为3、2、1、0的四种结点,叶子结点是度为0的结点。树中的结点数=所有结点的度数+1。设度为3的结点为x个,度为1的结点为y个,则x+0+y+5=3x+2×0+1×y+0×5+1,两边y可约去,解方程得x=2。
25. 设顺序表的长度为n,下列排序方法中,最坏情况下比较次数小于n(n-1)/2的是______。
A.冒泡排序
B.堆排序
C.快速排序
D.简单插入排序
A
B
C
D
B
[解析] 最坏情况下比较次数:堆排序为nlog
2
n,其他三种比较次数都是n(n-1)/2。
26. 设顺序表的长度为n,下列算法中,最坏情况下比较次数小于n的是______。
A.堆排序
B.寻找最大项
C.快速排序
D.顺序查找法
A
B
C
D
B
[解析] 最坏情况下比较次数:堆排序为nlog
2
n,寻找最大项为n-1,顺序查找法为n,快速排序为n(n-1)/2。在《玩转Office轻松过二级(第3版)》的第16章中介绍了“折纸小游戏”,轻松记住二分查找的比较次数log
2
n。
27. 设顺序表的长度为n,下列算法中,最坏情况下比较次数等于n(n-1)/2的是______。
A.堆排序
B.寻找最大项
C.快速排序
D.顺序查找
A
B
C
D
C
[解析] 最坏情况下比较次数:堆排序为nlog
2
n,寻找最大项为n-1,顺序查找法为n,快速排序为n(n-1)/2。在《玩转Office轻松过二级(第3版)》的第16章中介绍了“折纸小游戏”,轻松记住二分查找的比较次数log
2
n。
28. 设表的长度为n,下列算法中,最坏情况下比较次数小于n的是______。
A.二分查找法
B.堆排序
C.快速排序
D.顺序查找法
A
B
C
D
A
[解析] 最坏情况下比较次数:堆排序为nlog
2
n,寻找最大项为n-1,顺序查找法为n,快速排序为n(n-1)/2。在《玩转Office轻松过二级(第3版)》的第16章中介绍了“折纸小游戏”,轻松记住二分查找的比较次数log
2
n。
29. 下列各排序法中,最坏情况下时间复杂度最小的是______。
A.堆排序
B.快速排序
C.希尔排序
D.冒泡排序
A
B
C
D
A
[解析] 最坏情况下时间复杂度:堆排序为O(nlog
2
n),希尔排序为O(n
r
)(1<r<2),快速排序和冒泡排序均为O(n(n-1)/2)。
30. 下列排序法中,每经过一次元素的交换会产生新的逆序的是______。
A.冒泡排序
B.快速排序
C.简单插入排序
D.简单选择排序
A
B
C
D
B
[解析] 给定包含n个不同元素的数组A[1..n],如果存在i<j且A[i]>A[j],则(i,j)称为数组A的一个逆序。快速排序法的基本思想是任取序列中某个元素为基准元素,将序列划分为左右两个子序列,左侧子序列都小于或等于基准元素,右侧子序列都大于基准元素,接下来分别对两个子序列重复上述过程。冒泡排序法只对相邻的两个元素进行比较,因此,在互换两个相邻元素时只能消除一个逆序,而快速排序法不是对两个相邻元素进行比较,可以实现通过一次交换而消除多个逆序,但由于均与基准元素比较,会产生新的逆序。
31. 设表的长度为n,下列查找算法中,在最坏情况下,比较次数最少的是______。
A.寻找最大项
B.寻找最小项
C.有序表的二分查找
D.顺序查找
A
B
C
D
C
[解析] 在最坏情况下比较次数:有序表的二分查找为log
2
n,顺序查找为n,寻找最大项和寻找最小项均为n-1。
32. 下列各排序法中,最坏情况下的时间复杂度最低的是______。
A.冒泡排序
B.堆排序
C.希尔排序
D.快速排序
A
B
C
D
B
[解析] 在最坏情况下时间复杂度:堆排序为nlog
2
n,希尔排序为n
r
(1<r<2),快速排序和冒泡排序均为n(n-1)/2。
33. 下列排序法中,最坏情况下时间复杂度最小的是______。
A.冒泡排序
B.堆排序
C.希尔排序
D.快速排序
A
B
C
D
B
[解析] 在最坏情况下时间复杂度:堆排序为nlog
2
n,希尔排序为n
r
(1<r<2),快速排序和冒泡排序均为n(n-1)/2。
34. 在长度为n的顺序表中查找一个元素,假设需要查找的元素一定在表中,并且元素出现在表中每个位置上的可能性是相同的,则在平均情况下需要比较的次数为______。
A.(n+1)/2
B.3n/4
C.n
D.n/4
A
B
C
D
A
[解析] 如果要找的数据恰好位于0号元素,则只需比较1次就可以了;如果要找的数据在a[1],则需比较2次……,最坏情况是要找的数据在最后一个位置a[n-1],所有的元素都要比较,需比较n次。因此,平均需要比较(1+2+…+n)/n=(n+1)/2次。
35. 在长度为n的顺序表中查找一个元素,假设需要查找的元素有一半的机会在表中,而如果元素在表中,出现在表中每个位置上的可能性是相同的,在平均情况下需要比较的次数大约为______。
A.3n/4
B.n
C.n/2
D.n/4
A
B
C
D
A
[解析] 如果要找的数据恰好位于0号元素,则只需比较1次就可以了;如果要找的数据在a[1],则需比较2次……,最坏情况是要找的数据在最后一个位置a[n-1],所有的元素都要比较,需比较n次。这是找到元素的情况。如没有找到元素,都要比较n次。因此,平均需要比较(找到元素的情况×1/2+未找到元素的情况×1/2):(1+2+…n)/n×1/2+n×1/2=(3n+1)/4次,大约为3n/4次。
36. 设表的长度为15,则在最坏情况下,快速排序所需要的比较次数为______。
A.105
B.15
C.55
D.75
A
B
C
D
A
[解析] 最坏情况下,快速排序所需要的比较次数为n(n-1)/2=15×14/2=105。
37. 带链栈空的条件是______。
A.top=-1且bottom=NULL
B.top=NULL且bottom=-1
C.top=bottom=-1
D.top=bottom=NULL
A
B
C
D
D
[解析] 堆栈既可用数组存储(称为顺序存储),也可用链表存储(称为链式存储)。用链表存储时,又称为带链的栈。带链的栈空的条件是top=bottom=NULL。
38. 带链队列为空的条件是______。
A.front=-1 且 rear=NULL
B.front=NULL 且 rear=-1
C.front=rear=-1
D.front=rear=NULL
A
B
C
D
D
[解析] 队列既可用数组存储(称为顺序存储),也可用链表存储(称为链式存储)。用链表存储时,又称为带链的队列。带链的队列空的条件是front=rear=NULL。
39. 循环队列的存储空间为Q(1:200),初始状态为front=rear=200。经过一系列正常的入队与退队操作后,front=rear=1,则循环队列中的元素个数为______。
A.1
B.2
C.199
D.0或200
A
B
C
D
D
[解析] 循环队列目前的元素个数可简单地用rear-front求得,如果所得为负数,再加数组总容量即可(若rear-front不为负数,则不加容量)。本题数组总容量为200,故本题元素个数为0或200。
40. 循环队列的存储空间为Q(1:100),初始状态为front=rear=100。经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为______。
A.0或100
B.1
C.2
D.99
A
B
C
D
A
[解析] 循环队列目前的元素个数可简单地用rear-front求得,如果所得为负数,再加数组总容量即可(若rear-front不为负数,则不加容量)。本题数组总容量为100,故本题元素个数为0或100。
单项选择题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
深色:已答题 浅色:未答题
提交纠错信息
评价难易度
提交知识点