一、选择题
1. 下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是( )。
A. 选择排序法B. 插入排序法C. 快速排序法D. 堆排序法 【答案】A
【解析】选择排序的基本思想是:
第i 趟排序开始时,当前有序区和无序区分别为则是从当前无序区中选出关键字最小的记录和
分别变为新的有序区和新的无序区。
和
该趟排序
交换,使
将它与无序区的第1个记录
2. 要连通具有n 个顶点的有向图,至少需要( )条边。
A.n-1 B.n C.n+1 D.2n
【答案】B
【解析】对于有向图来说,两个顶点之间的边是具有方向的。如果是构成连通的无向图,需要n-1条边,而对于有向图来说,只需要再加上第一个顶点和最后一个顶点加上一条边,让其构成环状的图即可,因此最少需要n 条边。
3. 数据序列结果。
A. 选择排序 B. 起泡排序 C. 插入排序 D. 堆排序 【答案】C
【解析】选择排序、起泡排序和堆排序两趟排序后,在序列的某一端应该有序列的两个最大值或者最小值。
只能是下列排序算法中的( )的两趟排序后的
4. 有向带权图如题图所示,若采用迪杰斯特拉(Dijkstra )算法求从源点a 到其他各顶点的最短路径,则得到的第一条最短路径的目标顶点是b ,第二条最短路径的目标顶点是c ,后续得到的其余各最短路径的目标顶点依次是( )。
题图有向带权图
A.d , e , f
B.e , d , f C.f , d , e D.f , e , d 【答案】C 。
【解析】本题主要考查Dijkstra 算法的思想和解题步骤。题目执行算法过程中各步的状态如下表所示。
执行Dijkstra 算法过程中各步的状态表,故后续目标顶点依次为f ,d , e 。
5. 一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足( )。
A. 其中任意一个结点均无左孩子 B. 其中任意一个结点均无右孩子 C. 其中只有一个叶结点
D. 其中度为2的结点最多为一个 【答案】C
【解析】前序序列是“根左右”,后序序列是“左右根”,若要这两个序列相反,只有单支树才有可能,所以本题的A 项和B 项均对,单支树的特点是只有一个叶结点,故C 项是最合适的。A 项或B 项都不全。
6. 将森林F 转换为对应的二叉树T , F中叶结点的个数等于( )
A.T 中叶结点的个数
B.T 中度为1的结点个数 C.T 中左孩子指针为空的结点个数 D.T 中右孩子指针为空的结点个数 【答案】C
【解析】森林转化为对应的二叉树是‘孩子-兄弟’存储的,即左孩子指针指向当前节点的孩子节点,右孩 子指针指向当前节点的兄弟节点,所以在T 中左孩子指针为空则代表它在森林中并没有孩子即为叶结点。所以 选C
7. 假定主存地址为32位,按字节编址,主存和Cache 之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写(WriteBack )方式,则能存放4K 字数据的Cache 的总容量的位数至少是( )。
A.146k B.147K C.148K D.158K 【答案】B
【解析】Cache 和主存直接映射方式的规则为:主存储器分为若干区,每个区与缓存容量相同;每个区分为若干数据块,每个块和缓存块容量相同;主存中某块只能映象到Cache 的一个特定的块中。本题中,Cache 总共存放4K 字数据,块大小为4个字,因此cache 被分为4K/4 = 1K 个块,由10位表示。块内共16字节,所以由4位表示,于是标记位为32-10-14= 18位。所以,Cache 的每一行需要包含所存的数据4个字,每个字32位,18位标记位和一个有效位,因此总容=147K。 量为:
8. 现有容量为10GB 的磁盘分区,磁盘空间以簇(cluster )为单位进行分配,簇的大小为4KB , 若采用位图法管理该分区的空闲空间,即用一位(bit )标识一个簇是否被分配,则存放该位图所需簇的个数为( )
A.80 B.320 C.80K D.320K 【答案】A
【解析】磁盘的簇的个数为:
而一个簇的位示图能管理的簇的个数为:
个
所以需要簇的个数为
9. 用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时( )。
A. 仅修改队头指针 B. 仅修改队尾指针