2025年全国硕士研究生招生考试计算机学科专业基础试题(408)详细解析

说明:本文基于2025年408真题及标准答案整理,逐题给出答案、知识点、详细解析与计算过程。部分题目中的图片、表格在扫描版中可能有缺失,本文根据历年真题通用版本补全。全文可按 Markdown 复制到 Word 中保存为博文。


一、单项选择题(1~40 小题,每小题 2 分,共 80 分)

第1题

题目: 下列程序段的时间复杂度是( )。

int count = 0, i, j;
for (i = 1; i * i <= n; i++)
    for (j = 1; j <= i; j++)
        count++;

A. O(log n)
B. O(n)
C. O(n log n)
D. O(n²)

答案:B

解析:
外层循环 i 从 1 到 ⌊√n⌋,内层循环 j 从 1 到 i,总执行次数为 1 + 2 + … + ⌊√n⌋ ≈ n/2,因此时间复杂度为 O(n)。
知识点: 时间复杂度分析、循环嵌套。


第2题

题目: 已知算法 A 用于检查字符串中各类括号是否匹配,A 执行过程中使用初始为空的栈保存遇到的括号。若栈的容量是 3,则下列选项中,A 不能处理的是( )。

A. (a+[b+(c+d)/e]+f)+g-h
B. [a*((b+c)/(d-e)+f/g)]-h
C. [a*(b-(c-d)*e/(f+g))-h]
D. [a-(b+[c*(d+e)-f]+g+h)]

答案:D

解析:
栈容量为 3,意味着同时保存的未匹配括号最多 3 个。
分析 D:[a-(b+[c*(d+e)-f]+g+h)]
括号序列:[ → ( → [ → (,此时栈中已有 4 个括号,超过容量 3,因此不能处理。
知识点: 栈的应用、括号匹配。


第3题

题目: 若二叉树的节点值均为正整数,采用顺序存储方式保存在数组 R 中,用 -1 表示节点不存在,则下列数组中,不能表示一棵二叉树的是( )。

A. {20,15,40,-1,-1,35}
B. {15,40,10,18,35,-1,-1,12}
C. {15,40,10,-1,-1,-1,12}
D. {17,20,35,-1,18,45,-1,-1,19,2}

答案:D

解析:
顺序存储二叉树时,若节点在数组下标 i 处,则其左孩子在下标 2i+1,右孩子在下标 2i+2。若某节点存在,其父节点必须存在。
D 中下标 8 的节点 19 存在,其父节点下标为 (8-1)/2 = 3,但下标 3 为 -1,父节点不存在,因此不能表示二叉树。
知识点: 二叉树顺序存储、父子节点下标关系。


第4题

题目: 下列关于二叉树及森林的叙述中,正确的是( )。

A. 完全二叉树不存在度为 1 的结点
B. 任意一个森林可以转换为一棵二叉树
C. 二叉树的分支结点个数比叶结点个数少
D. 链式树的根中保存的是最先计算的运算符

答案:B

解析:
A 错:完全二叉树最多有一个度为 1 的结点。
B 对:任意森林都可以转换为二叉树(孩子兄弟表示法)。
C 错:二叉树分支结点数 = 叶结点数 - 1(对于非空二叉树)。
D 错:表达式树根保存最后计算的运算符。
知识点: 二叉树性质、森林与二叉树转换。


第5题

题目: 设字符集 S 包含 7 个字符,各字符出现的频次分别是 2, 3, 4, 6, 8, 10, 11。为 S 中的各字符构造哈夫曼编码,编码长度不小于 3 的字符个数是( )。

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

答案:D

解析:
构造哈夫曼树:
合并 2+3=5;4+5=9;6+8=14;9+10=19;11+14=25;19+25=44。
各字符深度:
2,3 深度 4;4 深度 3;6,8 深度 3;10 深度 2;11 深度 2。
编码长度不小于 3 的字符有:2,3,4,6,8,共 5 个。
知识点: 哈夫曼树、编码长度。


第6题

题目: 下列关于图的叙述中,正确的是( )。

A. 有向图必定存在入度为 0 的顶点
B. 有向无环图的拓扑排序有序序列存在且唯一
C. 各顶点的度均大于等于 2 的无向图必有回路
D. 可用 BFS 算法求出带权图中的每一对顶点的最短路径

答案:C

解析:
A 错:有向图可以没有入度为 0 的顶点(如有向环)。
B 错:拓扑序列可能不唯一。
C 对:所有顶点度 ≥ 2,则边数 ≥ 顶点数,必有回路。
D 错:BFS 只能求无权图最短路径。
知识点: 图的性质、拓扑排序、BFS。


第7题

题目: 已知查找表中有 400 个元素,查找元素概率相同。采用分块查找法且均匀分块。若采用顺序查找法确定元素所在块,且块内也采用顺序查找法,为效率最高,每块包含元素应为( )。

A. 8
B. 10
C. 20
D. 25

答案:C

解析:
分块查找最佳块大小 = √n = √400 = 20。
知识点: 分块查找、最佳块大小。


第8题

题目: 给 7 个不同的关键字,能够构成不同 4 阶 B 树的个数为( )。

A. 7
B. 8
C. 9
D. 10

答案:B

解析:
4 阶 B 树每个结点最多 3 个关键字,最少 1 个。7 个关键字构成的不同 B 树数量为 8。
知识点: B 树、形态计数。


第9题

题目: 下列关于散列法处理冲突的叙述中,正确的是( )。

A. 只要线性表不满,线性探查再散列一定能找到一个空闲位置。
B. 只要线性表不满,二次探查再散列一定能找到一个空闲位置。
C. 线性探测法的冲突一定是同义词和同义词比较。
D. 二次探查再散列处理的冲突,一定是发生在非同义词之间。

答案:D

解析:
A 错:线性探查可能找不到空位(如果表满或聚集)。
B 错:二次探查不一定能找到空位。
C 错:线性探测冲突可能是非同义词。
D 对:二次探查处理的冲突通常发生在非同义词之间。
知识点: 散列冲突、线性探查、二次探查。


第10题

题目: 下列排序算法中,最坏情况下元素移动最少的是( )。

A. 冒泡排序
B. 直接插入排序
C. 快速排序
D. 简单选择排序

答案:D

解析:
简单选择排序每趟只交换一次,移动次数 O(n),最坏情况下也是 O(n)。其他算法最坏 O(n²)。
知识点: 排序算法、移动次数。


第11题

题目: 对含 9 个关键字的初始序列进行排序,若序列的变化情况如下表所示,则下列排序算法中,采用的是( )。

初始序列5,25,40,30,10,20,45,15,35
第1趟排序后5,10,20,30,15,35,45,25,40
第2趟排序后5,10,15,25,20,30,40,35,45

A. 希尔排序
B. 基数排序
C. 归并排序
D. 折半插入排序

答案:A

解析:
希尔排序按增量分组插入排序。第1趟增量 4,第2趟增量 2,符合变化。
知识点: 希尔排序、增量。


第12题

题目: 在 32 位计算机上执行下列 C 语言代码:

short si = -32767;
unsigned int ui = si;

则 ui 的真值为( )。

A. 2¹⁵−1
B. 2¹⁵+1
C. 2³²−2¹⁵−1
D. 2³²−2¹⁵+1

答案:D

解析:
si = -32767,补码 0x8001。转换为 unsigned int 时符号扩展为 0xFFFF8001 = 2³² - 2¹⁵ + 1。
知识点: 补码、符号扩展、无符号转换。


第13题

题目: 已知 float 型变量用 IEEE754 单精度浮点数格式表示。若 float 型变量 x 的机器数为 4730 0000H,则 x 的值为( )。

A. 0.375×2¹⁴
B. 1.375×2¹⁴
C. 0.375×2¹⁵
D. 1.375×2¹⁵

答案:D

解析:
0x47300000 = 0100 0111 0011 0000 …
符号 0,阶码 10001110 = 142,实际指数 142-127 = 15。
尾数 1.011 = 1.375。
值 = 1.375 × 2¹⁵。
知识点: IEEE754 单精度。


第14题

题目: 假设 8 位字长的计算机中,两个带符号整数 x 和 y 的补码表示分别为 [x]=A3H,[y]=75H,则通过补码加减运算器得到的 x-y 的值及 OF 标志分别为( )。

A. 24, 0
B. 24, 1
C. 46, 0
D. 46, 1

答案:D

解析:
A3H = -93,75H = 117。
x - y = -93 - 117 = -210。8 位补码范围 -128~127,溢出。
OF = 1。
-210 mod 256 = 46。
知识点: 补码减法、溢出标志。


第15题

题目: 某 32 位计算机按字节编址,采用小端方式存放数据,编译器按边界对齐方式为下列 C 语言结构型数组变量 employee 分配存储空间。

struct record {
    int id;
    char name[10];
    int salary;
} employee[200];

数组 employee 的起始地址为 0000 A0B0H,employee[1].id 的机器数为 1234 5678H,问 56H 的地址是( )。

A. 0000 A0C3H
B. 0000 A0C4H
C. 0000 A0C5H
D. 0000 A0C6H

答案:C

解析:
struct record 大小:int id 4B,char name[10] 10B,填充 2B,int salary 4B,共 20B。
employee[1] 起始地址 = A0B0H + 20 = A0C4H。
employee[1].id 机器数 1234 5678H,小端存放:78H 在 A0C4H,56H 在 A0C5H。
知识点: 结构体对齐、小端存储。


第16题

题目: 下列选项中,由指令体系结构(ISA)规定的是( )。

A. 是否采用阵列乘法器
B. 是否采用定长指令字格式
C. 是否采用微程序控制器
D. 是否采用单总线数据通路

答案:B

解析:
ISA 规定指令格式、类型等。定长指令字格式属于 ISA。其他属于微架构。
知识点: ISA、微架构。


第17题

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

A. 多采用硬连线方式实现控制器
B. 通常采用 Load/Store 型指令设计风格
C. 难以采用流水线数据通路实现微架构
D. 多采用寄存器传递过程调用时的参数

答案:C

解析:
RISC 易于采用流水线,C 错误。
知识点: RISC 特点。


第18题

题目: 下列关于 CPI 和 CPU 时钟周期的叙述中,错误的是( )。

A. 不同类型指令的 CPI 可能不一样
B. 程序的 CPI 与 Cache 缺失率无关
C. 单周期 CPU 的时钟周期以最耗时指令所用的时间为准
D. 流水线 CPU 的时钟周期以最长流水段所用时间为准

答案:B

解析:
程序 CPI 与 Cache 缺失率有关,缺失率越高,CPI 越大。
知识点: CPI、Cache 缺失率。


第19题

题目: 下列关于 CPU 中的数据通路和控制器的叙述中,错误的是( )。

A. 通用寄存器组中应该包含程序计数器
B. 控制器中一定包含指令操作码的译码电路
C. 单周期 CPU 中的控制器比多周期 CPU 中的更简单
D. 流水线 CPU 需解决数据相关和控制相关等冒险问题

答案:A

解析:
通用寄存器组不包含 PC,PC 是独立寄存器。
知识点: 数据通路、控制器、PC。


第20题

题目: 某处理器总线采用同步、并行传输方式,每个总线时钟周期传送 4 次数据(quadpumped 技术),若该总线的工作频率为 1333MHz(实际单位是 MT/s,表示每秒传送 1333M/次),总线宽度为 64 位,则总线带宽约为( )。

A. 10.66 GB/s
B. 42.66 GB/s
C. 85.31 GB/s
D. 341.25 GB/s

答案:B

解析:
带宽 = 1333M × 4 × 8B = 42656 MB/s ≈ 42.66 GB/s。
知识点: 总线带宽、quadpumped。


第21题

题目: 下列设备中,适合采用 DMA 输入输出的设备是( )。
I. 键盘
II. 网卡
III. 固态硬盘
IV. 针式打印机

A. I、II
B. II、III
C. II、IV
D. III、IV

答案:B

解析:
网卡、固态硬盘适合 DMA。键盘、打印机适合中断。
知识点: DMA 适用设备。


第22题

题目: 下列选项中,会触发外部中断请求的事件是( )。

A. DMA 传送结束
B. 总线事务结束
C. 页故障处理结束
D. 执行断点指令

答案:A

解析:
DMA 传送结束产生中断。其他为内部异常或正常事件。
知识点: 外部中断。


第23题

题目: 在采用页式虚拟存储管理方式的系统中,当发生上下文切换时,下列寄存器中操作系统不需要更新的是( )。

A. 通用寄存器
B. 页表基址寄存器
C. 程序计数器
D. 内核中断向量表基址寄存器

答案:D

解析:
内核中断向量表基址寄存器在上下文切换时不需要更新。
知识点: 上下文切换、寄存器。


第24题

题目: 关于虚拟化技术,下列说法错误的是( )。

A. 操作系统可以在虚拟机上运行
B. 一台主机可以支持多个虚拟机
C. VMM 与操作系统特权级相同
D. 通过虚拟机技术,可以用一台主机上模拟多种 ISA

答案:C

解析:
VMM 特权级高于操作系统。
知识点: 虚拟化、VMM。


第25题

题目: 优先权调度,采用单链表保存进程就绪队列,高优先级进程在队头。就绪队列长度为 n,则插入进程、选出进程的时间复杂度( )。

A. O(1), O(1)
B. O(1), O(n)
C. O(n), O(1)
D. O(n), O(n)

答案:C

解析:
插入需按优先级找到位置,O(n);选出队头 O(1)。
知识点: 优先权调度、时间复杂度。


第26题

题目: 现有一 LRU 算法,固定分配局部置换,已为进程分配 3 个页框,页面访问序列为 {0,1,2,0,5,1,4,3,0,2,3,2,0},其中 0,1,2 已调入内存。则缺页次数是( )。

A. 5
B. 6
C. 7
D. 8

答案:B

解析:
模拟 LRU:初始 0,1,2 在内存。
0 命中;5 缺页,淘汰 1;1 缺页,淘汰 2;4 缺页,淘汰 0;3 缺页,淘汰 5;0 缺页,淘汰 1;2 缺页,淘汰 4;3 命中;2 命中;0 命中。
缺页 6 次。
知识点: LRU 页面置换。


第27题

题目: 确定进程运行所需的最少页框数时,要考虑的指标是( )。

A. 代码段长
B. 虚拟地址空间大小
C. 物理地址空间大小
D. 指令系统支持的寻址方式

答案:D

解析:
最少页框数取决于指令寻址方式,如间接寻址可能跨页。
知识点: 页框数、寻址方式。


第28题

题目: 关于虚拟文件系统,下列说法正确的是( )。

A. 虚拟文件系统是运行在虚拟内存的文件系统
B. VFS 可以加快文件系统的访问速度
C. VFS 定义了可访问不同文件系统的统一接口
D. VFS 只能访问本地文件系统,不能访问网络文件系统

答案:C

解析:
VFS 提供统一接口,支持多种文件系统。
知识点: 虚拟文件系统。


第29题

题目: 某文件系统采用索引节点方式。用户在目录中新建文件 F 时,文件系统不会做的是( )。

A. 初始化文件 F 的索引节点
B. 在目录文件中写入 F 的索引节点号
C. 在目录文件中写入 F 的访问权限信息
D. 在目录文件中增加一条文件 F 对应的目录项

答案:C

解析:
访问权限信息存储在索引节点中,不在目录项中。
知识点: 索引节点、目录项。


第30题

题目: 关于内存映射文件,正确的是( )。
I. 可实现进程间通信
II. 实现了页面到磁盘块的映射
III. 将文件映射到进程的虚拟地址空间
IV. 将文件映射到系统的物理地址空间

A. I、III
B. I、IV
C. II、III
D. I、II、III

答案:A

解析:
内存映射文件将文件映射到进程虚拟地址空间,可实现进程间通信。
知识点: 内存映射文件。


第31题

题目: 下列选项中,文件系统能知道外存空闲空间使用情况的是( )。

A. 目录
B. 系统打开文件表
C. 文件分配表(FAT)
D. 文件控制块(FCB)

答案:C

解析:
FAT 记录磁盘块分配情况。
知识点: 文件分配表。


第32题

题目: 下列选项中,文件系统能为温彻斯特硬盘和固态硬盘提供的功能是( )。

A. 划分扇区
B. 确定盘块大小
C. 降低寻道时间
D. 实现均衡磨损

答案:B

解析:
文件系统确定盘块大小。
知识点: 文件系统、盘块。


第33题

题目: 如下图所示,主机 H1 向 H2 发送一个 2MB(1M=10⁶B)文件有三种方式,①电路交换,建立时间为 32μs,速度为 10Mbps;②分组交换,分组长度为 400B,忽略首部;③报文交换。电路交换的时间为 Tcs,报文交换的时间为 Tms,分组交换的时间为 Tps,则三者的大小关系是( )。

A. Tcs > Tms > Tps
B. Tms > Tps > Tcs
C. Tms > Tcs > Tps
D. Tps > Tms > Tcs

答案:C

解析:
电路交换:建立 32μs + 传输 2MB/10Mbps = 0.2s = 200ms,总 200.032ms。
报文交换:存储转发,至少两段,时间更长。
分组交换:流水线,时间最短。
所以 Tms > Tcs > Tps。
知识点: 交换方式、时延。


第34题

题目: 某差错编码的编码集为 {10011010,01011100,11110000,00001111},其检错、纠错能力是( )。

A. 可以检测不超过 2 位错,检错率 100%;可纠正不超过 1 位错
B. 可以检测不超过 2 位错,检错率 100%;可纠正不超过 2 位错
C. 可以检测不超过 3 位错,检错率 100%;可纠正不超过 1 位错
D. 可以检测不超过 3 位错,检错率 100%;可纠正不超过 2 位错

答案:C

解析:
计算最小汉明距离。任意两个编码距离至少为 4。
可检测 3 位错,纠正 1 位错。
知识点: 差错编码、汉明距离。


第35题

题目: 10BaseT 以太网,甲乙处于同一个冲突域,连续发生 11 次冲突,甲再次发送的最大时间间隔为( )。

A. 0.512ms
B. 0.5632ms
C. 52.3776ms
D. 104.8064ms

答案:C

解析:
第 11 次冲突,退避窗口 = 2¹⁰ - 1 = 1023,最大等待 = 1023 × 51.2μs = 52377.6μs = 52.3776ms。
知识点: 二进制指数退避。


第36题

题目: 一台新接入网络的主机 H 通过 DHCP 服务器动态请求 IP 地址过程中,与 DHCP 服务器交换 DHCP 报文过程如下图所示。封装 DHCP 的 REQUEST 报文的 IP 数据报的目的 IP 地址和源 IP 地址分别是( )。

A. 192.168.5.1,0.0.0.0
B. 192.168.5.1,192.168.5.9
C. 255.255.255.255,0.0.0.0
D. 255.255.255.255,192.168.5.9

答案:C

解析:
DHCP REQUEST 报文广播,目的 IP 255.255.255.255,源 IP 0.0.0.0。
知识点: DHCP、IP 地址。


第37题

题目: 假设路由器实现 NAT 功能,内网中主机 H 的 IP 地址为 192.168.1.5/24。若 H 运行某应用向 Internet 发送一个 UDP 报文段,则路由器在转发封装该 UDP 报文段的 IP 数据报的过程中,UDP 报文的首部字段会被修改的是( )。
I. 源端口号
II. 目的端口号
III. 总长度
IV. 校验和

A. I、III
B. I、IV
C. II、III
D. II、IV

答案:B

解析:
NAT 修改源 IP 和源端口号,并更新校验和。
知识点: NAT、UDP 首部。


第38题

题目: 主机甲通过 TCP 向主机乙发送数据的部分过程如下图,seq 为序号,ack-seq 为确认序号,rcwnd 为接收窗口。甲在 t0 时刻的拥塞窗口和发送窗口均为 2000B,拥塞控制阈值为 8000B,MSS=1000B。甲始终以 MSS 发送 TCP 段。若甲在 t1 时刻收到如图所示的确认段,则甲在未收到新的确认段之前,还可以继续向乙发送的 TCP 段数是( )。

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

答案:C

解析:
根据拥塞窗口和接收窗口计算,可发送 4 段。
知识点: TCP 拥塞控制、发送窗口。


第39题

题目: Time 是一个提供时间查询服务的 C/S 架构网络应用,支持客户通过 UDP 和 TCP 向 Time 服务器请求时间。若某客户与 Time 服务器通信往返时间为 8ms,则该客户分别通过 UDP 和 TCP 向该服务器请求服务,所需的最少时间分别是( )。

A. 8ms, 8ms
B. 8ms, 16ms
C. 16ms, 8ms
D. 16ms, 16ms

答案:B

解析:
UDP 无连接,1 个 RTT = 8ms;TCP 需建立连接,2 个 RTT = 16ms。
知识点: UDP、TCP、RTT。


第40题

题目: 关于 POP3,正确的是( )。
I. 支持用户代理从邮件服务器读取邮件
II. 支持用户代理向邮件服务器发送邮件
III. 支持邮件服务器之间发送与接收邮件
IV. 支持一条 TCP 连接收取多封邮件

A. I、III
B. I、IV
C. I、II、III
D. I、III、IV

答案:B

解析:
POP3 用于接收邮件,支持读取和多封收取。发送邮件用 SMTP。
知识点: POP3、邮件协议。


二、综合应用题(第 41~47 小题,共 70 分)

第41题(13分)

题目: 设有两个长度均为 n 的一维整型数组 A 和 res,对数组 A 中的每个元素 A[i],计算 A[i] 与 A[j](0≤i≤j≤n−1)乘积的最大值,并将其保存到 res[i] 中。例如,若 A[] = {1, 4, −9, 6},则得到 res[] = {6, 24, 81, 36}。现给定数组 A,请设计一个时间和空间上尽可能高效的算法 calMulMax,求 res 中各元素的值。

解答:

(1)基本设计思想:
对于每个 i,需要找到 j≥i 使得 A[i]*A[j] 最大。
若 A[i] ≥ 0,则需找 j≥i 中最大的 A[j];
若 A[i] < 0,则需找 j≥i 中最小的 A[j](最负)。
因此可以预处理后缀最大值和后缀最小值。
从右向左遍历,维护后缀最大值 maxSuf 和后缀最小值 minSuf。
对于每个 i,若 A[i] ≥ 0,res[i] = A[i] * maxSuf;否则 res[i] = A[i] * minSuf。

(2)算法描述:

void calMulMax(int A[], int res[], int n) {
    int maxSuf = A[n-1], minSuf = A[n-1];
    res[n-1] = A[n-1] * A[n-1];
    for (int i = n-2; i >= 0; i--) {
        if (A[i] >= 0)
            res[i] = A[i] * maxSuf;
        else
            res[i] = A[i] * minSuf;
        if (A[i] > maxSuf) maxSuf = A[i];
        if (A[i] < minSuf) minSuf = A[i];
    }
}

(3)时间复杂度 O(n),空间复杂度 O(1)。

知识点: 数组、后缀极值、贪心。


第42题(10分)

题目: 某工程包含 12 个活动,使用下图所示的 AOE 网络描述,图中各边上标注了活动及其持续时间。请回答下列问题(活动均用活动名表示)。

(图略)

解答:

(1)完成工程最短时间 = 关键路径长度。关键活动为关键路径上的活动。
(2)与活动 e 同时进行的活动:根据最早开始时间相同的活动。
(3)时间余量最大的活动:最迟开始时间 - 最早开始时间最大者。
(4)活动 b 延迟,需压缩关键活动保证不延期。

知识点: AOE 网、关键路径、时间余量。


第43题(12分)

题目: 现有 C 语言程序 P 的部分代码如下所示。

int x, d[2048], i;
...
for (i = 0; i < 2048; i++)
    d[i] = d[i] / x;
...

假定运行程序 P 的计算机 M 字长为 32 位,按字节编址,数据 Cache 的数据区大小为 32KB,采用 8 路组相联映射方式,主存块大小为 64B,Cache 的命中时间为 2 个时钟周期,缺失损失为 200 个时钟周期;采用页式虚拟存储管理方式,页大小为 4KB。数组 d 的起始虚拟地址为 0180 0020H。请回答下列问题。

解答:

(1)Cache 组号字段:32KB / (64B × 8) = 64 组,组号 6 位。块内地址 6 位。虚拟地址中低 12 位为页内偏移,其中低 6 位为块内地址,接着 6 位为 Cache 组号。

(2)d[100] 虚拟地址 = 01800020H + 100×4 = 018001B0H。
组号 = (018001B0H >> 6) & 0x3F = 0x06 = 6。

(3)d[0] 偏移量 = 0x20 = 32。
缺失率:每个块 64B 含 16 个 int,首次缺失,后续命中。缺失率 = 1/16 = 6.25%。
平均访问时间 = 2 + 0.0625 × 200 = 14.5 周期。

(4)数组 d 大小 = 2048×4 = 8KB,分布在 2 页。缺页次数 = 2。

知识点: Cache 映射、缺失率、页式存储。


第44题(11分)

题目: 对于题 43 中计算机 M 和程序 P,假定 P 的部分机器级代码如下所示。

mov R1, (R3 + 4*R4)   // R1 ← d[i]
scov R1               // {R0,R1} ← SEXT(R1)
idiv R1               // R1 ← {R0,R1}/R2

其中,R0~R4 为通用寄存器,SEXT 表示按符号扩展;M 中补码除法器逻辑结构如下图所示。请回答下列问题。

解答:

(1)idiv 指令:d[i] = 0x87654321,x = 0xff。
补码除法器初始:R = 0x87654321,Q = 0x00000000,Y = 0x000000FF。
计数器在除法器控制部件中。ALU 运算:加、减、移位。

(2)除法异常:除数为 0,或商溢出。
d[i] = 0x80000000,x = 0xFFFFFFFF 时溢出。
异常响应:保存断点、PSW,转异常处理程序。

知识点: 补码除法、异常处理。


第45题(7分)

题目: 甲、乙、丙三人一起植树,甲负责挖坑,乙负责将树苗放入树坑中并填土,丙负责为新种的树浇水。植树的步骤依次为:挖树坑、放树苗、填土和浇水。现有铁锹和水桶各 1 个,铁锹用于挖树坑和填土,水桶用于浇水。当树坑的数量小于 3 时,甲才可以挖树坑。假设初始时树坑的数量为 0,铁锹和水桶均可用。请定义尽可能少的信号量,用 wait()、signal() 操作描述植树过程中三人之间的同步与互斥关系,并说明所用信号量的作用及其初值。

解答:

定义信号量:

  • empty = 3:空树坑数
  • full = 0:已挖树坑数
  • mutex_shovel = 1:铁锹互斥
  • mutex_bucket = 1:水桶互斥

甲:P(empty); P(mutex_shovel); 挖坑; V(mutex_shovel); V(full);
乙:P(full); P(mutex_shovel); 放树苗填土; V(mutex_shovel); V(empty);
丙:P(full); P(mutex_bucket); 浇水; V(mutex_bucket);

知识点: 信号量、同步互斥。


第46题(8分)

题目: 某系统中进程的虚拟地址空间包括内核区、用户栈、运行时堆、可读写数据段、只读代码段等区域,其布局如下图所示。现有 C 语言程序的部分代码如下。请回答下列问题。

解答:

(1)进程控制块位于内核区。执行 scanf() 等待键盘输入时,进程处于阻塞态。
(2)main() 函数代码位于只读代码段。直接调用的函数中,需要驱动程序的如 scanf()(输入)、printf()(输出)。
(3)变量 ptr 被分配在运行时堆。变量 length 在用户栈。ptr 指向的字符在运行时堆。

知识点: 虚拟地址空间、进程状态、内存分配。


第47题(9分)

题目: 某公司在承建国家重大工程项目时,工程部需要较长时间驻扎在偏远山区,工程部网络需要连接公司总部网络。假设综合考虑方案的技术可行性、安全性与经济成本等因素后,决定租用我国自主建设的天通一号卫星通信链路,连接工程部网络的路由器 R1 和公司总部网络的路由器 R2,如图所示。S1 和 S2 为千兆以太网交换机,TR1 和 TR2 是卫星信号地面收发设备,实现全双工调制解调。天通一号卫星轨道高度是 36 000km,电磁信号传播速度为 300 000km/s。租用的卫星链路为 R1 和 R2 间提供对称全双工信道,每个方向的数据传输率为 200kb/s。请回答下列问题。

解答:

(1)单向传播时延 = 36000km / 300000km/s = 0.12s = 120ms。
最大吞吐量 = 200kb/s。
上传 4000B 文件时间 = 4000×8 / 200k = 160ms。加上传播时延 120ms,总约 280ms。

(2)GBN 信道利用率 ≥ 80%。
发送一帧时间 = 1500×8 / 200k = 60ms。
RTT = 2×120 = 240ms。
窗口至少 = (60+240)/60 = 5。
序号位数至少 3 位(2³=8 ≥ 5+1)。

(3)10.10.10.0/24 划分:
生活区 120 个地址:/25(126 可用)→ 10.10.10.0/25
作业区 60 个地址:/26(62 可用)→ 10.10.10.128/26
管理区 60 个地址:/26 → 10.10.10.192/26

知识点: 卫星通信、传播时延、GBN、子网划分。


结语

以上为 2025 年全国硕士研究生招生考试计算机学科专业基础试题(408)的详细解析。建议复习时结合教材与真题,重点掌握:栈与队列、树与二叉树、图、查找、排序、计算机组成原理中的指令系统、Cache、中断、操作系统中的进程管理、内存管理、文件系统、TCP/IP 协议栈等核心知识点。祝备考顺利!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐