2018年广西师范大学854数据结构(含C程序设计)及计算机组成原理之数据结构考研强化五套模拟题
● 摘要
一、单项选择题
1. 折半查找的时间复杂性为( )。 A.
B.O(n) C. D.
【答案】D
【解析】顺序查找的事件复杂度为, 因为折半查找是查找效率最髙的算法,它的事件复杂度为。
2. 广义表A =(a,b ,(c,d) ,(e,(f,g))) , 则式子Head(Tail(Head(Tail(Tail(A)))))的值为( )。
A.(g)
B.(d)
C.c
D.d
【答案】D
【解析】head 操作就是得到广义表中第一个的原子。tail 操作就是得到除第一个原子外剩下元素构成的表。也就是tail 得到的元素需要在外层再加一个( )。
3. 下列不是设计一个“好”的算法应考虑达到的目标是( )。
A. 可行的
B. 健壮的
C. 无二义性的
D. 可读性好的
【答案】A
【解析】设计一个“好”的算法应考虑以下目标:正确性;可读性;健壮性;效率和低存储量需求。可行性是算法的五个基本特征之一,不是一个好的算法该达到的目标。
4. float 型数据通常用IEEE754单精度浮点数格式表示。若编译器将float 型变量x 分配在一个32位浮点寄存器FR1中,
且
A.C1040000H
B.C2420000H
C.C1840000H
D.C1C20000H , 则FR1的内容是( )。
【答案】A
【解析】首先将十进制数转换为二进制数-1000.01,
接着把它写成规格化形式
IEEE754标准) , 然后计算阶码的移码=偏置值+
阶码真值(按, 最后短浮点数代码:数符位=1, 阶码=10000010, 尾数00001000000000000000000, 写成十六进制为C1040000H 。选项D 是一个很容易被误选的选项, 其错误在于没有考虑IEEE754标准中隐含最高位1的情况, 偏置值是128。
5. 在下图所示的平衡二叉树中, 插入关键字48后得到一棵新平衡二叉树。在新平衡二叉树中, 关键字37所在结点的左、右子结点中保存的关键字分别是( )。
A.13、48
B.24、48
C.24、53
D.24、90
【答案】C
【解析】题目中, 插入48以后, 树根结点的平衡因子由-1变为-2, 失去平衡。这属于RL(先右后左) 型平衡旋转, 需做两次(先右旋后左旋转) 旋转操作。过程如下图所示:
显然, 在调整后的新平衡二叉树中, 关键字37所在结点的左、右子结点中保存的关键字分别是24, 53。
6. 冯•诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是( ).
A. 指令操作码的译码结果
B. 指令和数据的寻址方式
C. 指令周期的不同阶段
D. 指令和数据所在的存储单元
【答案】C
【解析】在冯•诺依曼结构计算机中指令和数据均以二进制形式存放在同一个存储器中,CPU
可以根据指令周期的不同阶段来区分是指令还是数据,通常在取指阶段取出的是指令,其他阶段(分析取数阶段、执行阶段) 取出的是数据. 所以,CPU 区分指令和数据的依据是指令周期的不同阶段.
7. 下面关于B 和B+树的叙述中,不正确的是( )
A.B 树和B+树都是平衡的多叉树
B.B 树和B+树都可用于文件的索引结构
C.B 树和B+树都能有效地支持顺序检索
D.B 树和B+树都能有效地支持随机检索
【答案】C
【解析】B 树是一种平衡的多分树,通常我们说m 阶的B 树,它必须满足如下条件:①每个结点至多有m 个子结点;②除根结点和叶结点外,其它每个结点至少有个子结点;③若根结点不是叶子结点,则至少有两个子结点;④所有的叶结点在同一层;⑤有k 个子结点的非根结点恰好包含k -1个关键码。B+树是B 树的一种变形树,它与B 树的差异在于:有k 个子结点的结点必然有k 个关键码;非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。其中B 树适合与随即检索,不适合于顺序检索,所以C 项错误。
8. 用户在删除某文件的过程中, 操作系统不可能执行是( )
A. 删除此文件所在的目录
B. 删除与此文件关联的目录项
C. 删除与此文件对应的控制块
D. 释放与此文件关联的内存级冲区
【答案】A
【解析】删除文件不需要删除文件所在的目录, 而文件的关联目录项和文件控制块需要随着文件一同删除, 同时释放文件的关联缓冲区。
9. 下列关于进程和线程的叙述中, 正确的是( )。
A. 不管系统是否支持线程, 进程都是资源分配的基本单位
B. 线程是资源分配的基本单位, 进程是调度的基本单位
C. 系统级线程和用户级线程的切换都需要内核的支持
D. 同一进程中的各个线程拥有各自不同的地址空间
【答案】A 。
【解析】利用排除法来确定正确答案:“线程是资源分配的基本单位, 进程是调度的基本单位”这句话说反了, 明显错误。“系统级线程和用户级线程的切换都需要内核的支持”也不正确, 因为用户级线程的切换由用户编写的RimtimeSystem 执行的, 内核并不感知。“同一进程中的各个线程拥有各自不同的地址空间”明显错误, 引入线程的目的就是为了同一进程的所有线程能共享