2018年青海民族大学计算机学院827计算机综合之数据结构考研核心题库
● 摘要
一、单项选择题
1. 循环队列A[0..m﹣1]存放其元素值,用front 和rear 分别表示队头和队尾,则当前队列中的元素数是( )。
A.(rear﹣front +m)%m
B.rear ﹣front +1
C.rear ﹣front ﹣1
D.rear ﹣front
【答案】A
【解析】对于循环队列,需要深刻理解队头(font)和队尾(rear)的概念,在队头进行出队操作,在队尾进行进队操作。rear-front 可能为正也可能为负,为正时元素个数=(rear-front);如果为负则元素的个数=(rear-front+m),所以统一的公式就是(rear-front+m)%m。
2. 某计算机存储器按字节编址, 采用小端方式存放数据。假定编译器规定int 和short 型长度分别为32位和16位, 并且数据按边界对齐存储。某C 语言程序段如下:
若record 变量的首地址为0xC008, 则地址中内容及的地址分别为( )。 A. B. C. D.
【答案】D 。
32位整数a 需要占4个字节, 16位整数c 需要占2个字节, 而字符数据b 占一个字节。【解析】
a=273, 转换成十六进制是111H , 采用小端方式存放数据, 地址
边界对齐存储,
地址
中存放c 。
3. 下列关于银行家算法的叙述中, 正确的是( )
A. 银行家算法可以预防死锁
B. 当系统处于安全状态时, 系统中一定无死锁进程
中的内容为11H 。由于数据按中存放b ,
地址中空闲,
地址中存放a ,
地址
C. 当系统处于不安全状态时, 系统中一定会出现死锁进程
D. 银行家算法破坏了死锁必要条件中的“请求和保持”条件
【答案】B
【解析】银行家算法是避免死锁的方法。利用银行家算法, 系统处于安全状态时没有死锁进程, 故答案选B 。
4. 排序过程中, 对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中, 每一趟排序结束时都至少能够确定一个元素最终位置的方法是( )。
Ⅰ. 简单选择排序
Ⅱ. 希尔排序
Ⅲ. 快速排序
Ⅳ. 堆排
Ⅴ. 二路归并排序
A. 仅Ⅰ、Ⅲ、Ⅳ
B. 仅Ⅰ、Ⅱ、Ⅲ
C. 仅Ⅱ、Ⅲ、Ⅳ
D. 仅Ⅲ、Ⅳ、Ⅴ
【答案】A 。
【解析】其中简单选择排序、堆排序属于选择类排序, 每一趟排序结束时将确定最大(或最小) 关键字所在的位置。快速排序每一趟排序结束时将确定基准关键字所在的位置。希尔排序、二路归并排序每一趟排序结束时不一定能确定一个元素的最终位置。
5. 下列选项中, 不会引起指令流水线阻塞的是( )。
A. 数据旁路(转发)
B. 数据相关
C. 条件转移
D. 资源冲突
【答案】A
【解析】由于采用流水线方式, 相邻或相近的两条指令可能会因为存在某种关联, 后一条指令不能按照原指定的时钟周期运行, 从而使流水线断流。有三种相关可能引起指令流水线阻塞:
①结构相关, 又称资源相关;
②数据相关;
③控制相关, 又称指令相关, 主要由转移指令引起。
6. 假定基准程序A 在某计算机上的运行时间为100秒, 其中90秒为CPU 时间, 其余为若CPU 速度提高
A.55秒
B.60秒
C.65秒
D.70秒
【答案】D 。
CPU 速度提高50%, 即CPU 性能提高比为【解析】, 改进之后的CPU 运行时间秒。速度不变, 仍维持10秒, 所以运行基准程序A 所耗费的时间为70秒。
7. 程序段
与对换;
其中n 为正整数,则最后一行的语句最坏情况下的时间复杂度是( )。
A.D(n)
B.O(nlogn)
C.O(n3)
D.O(n2)
【答案】D , 速度不变, 则运行基准程序A 所耗费的时间是( )。 时间。
【解析】这个是冒泡排序,最坏的情况下需要进行l +2+... +n ﹣l 次交换,即时间复杂度是0(n2) 。
8. 将两个各有N 个元素的有序表归并成一个有序表,其最少的比较次数是( )。
A.N
B.2N -1
C.2N
D.N -1
【答案】A
【解析】归并排序基本思想:归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。归并排序最好情况下的复杂度为O(n)。
9. 执行( )操作时,需要使用队列做辅助存储空间。
A. 查找哈希(Hash)表
B. 广度优先搜索网
C. 前序(根) 遍历二叉树
D. 深度优先搜索网