2016年青海师范大学软件工程数据结构复试笔试最后押题五套卷
● 摘要
一、选择题
1. 假设5个进
程共享三类资
源
题表资源分配情况表
这些资源总数分别
为时刻的资源分配情况如题表所示,此时存在的一个安全序列是( )。
答:D 。
【解析】典型的死锁避免算法、银行家算法的应用。本题的题型与2011年的27题相似。银行家算法是操作系统中的一个重点知识单元,考生对此应该非常熟悉,本题并无难点。分析一下下表,可以看到
,运行是可以的。
本题也可以排除法,时刻可用资源是分别为2, 3, 3, 此时刻,P0需要
分别为2, 3, 7,故排除A , P1需要Rl ,R2, R3分别为1,3, 3, P2还需要资源Rl ,R2, R3分别为0, 0, 6,故C 排除,P3需要Rl ,R2, R3分别为2, 2, 1。所以正确答案在B ,D 之间。看B 选项,P1之后的可用资源Rl ,R2, R3分别变为6, 3,6,而P0尚需资源2, 3, 7, 故B 方案行不通。因而最终答案只有D 项。
2. 下列各类存储器中,不采用随机存取方式的是( )。
A.EPROM
B.CDROM
C.DRAM
D.SRAM
答:B
【解析】随机存取方式是指存储器的任何一个存储单元的内容都可以存取,而且存取时间与存储单元的物理位置无关。CDROM 是只读的光盘存储器,采用串行存取方式而不是随机存取方式。
3. 和顺序栈相比,链栈有一个比较明显的优势是( )。
A. 通常不会出现找满的情况
B. 通常不会出现栈空的情况
C. 插入操作更容易实现
D. 删除操作更容易实现
答:A
4. 假设栈初始为空,将中缀表达式
当扫描到f 时,栈中的元素依次是( ) A.
B.
C.
D.
答:B
【解析】中缀表达式转后缀表达式遵循以下原则:
(1)遇到操作数,直接输出;
(2)栈为空时,遇到运算符,入栈;
(3)遇到左括号,将其入栈;
(4)遇到右括号,执行出栈操作,并将出桟的元素输出,直到弹出栈的是左括号,
左括号不输出;
(5)遇到其他运算符
运算符入栈;
(6)最终将栈中的元素依次出栈,输出。 所以扫描到
优先级比入栈‘描到
由于优先级比低,所以将弹出,入栈;扫描到,高,入栈;扫描到入栈; 扫描到将栈中优先级更高的弹出,入栈; 扫描到时,弹出所有优先级大于或等于该运算符的栈顶元素,然后将该 转换为等价后缀表达式的过程中,
优先级比高,入栈。所以扫描到f 的时候,栈中元素为
5. 若一个用户进程通过read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。
I. 若该文件的数据不在内存,则该进程进入睡眠等待状态;II. 请求read 系统调用会导致CPU 从用户态切换到核心态;III. read系统调用的参数应包含文件的名称
A. 仅 I 、II
B. 仅 I 、III
C. 仅 II 、III
D.I 、II 和III
答:A
,原进程【解析】对于I ,当所读文件的数据不再内存时,产生中断(缺页中断、缺段中断)
,直到所需数据从外村调入内存后,将该进程唤醒,使其变为就绪进入睡眠等待状态(阻塞状态)
状态。对于II , read系统调 用CPU 将从用户态切换到核心态,从而获取操作系统提供的服务。对于III ,在操作系统中,要读一个文件首先要open 系统调用将该文件打开。Open 系统调用的参数需要包含文件的路径名与文件名,而read 系统调用只需使用open 返回的文件描述符,并不使用
Read 系统调用要求用户提供三个输入参数:文件名作为参数。①文件描述 符;②buf 缓冲区首址;
③传送的字节数n 。read 系统调用的功能是试图从fd 所指示的文件中读入n 个字节的数据,并将它们送至由指针buf 所指示的缓冲区中。
6. 某主机的IP 地址为180.80.77.55, 子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是( )。
A.180.80.76.0
B.180.80.76.255
C.180.80.77.255
D.180.80.79.255
答:D 。
【解析】IPv4地址中的特殊地址,直接广播地址,也就是把主机位全部设置为1,这里77的二进制是01001101, 子网掩码252的二进制是11111100,由此可以看到77的前6位作为子网位,后四位作为主机位,由此可以知道 其广播地址是180.80.01001111.255,也就是180.80.79.255,因此答案是D 。
7. 稀疏矩阵一般的压缩存储方法有两种,即( )。
A. 二维数组和三维数组
B. 三元组和散列
C. 三元组和十字链表
D. 散列和十字链表
答:C
【解析】稀疏矩阵一般的压缩方法为三元组表和十字链表。三元组表就是将非零元素及其对应的行和列构成一个三元组(行标,列标,值)。十字链表相比三元组表而言,主要是对每个结点增加了两个链域。如果数组经常运算时,会产生大量数据元素的移动,此时,采用链表存储结构更为恰当。