2018年江苏省培养单位苏州生物医学工程技术研究所864程序设计之数据结构考研核心题库
● 摘要
一、单项选择题
1. 若对如下无向图进行遍历, 则下列选项中, 不是广度优先遍历序列的是( )
A.h , c , a , b , d , e , g , f
B.e , a , f , g , b , h , c , d
C.d , b , c , a , h , e , f , g
D.a , b , c , d , h , e , f , g
【答案】D
【解析】根据广度优先遍历的定义, 可知选项A 、B 、C 都为广度优先遍历, 而选项D 是深度优先遍历而不是广度优先遍历, 故答案为D 。
2. 下列调整中, 不可能导致饥饿现象的是( )
A. 时间片转移
B. 静态优先及调度
C. 非抢占式作业优先
D. 抢占式短作业优先
【答案】A
【解析】时间片转移方法能在一个周期内使每个进程都得到一个时间片的CPU 使用时间, 不会产生饥饿的现象, 其余三个都会产生饥饿。
3. 对矩阵压缩存储是为了( )。
A. 方便运算
B. 方便存储
C. 提高运算速度
D. 减少存储空间
【答案】D
【解析】压缩存储也就是对那些没用的元素不进行存储或者对那些具有一定规律的相同元素放在一个存储空间,目的就是为了节省空间。
4. 下列关于最小生成树的叙述中, 正确的是( )。
Ⅰ. 最小生成树的代价唯一
Ⅱ. 所有权值最小的边一定会出现在所有的最小生成树中
Ⅲ. 使用普里姆(Prim)算法从不同顶点开始得到的最小生成树一定相同
IV. 使用普里姆算法和克鲁斯卡尔(Kmskal)算法得到的最小生成树总不相同
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅲ
D. 仅Ⅱ、Ⅳ
【答案】A 。
【解析】当图中存在相同权值的边时, 其最小生成树可能是不唯一的, 但最小生成树的代价一定是相同的, 所以说法Ⅰ正确。从n 个顶点的连通图中选取n-1条权值最小的边可能构成回路, 所以说法Ⅱ错误。
当某个顶点有权值相同的边, 使用普里姆(Prim)算法从不同顶点开始得到的最小生成树并不一定相同, 所以说法Ⅲ错误。当最小生成树不唯一时, 使用普里姆算法和克鲁斯卡尔(Kmskal)算法得到的最小生成树可能相同, 也可能不同, 所以说法Ⅳ错误。由此可得出正确答案。
5. 某文件占10个磁盘块, 现要把该文件磁盘块逐个读入主存缓冲区, 并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,
把一个磁盘块读人缓冲区的时间为
送到用户区的时间是, CPU
对一块数据进行分析的时间为
下, 读人并分析完该文件的时间分别是( )。 A. B. C. D.
【答案】B
【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的, 所以对单一缓冲区, 从磁盘写入和读出到用户区的操作必须串行执行, 也就是要保证互斥操作。而CPU 对数据的分析与从用户区读数据也是需要互斥操作, 但是CPU 分析与从磁盘写入缓冲区的操作可以并行。从本题看, 由于分析所用的时间小于从磁盘写入缓冲区的时间, 因此, CPU 会空闲。
单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间)
间=(100+50)X10+50=1550ns。
当采用双缓冲区时, 每块缓冲区的操作也必须满足互斥操作, 但是, 对两块缓冲区的操作却可以并行, 所以, 当第一个缓冲区写满以后, 磁盘紧接着写另一个缓冲区, 同时, 前一个已经满了的缓
, 将缓冲区的数据传
。在单缓冲区和双缓冲区结构处理最后一块数据的时
冲区被读出到用户区, 并立即进行CPU 的数据分析。读出操作和数据分析必须互斥进行, 故从时间上看, 当数据被读出并分析后, 恰好另一个缓冲区也写满了, 可以立即进行读出数据到用户区并进行数据分析。两块缓冲区交替进行读写, 直到数据分析完毕, 因此,
总时间=(磁盘写入缓冲区时间)X10+读出最后一块数据时间+CPU
分析最后一块数据时间
。
6. 对同一待排序列分别进行折半插入排序和直接插入排序, 两者之间可能的不同之处是 ( )。
A. 排序的总趟数
B. 元素的移动次数
C. 使用辅助空间的数量
D. 元素之间的比较次数
【答案】D 。
【解析】折半插入排序所需附加存储空间和直接插入排序相同, 从时间上比较, 折半插入排序仅减少了关键字间的比较次数, 而记录的移动次数不变。折半插入排序的时间复杂度仍为, 所以两者之间的不同只可能是元素之间的比较次数。
7. 假设某计算机的存储系统由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%.
8. 将线性表的数据元素进行扩充,允许带结构的线性表是( )。
A. 串
B. 树
C. 广义表
D. 栈
【答案】C
【解析】串、树、桟中的数据元素都是属于非结构的原子类型,元素的值是不可分解的。数组和广义表都是允许带结构的线性表。
9. 以下说法错误的是( )。
(1)算法原地工作的含义是指不需要任何额外的辅助空间