2018年河北大学电信学院893数据结构考研核心题库
● 摘要
一、单项选择题
1. 执行完下列语句段后,f 值为( )。
A.2
B.4
C.8
D. 无限递归
【答案】B
【解析】该程序使用了递归调用,由题知,:f(0)=2;f(l)=l*f(0)=2;f(2)=2*f(l)=4;所以结果为4。
2. 在子网
A.0
B.1
C.2
D.4
【答案】C 中, 能接收目的地址为的IP 分组的最大主机数是( )。
【解析】每个子网中忽略子网内全为0和全为1的地址剩下的就是有效主机地址, 本题中由于子网的比特数是30, 因此用于主机的只有2位, 即00, 01, 10, 11, 有效主机地址是2个,
这里
显然是其广播地址, 因此答案是C 。
3. 现有容量为10GB 的磁盘分区, 磁盘空间以簇(duster)为单位进行分配, 簇的大小为4KB , 若采用位图法管理该分区的空闲空间, 即用一位(bit)标识一个簇是否被分配, 则存放该位图所需簇的个数为( )
A.80
B.320
C.80K
D.320K
【答案】A
【解析】磁盘的簇的个数为:
个
而一个簇的位示图能管理的簇的个数为:
所以需要簇的个数为
个
4. 动态存储管理系统中,通常可有( )种不同的分配策略。
A.1
B.2
C.3
D.4
E.5
【答案】C
【解析】动态存储管理系统中有以下三种:首次拟合法、最佳拟合法、最差拟合法。①首次拟合法,从表头指针开始查找可利用空间表,将找到的第一个大小不小于n 的空闲块的一部分分配给用户。②最佳拟合法,将可利用空间表中一个不小于n 且最接近n 的空闲块的一部分分配给用户。则系统在分配前首先要对可利用空间表从头到尾扫视一遍,然后从中找出一块不小于n 且最接近n 的空闲块进行分配。③最差拟合法,将可利用空间表中不小于n 且是链表中最大的空闲块的一部分分配给用户。
5. 对下图进行拓扑排序, 可以得到不同的拓扑序列的个数是( )。
图
A.4
B.3
C.2
D.1
【答案】B
【解析】拓扑排序的步骤为:
(1)在有向图中选一个没有前驱的顶点并且输出它;
(2)从图中删除该顶点和以它为尾的弧。重复上述两步, 直至全部顶点均已输出。由于没有前驱的顶点可能不唯一, 所以拓扑排序的结果也不唯一。题中所给图有三个不同的拓扑排序序列, 分别为abced , abecd , aebcd 。
6. 将线性表的数据元素进行扩充,允许带结构的线性表是( )。
A. 串
B. 树
C. 广义表
D. 栈
【答案】C
【解析】串、树、桟中的数据元素都是属于非结构的原子类型,元素的值是不可分解的。数组和广义表都是允许带结构的线性表。
7. 将森林F 转换为对应的二叉树T , F 中叶结点的个数等于( )
A.T 中叶结点的个数
B.T 中度为1的结点个数
C.T 中左孩子指针为空的结点个数
D.T 中右孩子指针为空的结点个数
【答案】C
【解析】森林转化为对应的二叉树是‘孩子-兄弟’存储的, 即左孩子指针指向当前节点的孩子节点, 右孩子指针指向当前节点的兄弟节点, 所以在T 中左孩子指针为空则代表它在森林中并没有孩子即为叶结点。所以选C
8. 对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。
A. 每次分区后,先处理较短的部分
B. 每次分区后,先处理较长的部分
C. 与算法每次分区后的处理顺序无关
D. 以上三者都不对
【答案】A
【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为n+1。整个f 的最大深度为递归深度。
9. 某计算机采用微程序控制器, 共有32条指令, 公共的取指令微程序包含2条微程序, 各指令对应的微程序平均由4条微指令组成, 采用断定法(下址字段法) 确定下条微指令的地址, 则微指令中下址字段的位数至少是:( )
A.5
B.6
C.8
D.9
【答案】C 【解析】, ,
所以至少需要8位才能表示完130个地址。
10.用邻接表存储图所用的空间大小( )。
A. 与图的顶点数和边数都有关
B. 只与图的边数有关