2018年武汉科技大学生物医学研究院856数据结构(C语言版)考研核心题库
● 摘要
一、单项选择题
1. 在双向链表指针P 的结点前插入一个指针q 的结点操作是( )。
A.p ﹣>llink =q ;q ﹣>Rlink =p ;p ﹣>Llink ﹣>Rlink =q ;q ﹣>Llink =q ;
B.p ﹣>llink =q ;p ﹣>Llink ﹣>Rlink =q ;q ﹣>Rlink =p ;q ﹣>Llink =p ﹣>Llink ;
C.q ﹣>Rlink =p ;q ﹣>Llink =p ﹣>L1ink ;p ﹣>L1ink ﹣>Rlink =q ;p ﹣>Llink =q ;
D.q ﹣>llink =p ﹣>llink;q ﹣>Rlink =q ;p ﹣>llink =q ;p ﹣>llink =q ;
【答案】C
2. 下列选项中, 会导致用户进程从态切换到内核的操作是( )
Ⅰ. 整数除以零
Ⅱ.sin ( )函数调用
Ⅲ.read 系统调用
A. 仅Ⅰ、Ⅱ
B. 仅Ⅰ、Ⅲ
C. 仅Ⅱ、Ⅲ
D. Ⅰ、Ⅱ和Ⅲ
【答案】B
【解析】对于Ⅰ, 系统发生异常, 需要进入内核态由操作系统进行处理, 而read 系统调用函数也是在内核态执行, sin ( )就是普通的用户函数, 在用户态执行, 故答案为C 。
3. 下列有关浮点数加减运算的叙述中, 正确的是( )。
Ⅰ. 对阶操作不会引起阶码上溢或下溢
Ⅱ. 右规和尾数舍入都可能引起阶码上溢
Ⅲ. 左规时可能引起阶码下溢
Ⅳ. 尾数溢出时结果不一定溢出
A. 仅Ⅱ Ⅲ
B. 仅Ⅰ Ⅱ Ⅳ
C. 仅Ⅰ Ⅲ Ⅳ
D. Ⅰ Ⅱ ⅢⅣ
【答案】D
【解析】浮点数的加减运算步骤包括:①对阶, 使两个操作数的小数点位置对齐, 阶码小的尾数
右移, 可能产生溢出, 但是阶码不会溢出; ②尾数求和, 将对阶后的尾数按定点数加(减) 运算规则运算; ③规格化, 包括左规和右规, 左规时阶码减少, 可能出现阶码下溢, 而右规时, 阶码增加可能出现阶码上溢; ④舍入, 该过程可能需要右规调整, 因此可能出现阶码上溢; ⑤溢出判断, 浮点数的溢出与否是由阶码的符号决定的, 而不是由尾数溢出判断的, 因此尾数溢出时结果不一定溢出。因此Ⅰ Ⅱ Ⅲ Ⅳ均正确。
4. 执行( )操作时,需要使用队列做辅助存储空间。
A. 查找哈希(Hash)表
B. 广度优先搜索网
C. 前序(根) 遍历二叉树
D. 深度优先搜索网
【答案】B
【解析】查找哈希表不需要辅助存储空间,前序遍历二叉树和深度优先搜索网需要使用栈做辅助存储空间,广度优先搜索树需要队列做辅助存储空间。
5. 假定编译器规定int 和short 类型长度分别为32位和16位, 执行下列C 语言语句:
;
A.00007FFAH
B.0000FFFAH
C.FFFF7FFAH
D.FFFFFFFAH
【答案】B 。
X 和y 均为无符号数, 其中X 为16位, y 为32位, 将16位无符号数转化成32位无符【解析】
号数, 前面要补零。因为X=65530=FFFAH, 所以y=0000FFFAH。
6. 先序序列为a , b , c , d 的不同二叉树的个数是( )。
A.13
B.14
C.15
D.16
【答案】B
【解析】二叉树的先序遍历定义为:若二叉树为空, 则空操作; 否则, 访问根节点, 然后先序遍历左子树, 最后先序遍历右子树。本题中, 结点a 为二叉树的根节点, 左右子树的先序遍历可能存在下面四种情况:
①左子树为空, bcd 为右子树; ②b 为左子树, cd 为右子树; ③bc 为左子树, d 为右子树; ④bcd 为左子树, 右子树为空。
然后将左右子树继续分解, 如第①种情况的右子树先序遍历(bcd)可能有:
A. 左子树为空, 右子树为cd ;
b. 左子树为c , 右子树为d ;
:得到y 的机器数为( )。
c. 左子树为cd , 右子树为空。
按照这种方法继续分解左右子树, 直到不能再分解为止, 可得第①和④种情况各包含5种不同情况, 第②和③种情况各包含2种情况, 因此总共有14种不同的二叉树。
7. 处理外部中断时, 应该由操作系统保存的是( )。
A. 程序计数器(PC)的内容
B. 通用寄存器的内容
C. 快表(TLB)的内容
D.Cache 中的内容
【答案】B
【解析】外部中断处理过程首先要保护现场, 使得中断处理完后能够恢复程序的状态继续执行。保护现场有两个含义:
①由中断隐指令保存程序的断点(程序计数器) ;
②由中断服务程序保存通用寄存器和状态寄存器的内容。中断服务程序是操作系统的一部分。
8. 将两个各有N 个元素的有序表归并成一个有序表,其最少的比较次数是( )。
A.N
B.2N -1
C.2N
D.N -1
【答案】A
【解析】归并排序基本思想:归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。归并排序最好情况下的复杂度为O(n)。
9. 假定基准程序A 在某计算机上的运行时间为100秒, 其中90秒为CPU 时间, 其余为若CPU 速度提高
A.55秒
B.60秒
C.65秒
D.70秒
【答案】D 。
CPU 速度提高50%, 即CPU 性能提高比为【解析】, 改进之后的CPU 运行时间秒。速度不变, 仍维持10秒, 所以运行基准程序A 所耗费的时间为70秒。
10.对一组数据(2, 12, 16, 88, 5, 10) 进行排序, 若前三趟排序结果如下:
第一趟:2, 12, 16, 5, 10, 88
时间。, 速度不变, 则运行基准程序A 所耗费的时间是( )。