扑复轿许薄谓咆圈糜辰清肝金
第一章 单元测试
1、 数据结构中,与所使用的计算机无关的是数据的( ) 结构。
A:物理和存储
B:物理
C:存储
D:逻辑
答案: 逻辑
2、 从逻辑上可以把数据结构分为( )两大类。
A:顺序结构、链式结构
B:动态结构、静态结构
C:线性结构、非线性结构
D:初等结构、构造型结构
答案: 线性结构、非线性结构
3、 算法分析的目的是( )
A:研究算法中的输入和输出的关系
B:分析算法的效率以求改进
C:找出数据结构的合理性
D:分析算法的易懂性和文档性
答案: 分析算法的效率以求改进
4、 一个”好”的算法应达到的目标有( )。
A:健壮性
B:可读性
C:正确性
D:高时间效率和低存储率
答案: 健壮性,可读性,正确性,高时间效率和低存储率
5、 健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
A:对
B:错
答案: 对
6、 数据的逻辑结构和数据的存储结构是相同的。
A:对
B:错
答案: 错
7、 算法的实现依赖于数据的逻辑结构。
A:对
B:错
答案: 错
8、 算法是对解题方法和步骤的描述。
A:错
B:对
答案: 对
9、 链式存储结构所占存储空间( )。
A:分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的地址。
B:分两部分,一部分存放结点的值,另一部分存放结点所占存储单元值。
C:只有一部分,存放结点的值。
D:只有一部分,存储表示结点间关系的地址。
答案: 分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的地址。
10、 下列时间复杂度中最坏的是( )。
A:O(1)
B:O( logn)
C:O(n)
D:O(n2)
答案: O(n2)
第二章 单元测试
1、 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:
A:访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B:在第i个结点后插入一个新结点(1≤i≤n)
C:删除第i个结点(1≤i≤n)
D:将n个结点从小到大排序
答案: 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
2、 链式存储结构的最大优点是
A:便于随机存取
B:无需预分配空间
C:便于进行插入和删除操作
D:存储密度高
答案: 便于进行插入和删除操作
3、 假设在顺序表{a0,a1,……,an-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是
A:107
B:124
C:106
D:128
答案: 128
4、 在一个单链表中的p和q两个结点之间插入一个新结点,假设新结点为s,则修改链的java语句序列是
A:s.next=p;p.next=q;
B:q.next=p;p.next=s;
C:s.next=q;p.next=s;
D:p.next=q;q.next=s;
答案: s.next=q;p.next=s;
5、 顺序存储方式的优点是存储密度大,且插入、删除运算效率高
A:错
B:对
答案: 错
6、 在单链表中,增加一个头结点的目的是为了
A:标识表结点中首结点的位置
B:说明单链表是线性表的链式存储
C:方便运算的实现
D:使单链表至少有一个结点
答案: 方便运算的实现
7、 一维数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是
A:100
B:120
C:110
D:108
答案: 108
8、 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动
A:错
B:对
答案: 错
9、 链表的每个结点中都恰好包含一个指针
A:错
B:对
答案: 错
10、 顺序存储方式只能用于存储线性结构
A:对
B:错
答案: 错
第三章 单元测试
1、 若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是
A:4321
B:1324
C:1423
D:1234
答案: 1423
2、 在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize,则顺序栈的判空条件是
A:top==maxSize-1
B:top==maxSize
C:top==0
D:top==-1
答案: top==0
3、 在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,front指向队首元素,rear指向队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是
A:front==rear
B:front==rear+1
C:front!=rear
D:front==(rear+1)% maxSize
答案: front==(rear+1)% maxSize
4、 在链栈中,进行出栈操作时
A:无需对栈作任何差别
B:需要判断栈是否满
C:需要判断栈元素的类型
D:需要判断栈是否为空
答案: 需要判断栈是否为空
5、 栈和队列是一种非线性数据结构
A:错
B:对
答案: 错
6、 在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是
A:front==rear
B:front==rear+1
C:front==(rear+1)% maxSize
D:front!=rear
答案: front==rear
7、 循环顺序队列是将顺序队列的存储区域看成是一个首尾相连的环,首尾相连的状态是通过数学上的哪种运算实现的?
A:求和
B:除运算
C:求余
D:减运算
答案: 求余
8、 设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为
A:front=(front+1)%(m+1)
B:front=(front+1)% m
C:front=front+1
D:rear=(rear+1)%m
答案: front=(front+1)%(m+1)
9、 假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为
A:a[–top]=x
B:a[top–]=x
C:a[++top]=x
D:a[top++]=x
答案: a[++top]=x
10、
在不带表头结点的链栈中,若栈顶指针top直接指向栈顶元素,则将一个新结点p入栈时修改链的两条对应语句为
A:
top=p;p.next=top;
B:
p.next=top;top=p;
C:
top.next=p;p=top;
D:
p=top;top.next=p.next;
答案:
p.next=top;top=p;
第四章 单元测试
1、 下面关于串的叙述中,哪一个是不正确的?( )
A:串既可以采用顺序存储,也可以采用链式存储
B:空串是由空格构成的串
C:模式匹配是串的一种重要运算
D:串是字符的有限序列
答案: 空串是由空格构成的串
2、 串的长度是指( )
A:串中包含的不同字符个数
B:串中包含的不同字母个数
C:串中包含的字符个数
D:串中除空格以外的字符个数
答案: 串中包含的字符个数
3、 设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( )
A:联接
B:求子串
C:求串长
D:模式匹配
答案: 模式匹配
4、 设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( )
A:O(n + m)
B:O(n)
C:O(m)
D:O(n×m)
答案: O(n + m)
5、 串也是一种线性表,只不过( )
A:表长受到限制
B:数据元素数据类型不受限制
C:数据元素均为字符
D:数据元素是子串
答案: 数据元素均为字符
6、 一个串的任意连续字符组成的子序列称为串的 子串,该串称为主串。
A:错
B:对
答案: 对
7、 空串和空格串的串长度都为0。
A:对
B:错
答案: 错
8、 若两个串的长度相等且对应位置上的字符也相等,则称两个串相等。
A:对
B:错
答案: 对
9、 寻找子串在主串中的位置,称为模式匹配。其中,主串又称为模式串。
A:对
B:错
答案: 错
10、 模式串t=”ababaab”的next[]数组值依次为-1、0、0、1、2、1、1。
A:对
B:错
答案: 错
上方为免费预览版答案,如需购买完整答案,请点击下方红字
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页
戳抗脐庇苟段疆谦蜕筷瘫惺坦