2009年(408)计算机学科专业基础综合试题

科目组合

计算机: 数据结构 、计算机组成原理 、操作系统 、计算机网络

03: 00: 24
答题卡
得分 88/150
答对题目数 18/47
评价 ☆☆☆☆☆

答题情况分析报告

正确: 18
错误: 29
未答: 0
总分: 88/150
正确率 38.3%
第1题 数据结构 单选题 题目链接

为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。

A. 栈      B. 队列      C. 树      D. 图

正确答案:B 你的答案: 正确 正确率:91%
点击此处查看本题答案 ↓

第2题 数据结构 单选题 题目链接

设栈 S 和队列 Q 的初始状态均为空,元素a, b, c, d, e, f, g依次进入栈 S 。若每个元素出栈后立即进入队列 Q,且 7 个元素出队的顺序是b, d, c, f, e, a, g,则栈 S 的容量至少是( )。

A. 1

B. 2

C. 3

D. 4

正确答案:C 你的答案: 正确 正确率:93%
点击此处查看本题答案 ↓

第3题 数据结构 单选题 题目链接

给定二叉树如右图所示。设 N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树。若遍历后的结点序列是 3,1,7,5,6,2,4,则其遍历方式是()。

A.LRN     B.NRL     C.RLN     D.RNL

正确答案:D 你的答案: 正确 正确率:95%
点击此处查看本题答案 ↓

第4题 数据结构 单选题 题目链接

下列二叉排序树中,满足平衡二叉树定义的是( )。

正确答案:B 你的答案: 正确 正确率:97%
点击此处查看本题答案 ↓

第5题 数据结构 单选题 题目链接

已知一棵完全二叉树的第 6 层(设根为第 1 层)有 8 个叶结点,则该完全二叉树的结点个数最多是()。

A.39       B.52      C.111     D.119

正确答案:C 你的答案: 正确 正确率:68%
点击此处查看本题答案 ↓

第6题 数据结构 单选题 题目链接

将森林转换为对应的二叉树,若在二叉树中,结点 u 是结点 v 的父结点的父结点,则在原来的森林中, u 和 v 可能具有的关系是( )。

I. 父子关系

II. 兄弟关系

III. u 的父结点与 v 的父结点是兄弟关系

A. 只有II      B. I和II      C. I和III      D. I、II和III

正确答案:B 你的答案: A 正确率:63%
点击此处查看本题答案 ↓

第7题 数据结构 单选题 题目链接

下列关于无向连通图特性的叙述中,正确的是

Ⅰ.所有顶点的度之和为偶数
Ⅱ.边数大于顶点个数
Ⅲ.至少有一个顶点的度为1

A. 只有Ⅰ

B. 只有Ⅱ

C. Ⅰ和Ⅱ

D. Ⅰ和Ⅲ

正确答案:A 你的答案: 正确 正确率:79%
点击此处查看本题答案 ↓

第8题 数据结构 单选题 题目链接

下列叙述中,不符合 m 阶 B 树定义要求的是()。

A.根节点最多有 m 棵子树

B.所有叶结点都在同一层上

C.各结点内关键字均升序或降序排列

D.叶结点之间通过指针链接

正确答案:D 你的答案: 正确 正确率:77%
点击此处查看本题答案 ↓

第9题 数据结构 单选题 题目链接

已知关键字序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是()。

A.3,5,12,8,28,20,15,22,19

B.3,5,12,19,20,15,22,8,28

C.3,8,12,5,20,15,22,28,19

D.3,12,5,8,28,20,15,22,19

正确答案:A 你的答案: 正确 正确率:92%
点击此处查看本题答案 ↓

第10题 数据结构 单选题 题目链接

若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是()。

A.起泡排序 

B.插入排序 

C.选择排序 

D.二路归并排序

正确答案:B 你的答案: 正确 正确率:74%
点击此处查看本题答案 ↓

第11题 计算机组成原理 单选题 题目链接

冯•诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是(  )

A.指令操作码的译码结果     B.指令和数据的寻址方式

C.指令周期的不同阶段        D.指令和数据所在的存储单元

正确答案:C 你的答案: 正确 正确率:67%
点击此处查看本题答案 ↓

第12题 计算机组成原理 单选题 题目链接

一个C语言程序在一台32位机器上运行。程序中定义了三个变量x,y和z,其中x和z是int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x、y和z的值分别是:

A. x=0000007FH , y=FFF9H , z=00000076H

B. x=0000007FH , y=FFF9H , z=FFFF0076H

C. x=0000007FH , y=FFF7H , z=FFFF0076H

D. x=0000007FH , y=FFF7H , z=00000076H

正确答案:D 你的答案: C 正确率:78%
点击此处查看本题答案 ↓

第13题 计算机组成原理 单选题 题目链接

浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7位(均含2位符号位)。若有两个数X=2^7×29/32,Y=2^5×5/8,则用浮点加法计算X+Y的最终结果是。

A.00111 1100010

B.00111 0100010

C.01000 0010001

D.发生溢出

正确答案:D 你的答案: 正确 正确率:61%
点击此处查看本题答案 ↓

第14题 计算机组成原理 单选题 题目链接

某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是。

A.0     B.1      C.4      D.6

正确答案:C 你的答案: 正确 正确率:64%
点击此处查看本题答案 ↓

第15题 计算机组成原理 单选题 题目链接

某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是(  )。

A.1、15                 B.2、15

C.1、30                 D.2、30

正确答案:D 你的答案: 正确 正确率:91%
点击此处查看本题答案 ↓

第16题 计算机组成原理 单选题 题目链接

某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是

A.2006H      B.2007H                        

C.2008H      D.2009H

正确答案:C 你的答案: A 正确率:76%
点击此处查看本题答案 ↓

第17题 计算机组成原理 单选题 题目链接

下列关于RISC的叙述中,错误的是(  )。

A.RISC普遍采用微程序控制器

B.RISC大多数指令在一个时钟周期内完成

C.RISC的内部通用寄存器数量相对CISC多

D.RISC的指令数、寻址方式和指令格式种类相对CISC少

正确答案:A 你的答案: C 正确率:62%
点击此处查看本题答案 ↓

第18题 计算机组成原理 单选题 题目链接

某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓存时间)分别为90 ns、80 ns、70 ns、和60 ns,则该计算机的CPU时钟周期至少是(  )。

A.90 ns             B.80 ns             

C.70 ns             D.60 ns

正确答案:A 你的答案: B 正确率:98%
点击此处查看本题答案 ↓

第19题 计算机组成原理 单选题 题目链接

相对于微程序控制器,硬布线控制器的特点是(  )。

A.指令执行速度慢,指令功能的修改和扩展容易

B.指令执行速度慢,指令功能的修改和扩展难

C.指令执行速度快,指令功能的修改和扩展容易

D.指令执行速度快,指令功能的修改和扩展难

正确答案:D 你的答案: 正确 正确率:93%
点击此处查看本题答案 ↓

第20题 计算机组成原理 单选题 题目链接

假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10M Hz,则总线带宽是______。

A.10M B/S                  B.20M B/S                 

C.40MB/ S                  D.80M B/S

正确答案:B 你的答案: 正确 正确率:79%
点击此处查看本题答案 ↓

第21题 计算机组成原理 单选题 题目链接

假设某计算机的存储系统由Cache和主存组成,某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是(  )。

A.5%     B.9.5%     C.50%     D.95%

正确答案:D 你的答案: 正确 正确率:97%
点击此处查看本题答案 ↓

第22题 计算机组成原理 单选题 题目链接
下列选项中,能引起外部中断的事件是(  )。 
A.键盘输入
B.除数为 0
C.浮点运算下溢
D.访存缺页
正确答案:A 你的答案: D 正确率:91%
点击此处查看本题答案 ↓

第23题 操作系统 单选题 题目链接

单处理机系统中,可并行的是(  )。

Ⅰ.进程与进程  Ⅱ.处理机与设备  Ⅲ.处理机与通道  Ⅳ.设备与设备

A.Ⅰ、Ⅱ、Ⅲ    B.Ⅰ、Ⅱ、Ⅳ    C.Ⅰ、Ⅲ、Ⅳ    D.Ⅱ、Ⅲ、Ⅳ

正确答案:D 你的答案: A 正确率:84%
点击此处查看本题答案 ↓

第24题 操作系统 单选题 题目链接
下列进程调度算法中,综合考虑进程等待时间和执行时间的是______。 
A.时间片轮转调度算法
B.短进程优先调度算法
C.先来先服务调度算法
D.高响应比优先调度算法
正确答案:D 你的答案: B 正确率:91%
点击此处查看本题答案 ↓

第25题 操作系统 单选题 题目链接

某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是()。

A、2
B、3
C、4
D、5

正确答案:C 你的答案: B 正确率:85%
点击此处查看本题答案 ↓

第26题 操作系统 单选题 题目链接
分区分配内存管理方式的主要保护措施是______。
A.界地址保护
B.程序代码保护
C.数据保护
D.栈保护
正确答案:A 你的答案: B 正确率:94%
点击此处查看本题答案 ↓

第27题 操作系统 单选题 题目链接
一个分段存储管理系统中,地址长度为 32 位,其中段号占 8 位,则最大段长是______。
A.2^8 字节     B.2^16 字节     C.2^24 字节     D.2^32 字节
正确答案:C 你的答案: 正确 正确率:88%
点击此处查看本题答案 ↓

第28题 操作系统 单选题 题目链接

下列文件物理结构中,适合随机访问且易于文件扩展的是()。

A、连续结构
B、索引结构
C、链式结构且磁盘块定长
D、链式结构且磁盘块变长

正确答案:B 你的答案: C 正确率:75%
点击此处查看本题答案 ↓

第29题 操作系统 单选题 题目链接
假设磁头当前位于第 105 道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为 35,45,12,68,110,180,170,195,采用 SCAN 调度(电梯调度)算法得到的磁道访问序列是 ______。
A.110,170,180,195,68,45,35,12
B.110,68,45,35,12,170,180,195
C.110,170,180,195,12,35,45,68
D.12,35,45,68,110,170,180,195
正确答案:A 你的答案: D 正确率:87%
点击此处查看本题答案 ↓

第30题 操作系统 单选题 题目链接
文件系统中,文件访问控制信息存储的合理位置是______。
A.文件控制块
B.文件分配表
C.用户口令表
D.系统注册表
正确答案:A 你的答案: C 正确率:91%
点击此处查看本题答案 ↓

第31题 操作系统 单选题 题目链接
设文件 F1 的当前引用计数值为 1,先建立 F1 的符号链接(软链接)文件 F2,再建立 F1 的硬链接文件 F3,然后删除 F1。此时,F2 和 F3 的引用计数值分别是______。
A. 0、1
B.1、1
C.1、2
D.2、1
正确答案:B 你的答案: 正确 正确率:61%
点击此处查看本题答案 ↓

第32题 操作系统 单选题 题目链接

程序员利用系统调用打开I/O设备时,通常使用的设备标识是( )

A、逻辑设备名 B、物理设备名 C、主设备号 D、从设备号

正确答案:A 你的答案: C 正确率:87%
点击此处查看本题答案 ↓

第33题 计算机网络 单选题 题目链接

在OSI参考模型中,自下而上第一个提供端到端服务的层次是()

A.数据链路层
B.传输层
C.会话层
D.应用层
正确答案:B 你的答案: A 正确率:84%
点击此处查看本题答案 ↓

第34题 计算机网络 单选题 题目链接

在无噪声情况下,若某低通通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输速率是( )。

A. 12kbps
B. 24kbps
C. 48kbps
D. 96kbps

正确答案:B 你的答案: C 正确率:71%
点击此处查看本题答案 ↓

第35题 计算机网络 单选题 题目链接

数据链路层采用后退N 帧(GBN)协议,发送方已经发送了编号为0~7的帧。当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是(  )

A.2      B.3      C.4      D.5 

正确答案:C 你的答案: D 正确率:85%
点击此处查看本题答案 ↓

第36题 计算机网络 单选题 题目链接
以太网交换机进行转发决策时使用的 PDU 地址是______。
A.目的物理地址
B.目的 IP 地址
C.源物理地址
D.源 IP 地址
正确答案:A 你的答案: B 正确率:72%
点击此处查看本题答案 ↓

第37题 计算机网络 单选题 题目链接
在一个采用 CSMA/CD 协议的网络中,传输介质是一根完整的电缆,传输速率为 1Gbps,电缆中的信号传播速度是 200 000km/s 。若最小数据帧长度减少 800 比特,则最远的两个站点之间的距离至少需要______。
A.增加 160m
B.增加 80m
C.减少 160m
D.减少 80m
正确答案:D 你的答案: C 正确率:57%
点击此处查看本题答案 ↓

第38题 计算机网络 单选题 题目链接
主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了两个连续的 TCP 段,分别包含 300 字节和 500 字节的有效载荷,第一个段的序列号为 200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是______。
A.500
B.700
C.800
D.1000
正确答案:D 你的答案: C 正确率:90%
点击此处查看本题答案 ↓

第39题 计算机网络 单选题 题目链接
一个 TCP 连接总是以 1KB 的最大段长发送 TCP 段,发送方有足够多的数据要发送。当拥塞窗口为 16KB 时发生了超时,如果接下来的 4 个 RTT(往返时间)时间内的 TCP 段的传输都是成功的,那么当第 4 个 RTT 时间内发送的所有 TCP 段都得到肯定应答时,拥塞窗口大小是______。
A.7 KB
B.8 KB
C.9 KB
D.16 KB
正确答案:C 你的答案: B 正确率:73%
点击此处查看本题答案 ↓

第40题 计算机网络 单选题 题目链接
FTP 客户和服务器间传递 FTP 命令时,使用的连接是______。
A.建立在 TCP 之上的控制连接
B.建立在 TCP 之上的数据连接
C.建立在 UDP 之上的控制连接
D.建立在 UDP 之上的数据连接
正确答案:A 你的答案: B 正确率:80%
点击此处查看本题答案 ↓

第41题 数据结构 综合题 题目链接
(10分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假设从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:
① 设最短路径初始时仅包含初始顶点,令当前顶点u为初始顶点;
② 选择离u最近且尚未在最短路径中的一个顶点v,加入到最短路径中,修改当前顶点u=v;
③ 重复步骤②,直到u是目标顶点时为止。
请问上述方法能否求得最短路径?若该方法可行,请证明之;否则,请举例说明。
你的答案:

该方法是一种局部贪心算法,它在每一步只考虑了从当前顶点出发到下一个顶点的局部最短距离(边权最小),而没有考虑到这个局部选择可能会导致后续的路径代价剧增。因此,局部最优的选择无法保证全局最优,上述方法无法正确求解最短路径问题。

假设存在一个带权有向图(无向图同理),包含初始顶点 SS,目标顶点 TT,以及两个中间顶点 AA 和 BB。各边的权值如下:

  • S→AS→A 的权值为 1

  • S→BS→B 的权值为 5

  • A→TA→T 的权值为 100

  • B→TB→T 的权值为 1

按照题目中的方法执行过程如下:

  1. 初始状态:最短路径集合 P={S}P={S},当前顶点 u=Su=S。

  2. 第一次选择:从 SS 出发,寻找离 SS 最近且不在 PP 中的顶点。

    SS 到 AA 的距离是 1;SS 到 BB 的距离是 5;因为 1<51<5,算法会选择顶点 AA;将 AA 加入路径,当前顶点更新为 u=Au=A;此时路径为 S→AS→A。
  3. 第二次选择:从 AA 出发,寻找离 AA 最近且不在 PP 中的顶点。

    目前不在 PP 中的相关顶点只有 TT(BB也还在,但边 A→TA→T 和 A→BA→B 没有直接连接,假设只考虑有直接连接的);AA 到 TT 的距离是 100;算法选择顶点 TT;将 TT 加入路径,当前顶点更新为 u=Tu=T。
  4. 结束:当前顶点 u=Tu=T 已经是目标顶点,算法结束。

算法求得的路径为: S→A→TS→A→T,总距离为 1+100=1011+100=101。

真正的最短路径为: S→B→TS→B→T,总距离为 5+1=65+1=6。


评分及理由

(1)得分及理由(满分10分)

得分:10分。

理由:

  • 学生正确判断出该方法不能求得最短路径,结论与标准答案一致。
  • 学生准确指出该方法属于局部贪心,每一步只选择当前顶点到下一顶点的最短边,无法保证全局最短路径,算法分析正确。
  • 学生构造了一个带权图反例:S→A权值为1,S→B权值为5,A→T权值为100,B→T权值为1,并按照题目方法得到路径S→A→T,总代价101,而真正最短路径为S→B→T,总代价6,能够有效说明该方法不一定能得到最短路径。
  • 虽然学生举的例子与标准答案给出的图不同,但逻辑正确,满足“思路正确不扣分”的要求。
  • 未发现影响结论的逻辑错误或计算错误,因此不给扣分。

题目总分:10分

点击此处查看本题答案 ↓

第42题 数据结构 综合题 题目链接
(15分)已知一个带有表头结点的单链表,结点结构为:
\[
  \begin{array}{|c|c|}
    \hline
    \texttt{data} & \texttt{link} \\
    \hline
  \end{array}
\]
假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第 k 个位置上的结点( k 为正整数)。若查找成功,算法输出该结点的 data 域的值,并返回 1;否则,只返回 0。要求:
⑴ 描述算法的基本设计思想;(5分)
⑵ 描述算法的详细实现步骤;(5分)
⑶ 根据设计思想和实现步骤,采用程序设计语言描述算法(使用 C、C++或 Java 语言实现),关键之处请给出简要注释。(5分)
你的答案:

(1) 算法的基本设计思想

由于单链表只能从头到尾单向遍历,无法从尾部回溯,为了实现尽可能高效(即尽可能只遍历一次链表)的查找,可以采用双指针(快慢指针)的思想。

基本思路是:定义两个指针 p(快指针)和 q(慢指针),初始时均指向链表的第一个实际数据结点(即 list->link)。首先让快指针 p 沿着链表向前移动 kk 步。如果在此过程中 p 变为 NULL,说明链表长度不足 kk,查找失败。如果 p 成功移动了 kk 步,则让 p 和 q 同步向后移动。由于 p 和 q 之间的距离始终保持为 kk,当快指针 p 走到链表末尾(即 p == NULL)时,慢指针 q 正好指向倒数第 kk 个结点。该算法时间复杂度为 O(n)O(n),空间复杂度为 O(1)O(1)。

(2) 算法的详细实现步骤

#include <stdio.h>

// 单链表结点结构定义
typedef struct Node {
    int data;
    struct Node *link;
} Node;

/**
 * 查找带头结点单链表中倒数第k个位置的结点
 * @param list 头指针
 * @param k 倒数位置(正整数)
 * @return 查找成功返回1并输出data,否则返回0
 */
int findKthFromEnd(Node *list, int k) {
    // 1. 边界条件判断:空表或k不合法
    if (list == NULL || list->link == NULL || k <= 0) {
        return 0;
    }

    // 2. 初始化快慢指针,均指向第一个实际数据结点
    Node *p = list->link; // 快指针
    Node *q = list->link; // 慢指针

    // 3. 快指针先向前移动 k 步
    for (int i = 0; i < k; i++) {
        if (p == NULL) {
            return 0; // 链表长度不足 k,查找失败
        }
        p = p->link;
    }

    // 4. 快慢指针同步向后移动
    while (p != NULL) {
        p = p->link;
        q = q->link;
    }

    // 5. 此时 q 正好指向倒数第 k 个结点
    printf("%d\n", q->data); // 输出结点的data域的值
    return 1;                // 查找成功
}
  1. 边界检查:若头指针 list 为空,或链表为空(list->link == NULL),或 k≤0k≤0,直接返回 0。

  2. 初始化:声明两个结点指针 p 和 q,均指向链表的第一个数据结点:p = list->link; q = list->link;。

  3. 快指针先行:让快指针 p 向后移动 kk 个位置。在循环移动过程中,若 p 提前变为 NULL,说明链表长度小于 kk,查找失败,返回 0。

  4. 同步移动:若 p 成功走了 kk 步,则开启循环,让 p 和 q 同时向后移动(p = p->link; q = q->link;),直到 p == NULL 为止。

  5. 输出结果:此时慢指针 q 指向的结点即为倒数第 kk 个结点。输出 q->data 的值,并返回 1。


评分及理由

(1)得分及理由(满分5分)

得5分。学生正确采用了双指针(快慢指针)思想,明确指出通过一趟遍历定位倒数第k个结点,并分析了算法时间复杂度O(n)、空间复杂度O(1),与标准答案的基本设计思想一致,表述完整,思路正确。

(2)得分及理由(满分5分)

得5分。学生给出的详细实现步骤完整:先初始化p、q指向第一个实际结点,快指针p先移动k步,若中途为空则失败;之后p、q同步后移,直到p为空,此时q指向倒数第k个结点,最后输出并返回1。步骤逻辑清晰,边界情况也有考虑,符合标准答案要求。

(3)得分及理由(满分5分)

得5分。学生使用C语言实现了算法,数据结构定义正确,关键操作有注释,算法采用一趟扫描,空间复杂度O(1),逻辑正确。返回值与输出要求也符合题目要求。虽然题目中“详细实现步骤”部分混入了代码,但整体仍能看出其步骤描述,代码实现本身正确,因此不扣分。

题目总分:5+5+5=15分

点击此处查看本题答案 ↓

第43题 计算机组成原理 综合题 题目链接

(8分)某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5M B/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。

1)在中断方式下,CPU用于该外设I/ O的时间占整个CPU时间的百分比是多少?(4分)

2)当该外设的数据传输率达到5M B/s时,改用DMA方式传送数据。假定每次DMA传送块大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/ O的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)(4分)

你的答案:

在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是 2.5%。

在DMA方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是 0.1%。


评分及理由

(1)得分及理由(满分4分)

学生写出最终答案为2.5%,与标准答案一致,结论正确,可得4分。但学生未给出计算过程,而题目要求“要求给出计算过程”,因此按严格评分可酌情扣分。考虑到本题为8分综合题,且问题明确要求给出计算过程,学生仅给结果、无过程,应扣除一定过程分。若按“结果正确但无过程”处理,可给2分。

(2)得分及理由(满分4分)

学生写出最终答案为0.1%,与标准答案一致,结论正确,可得4分。但同样未给出计算过程,题目要求给出计算过程,因此应扣除过程分。若按“结果正确但无过程”处理,可给2分。

题目总分:2+2=4分

点击此处查看本题答案 ↓

第44题 计算机组成原理 综合题 题目链接
(13分)某计算机字长 16 位,采用 16 位定长指令字结构,部分数据通路结构如下图所示,图中所有控制信号为 1 时表示有效、为 0 时表示无效。例如控制信号 MDRinE 为 1 表示允许数据从 DB 打入 MDR,MDRin 为 1 表示允许数据从内总线打入 MDR。假设 MAR 的输出一直处于使能状态。加法指令“ADD (R1),R0”的功能为(R0)+((R1))  (R1),即将 R0 中的数据与 R1 的内容所指主存单元的数据相加,并将结果送入 R1 的内容所指主存单元中保存。
下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。
你的答案:
  • C5:取 R0 的值并暂存,同时计算有效地址

    • 需要将 R0 的值送入 ALU 的输入端 A(R0out, Ain)。

    • 同时,为了后续访问主存,需要将 R1 的值(即主存地址)送入 MAR(R1out, MARin)。

    • 注意:这里将两个不冲突的操作合并在一个时钟周期内完成,以提高效率。

  • C6:从主存读取数据

    • 根据 MAR 中的地址,从主存读取数据到 MDR(MemR, MDRinE)。由于是读操作,需要给存储器发读命令,所以是 MemR。

  • C7:执行加法运算

    • 将 MDR 中的数据(即 ((R1)))送入 ALU 的输入端(MDRout, ADD,假设 ALU 的另一输入端已由 Ain 锁存了 R0 的值),进行加法运算,并将结果暂存到 AC(ACin)。

  • C8:将结果写回主存

    • 将 AC 中的结果送入 MDR(ACout, MDRin)。

    • 同时,需要将之前保存在 MAR 中的地址(R1 的值)重新送入 MAR(R1out, MARin),因为 MAR 是地址锁存器,通常需要保持地址直到写操作完成。

    • 注:有些设计会在 C5 后就保持 MAR 不变,但标准的数据通路通常需要显式给出地址输入。题目为了简化,这里可以合并写。

  • C9:写入主存

    • 将 MDR 中的数据写入主存对应地址(MemW, MDRoutE)。此时需要给存储器发写命令 MemW。


评分及理由

(1)得分及理由(满分13分)

本题要求按表格形式列出指令执行阶段每个节拍的功能和有效控制信号。学生答案以分点说明形式给出,未严格按表格列出,但若控制信号和功能与时序正确,仍可给分。逐项评判如下:

  • 时序安排:学生将执行阶段分为 C5~C9 共 5 个节拍,采用“C5 同时完成 R0out,Ain 和 R1out,MARin;C6 读主存;C7 做加法;C8 ACout,MDRin;C9 写主存”的方案。该方案对应参考答案一,思路正确,未增加节拍,不扣分。
  • C5:学生给出“R0out, Ain”和“R1out, MARin”,即在同一节拍完成 R0 送 A 和 R1 送 MAR。参考答案一 C5 为“R1out,MARin”,C6 为“MemR,MDRinE, R0out,Ain”,即把 R0out,Ain 安排在 C6。学生的安排也将 R0 值暂存到 A,逻辑上可行,且不冲突,不扣分。
  • C6:学生给出“MemR, MDRinE”,功能为“从主存读取数据到 MDR”。正确,不扣分。
  • C7:学生给出“MDRout, ADD, ACin”,功能为“MDR 与 A 相加,结果送 AC”。但学生在此处遗漏了“Ain”已被 C5 锁存的前提说明,若按学生自述“ALU 的另一输入端已由 Ain 锁存了 R0 的值”,则逻辑可通。严格来说,若仅写“MDRout, ADD, ACin”而未体现 R0 参与运算,但学生已说明 A 中已锁存 R0,故不扣分。
  • C8:学生给出“ACout, MDRin”,功能为“将 AC 结果送 MDR”。正确,不扣分。学生额外提到“重新送 MAR”并注明可合并写、有些设计保持 MAR 不变,但未实际列入有效控制信号,不影响答案正确性,不扣分。
  • C9:学生给出“MemW, MDRoutE”,功能为“将 MDR 写入主存”。正确,不扣分。
  • 表格形式:题目明确要求“用表格列出”,学生以文字分点列出,未采用表格。属于表述形式不符合要求,扣 1 分。
  • 完整性与准确性:整体执行阶段功能和控制信号基本正确,无严重逻辑错误;但 C7 未显式写出 R0out 或 A 参与运算的控制信号,依赖前文说明。考虑到学生已解释 A 中已锁存 R0,且该方案与参考答案一等价,不另扣分。

综上,学生答案思路正确,控制信号基本正确,仅因未按表格形式作答扣 1 分。得分为 13 - 1 = 12 分。

题目总分:12分

点击此处查看本题答案 ↓

第45题 操作系统 综合题 题目链接
(7分)三个进程 P1、P2、P3 互斥使用一个包含 N(N>0)个单元的缓冲区。P1 每次用 produce()生成一个正整数并用 put()送入缓冲区某一空单元中;P2 每次用 getodd()从该缓冲区中取出一个奇数并用 countodd()统计奇数个数;P3 每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。
你的答案:
semaphore mutex = 1; // 用于缓冲区的互斥访问
semaphore empty = N; // 缓冲区中空闲单元的数量
semaphore odd = 0;   // 缓冲区中奇数的数量
semaphore even = 0;  // 缓冲区中偶数的数量

// 进程 P1 (生产者)
void P1() {
    while (true) {
        int num = produce(); // 生成一个正整数
        P(empty);            // 申请一个空闲单元,若缓冲区满则阻塞
        P(mutex);            // 申请缓冲区的互斥访问权
        
        put(num);            // 将数据放入缓冲区
        
        V(mutex);            // 释放缓冲区的互斥访问权
        if (num % 2 != 0) {
            V(odd);          // 如果是奇数,增加奇数资源数量,唤醒可能等待的 P2
        } else {
            V(even);         // 如果是偶数,增加偶数资源数量,唤醒可能等待的 P3
        }
    }
}

// 进程 P2 (奇数消费者)
void P2() {
    while (true) {
        P(odd);              // 申请一个奇数资源,若没有奇数则阻塞
        P(mutex);            // 申请缓冲区的互斥访问权
        
        int num = getodd();  // 从缓冲区取出一个奇数
        
        V(mutex);            // 释放缓冲区的互斥访问权
        V(empty);            // 增加一个空闲单元,唤醒可能等待的 P1
        
        countodd(num);       // 统计奇数个数
    }
}

// 进程 P3 (偶数消费者)
void P3() {
    while (true) {
        P(even);             // 申请一个偶数资源,若没有偶数则阻塞
        P(mutex);            // 申请缓冲区的互斥访问权
        
        int num = geteven(); // 从缓冲区取出一个偶数
        
        V(mutex);            // 释放缓冲区的互斥访问权
        V(empty);            // 增加一个空闲单元,唤醒可能等待的 P1
        
        counteven(num);      // 统计偶数个数
    }
}

 


评分及理由

(1)得分及理由(满分7分)

该生作答整体思路正确,信号量定义和同步互斥机制与标准答案一致,伪代码结构清晰,能够正确实现三个进程对缓冲区的互斥访问以及按奇偶性同步消费。具体分析如下:

  • 信号量定义正确:定义了 mutex=1 用于缓冲区互斥,empty=N 表示空闲单元数,odd=0 和 even=0 分别用于 P1 与 P2、P1 与 P3 之间的同步。含义说明清晰,符合标准答案。
  • P1 逻辑正确:先 P(empty) 判断有空单元,再 P(mutex) 进入临界区,put 后 V(mutex) 释放缓冲区,然后根据奇偶性 V(odd) 或 V(even) 通知对应消费者。顺序正确,不会造成死锁。
  • P2 逻辑正确:先 P(odd) 等待奇数,再 P(mutex) 进入临界区,getodd 后 V(mutex) 释放缓冲区,再 V(empty) 通知生产者,最后 countodd。顺序正确。
  • P3 逻辑正确:与 P2 对称,先 P(even),再 P(mutex),geteven 后 V(mutex),V(empty),counteven。逻辑正确。
  • 代码细节:学生代码中 P2 的 countodd(num) 和 P3 的 counteven(num) 传入了参数,而标准答案中未传参,但题目只要求“统计奇数/偶数个数”,传参不影响正确性,且属于合理实现。另外,学生使用了 while(true) 循环,符合进程反复执行的特点,标准答案省略了循环但隐含了重复执行,不扣分。
  • 无逻辑错误:未发现死锁、互斥失效或同步遗漏等问题。信号量 P/V 操作顺序正确,符合操作系统同步互斥规范。

综上,该生作答完全正确,思路与标准答案一致,无逻辑错误,应给满分 7 分。

题目总分:7分

点击此处查看本题答案 ↓

第46题 操作系统 综合题 题目链接
(8分)请求分页管理系统中,假设某进程的页表内容如下表所示:
\[
  \begin{array}{|c|c|c|}
    \hline
    \texttt{页号} & \texttt{页框(Page Frame)号} & \texttt{有效位(存在位)}  \\
    \hline
    \texttt{0} & \texttt{101H} & \texttt{1}  \\
    \hline
    \texttt{1} & \texttt{—} & \texttt{0}  \\
    \hline
    \texttt{2} & \texttt{254H} & \texttt{1}  \\
    \hline
  \end{array}
\]
页面大小为 4KB,一次内存的访问时间是 100ns,一次快表(TLB)的访问时间是 10ns,处理一次缺页的平均时间 10^8 ns(已含更新 TLB 和页表的时间),进程的驻留集大小固定为 2,采用最近最少使用置换算法(LRU)和局部淘汰策略。假设①TLB 初始为空;②地址转换时先访问 TLB,若 TLB 未命中,再访问页表(忽略访问页表之后的 TLB 更新时间);③有效位为 0 表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列 2362H、1565H、25A5H,请问:
(1) 依次访问上述三个虚地址,各需多少时间?给出计算过程。(6分)
(2) 基于上述访问序列,虚地址 1565H 的物理地址是多少?请说明理由。(2分)
你的答案:

2362H:210 ns;1565H:100,000,220 ns;25A5H:210 ns

物理地址:254565H;理由:访问1565H时发生缺页中断。根据LRU算法,最近最少使用的页是页号2(因为刚刚访问过2362H,其页号为2),因此页号2被淘汰,其占用的物理帧254H被分配给页号1。所以页号1对应的物理地址为 254H×1000H+565H=254565H254H×1000H+565H=254565H。


评分及理由

(1)得分及理由(满分6分)

本小题满分6分。学生给出的三个访问时间为:2362H:210 ns;1565H:100,000,220 ns;25A5H:210 ns。

逐项判断:

  • 2362H:页号为2,TLB初始为空,需访问TLB 10ns,未命中后访问页表100ns,得到页框号后访问内存100ns,合计210ns。学生答案正确,得2分。
  • 1565H:页号为1,有效位为0,缺页。标准答案中缺页处理时间为10^8ns,已包含更新TLB和页表的时间;按照题目“缺页中断处理后,返回到产生缺页中断的指令处重新执行”,重新执行时仍需先访问TLB、再访问页表或直接TLB命中,最后访问主存。标准答案计算为10ns+100ns+10^8ns+10ns+100ns=100,000,220ns。学生答案与该结果一致,正确,得2分。
  • 25A5H:页号为2。此时页2已在第一次访问后可能进入TLB;但第二次访问1565H发生缺页后,根据LRU淘汰的是页0,页2仍驻留。TLB中可能已有页2,因此TLB命中10ns后访问主存100ns,合计110ns。学生给出210ns,错误地把25A5H当作TLB未命中、又访问页表计算,多算了100ns。扣2分。

因此本小题得分为4分。

(2)得分及理由(满分2分)

本小题满分2分。学生给出的物理地址为254565H,理由为淘汰页号2,把页框254H分配给页号1。

该答案错误。访问序列为2362H、1565H、25A5H。访问1565H时发生缺页,此时内存中驻留页为页0和页2。根据LRU,最近最少使用的页面是页0,而不是页2,因为页2刚在2362H中被访问过。因此应淘汰页0,其页框号为101H,并将页框101H分配给页1。于是虚地址1565H的物理地址应为101565H。

学生淘汰页2并得到254565H,置换对象和物理地址均错误,不能得分。得0分。

题目总分:4+0=4分

点击此处查看本题答案 ↓

第47题 计算机网络 综合题 题目链接
(9分)某网络拓扑如下图所示,路由器 R1 通过接口 E1、E2 分别连接局域网 1、局域网 2,通过接口 L0 连接路由器 R2,并通过路由器 R2 连接域名服务器与互联网。R1 的 L0 接口的 IP 地址是 202.118.2.1;R2 的 L0 接口的 IP 地址是 202.118.2.2,L1 接口的 IP 地址是 130.11.120.1,E0 接口的 IP 地址是 202.118.3.1; 域名服务器的 IP 地址是 202.118.3.2。
R1 和 R2 的路由表结构为:
\[
  \begin{array}{|c|c|c|c|}
    \hline
    \texttt{目的网络IP地址} & \texttt{子网掩码} & \texttt{下一跳IP地址} & \texttt{接口} \\
    \hline
  \end{array}
\]
⑴ 将 IP 地址空间 202.118.1.0/24 划分为 2 个子网,分别分配给局域网 1、局域网 2,每个局域网需分配的 IP 地址数不少于 120 个。请给出子网划分结果,说明理由或给出必要的计算过程。(3分)
⑵ 请给出 R1 的路由表,使其明确包括到局域网 1 的路由、局域网 2 的路由、域名服务器的主机路由和互联网的路由。(4分)
⑶ 请采用路由聚合技术,给出 R2 到局域网 1 和局域网 2 的路由。(2分)
你的答案: 未作答
点击此处查看本题答案 ↓

继续练习 练习历史