2016年兰州大学数学与统计学院综合考试之数据结构复试笔试仿真模拟题
● 摘要
一、选择题
1. 求整数
阶乘的算法如下,其时间复杂度是( )。
A.
B. C. D.
【答案】B 。
【解析】设fact (n )的运行时间函数是T (n )。
该函数中语句①的运行时间是0(1), 语句②的运行时间是法运算的时间。
因此,
当
时
,
当
即fact (n
)的时间复杂度为
2. 用户程序发出磁盘I/O请求后,系统的正确处理流程是( )。
A. 用户程序—系统调用处理程序—中断处理程序—设备驱动程序 B. 用户程序—系统调用处理程序—设备驱动程序—中断处理程序 C. 用户程序—设备驱动程序—系统调用处理程序—中断处理程序 D. 用户程序—设备驱动程序—中断处理程序—系统调用处理程序 【答案】B
【解析】对于一次设备的调用,操作系统为用户准备了系统调用的接口,当用户使用设备时,首先在用户程 序中发起一次系统调用,操作系统的内核接到该调用请求后调用处理程序进行处理,根据调用格式和形参,再转到相应的设备驱动程序去处理;大部分设备在运行时是需要时间的,所以设备驱动程序会以中断方式驱动设备, 即设置好控制寄存器参数和中断向量等参数后阻塞自己;当设备准备好或所需数据到达后设备硬件发出中断,设备驱动程序唤醒,将数据按上述调用顺序逆向回传到用户程序中,或继续驱动设备执行下一条指令。因此,正确的顺序应该是用户到系统调用到驱动到中断处理。中断处理处于最底层。
其中O (1)为乘
则
,
时
,
3. 下面关于串的叙述中,不正确的是( )。
A. 串是字符的有限序列 B. 空串是由空格构成的串 C. 模式匹配是串的一种重要运算
D. 串既可以采用顺序存储,也可以采用链式存储 【答案】B
【解析】
空格构成的串称空格串。空串用表示。零个字符的串称为空串,空格也是一个字符,因此B 项不正确。
4. 已知程序如下:
{
} {
}
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。
A. B. C. D. 【答案】A
【解析】函数S (intn )是一个递归函数:①当实际参数小于等于零时则返回0, 并终止递归;,并将S (n-1)的结果加上n 作为返回值。程序从②当实际参数大于零时则递归调用S (n-1)
main ( )函数开始,首先调用main ( )函数;在main ( )函数中调用S (1);由于函数S (1)的函数时,将main ( )函数的上下文保存到栈中,并进入函数S (1)
;在S 实际参数大于零,需要调用S (0), 故将S (1)函数的上下文保存到栈中,进入S (0)(0)中,实际参数小于等于零,递归终止。
5. 某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微程序,各指令对应的微程序平均由4条微指令组成,采用断定法(下址字段法)确定下条微指令的地址,则微指令中下址字段的位数至少是:( )
A.5 B.6 C.8 D.9
【答案】C
【解析】
所以至少需要8位才能表示完130个地址。
6. 下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( )。
A. 先来先服务 B. 高响应比优先 C. 时间片轮转
D. 非抢占式短任务优先 【答案】B
【解析】分析该题目可以看到,本题所提到的问题是涉及短任务调度也就是属于作业调度,因此首先排除时 间片轮转算法;因为作业调度算法中没有时间片轮转的算法。其次,因为问题提到短任务,则先来先服务的算法也可以排除了,它与短任务无关。剩余高响应比优先算法和非抢占式短任务优先是哪一个? 我们可以通过分析得到,非抢占式短任务优先算法不能解决饥饿问题,因为当一个系统短任务源源不断到达是,长任务必然会得不到 调度,产生饥饿。而解决此方法的最好方式就是采用计算响应比的方法,并以高响应比值优先调度。这样,无论短任务或长任务,均可以得到调度,而且,较短任务会得到优先的调度。故满足短任务优先且不会发生饥饿现象的调度算法只有尚响应比优先算法。
7. 哈希文件使用哈希函数将记录的关键字值计算转化为记录的存放地址,因为哈希函数是一对一的关系,则选择好的( )方法是哈希文件的关键。
A. 哈希函数 B. 除余法中的质数 C. 冲突处理
D. 哈希函数和冲突处理 【答案】D
【解析】哈希表是根据文件中关键字的特点设计一种哈希函数和处理冲突的方法将记录散列到存储设备上。
8. 下列选项中,操作系统提供的给应用程序的接口是( )。
A. 系统调用 B. 中断 C. 库函数 D. 原语 【答案】A
【解析】操作系统提供给用户应用程序的接口只有两种:命令输入和系统调用。其中,命令输入又有不同的形式,例如常规的命令行、图形化人机交互接口复杂调用(例如多种
,
以及包含在)
自然命令用户接口
等,而系统调用中除了常规的一些传统的系统调用(例如read ( ))以外,还有经过扩展的
库中的各种封装好的过程调用(最终都是通过系统调
用陷入到操作系统中去的)等。
相关内容
相关标签