2018年常州大学商学院858数据结构考研仿真模拟五套题
● 摘要
一、单项选择题
1. 执行( )操作时,需要使用队列做辅助存储空间。
A. 查找哈希(Hash)表
B. 广度优先搜索网
C. 前序(根) 遍历二叉树
D. 深度优先搜索网
【答案】B
【解析】查找哈希表不需要辅助存储空间,前序遍历二叉树和深度优先搜索网需要使用栈做辅助存储空间,广度优先搜索树需要队列做辅助存储空间。
2. 假设某计算机的存储系统由Cache 和主存组成. 某程序执行过程中访存1000次,其中访问Cache 缺失(未命中)50次,则Cache 的命中率是( ).
A.5% B.
C.50%
D.95%
【答案】D
【解析】Cache 的命中率H =N 1(N1+N 2) ,其中N 1为访问Cache 的次数,N 2为访存主存的次数,程序总访存次数为N 1+N 2,程序访存次数减去失效次数就是访问Cache 的次数队. 所以根据公式可得:H =(1000﹣50) /100=95%.
3. 用数组r 存储静态链表,结点的next 域指向后继,工作指针j 指向链中结点,使j 沿链移动的操作为( )。
A.j =r[j].next
B.j =j +l
C.j =j ﹣>next
D.j =r[j]﹣>next
【答案】A
【解析】因为是用数组存储,这里所说的工作指针j 相当于数组的下标,结点是存储一个值域和next 域,next 域就是存放下一个结点的下表,所以只要将next 域中的值赋给j 就可以实现j 沿链移动。
4. 一棵二叉树高度为h ,所有结点的度或为0或为2,则这棵二叉树最少有( )个结点。
A.2h
B.2h ﹣1
C.2h +l
D.h +1
【答案】B
【解析】此树满足哈夫曼树,除根节点外每层有两个节点。
5. 下列二叉排序树中查找效率最高的是( )。
A. 平衡二叉树
B. 二叉查找树
C. 没有左子树的二叉排序树
D. 没有右子树的二叉排序树
【答案】A
【解析】平衡二叉树的左子树和右子树的深度之差的绝对值不超过1。这就保证了二叉树的深度是级别的。二叉查找树或者是一颗空数;或者是具有下列性质的二叉树:①若左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若右子树不空,则右子树上所有结点的值均大于它的根结点的值;③左、右子树也分别为二叉排序树。B 、C 、D 三项均不能保证左子树和右子树的深度之差的绝对值不超过1, 甚至很大,因此查找效率低。
6. 动态存储管理系统中,通常可有( )种不同的分配策略。
A.1
B.2
C.3
D.4
E.5
【答案】C
【解析】动态存储管理系统中有以下三种:首次拟合法、最佳拟合法、最差拟合法。①首次拟合法,从表头指针开始查找可利用空间表,将找到的第一个大小不小于n 的空闲块的一部分分配给用户。②最佳拟合法,将可利用空间表中一个不小于n 且最接近n 的空闲块的一部分分配给用户。则系统在分配前首先要对可利用空间表从头到尾扫视一遍,然后从中找出一块不小于n 且最接近n 的空闲块进行分配。③最差拟合法,将可利用空间表中不小于n 且是链表中最大的空闲块的一部分分配给用户。
7. 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
A. 单链表
B. 仅有头指针的单循环链表
C. 双链表
D. 仅有尾指针的单循环链表
【答案】D
【解析】仅有尾指针的单循环链表,在最后插入元素和删除第一个元素都会用到这个尾指针。
8. 稀疏矩阵一般的压缩存储方法有两种,即( )。
A. 二维数组和三维数组
B. 三元组和散列
C. 三元组和十字链表
D. 散列和十字链表
【答案】C
【解析】稀疏矩阵一般的压缩方法为三元组表和十字链表。三元组表就是将非零元素及其对应的行和列构成一个三元组(行标,列标,值) 。十字链表相比三元组表而言,主要是对每个结点增加了两个链域。如果数组经常运算时,会产生大量数据元素的移动,此时,采用链表存储结构更为恰当。
9. 单级中断系统中, 中断服务程序内的执行顺序是( )。
Ⅰ保护现场; Ⅱ开中断; Ⅲ关中断; Ⅳ保存断点; Ⅴ中断事件处理; Ⅵ恢复现场; Ⅶ中断返回 A. B. C. D.
【答案】A
【解析】程序中断有单级中断和多级中断之分, 单级中断在CPU 执行中断服务程序的过程中不能被打断, 即不允许中断嵌套。保存断点与关中断的任务是由硬件(中断隐指令) 完成的, 所以在单级中断系统中, 中断服务程序内应完成的任务有:
①保存现场; ②中断事件处理; ③恢复现场; ④开中断; ⑤中断返回。
10.一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到( )个不同的码字。
A.107
B.108
C.214
D.215
【答案】B
【解析】此题可转化为一棵哈夫曼树共有215个结点,共有多少叶子结点。又有n0=n2++l,所以215=n0+n2=2*n2+l ,n2=107,n0=108。也就是说若对其进行哈夫曼编码,共能得到108个码字。