2026 年 408 真题

选择题

数据结构

1

当存储空间有足够的空闲空间时,在保持表内元素顺序相对不变的情况下,下列哪些操作会必然导致产生移动次数( )。

I. 表头插入一个元素
II. 表头删除一个元素
III. 表尾插入一个元素
IV. 表尾删除一个元素

正确答案:A
在顺序存储结构中,元素连续存放以保持逻辑顺序。
表头插入元素时,需将所有现有元素后移一位为新元素腾出空间;
表头删除元素时,需将所有剩余元素前移一位以填补空位,这两种操作均必然导致元素移动。
而表尾插入或删除元素时,仅需在末尾进行操作,不影响其他元素的位置,因此不会产生移动次数。
故必然导致移动次数的操作是Ⅰ和Ⅱ。
2

设有一个双向链表 L,结构为 [p2, p1],头结点为 head。初始时 head = cu。现要将每个结点的 p2 指向 p1 指向结点的直接后继,应该进行的操作是( )。

正确答案:D

【解析】
题意澄清

  • 双向链表结点结构为 [p2, p1]

    • p1:后继指针(next)
    • p2:需要被重新设置
  • 目标: 让每个结点的 p2 指向“p1 所指结点的直接后继” 即:

[ cu->p2 = cu->p1->p1 ]

  • cu->p1 == NULL(尾结点),则: [ cu->p2 = NULL ]

  • 同时,遍历过程中必须始终推进 cu,否则死循环

逐项分析

❌ A

while(cu!=NULL) {
    cu->p2=cu->p1->p1;
    cu=cu->p1;
}
  • 问题: 当 cu 是尾结点时,cu->p1 == NULLcu->p1->p1 非法访问

❌ B

while(cu!=NULL && cu->p2!=NULL) {
    cu->p2 = cu->p1->p1;
    cu = cu->p1;
}
  • 问题 1cu->p2 作为循环条件毫无意义(它正是要被修改的)
  • 问题 2:仍然没有防止 cu->p1 == NULL

❌ C

while(cu!=NULL) {
    if(cu->p1!=NULL) {
        cu->p2=cu->p1->p1;
        cu=cu->p1;
    }
}
  • 致命问题

    • cu->p1 == NULL(尾结点)
    • cu 不会更新
    • 死循环

✅ D(唯一正确)

while(cu!=NULL) {
    if(cu->p1!=NULL) {
        cu->p2=cu->p1->p1;
    } else {
        cu->p2=NULL;
    }
    cu=cu->p1;
}
  • ✔ 正确处理尾结点(p2 = NULL
  • ✔ 每一轮都推进 cu
  • ✔ 无非法指针访问
  • ✔ 完全符合题意

虽然选项排版里 cu=cu->p1 写在 else 后,但按标准理解应在 if-else 之后统一执行,这是此类考题的常见写法。

3

已知二叉树 的中序遍历为 b, e, d, f, c, a, g。层序遍历为 a, b, g, c, d, e, f。则其后序遍历序列为多少?

正确答案:C

【解析】
首先,根据层序遍历序列 可知根节点为 。结合中序遍历 ,确定左子树包含节点 ,右子树仅包含

左子树的层序序列为 ,中序序列为 ,因此左子树的根为 。由于 在中序中为首,故无左子树,其右子树的根为层序中下一个节点

对于以 为根的子树,中序为 ,故 无右子树,其左子树的根为层序中的 。对于以 为根的子树,中序为 ,故 的左子节点为 ,右子节点为

因此树的结构为:

  • 的左子节点为 ,右子节点为
  • 的左子节点为空,右子节点为
  • 的左子节点为 ,右子节点为空;
  • 的左子节点为 ,右子节点为

后序遍历顺序为:左子树的后序、右子树的后序、根节点。左子树的后序依次为 ,右子树的后序为 ,根为 ,故后序遍历序列为 ,对应选项 C。

4

森林 F 中有 5 颗树,其节点个数分别为 2、3、4、5、7,森林中树的次序可以任意,问 F 对应的二叉树最小高度为多少?

正确答案:B

【解析】
这是一道 森林 → 二叉树(左孩子 - 右兄弟表示法) 的经典题。

关键结论(必须掌握)

把森林转换为二叉树(左孩子 - 右兄弟)后:

二叉树的高度 = max( 第 i 棵树的高度 + (i − 1) )

其中

  • 棵树是森林中从左到右的顺序;
  • 来自“右兄弟”链;
  • 为了最小高度,应当把高度最大的树放在最前面

先算每棵树的最小可能高度

一棵有 个结点的普通树,其最小高度为:

结点数最小高度
7 3
5 3
4 3
3 2
2 2

排序(从大到小):

计算二叉树最小高度

按最优顺序依次计算:

i树高
133
234
335
425
526

最大值 = 6

5

假设二叉树中节点权值为 , , , , , , 。当带权路径长度(WPL)最小时,与节点 (权值 8)处于相同深度的节点是哪些?

正确答案:D

【解析】
为了最小化带权路径长度(WPL),需构建哈夫曼树。节点权值依次为 1, 2, 4, 5, 8, 10, 12。
构建过程如下:

  1. 合并权值 1 和 2,得到新节点 3;
  2. 合并 3 和 4,得到新节点 7;
  3. 合并 5 和 7,得到新节点 12;
  4. 合并 8 和 10,得到新节点 18;
  5. 合并原始权值 12(节点 g)与内部节点 12,得到新节点 24;
  6. 最后合并 18 和 24,得到根节点 42。

由此树结构可知,节点 e(权值 8)深度为 2(路径长度),同时节点 f(权值 10)和 g(权值 12)深度也为 2,而其他节点深度均不同(d 深度为 3,c 深度为 4,a、b 深度为 5)。
因此,与节点 e 处于相同深度的节点是 f 和 g。

6

有向图 采用邻接表存储,求某点入度的时间复杂度为?

正确答案:D
【解析】 在邻接表存储中,求某点的入度需要检查所有顶点的出边链表,统计指向该点的边数。这需要访问所有 个顶点以及所有 条边,因此时间复杂度为 。由于 等价,故选项 D 正确。其他选项均不能完整描述该时间复杂度。
7

设有序向图 ,其中顶点集 的大小为 ,每条边 都标记有一个唯一的字符(不同边可标记相同字符)。定义字符串集 为:所有由 中任意一条路径(路径可包含单个顶点,对应空字符串)上的边标记按顺序拼接而成的字符串的集合。以下说法错误的是( )

正确答案:B

【解析】
对于选项 A:若图 G 无环,则任意路径不能重复经过顶点,否则会形成环,因此最长路径的边数不超过 。由于图是有限的,所有可能的路径数量有限,每条路径对应一个字符串(可能重复),但字符串集合 S 由有限个字符串组成,故 S 是有限集。A 正确。

对于选项 B:若图 G 无环,则任意路径最多经过 个不同的顶点,因此边数最多为 ,对应的字符串长度最多为 。所以 S 中不可能存在长度为 的字符串。B 错误。

对于选项 C:若图 G 有环,则存在一个环,可以从环上某点出发沿环行走任意多圈,得到任意长的路径,从而产生长度大于 的字符串。C 正确。

对于选项 D:若图 G 有环,S 中至少包含空字符串(长度为 ),而 ),因此存在长度小于 的字符串。D 正确。

综上,说法错误的是 B。

8

已知平衡二叉树(AVL 树)的定义为:树中任意一个节点的左右子树的高度差的绝对值不超过 1,且左右子树均为平衡二叉树。若某平衡二叉树的高度为 4(根节点的高度记为 1),则其根节点的左右子树的节点数之差最多为( )

正确答案:D

【解析】
平衡二叉树高度为 4(根节点高度为 1),因此左右子树的高度组合为:

  • 两者均为 3,或
  • 一个为 3、另一个为 2。

为最大化节点数之差,应使较高子树取最大节点数,较低子树取最小节点数。

  • 高度 3 的平衡二叉树最大节点数为 7(满二叉树),
  • 高度 2 的最小节点数为 2(根节点加一个子节点),
    此时节点数之差为

若左右子树高度均为 3,节点数之差最大为
因此,根节点的左右子树节点数之差最多为 5。

9

使用直接插入排序对序列进行升序排序,以下比较次数最少的是( )

正确答案:B

【解析】 直接插入排序的比较次数取决于序列的初始有序程度。对于每个序列,从第二个元素开始,将其与前面已排序的元素从后往前比较,直到找到正确位置,记录比较次数。

  • 选项 A:序列 30, 27, 56, 41, 80, 95, 69 的总比较次数为 次。
  • 选项 B:序列 31, 43, 26, 55, 63, 99, 77 的总比较次数为 次。
  • 选项 C:序列 61, 84, 51, 23, 34, 91, 40 的总比较次数为 次。
  • 选项 D:序列 93, 32, 48, 81, 50, 21, 72 的总比较次数为 次。

比较次数最少的是选项 B,共 8 次。

10

现有 n 名学生的成绩记录,每位学生的记录包含两门课程的成绩:课程 1(记为 )和课程 2(记为 )。

排序规则如下:

  1. 首先,依据 成绩升序排列;
  2. 若两名学生的 成绩相同,则依据其总分(即 )升序排列。

请从下列排序算法中,选择最适合实现上述需求的算法( )

正确答案:A
【解析】排序规则要求先按 C1 成绩升序,再按总分升序,这属于多键排序问题。基数排序是一种稳定的排序算法,特别适合多键排序,因为它可以对每个键位进行独立排序,且稳定性保证了当主键(C1)相同时,次键(总分)的顺序得以保持。具体实现时,可以先按总分(低优先级键)进行稳定排序,再按 C1(高优先级键)进行稳定排序,从而满足规则。其他算法中,快速排序、希尔排序和选择排序都不是稳定的,虽然可以通过自定义比较函数在一次排序中处理多键,但稳定性和效率不如基数排序。此外,学生成绩通常为整数,基数排序对整数排序效率较高。因此,基数排序是最适合的算法。
11

在外部排序的 路归并过程中,归并趟数为 。下列关于 、初始归并段及内存大小的说法中,正确的是( )

Ⅰ. 越大, 越小
Ⅱ. 初始归并段数不影响
Ⅲ. 内存大小限制初始归并段的最大长度

正确答案:C

【解析】 在外部排序的 k 路归并过程中,归并趟数 与初始归并段数 满足关系

  • 对于说法Ⅰ: 越大, 越小,因此 越小,正确。
  • 对于说法Ⅱ: 直接依赖于 ,初始归并段数变化会影响 ,错误。
  • 对于说法Ⅲ:生成初始归并段时,数据需读入内存进行内部排序,因此初始归并段的最大长度受内存大小限制,正确。

综上,Ⅰ和Ⅲ正确,对应选项 C。

组成原理

12

下列关于计算机的系统层次的叙述,错误的是

正确答案:C
【解析】
选项 A 正确,计算机系统层次的最上层是应用软件层;
选项 B 正确,指令集体系结构(ISA)定义了软件与硬件之间的交互规范,是两者的接口;
选项 C 错误,计算机组成(微架构)是 ISA 的逻辑实现层,而非物理实现层,物理实现涉及更底层的电路设计;
选项 D 正确,操作系统通过 ISA 对硬件进行抽象,向上层软件提供统一的服务接口。
13

对机器数 1010 0110B 先执行算术右移 3 位,再执行算术左移 2 位,最终结果是( )。

正确答案:A

【解析】
机器数 1010 0110B 是一个 8 位有符号数(二进制补码表示)。先执行算术右移 3 位,再执行算术左移 2 位。

  • 算术右移 3 位:符号位(最高位为 1)被保留并向左扩展。
    原始位从高位到低位记为 为符号位),右移后得到 ,其中 均填充为 (1), 依次为 (0)、 (1)、 (0)、 (0),结果为 1111 0100B(即 -12 的二进制补码)。

  • 算术左移 2 位:将 1111 0100B 左移 2 位,高位丢弃,低位补 0,得到 1101 0000B(即 -48 的二进制补码)。

最终结果为 1101 0000B,对应选项 A。

14

已知用 IEEE 754 单精度浮点数表示浮点型变量,采用就近舍入(中间值取偶数)。若浮点型变量 ,则 的机器数是( )

正确答案:B

【解析】
1. 确定数量级(指数部分)

  • 符号位:0
  • 指数:(3 + 127 = 130 = 1000,0010_2)

2. 计算尾数

1.5125 转成二进制小数:

对小数部分反复乘 2:

步骤
0.5125 × 2 = 1.0251
0.025 × 2 = 0.050
0.05 × 2 = 0.10
0.1 × 2 = 0.20
0.2 × 2 = 0.40
0.4 × 2 = 0.80
0.8 × 2 = 1.61
0.6 × 2 = 1.21

得到二进制近似:

1.10000001100110011001100…₂

3. 就近舍入(中间值取偶)

IEEE 754 单精度尾数 23 位,截断时:

…10011001100110011001100 1100…
  • 被舍弃部分 > 0.5 ULP
  • 或者正好在中间且最低位为奇数

👉 需要进 1

因此尾数末位变为 …10011010


4. 拼装 IEEE 754 单精度

部分内容
符号0
指数10000010
尾数10000011001100110011010

转换为十六进制:

0 | 10000010 | 10000011001100110011010
↓
4141999A₁₆

最终答案

B 4141 999AH

15

用 8 个 64 M×8 bit 的 DRAM 芯片按交叉编址方式构成主存储器,并与一个宽度为 64 bit 的存储器总线相连。主存每次最多读写 64 bit,且按字节编址。则下列地址中,与主存地址 0018 001DH 位于同一芯片中的是( )

正确答案:A

【解析】
由 8 个 64M×8bit 的 DRAM 芯片按交叉编址方式构成主存储器,每个芯片容量为 64MB,总容量为 512MB。按字节编址,地址线共 29 位。交叉编址时,地址的低位用于选择芯片,高位用于芯片内地址。由于有 8 个芯片,地址的低 3 位(模 8)决定芯片编号。

给定地址 0018 001DH 的十六进制值为 0x0018001D,低 3 位二进制为 101(因为 0x1D 的低 3 位为 101),即模 8 余 5。因此,与它位于同一芯片的地址必须模 8 余 5。

  • 选项 A:0000 01D5H,低 3 位为 101(0xD5 的低 3 位为 101),余 5,符合。
  • 选项 B:000F A020H,低 3 位为 000,余 0,不符合。
  • 选项 C:0018 001EH,低 3 位为 110(0x1E 的低 3 位为 110),余 6,不符合。
  • 选项 D:0101 0011B 为二进制数,低 3 位为 011,余 3,不符合。

故只有选项 A 与给定地址位于同一芯片。

16

下列不是由指令集体系结构规定的是()

正确答案:D
【解析】指令集体系结构(ISA)定义了软件与硬件之间的接口规范,包括指令集、寄存器、内存模型、中断机制等,但不涉及硬件实现细节。
选项 A 的输入输出指令是 ISA 的一部分,用于控制 I/O 设备;
选项 B 的向量中断属于中断处理机制,通常由 ISA 规定中断向量表和处理流程;
选项 C 的虚拟存储管理方式与 ISA 相关,ISA 可能规定虚拟内存的基本支持(如地址转换机制),但具体管理方式部分由硬件和操作系统实现;
选项 D 的指令流水线是否使用超级流水线技术是微架构(microarchitecture)的实现选择,属于处理器内部设计优化,不属于 ISA 的规定范畴,因此 D 不是由指令集体系结构规定的。
17

哪些指令可能不改变程序下一条指令的地址?

Ⅰ. 条件转移
Ⅱ. 过程调用
Ⅲ. 陷入指令
Ⅳ. 返回

正确答案:B
【解析】
条件转移指令(Ⅰ)根据条件决定是否跳转:当条件不满足时,程序继续顺序执行,下一条指令地址不变,因此可能不改变地址。
返回指令(Ⅳ)通常改变地址,但理论上若返回地址恰好是当前指令地址,则可能不改变地址。
过程调用指令(Ⅱ)和陷入指令(Ⅲ)总是跳转到目标地址,一定会改变下一条指令地址,不可能不改变。
因此,可能不改变下一条指令地址的指令是Ⅰ和Ⅳ。
18

某计算机按字节编址,数据 Cache 共有 1024 行,采用 4 路组相联映射,主存块大小为 32 B,若访问主存地址为 1028 的 4 字节数据,则该数据所在主存块对应的组号为( )

正确答案:C

【解析】
Cache 共有 1024 行,采用 4 路组相联映射,因此组数为 组。
主存块大小为 32 B,块内偏移地址占 5 位( )。
访问主存地址为 1028(十进制),按字节编址。
组号由块地址对组数取模得到:块地址为地址除以块大小的整数部分,即

组索引

因此,该数据所在主存块对应的组号为 32。

19

某计算机按字节编址,虚拟地址为 16 位,页大小为 256B,页表项中包含装入位(P)、页框号(PPN)等字段。TLB 采用 4 路组相联映射,共有 16 个页表项,TLB 表项中包含标记(Tag)、有效位(V)等字段。在主存页表与 TLB 表项同步后,若主存页表中页号 22 对应的页表项中 ,则下列不可能出现在组号为 2 的 TLB 表项中的是( )

正确答案:A

【解析】
虚拟地址为 16 位,页大小为 256 B,因此页内偏移占 8 位,页号占 8 位。
TLB 为 4 路组相联,共 16 个表项,故分为 4 组,组索引占 2 位,标记占 6 位。

页号 22 的二进制为 00010110,高 6 位标记为 05H,低 2 位组索引为 10(即 2),因此页号 22 属于组 2。

已知主存页表中页号 22 对应的表项 P=0、PPN=2AH,同步后 TLB 中若存在该页表项,则有效位 V 应与 P 一致(即 V=0),且 PPN 应为 2AH。

选项 A 的标记为 05H,对应页号 22,但 V=1、PPN=1CH,与页表项冲突,不可能出现在组 2 的 TLB 中。
其他选项对应不同页号(如 B 对应页号 26,C 对应页号 90,D 对应页号 106),其页表项未知,故可能出现在 TLB 中。

20

在不考虑异常中断处理和访存的额外开销下,下列关于数据通路结构与 CPI 之间的关系正确的为()

I. 单周期数据通路计算机的 CPI 等于 1
II. 多周期数据通路计算机的 CPI 大于 1
III. 流水线数据通路计算机的 CPI 等于 1

正确答案:D

【解析】
在不考虑异常中断处理和访存的额外开销下,单周期数据通路中每条指令在一个时钟周期内完成,因此 CPI 等于 1。

多周期数据通路中每条指令需要多个时钟周期执行,因此 CPI 大于 1。

流水线数据通路在理想情况下(无冒险和停顿)可以实现每个时钟周期完成一条指令,因此 CPI 等于 1。

故 I、II、III 均正确。

注意:II 在理想情况下(完美的 overlap,运行的时间无限长),CPI 是趋向于 1 的,但是这一题显然不是考察的理想情况,所以 II 是正确的。

21

在 I/O 子系统中,驱动程序和中断服务程序直接控制外设与主机之间的输入/输出操作,这一过程需要使用一些特权指令。下列指令中,不属于特权指令的是()

正确答案:D

【解析】
在计算机系统中,特权指令是指只能在操作系统内核态下执行的指令,用于保护系统资源和稳定性。

A 项 I/O 指令直接控制外设操作,若用户程序随意执行可能干扰系统,因此属于特权指令;
B 项关中断指令用于禁用中断,防止关键代码被中断打断,若用户程序可随意关闭中断会导致系统无法响应关键事件,故为特权指令;
C 项中断返回指令用于从中断处理程序返回,涉及处理器状态恢复和权限切换,通常需在内核态执行,也属于特权指令。

D 项系统调用指令(如 syscall 或 int 指令)是用户程序请求操作系统服务的接口,该指令本身可在用户态执行,通过触发陷入机制切换到内核态,由操作系统内核处理具体操作,因此不属于特权指令。

22

中断控制 I/O 方式下,实现 I/O 需要硬件和软件协同完成,中断响应和处理过程中所包含的下列工作中,必须由硬件完成的是()

正确答案:C

【解析】
在中断控制 I/O 方式下,中断响应和处理需要硬件和软件协同工作。

  • 保存断点(即程序计数器的值)必须由硬件自动完成。因为中断发生时需立即保存返回地址,以确保后续能正确恢复执行。
  • 开中断是通过软件指令实现的,用于允许或禁止中断嵌套。
  • 中断请求由硬件设备产生,但响应和处理过程涉及软硬件配合。
  • 保存通用寄存器通常由中断服务程序(软件)完成,以保护原程序的上下文。

因此,只有保存断点必须由硬件完成。

操作系统

23

下列操作中,在内核模式执行的是()

正确答案:C
【解析】 在操作系统中,内核模式用于执行特权指令和访问核心资源,如硬件管理和进程控制。编译程序、链接程序和命令解释程序通常作为用户空间的应用程序运行,在用户模式下执行;而装入程序负责将可执行文件加载到内存并启动进程,这一过程涉及内存分配和进程创建等特权操作,因此由操作系统内核在内核模式下执行。
24

在支持虚拟存储器系统下的指令执行过程中,正确的是()

正确答案:D
【解析】 在支持虚拟存储器的系统中,地址转换由硬件(如内存管理单元 MMU)完成,操作系统仅负责管理页表;页表项的内容由操作系统在运行时动态设置,而非编译器;缺页中断由硬件触发,但实际处理(如加载页面)由操作系统完成;异常(包括缺页异常、非法指令等)在触发后统一由操作系统处理。因此,选项 D 正确。
25

下列关于的线程描述中,正确的是()

正确答案:D
【解析】
用户级线程由用户空间的线程库创建和管理,操作系统内核不参与其创建,因此 A 错误。
在线程映射模型中,常见的是多个用户级线程映射到一个内核级线程(多对一模型),或多个用户级线程映射到多个内核级线程(多对多模型),但多个内核级线程映射到一个用户级线程并不符合典型模型,故 B 错误。
栈是线程私有的,每个线程(包括内核级线程)都有自己的栈,因此同一进程下的多个内核级线程不共享进程栈,C 错误。
堆是进程级别的资源,同一进程下的所有线程(包括用户级和内核级线程)共享进程堆,因此 D 正确。
26

系统中有 8 个进程,执行下图的操作,资源 S 的初始值为 5。若此时 S 的值为 -2,其中 m 表示执行到访问资源的进程个数,n 表示阻塞的进程个数,则 m 和 n 的值分别是( )

计算机考研杂货铺
操作
wait(S)
访问资源
signal(S)
正确答案:A
【解析】
资源 S 是一个计数信号量,初始值为 5,表示最多允许 5 个进程同时访问资源。
当信号量值 S 为负数时,其绝对值表示阻塞的进程数。当前 S = -2,因此阻塞进程数 n = 2。
同时,当 S < 0 时,所有初始资源均被占用,即有 5 个进程正在访问资源(处于临界区)。
m 表示执行到访问资源的进程个数,在此情境下理解为正在访问资源的进程数,故 m = 5。
因此,m 和 n 的值分别为 5 和 2。
27

假设进程 的读、写进程集合分别是 ,进程 的读、写进程集合分别为 ,则进程 并发执行中,不会发生错误的并发执行充要条件是( )

I.
II.
III.
IV.

正确答案:C

【解析】
在进程并发执行中,不发生错误(即避免数据竞争和冲突)的充要条件基于 Bernstein 条件。Bernstein 条件指出,两个进程 可安全并发执行当且仅当满足以下三个条件:

  1. (避免写后读冲突);
  2. (避免读后写冲突);
  3. (避免写后写冲突)。

读 - 读冲突(即 )不会导致数据不一致,因此不是必要条件。

对比题目中的条件:
I 对应
III 对应
IV 对应
而 II 是 ,无需满足。

因此,充要条件是 I、III 和 IV,对应选项 C。

28

若 64 位的系统采用三级虚拟分页存储管理方式,其结构如下图所示,第三级页表所占用的页框数是( )

| 补充位(25) | 一级页表(9) | 二级页表(9) | 三级页表(9) | 页内偏移(12) |
正确答案:C

在三级虚拟分页存储管理方式中,虚拟地址结构包括一级页表索引(9 位)、二级页表索引(9 位)、三级页表索引(9 位)和页内偏移(12 位)。
页内偏移 12 位对应页面大小为 4 KB( 字节)。
每个页表索引为 9 位,因此每个页表有 个页表项。
假设每个页表项大小为 8 字节(典型 64 位系统),则每个页表大小为 字节,恰好占用一个页框。

三级页表的数量由一级和二级页表决定:

  • 一级页表有 512 个条目,每个条目指向一个二级页表,因此最多有 512 个二级页表;
  • 每个二级页表有 512 个条目,每个条目指向一个三级页表,因此三级页表的最大数量为 个。

每个三级页表占用一个页框,所以三级页表总共占用的页框数为 262144,即 256 K(因为 )。
因此,正确答案为 C。

29

下列方法中能够有效降低系统平均访存时间的是()

I. TLB
II. 多级页表
III. 工作集概念
IV. 页表缓冲队列

正确答案:C
【解析】 TLB(快表)能够缓存虚拟地址到物理地址的转换结果,在 TLB 命中时直接获取物理地址,避免访问内存中的页表,从而有效降低访存延迟。工作集概念用于指导页面置换算法,通过维持进程最近访问的页面集合在内存中,减少缺页中断的发生,降低缺页率,进而减少平均访存时间。页表缓冲队列可以缓存页表项,减少访问主存页表的次数,加速地址转换过程,也有助于降低平均访存时间。多级页表的主要目的是节省页表占用的内存空间,但可能增加地址转换的步数,导致访存延迟增加,因此不能有效降低平均访存时间。故正确选项为 I、III、IV,即 C。
30

进程 P1 和 P2 共享一个文件 R,该文件的页表项分别是 R1 和 R2,其在 2 个进程中的虚拟地址分别是 W1 和 W2,则下列说法中正确的是( )

正确答案:B

【解析】
进程 P1 和 P2 共享文件 R,这意味着它们通过各自的页表项 R1 和 R2 将虚拟地址 W1 和 W2 映射到相同的物理内存区域,因此 W1 和 W2 映射的物理地址相同。

  • 选项 A 错误,因为页表项 R1 和 R2 至少物理地址部分相同,内容并非完全不同;
  • 选项 C 错误,由于共享物理内存,P1 对 W1 的修改会影响 P2 对 W2 的访问;
  • 选项 D 错误,虚拟地址是进程独立的,W1 和 W2 不一定相同。
31

下列关于驱动程序的描述中,错误的是()

正确答案:D
【解析】
驱动程序是硬件与操作系统之间的接口程序,使操作系统能够控制和管理硬件,因此 A 正确;
由于不同硬件具有不同的特性和操作方式,驱动程序需要针对具体硬件进行定制开发,因此 B 正确;
为了便于操作系统统一管理和调用,驱动程序需要遵循操作系统提供的统一接口规范,因此 C 正确;
字符设备和块设备是两种不同的 I/O 方式:字符设备以字符流为单位进行数据传输(例如键盘),而块设备以固定大小的数据块为单位(例如硬盘),因此 D 错误。
32

下列操作中,鼠标中断处理程序完成的是()

正确答案:D
【解析】 鼠标中断处理程序的主要职责是在硬件中断触发时,快速从数据寄存器中读取鼠标的原始数据,并将其送入内核缓冲区,以便操作系统内核或输入子系统后续处理。选项 D 直接描述了这一核心操作;而选项 A 涉及高级解析,通常由驱动程序或应用程序完成;选项 B 涉及用户空间同步,一般由内核的其他部分负责;选项 C 涉及硬件传输,可能由硬件或 DMA 完成,并非中断处理程序的主要职责。

计算机网络

33

下列关于分层网络体系结构的叙述中,错误的是( )

正确答案:B
【解析】 分层网络体系结构中,每层都有明确的功能边界(A 正确),这有助于模块化和功能划分;分层设计允许各层技术独立演化(C 正确),只要接口保持不变;上层通过接口使用下层服务,无需关心下层的具体实现细节(D 正确)。但层次越多并不一定效率越高(B 错误),因为过多的层次会增加封装、解封装等处理开销,可能导致延迟增加和效率降低,因此分层设计需权衡层次数量与性能。
34

若在带宽 ,信噪比 的信道上,发送一个长度为 的分组,则发送该分组的传输时延至少是 ()

正确答案:D

【解析】
首先,根据香农定理,信道容量为

其中带宽 ,信噪比
计算 ,且 ,因此

分组长度为 ,即
传输时延是分组长度除以数据传输速率,在理想情况下,最大速率为信道容量,故最小传输时延为

因此,发送该分组的传输时延至少是 6 ms。

35

假设采用 CSMA/CA 的 IEEE 802.11 无线局域网,其数据传输速率为 300 Mbps,DIFS = 128 μs,SIFS = 28 μs。忽略除数据帧以外的其他帧的传输时延及信号传播时延,主机 H 发送一个总长度为 1500 B 的数据帧,则从开始发送数据帧至确认接收方收到所需的时间至少为( )。

正确答案:B

【解析】
在 IEEE 802.11 CSMA/CA 协议中,主机 H 发送数据帧的过程为:先等待 DIFS(本题中起始点从“开始发送数据帧”算起,故 DIFS 已过,不包含在计算内),然后传输数据帧,之后接收方等待 SIFS 后发送 ACK 确认帧。根据题目,忽略除数据帧外的其他帧传输时延(即 ACK 帧传输时延为 0),且忽略信号传播时延。数据帧长度为 1500 B,数据传输速率为 300 Mbps。

数据帧传输时间

SIFS = 28 μs.

从数据帧开始发送到发送方收到 ACK 的时间

因此,所需时间至少为 68 μs。

36

支持 VLAN 划分的以太网交换机,已按端口划分了两个 VLAN。VLAN 划分结果及各端口连接主机的 MAC 地址如图所示。下列具有不同目的 MAC 地址(DA)和源 MAC 地址(SA)的以太帧 F1–F4 中,H3 会接收到的是( )

计算机考研杂货铺
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
6
17
18
19
20
21
22
23
24
计算机考研杂货铺计算机考研杂货铺计算机考研杂货铺计算机考研杂货铺计算机考研杂货铺计算机考研杂货铺
H1
00-1A-2B-3C-4D-01
H2
00-1A-2B-3C-4D-02
H3
00-1A-2B-3C-4D-03
H4
00-1A-2B-3C-4D-04
H5
00-1A-2B-3C-4D-05
H6
00-1A-2B-3C-4D-06

F1: (DA)00-1A-2B-3C-4D-03;(SA)00-1A-2B-3C-4D-01
F2: (DA)00-1A-2B-3C-4D-04;(SA)00-1A-2B-3C-4D-05
F3: (DA)FF-FF-FF-FF-FF-FF;(SA)00-1A-2B-3C-4D-02
F4: (DA)00-1A-2B-3C-4D-06;(SA)00-1A-2B-3C-4D-03

正确答案:B

【解析】
1. 主机和端口的对应关系

  • VLAN 1(左半部分)
    • 端口范围:1–7、13–19
    • H1 → 端口 13 → MAC …-01
    • H2 → 端口 2 → MAC …-02
    • H3 → 端口 5 → MAC …-03 ✅(我们关心的主机)
  • VLAN 2(右半部分)
    • 端口范围:8–12、20–24
    • H4 → 端口 8 → MAC …-04
    • H5 → 端口 9 → MAC …-05
    • H6 → 端口 12 → MAC …-06

👉 H3 位于 VLAN 1 中。

2. 交换机与 VLAN 的转发规则

  1. 单播帧
    • 仅在源端口所属的 VLAN 内查询 MAC 地址表并进行转发。
    • 若目的 MAC 地址不在本 VLAN 的地址表中,则不会转发该帧。
  2. 广播帧
    • 仅在本 VLAN 内的所有端口(除源端口)进行广播
  3. VLAN 间完全隔离
    • 在没有三层设备的情况下,不同 VLAN 之间无法直接通信。

3. 逐帧判断 H3 能否收到

  • F1
    • 目的地址(DA)= …-03(H3)
    • 源地址(SA)= …-01(H1,属于 VLAN 1)
    • 分析:帧源自 VLAN 1,目的 MAC 地址正是 H3。属于同 VLAN 单播通信。
    • H3 会接收此帧。
  • F2
    • 目的地址(DA)= …-04(H4,属于 VLAN 2)
    • 源地址(SA)= …-05(H5,属于 VLAN 2)
    • 分析:整个帧的源和目的均位于 VLAN 2 内,该帧的通信被限制在 VLAN 2 中。
    • H3 接收不到此帧。
  • F3
    • 目的地址(DA)= FF-FF-FF-FF-FF-FF(广播地址)
    • 源地址(SA)= …-02(H2,属于 VLAN 1)
    • 分析:这是一个广播帧,且源位于 VLAN 1。广播范围仅限于 VLAN 1 内的所有端口(发送端口除外)。
    • H3 位于 VLAN 1,因此会收到此广播帧。
  • F4
    • 目的地址(DA)= …-06(H6,属于 VLAN 2)
    • 源地址(SA)= …-03(H3,属于 VLAN 1)
    • 分析:帧源自 VLAN 1,但目的 MAC 地址属于 VLAN 2。交换机在 VLAN 1 的 MAC 地址表中查不到该目的地址,且单播帧不会跨 VLAN 进行泛洪
    • H3 收不到此帧(实际上这是 H3 自己发出的帧)。

最终结论

H3 能够接收到的帧是:

  • F1
  • F3

对应选项为:B 仅 F1、F3

37

某网络在 时刻的网络拓扑与 的路由表如下图所示。 为路由器,基于链路状态路由算法进行路由计算。 为路由器 的接口,链路上的数值为链路开销。若在 )时刻, 检测到 之间的链路断开,则 重新计算路由并进行充分路由聚合后,表中路由条目的数量为( )。

计算机考研杂货铺
5
3
4
6
199.10.20.0/27
Internet
199.10.20.32/27
199.10.20.64/27
199.10.20.128/25
计算机考研杂货铺
t1
2 → ♾️
R1
R2
R3
R4
0
1
2
3
正确答案:C

【解析】 在链路状态路由算法中,每个路由器维护全网的拓扑信息。当 检测到与 之间的链路断开后,会更新链路状态数据库并重新计算最短路径树。根据给定的网络拓扑(图中显示), 直连多个网络,并通过其他路由器学习到远程网络的路由。重新计算后,由于链路断开,部分路由的路径发生变化,但所有网络仍可达。进行充分路由聚合时,可以将多个连续子网汇总为一个路由条目,从而减少路由表规模。根据拓扑结构、子网划分以及聚合原则,聚合后路由表结构如下:

目标网络接口
199.10.20.0/272
199.10.20.32/272
199.10.20.64/273
199.10.20.128/254
0.0.0.01

所以路由表的个数仍然为 5,答案选择 C。

38

下列路由协议中,能将一个自治系统划分为多个区域的内部网关协议是( )

I. OSPF
II. RIP
III. BGP

正确答案:A
【解析】 OSPF(开放最短路径优先)是一种内部网关协议(IGP),它支持分层设计,可以将自治系统划分为多个区域(如骨干区域和其他区域),以提高网络的可扩展性和管理效率。RIP(路由信息协议)也是一种内部网关协议,但它采用距离向量算法,不支持区域划分。BGP(边界网关协议)是外部网关协议(EGP),用于自治系统间的路由交换,不属于内部网关协议,也不支持区域划分。因此,只有 OSPF 符合题意。
39

若将 IP 网络 123.4.4.0/22 划分为规模均衡的 32 个子网,则 IP 地址 123.4.5.11 所在的子网是()

正确答案:C

【解析】
1. 原始网络信息

给定网络: 123.4.4.0/22

  • /22 表示网络位共有 22 位
  • 主机位 = 32 − 22 = 10 位
  • 地址总数 = (2^{10} = 1024)

该 /22 网络覆盖范围是:

123.4.4.0  ~  123.4.7.255

2. 划分为 32 个规模均衡的子网

需要 32 个子网:

⇒ 从主机位中 再借 5 位作为子网位

  • 新前缀长度:

子网前缀为 /27

3. /27 子网的地址块大小

/27:

  • 主机位 = 5 位
  • 每个子网地址数 = (2^5 = 32)

也就是说,每个子网 步长是 32

4. 确定 123.4.5.11 属于哪个 /27 子网

看第三个字节为 5 的情况:

123.4.5.0     ~ 123.4.5.31     (第一个 /27)
123.4.5.32    ~ 123.4.5.63     (第二个 /27)

IP 地址 123.4.5.11 落在:

123.4.5.0 ~ 123.4.5.31

5. 结论

该 IP 所在子网是:

123.4.5.0/27

40

下列叙述中不属于 cookie 的技术典型用途的是()

正确答案:D
【解析】Cookie 主要用于在客户端存储状态信息,以支持用户会话和个性化体验。选项 A(用户跟踪)、B(个性化推荐)和 C(构建虚拟购物车)都是 Cookie 的典型应用,分别用于记录用户行为、存储偏好以提供定制内容以及维护购物车状态。而选项 D(缩短 Web 对象的响应时间)并非 Cookie 的用途,响应时间的优化通常依赖于缓存、内容分发网络(CDN)或服务器端技术,Cookie 反而可能因增加请求头大小而轻微影响性能。

解答题

数据结构

41

(本题满分 13 分)

假定二叉搜索树使用二叉链表存储,存储结构如下:

typedef struct BSTNode{
    int data;
    struct BSTNode *left,*right;
} BSTNode;
typedef BSTNode BTNode;

给一棵二叉搜索树 T 和整数 K,查找树中关键字与 K 之差的绝对值最小的所有结点,并输出该绝对值与结点中的关键字。

(1)给出算法的基本思想。(4 分)

(2)使用 C/C++ 描述算法思想。(8 分)

42

(本题满分 10 分)

栈的基本操作有出栈和入栈。将序列 依次入栈,回答下列问题:

(1) 当 时,可以得到出栈序列 吗?可以得到出栈序列 吗?(2 分)

(2) 假设 组成任意序列的出栈序列 ,在序列中有 ),若该出栈序列不能由栈得到,则 的大小关系是?(2 分)

(3) 若 ,则以 2 开头的序列个数有多少个?(2 分)

(4) 若 时,出栈序列总共共有 个,如果 ,那么以 1 开头的出栈序列个数有多少个?以 2 开头的出栈序列有多少个?总共的出栈序列有多少个?(4 分)

组成原理

43

(本题满分 10 分)

某 16 位计算机按字节编址,通用寄存器 R0~R15 的编号为 0~15,存储器地址为 16 位,采用定长指令字,指令格式有 R 型、I 型、M 型三种,如下表所示。

计算机考研杂货铺
R 型
0000
rt
rs/num
op1
R[rt] ← R[rt] op1 R[rs]
R[rt] ← R[rt] op1 num 
I 型
op2
rt
imm8
R[rt] ← R[rt] op2 imm8
M 型
op3
offset 
R[0] ← M[R[15] + offset]
M[R[15] + offset] ← R[0]
格式
4 位
4 位
4 位
4 位
功能说明

其中:

  • OP1 为 0001、0010 分别表示加、左移指令;
  • OP2 为 0100 表示加立即数指令;
  • OP3 为 1110、1111 分别表示取数、存数指令;
  • R[r] 表示寄存器 r 中的内容;
  • mm 表示移位位数;
  • M[addr] 表示存储器地址 addr 中的内容。

请回答下列问题:

(1) 主存单元和通用寄存器的宽度各为多少位?(2 分)

(2) op1 和 op2 的编码是否可以相同?op2 和 op3 的编码是否可以相同?(2 分)

(3) 若 R(2)=ABCDH,R(9)=F00H1,则指令 0000 0010 1001 0001 执行后,R2 和 R9 中的内容分别是多少?(2 分)

(4) 若变量 均为 16 位带符号整数,在存储器中依次从低地址向高地址连续存放, 的地址在 R15 中。实现 的 4 条指令 11–14 如题 43 表所示,写出 ①~④ 处的内容。(4 分)

题 43 表:

地址内容
11 0000 0000 0000
120000 0010
130100 0000
141111
44

(本题满分 15 分)

假定 43 题中计算机 C 的部分数据通路如题 44 所示。

计算机考研杂货铺
GPRs
通用寄存器组
Ra
Rb
M
U
X
M
U
X
0
1
0
1
2
A
B
A
L
U
PC
MDR
M
U
X
0
1
ARLA Src
ALUB Src
PCin
1
0
ALUCtr
IR
bus A
bus B
M
U
X
MAR
MAR Src
RegWr
Regwsrc
扩展器
ExtOp
1
2
IR.rt
IR11-0
12
16
CU
2
15
IR.rs
0
M
U
X
0
1
RegDst
IR.rt
0
ABus
CBus
IRin
控制信号

图中带箭头虚线代表控制信号,IR.rt、IR.rs 分别表示 IR 中的 rt、rs 字段,IR₁₁₋₀ 为 IR 的低 12 位,要求取指令周期完成 PC 增量操作,请回答下列问题

(1)①和②是同一类部件,其名称是什么(1 分)

(2)I 型指令中 imm8 可以是带符号或无符号整数,M 型指令中 offset 是带符号整数,则 EXTOP 至少有几位?为什么?(2 分)

(3)取指周期中 MARSrC、ALUA SrC、ALUB SrC、RegWr 的取值各是什么?(4 分)

(4)左移指令周期中 ALUB SrC、RegWsrc、RegDst、RegWr 的取值各是什么?Extop 是否可以与 M 型指令中的 EXTop 相同?为什么?(2 分)

操作系统

45

(本题满分 7 分) 系统采用优先级(优先级越大表示优先级越高)与时间片轮转调度算法,仅当发生时钟中断时才触发抢占 CPU 操作,时钟中断间隔为 10 ms。进程首次进入就绪队列时,其时间片为 50 ms。若进程因时间片用完而返回就绪队列,其优先级值减 1;若进程被更高优先级进程抢占而返回就绪队列,其优先级值保持不变。当多个进程优先级相同时,先进入就绪队列的进程优先被调度。四个进程的到达时刻、初始优先级与 CPU 运行时间如下表所示:

进程到达就绪队列时间(ms)优先级CPU 运行时间(ms)
P110395
P210420
P312240
P414560

(1)从 10 ms 开始进程调度,直至所有进程调度结束,此时中断次数与 CPU 调度次数分别为多少?P1、P2、P3、P4 各自的首次调度发生在哪个时刻?(5 分)

(2)若时间片由 50 ms 改为 100 ms,CPU 调度次数将增大、不变还是减少?若时钟中断间隔由 10 ms 改为 1 ms,系统开销将增大、不变还是减少?(2 分)

46

(本题满分 8 分)

文件系统的目录项包括文件名和索引节点号。磁盘包含索引节点表、位图、目录、文件数据等元数据。若盘块大小为 4 KB,盘块号占 4 B,索引节点表存放了系统的所有文件,从 0 开始编号,存放在盘块号 100 开始连续的 4096 个盘块中。索引节点占用 128 B,包含直接地址项 5 个,一级间接地址项、二级间接地址项、三级间接地址项各 1 个。磁盘位示图和索引节点位示图分别记录磁盘和索引节点的使用情况,0 表示未使用,1 表示已使用。其中目录结构图与文件的索引节点表如下所示(此处假定图中信息已给出),file 文件占 30 KB。

计算机考研杂货铺
dir
dir1
file
文件
索引节点号
dir
100
dir1
201
file
1000

(1)file 的索引节点所在的盘块号是多少?若 file 的索引节点已经读取到内存,要访问 file 文件中偏移地址 21460 的一个字节数据,则最多需要读多少个盘块?如果文件系统中有足够的磁盘空间,则最多可以存放多少个文件?(3 分)

(2)如果要删除目录 dir1,则需要对元数据进行哪些操作?(5 分)

计算机网络

47

(本题满分 9 分)

假设客户端 C 建立一条 TCP 连接,向服务器 Si 上传一个总长度为 2000 B 的计算任务描述文件。已知 C 的拥塞窗口初始阈值为 8 MSS,MSS = 500 B,Si 对收到的每个 TCP 段进行确认,且确认段不封装数据。接收窗口始终为 1000 B,RTT = 5 ms,C 建立连接时选择的初始序号为 1000,Si 选择的初始序号为 2000,SYN、ACK、FIN 为标志位,seq 为序号,ack_seq 为确认序号。在整个文件传输过程中未出现任何重传或报文丢失。

计算机考研杂货铺计算机考研杂货铺计算机考研杂货铺计算机考研杂货铺
算力调度平台
S1
Sn
C
计算机考研杂货铺
Si

(1)C 与 Si 建立 TCP 连接过程需要几次握手?C 收到的 SYN = 1,ACK = 1 的 TCP 段的确认序号是多少?

(2)当 C 接收 Si 发送的 ACK = 1,seq = 2001,ack_seq = 2001,rwnd = 1000 确认段后,C 的拥塞窗口增加到多少?C 的发送窗口设置为多少?

(3)C 与 Si 释放 TCP 连接过程需要几次挥手?C 收到最后一个 TCP 报文段的序号(seq),确认序号(ack_seq),FIN 的值分别是多少?

(4)忽略报文段传输时延,且时间从 C 请求建立 TCP 连接时刻算起,则 C 确定 Si 已成功接收到文件的时间是多少?