第一章 单元测试
1、单选题:
计算机算法是指解决问题的步骤序列 ,它必须具备()、输入和输出5个特性。
选项:
A:可行性、可移植性、可扩充性
B:易读性、稳定性、安全性
C:可行性、确定性、有穷性
D:确定性、有穷性、稳定性
答案: 【可行性、确定性、有穷性】
2、单选题:
当需要解决的问题的规模(以某种单位计算)由1增至n时,解决问题的算法所耗费的时间也以某种单位由f(1)增至f(n),则该算法的时间代价是()。
选项:
A:f(1)
B:1
C:n
D:f(n)
答案: 【f(n)】
3、单选题:
下面关于算法说法错误的是()。
选项:
A:算法的可行性是指指令不能有二义性
B:算法是对特定问题求解步骤的一种描述
C:算法是指令的有限序列
D:算法必须在执行有穷步之后结束
答案: 【算法的可行性是指指令不能有二义性】
4、单选题:
从逻辑上可以把数据结构分为()两大类。
选项:
A:初等结构、构造型结构
B:顺序结构、链式结构
C:动态结构、静态结构
D:线性结构、非线性结构
答案: 【线性结构、非线性结构】
5、判断题:
程序可以采用自然语言、数学语言或者约定的符号语言来描述。
选项:
A:对
B:错
答案: 【错】
6、判断题:
顺序存储设计时,存储单元的地址不一定连续。
选项:
A:错
B:对
答案: 【错】
7、多选题:
数据结构的研究范围主要包括()。
选项:
A:编程语言
B:物理结构
C:逻辑结构
D:相应的运算
答案: 【物理结构;逻辑结构;相应的运算】
8、多选题:
对于n个元素可以构造的逻辑结构有()。
选项:
A:有序表
B:链表
C:线性结构
D:集合
答案: 【线性结构;集合】
9、多选题:
下述()与数据的存储结构有关。
选项:
A:散列表
B:双向链表
C:栈
D:循环队列
答案: 【散列表;双向链表;循环队列】
10、多选题:
以下说法错误的是()。
选项:
A:数据项是数据的基本单位
B:数据结构是带有结构的数据元素的集合
C:数据结构是带有结构的各数据项的集合
D:数据元素是数据的最小单位
答案: 【数据项是数据的基本单位;数据结构是带有结构的各数据项的集合;数据元素是数据的最小单位】
第二章 单元测试
1、单选题:
下述()是顺序存储结构的优点。
选项:
A:删除运算方便
B:按位查找方便
C:插入运算方便
D:方便地运用于各种逻辑结构的存储表示
答案: 【按位查找方便】
2、单选题:
在一个长度为n的顺序表中删除第i(1<=i<=n)个元素时,需向前移动()个元素。
选项:
A:n-i
B:n
C:i-1
D:n-i+1
答案: 【n-i】
3、单选题:
对于顺序存储的线性表,其算法时间复杂度为O(1)的运算应该是()。
选项:
A:将n个元素从小到大排序
B:在第i(1<=i<=n)个元素后插入一个新元素
C:改变第i(1<=i<=n)个元素的值
D:删除第i(1<=i<=n)个元素
答案: 【改变第i(1<=i<=n)个元素的值】
4、单选题:
将两个有n个元素的有序表归并为一个有序表,最少比较次数为()。
选项:
A:2n
B:n-1
C:2n-1
D:n
答案: 【n】
5、判断题:
一个顺序表所占用的存储空间大小与表的长度无关。
选项:
A:错
B:对
答案: 【错】
6、判断题:
一个链表最常用的操作是在末尾插入结点和删除结点,则选用带头结点的双循环链表最节省时间。
选项:
A:错
B:对
答案: 【对】
7、多选题:
关于线性表顺序存储结构和链式存储结构的描述中,正确的是()。
选项:
A:如频繁使用插入和删除结点操作,顺序存储结构更优于链式存储结构
B:顺序存储结构和链式存储结构都可以进行顺序存取
C:线性表的长度变化较大时,链式存储结构更优于顺序存储结构
D:线性表的顺序存储结构优于其链式存储结构
答案: 【顺序存储结构和链式存储结构都可以进行顺序存取;线性表的长度变化较大时,链式存储结构更优于顺序存储结构】
8、判断题:
取线性表的第i个元素的时间与i的大小有关。
选项:
A:对
B:错
答案: 【错】
9、多选题:
在n个元素的线性表的数组表示中,时间复杂度为O(1)的操作是()。
选项:
A:访问第i(1<i<n)个结点和求第i(2<i<n)个结点的直接前驱
B:删除第i(1<i<n)个结点
C:在最后一个结点后插入一个新值
D:在第i(1<i<n)个结点后插入一个结点
答案: 【访问第i(1<i<n)个结点和求第i(2<i<n)个结点的直接前驱;在最后一个结点后插入一个新值】
10、判断题:
在n个元素的线性表中,删除第1个结点时间复杂度为O(1)。
选项:
A:错
B:对
答案: 【错】
第三章 单元测试
1、单选题:
栈和队列具有相同的()。
选项:
A:存储结构
B:抽象数据类型
C:运算
D:逻辑结构
答案:
2、单选题:
栈和队列的主要区别在于()。
选项:
A:它们的存储结构不一样
B:所包含的元素不一样
C:插入,删除操作的限定不一样
D:它们的逻辑结构不一样
答案:
3、单选题:
栈的应用不包括()。
选项:
A:进制转换
B:迷宫求解
C:图的广度优先遍历
D:递归
答案:
4、单选题:
元素 a,b,c,d,e依次进入初始为空的栈中,若元素进栈后,可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是()。
选项:
A:3
B:6
C:4
D:5
答案:
5、判断题:
删除栈顶元素不是栈的基本操作。
选项:
A:错
B:对
答案:
6、判断题:
表达式1*(2+3)+a的后缀表达式是123+*a+。
选项:
A:对
B:错
答案:
7、多选题:
有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪些是合法的出栈序列()?
选项:
A:4 5 3 1 2 6
B:5 4 3 6 1 2
C:2 3 4 1 5 6
D:3 4 6 5 2 1
答案:
8、多选题:
对于栈操作数据的特点不正确的是()。
选项:
A:先进先出
B:后进先出
C:后进后出
D:不分顺序
答案:
9、判断题:
栈是一种受限的线性表,允许在其两端进行操作。
选项:
A:对
B:错
答案:
10、多选题:
不允许对队列进行的操作有()。
选项:
A:对队列中的元素排序
B:在队列元素之间插入元素
C:取出最近进队的元素
D:删除队头元素
答案:
第四章 单元测试
1、单选题:
两个字符串相等的条件是( )。
选项:
A:都是非空串
B:两个串的长度相等且对应位置的字符相同
C:串的长度相等
D:含有相同的字符集
答案:
2、单选题:
下面关于串的叙述中,正确的是( )。
选项:
A:串的长度必须大于零
B:串中元素只能是字母
C:空串就是空白串
D:串是一种特殊的线性表
答案:
3、单选题:
若串s=“World”,其子串的个数是( )。
选项:
A:5
B:6
C:16
D:15
答案:
4、单选题:
字符串str=“software”,若采用动态分配的顺序存储方法需要( )个字节(设每种数据均占用2个字节)。
选项:
A:8
B:16
C:32
D:动态产生,视情况而定
答案:
5、单选题:
串采用节点大小为2的链表作为其存储结构,是指( )。
选项:
A:链表中每个节点的数据域中只存放2个字符
B:链表的长度为2
C:其余选项都不对
D:链表中只存放2个字符
答案:
6、单选题:
设有两个串T和S,其中T是S的子串,则求T在S中首次出现位置的算法称为( )。
选项:
A:求子串
B:串联接
C:模式匹配
D:求串长
答案:
7、单选题:
在串的简单模式匹配中,当模式串位j与目标串位i比较时,两字符不相等,则i的位移方式是( )。
选项:
A:i++
B:i=j-i+1
C:i=i-j+1
D:i=j+1
答案:
8、单选题:
在KMP模式匹配中,用next数组存放模式串的部分匹配信息。当模式串位j与目标串位i比较时,两字符不相等,则i的位移方式是( )。
选项:
A:j=next[j]
B:j不变
C:i=next[j]
D:i不变
答案:
9、单选题:
在KMP模式匹配中,用next数组存放模式串的部分匹配信息。当模式串位j与目标串位i比较时,两字符不相等,则j的位移方式是( )。
选项:
A:j=next[j]
B:i不变
C:j不变
D:i=next[j]
答案:
10、判断题:
空格串是由一个或多个空格字符组成的串,其长度为1。
选项:
A:对
B:错
答案:
第五章 单元测试
1、单选题:
设有10×6的数组A,数组下标从0,0开始,其每个元素占2个字节,按列优先顺序存储,若已知A[3][4]在内存中的地址是1086,则A[4][5]的地址是( )。
选项:
A:1140
B:1054
C:1296
D:1108
答案:
2、单选题:
以下物理结构中,不能够对数据元素进行随机访问的是( )
选项:
A:三对角矩阵的压缩存储
B:对称矩阵的压缩存储
C:数组的顺序存储
D:三元组顺序表
答案:
3、单选题:
若对n阶对称矩阵A,下标从1开始,以行序为主序方式将其下三角形的元素依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定a[i][j](1≤i,j≤n,且i≤j)的位置k的计算公式为( )。
选项:
A:i(i-1)/2+j
B:j(j+1)/2+i
C:j(j-1)/2+i
D:i(i+1)/2+j
答案:
4、单选题:
经常对数组进行的两种基本操作是( )。
选项:
A:索引和修改
B:建立与删除
C:查找和修改
D:查找与索引
答案:
5、单选题:
将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,元素A[66][65]在B数组中的位置K为( )。
选项:
A:197
B:198
C:196
D:195
答案:
6、单选题:
下面说法不正确的是( )。
选项:
A:广义表的表头总是一个广义表
B:广义表可以是一个多层次的结构
C:广义表难以用顺序存储结构进行存储
D:一个非空广义表的表尾总是一个广义表
答案:
7、单选题:
广义表((a,b,c,d))的表尾是( )。
选项:
A:(b,c,d)
B:a
C:()
D:(a,b,c,d)
答案:
8、单选题:
广义表(a,(b,c),d,e)的表头为( )。
选项:
A:(a)
B:(a,(b,c))
C:a
D:a,(b,c)
答案:
9、判断题:
数组是一种非线性结构,除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等操作。
选项:
A:对
B:错
答案:
10、判断题:
稀疏矩阵中非零元素的个数远小于矩阵中元素的总数。
选项:
A:错
B:对
答案:
第六章 单元测试
1、单选题:
树最适合用来表示()的数据。
选项:
A:元素之间具有分支层次关系
B:任意元素之间具有多种联系
C:有序
D:无序
答案:
2、单选题:
具有10个叶子结点的二叉树中有()个度为2的结点。
选项:
A:11
B:9
C:10
D:8
答案:
3、单选题:
一棵有n个结点的树的所有结点的度数之和为()。
选项:
A:2n
B:n
C:n+1
D:n-1
答案:
4、单选题:
已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是()。
选项:
A:111
B:39
C:52
D:119
答案:
5、判断题:
二叉排序树是动态树表,查找失败时插入新结点,会引起树的重新分裂和组合
选项:
A:错
B:对
答案:
6、判断题:
哈夫曼树具有最小的带权路径长度
选项:
A:错
B:对
答案:
7、多选题:
在下列关于二叉树遍历的说法中,错误的是()。
选项:
A:若有一个叶子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点
B:若有一个叶子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点
C:若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点
D:若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点
答案:
8、多选题:
下列关于树的说法中,错误的是()。
选项:
A:一棵树中的叶子数一定等于与其对应的二叉树的叶子数
B:一对于有n个结点的二又树,其高度为log.n
C:高度为h(h>0)的完全二叉树对应的森林所含的树的个数一定是hIV.一棵树中的叶子数一定是h
D:完全二叉树中,若一个结点没有左孩子,则它必是叶结点
答案:
9、多选题:
将森林转换为对应的二又树,若在二叉树中,结点u是点v的父结点的父结点, 则在原来的森林中,u和v可能具有的关系是()。
选项:
A:u的父结点与v的父结点是兄弟关系
B:兄弟关系
C:父子关系
答案:
10、多选题:
设X是树T中的一个非根结点,B是T所对应的二又树.在B中,X是其双亲结点的右孩子,下列结论中错误的是()。
选项:
A:在树T中,X是其双亲结点的第一个孩子
B:在树T中,X一定是叶子结点
C:在树T中,X一定无右边兄弟
D:在树T中,X一定有左边兄弟
答案:
第七章 单元测试
1、单选题:
在一个具有n个顶点的无向连通图中至少有( )条边。
选项:
A:n+1
B:n/2
C:n
D:n-1
答案:
2、单选题:
非空无向图的邻接矩阵是一个( )。
选项:
A:零矩阵
B:对角矩阵
C:上三角矩阵
D:对称矩阵
答案:
3、单选题:
如果从无向图的任一顶点出发进行一次广度优先遍历即可访问所有顶点,则该图一定是( )。
选项:
A:一棵树
B:有回路
C:连通图
D:完全图
答案:
4、单选题:
一个有向图G=(V,E),V={0,1,2,3,4},E={,,,
,,,},现按深度优先遍
历算法遍历,从顶点0出发,所得到的顶点序列是()
选项:
A:0,1,4,2,3
B:0,1,2,3,4
C:0,1,2,4,3
D:0,1,3,4,2
答案:
5、判断题:
强连通图是任何顶点到其他所有顶点都有边。
选项:
A:对
B:错
答案:
6、判断题:
有向图中任一顶点的入度等于出度。
选项:
A:对
B:错
答案:
7、判断题:
对任何有向图调用一次广度优先遍历算法便可访问所有的顶点。
选项:
A:对
B:错
答案:
8、判断题:
对任何非强连通图必须2次或以上调用广度优先遍历算法才可访问所有的顶点
选项:
A:错
B:对
答案:
9、单选题:
树最适合用来表示()的数据。
选项:
A:有序
B:元素之间具有分支层次关系
C:任意元素之间具有多种联系
D:无序
答案:
10、单选题:
具有10个叶子结点的二叉树中有()个度为2的结点。
选项:
A:9
B:10
C:8
D:11
答案:
第八章 单元测试
1、单选题:
采用折半搜索算法搜索长度为n的有序表时,元素的平均搜索长度为
选项:
A:O(log2n)
B:O(n2)
C:O(n log2n)
D:O(n)
答案:
2、单选题:
对包含n 个元素的散列表进行搜索,平均搜索长度为
选项:
A:其余都不对
B:不直接依赖于n
C: O(log2n)
D:O(n)
答案:
3、单选题:
折半(二分)查找有序表(3,4,5,10,13,14,20,30),若查找元素30,则被比较的元素依次为( )
选项:
A:10,14,30
B:13,30
C:10,20,30
D:10,14,20,30
答案:
4、单选题:
对线性表进行折半搜索时,要求线性表必须
选项:
A:以数组方式存储
B:以链接方式存储且结点按关键码有序排列
C:以数组方式存储且结点按关键码有序排列
D:以链接方式存储
答案:
5、多选题:
哈希函数处理冲突的方法有
选项:
A:拉链法
B:线性探测法
C:随机探查法
D:开放定址法
答案:
6、多选题:
构造(Hash)函数的方法有
选项:
A:除留取余法
B:随机探查法
C:链地址法
D:线性探测法
答案:
7、判断题:
以折半搜索方法搜索一个线性表时,此线性表必须是顺序存储的有序表。
选项:
A:对
B:错
答案:
8、判断题:
在索引表中,每个索引项至少包含有关键码值域和子表地址域这两项。
选项:
A:错
B:对
答案:
9、判断题:
在散列存储中,装载因子α又称为装载系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则α等于n/m
选项:
A:对
B:错
答案:
10、判断题:
顺序查找的平均查找长度是n/2
选项:
A:错
B:对
答案:
第九章 单元测试
1、单选题:
设一组初始记录关键字序列为(12,24,18,36,19,38,20,40,35,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( )。
选项:
A:12,18,19,20,24,36,35,38,40,70
B:12,24,18,36,19,38,20,40,35,70
C:12,18,24,36,19,20,38,40,35,70
D:12,18,19,20,24,36,38,40,35,70
答案:
2、单选题:
若用冒泡排序对关键字序列{17,15,13,11,10,6},进行从小到大的排序,所需进行的关键字比较总次数是( )。
选项:
A:34
B:10
C:21
D:15
答案:
3、单选题:
对一组数据(80,40,25,10,20)排序,数据的排列次序在排序的过程中的变化为
(1)80 40 25 10 20 (2)10 40 25 80 20
(3)10 20 25 80 40 (4)10 20 25 40 80
则采用的排序是( )。
选项:
A:快速
B:选择
C:冒泡
D:插入
答案:
4、单选题:
对序列{15,10,6,8,30,-5,5}进行排序,进行一趟后数据的排列变为{5,10,-5,8,30,6,15);则采用的是( )排序。
选项:
A:冒泡
B:希尔
C:快速
D:选择
答案:
5、单选题:
下列排序算法中( )不能保证每趟排序至少能将一个元素放到其最终的位置上。
选项:
A:冒泡排序
B:快速排序
C:堆排序
D:希尔排序
答案:
6、单选题:
下列排序算法中,其中( )是稳定的。
选项:
A:归并排序,冒泡排序
B:堆排序,冒泡排序
C:快速排序,堆排序
D:直接选择排序,归并排序
答案:
7、多选题:
以下属于内排序方法的是( )。
选项:
A:快速排序
B:冒泡排序
C:基数排序
D:拓扑排序
答案:
8、多选题:
下列排序算法中,( )算法是稳定的。
选项:
A:快速排序
B:基数排序
C:直接插入排序
D:冒泡排序
答案:
9、多选题:
排序趟数与序列的原始状态有关的排序方法是( )排序法。
选项:
A:快速
B:选择
C:冒泡
D:插入
答案:
10、判断题:
快速排序方法在要排序的数据已基本有序情况下最不利于发挥其长处
选项:
A:错
B:对
答案:
11、判断题:
当待排序元素序列的初始排列基本逆序时,希尔排序比直接插入排序快
选项:
A:错
B:对
答案:
12、判断题:
当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省。
选项:
A:错
B:对
答案:
请先
!