2020-01
将一个 10×10 对称矩阵 M 的上三角部分的元素 mi,j(1≤ i≤ j≤10)按列优先存入 C 语言的一维数组 N 中,元素 m7,2 在 N 中的下标是( )。
答案:C
2020 全国硕士研究生入学统一考试
当前显示 47 道题
将一个 10×10 对称矩阵 M 的上三角部分的元素 mi,j(1≤ i≤ j≤10)按列优先存入 C 语言的一维数组 N 中,元素 m7,2 在 N 中的下标是( )。
答案:C
对空栈 S 进行 Push 和 Pop 操作,入栈序列为 a, b, c, d, e,经过 Push, Push, Pop, Push, Pop, Push, Push, Pop 操作后得到的出栈序列是( )。
答案:D
对于任意一棵高度为 5 且有 10 个结点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元数量至少是( )。
答案:A
已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a, b, c, d, e, f,中根遍历序列是 b, a, d, f, e, c,则 T 的后根遍历序列是( )。
答案:C
下列给定的关键字输入序列中,不能生成如下二叉排序树的是( )。

答案:B
修改递归方式实现的图的深度优先搜索(DFS)算法,将输出(访问)顶点信息的语句移到退出递归前(即执行输出语句后立刻退出递归)。采用修改后的算法遍历有向无环图 G,若输出结果中包含 G 中的全部顶点,则输出的顶点序列是 G 的( )。
答案:B
已知无向图 G 如下所示,使用克鲁斯卡尔(Kruskal)算法求图 G 的最小生成树,加到最小生成树中的边依次是( )。

答案:A
若使用AOE网估算工程进度,则下列叙述中正确的是( )。
答案:B
下列关于大根堆(至少含2个元素)的叙述中,正确的是( )。
I. 可以将堆视为一棵完全二叉树
II. 可以采用顺序存储方式保存堆
III. 可以将堆视为一棵二叉排序树
IV. 堆中的次大值一定在根的下一层
答案:C
依次将关键字5,6,9,13,8,2,12,15插入初始为空的4阶B树后,根结点中包含的关键字是( )。
答案:B
对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率更高,其原因是( )。
I. 直接插入排序过程中元素之间的比较次数更少
II. 直接插入排序过程中所需要的辅助空间更少
III. 直接插入排序过程中元素的移动次数更少
答案:A
下列给出的部件中,其位数(宽度)一定与机器字长相同的是( )。
I. ALU
II. 指令寄存器
III. 通用寄存器
IV. 浮点寄存器
答案:B
已知带符号整数用补码表示,float型数据用IEEE 754标准表示,假定变量x的类型只可能是int或float,当x的机器数为C800 0000H时,x的值可能是( )。
答案:A
在按字节编址,采用小端方式的32位计算机中,按边界对齐方式为以下C语言结构型变量a分配存储空间:
struct record {
short x1;
int x2;
} a;若a的首地址为2020 FE00H,a的成员变量x2的机器数为1234 0000H,则其中34H所在存储单元的地址是( )。
答案:D
下列关于TLB和Cache的叙述中,错误的是( )。
答案:D
某计算机采用16位定长指令字格式,操作码位数和寻址方式位数固定,指令系统有48条指令,支持直接、间接、立即、相对4种寻址方式。单地址指令中,直接寻址方式的可寻址范围是( )。
答案:A
下列给出的处理器类型中,理想情况下,CPI为1的是( )。
I. 单周期CPU
II. 多周期CPU
III. 基本流水线CPU
IV. 超标量流水线CPU
答案:B
下列关于“自陷”(Trap,也称陷阱)的叙述中,错误的是( )。
答案:A
QPI总线是一种点对点全工同步串行总线,总线上的设备可同时接收和发送信息,每个方向可同时传输20位信息(16位数据+4位校验位),每个QPI数据包有80位信息,分2个时钟周期传送,每个时钟周期传递2次。因此,QPI总线带宽为:每秒传送次数×2B×2。若QPI时钟频率为2.4GHz,则总线带宽为( )。
答案:C
下列事件中,属于外部中断事件的是( )。
I. 访存时缺页
II. 定时器到时
III. 网络数据包到达
答案:C
外部中断包括不可屏蔽中断(NMI)和可屏蔽中断,下列关于外部中断的叙述中,错误的是( )。
答案:B
若设备采用周期挪用DMA方式进行输入和输出,每次DMA传送的数据块大小为512字节,相应的I/O接口中有一个32位数数据缓冲寄存器。对于数据输入过程,下列叙述中,错误的是( )。
答案:C
若多个进程共享同一个文件F,则下列叙述中,正确的是( )。
答案:B
下列选项中,支持文件长度可变、随机访问的磁盘存储空间分配方式是( )。
答案:A
下列与中断相关的操作中,由操作系统完成的是( )。
I. 保存被中断程序的中断点
II. 提供中断服务
III. 初始化中断向量表
IV. 保存中断屏蔽字
答案:D
下列与进程调度有关的因素中,在设计多级反馈队列调度算法时需要考虑的是( )。
I. 就绪队列的数量
II. 就绪队列的优先级
III. 各就绪队列的调度算法
IV. 进程在就绪队列间的迁移条件
答案:D
某系统中有A、B两类资源各6个,t时刻资源分配及需求情况如下表所示。
t时刻安全性检测结果是( )。

答案:B
下列因素中,影响请求分页系统有效(平均)访存时间的是( )。
I. 缺页率
II. 磁盘读写时间
III. 内存访问时间
IV. 执行缺页处理程序的CPU时间
答案:D
下列关于父进程与子进程的叙述中,错误的是( )。
答案:B
对于具备设备独立性的系统,下列叙述中,错误的是( )。
答案:D
某文件系统的目录项由文件名和索引结点号构成。若每个目录项长度为 64 字节,其中 4 字节存放索引结点号,60 字节存放文件名。文件名由小写英文字母构成,则该文件系统能创建的文件数量的上限为( )。
答案:B
下列准则中,实现临界区互斥机制必须遵循的是( )。
I. 两个进程不能同时进入临界区
II. 允许进程访问空闲的临界资源
III. 进程等待进入临界区的时间是有限的
IV. 不能进入临界区的执行态进程立即放弃 CPU
答案:C
下图描述的协议要素是( )。

I. 语法
II. 语义
III. 时序
答案:C
下列关于虚电路网络的叙述中,错误的是( )。
答案:B
在下图所示的网络中,冲突域和广播域的个数分别是( )。

答案:C
假设主机甲采用停等协议向主机乙发送数据帧,数据帧长与确认帧长均为1000B,数据传输速率是10kbps,单项传播延时是200ms。则甲的最大信道利用率为( )。
答案:D
某IEEE 802.11无线局域网中,主机H与AP之间发送或接收CSMA/CA帧的过程如下图所示。在H或AP发送帧前所等待的帧间间隔时间(IFS)中,最长的是( )。

答案:A
若主机甲与主机乙已建立一条TCP连接,最大段长(MSS)为1KB,往返时间(RTT)为2ms,则在不出现拥塞的前提下,拥塞窗口从8KB增长到32KB所需的最长时间是( )。
答案:D
若主机甲与主机乙建立TCP连接时,发送的SYN段中的序号为1000,在断开连接时,甲发送给乙的FIN段中的序号为5001,则在无任何重传的情况下,甲向乙已经发送的应用层数据的字节数为( )。
答案:C
假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名服务器均只提供迭代查询服务;局域网内主机访问 Internet 上各服务器的往返时间(RTT)均为10ms,忽略其他各种时延。若主机 H 通过超链接 http://www.abc.com/index.html 请求浏览纯文本 Web 页 index.html,则从点击超链接开始到浏览器接收到 index.html 页面为止,所需的最短时间与最长时间分别是( )。

答案:D
定义三元组(a, b, c)(其中a, b, c均为正数)的距离 D = |a-b| + |b-c| + |c-a|。给定 3 个非空整数集合 S₁、S₂和S₃,按升序分别存储在 3 个数组中。设计一个尽可能高效的算法,计算并输出所有可能的三元组(a, b, c)(a∈S₁,b∈S₂,c∈S₃)中的最小距离。例如 S₁ = {-1, 0, 9},S₂ = {-25, -10, 10, 11},S₃ = {2, 9, 17, 30, 41},则最小距离为 2,相应的三元组为 (9, 10, 9)。要求:
1)给出算法的基本设计思想。
2)根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。
3)说明你所设计算法的时间复杂度和空间复杂度。
利用距离公式 D = |a-b| + |b-c| + |c-a| = 2 × (max(a,b,c) - min(a,b,c)),问题转化为求三个有序数组中三个数的最大值与最小值之差的最小值。采用三指针方法,分别指向三个数组的起始位置,每次计算当前三元组的距离并更新最小值,然后移动指向当前三个数中最小值的指针,以尝试减小差值。直到任一指针到达数组末尾,算法结束。
int abs(int a) { // 绝对值计算
if (a < 0) return -a;
else return a;
}
bool minjg(int a, int b, int c) { // 判断a是不是最小值
if (a <= b && a <= c) return true;
else return false;
}
int findMin(int A[], int n, int B[], int m, int C[], int p) {
int i = 0, j = 0, k = 0, D, Dmin = MAX_SIZE;
while (i < n && j < m && k < p && Dmin > 0) {
// 循环条件是下标i、j、k还在集合内,并且Dmin不为0
D = abs(A[i] - B[j]) + abs(B[j] - C[k]) + abs(A[i] - C[k]);
if (D < Dmin) Dmin = D;
if (minjg(A[i], B[j], C[k])) i++;
else if (minjg(B[j], C[k], A[i])) j++;
else k++;
}
return Dmin;
}若任一个字符的编码都不是其他字符编码的前缀,则称这种编码具有前缀特性。现有某字符集(字符个数≥2)的不等长编码,每个字符的编码均为二进制的 0、1 序列,最长为 L 位,且具有前缀特性。请回答下列问题:
1)哪种数据结构适宜保存上述具有前缀特性的不等长编码?
2)基于你所设计的数据结构,简述从 0/1 串到字符串的译码过程。
3)简述判定某字符集的不等长编码是否具有前缀特性的过程。
1)使用二叉树保存编码。每个编码对应一条从根到叶结点的路径,左、右分支分别表示 0、1,叶结点保存相应字符。
2)译码过程:从根节点开始,逐个读取 0/1 串的比特,根据比特值选择子节点(0 对应左子节点,1 对应右子节点),直到到达叶节点,输出对应字符;然后重置回根节点,重复此过程直到输入串结束。
3)判定过程同时也是构建二叉树的过程。初始时只有根结点,左右指针均为空。依次读入每个编码 C,从根开始按 C 的每一位沿相应分支向下;遇到空指针时创建新结点。处理过程中:
C 就到达已有叶结点,说明某个已有编码是 C 的前缀,不具有前缀特性;C 时一个新结点都没有创建,说明 C 是某个已有编码的前缀,也不具有前缀特性;C 的最后一位时创建新叶结点,才继续检查下一个编码。若所有编码均通过上述检查,则该字符集的编码具有前缀特性。
有实现 x×y 的两个 C 语言函数如下:
unsigned umul(unsigned x, unsigned y) { return x * y; }
int imul(int x, int y) { return x * y; }假定某计算机 M 中 ALU 只能进行加减运算和逻辑运算。请回答下列问题。
1)若 M 的指令系统中没有乘法指令,但有加法、减法和位移等指令,则在 M 上也能实现上述两个函数中的乘法运算,为什么?
2)若 M 的指令系统中有乘法指令,则基于 ALU、位移器、寄存器以及相应控制逻辑实现乘法指令时,控制逻辑的作用是什么?
3)针对以下三种情况:①没有乘法指令;②使用 ALU 和位移器实现乘法指令;③使用阵列乘法器实现乘法指令,函数 umul() 在哪种情况下执行时间最长?哪种情况下执行时间最短?说明理由。
4)n 位整数乘法指令可保存 2n 位乘积,当仅取低 n 位作为乘积时,结果可能溢出。当 n=32、x=231-1、y=2 时,带符号整数乘法指令和无符号整数乘法指令得到的 x× y 的 2n 位乘积分别是什么(用十六进制表示)?函数 umul() 和 imul() 的返回结果是否溢出?对于无符号整数乘法运算,当仅取乘积的低 n 位作为乘法结果时,如何用 2n 位乘积进行溢出判断?
(1)乘法可以通过加法和移位组成的循环程序实现,因此即使没有乘法指令也能完成两个函数中的乘法运算。
(2)控制逻辑用于控制循环次数,并控制每一步的加法和移位操作。
(3)情况①执行时间最长,情况③执行时间最短。①需要执行多条软件指令;②和③使用乘法指令,而③的阵列乘法器可在一个时钟周期内完成乘法。
(4)两种乘法指令得到的 64 位乘积均为 00000000FFFFFFFEH。
umul():不溢出;imul():溢出。无符号乘法只取低 n 位时,若 2n 位乘积的高 n 位全为 0,则不溢出;否则溢出。
假定主存地址为32位,按字节编址,指令Cache和数据Cache与主存之间均采用8路组相联映射方式,直写(Write Through)写策略和LRU替换算法,主存块大小为64B,数据区容量各为32KB。开始时Cache均为空。请回答下列问题。
1)Cache每一行中标记(Tag)、LRU位各占几位?是否有修改位?
2)有如下C语言程序段:
for (k = 0; k < 1024 ; k++)
s[k] = 2 * s[k];若数组s及其变量k均为int型,int型数据占4B,变量k分配在寄存器中,数组s在主存中的起始地址为0080 00C0H,则该程序段执行过程中,访问数组s的数据Cache缺失次数为多少?
3)若CPU最先开始的访问操作是读取主存单元0001 0003H中的指令,简要说明从Cache中访问该指令的过程,包括Cache缺失处理过程。
(1)主存地址共 32 位,组索引和块内地址各占 6 位,因此标记位占 32-6-6=20 位;8 路组相联需要 3 位 LRU 信息;指令 Cache 采用直写方式,不需要修改位。
(2)64次。
(3)首先将地址00010003H分解为标记、组索引(6位,值为0)和块内偏移(6位,值为3)。根据组索引0在指令Cache中找到对应的组,比较行标记,由于Cache为空,全部无效,缺失。缺失处理:访问主存,将该地址所在的块(起始地址00010000H,大小64B)加载到Cache中。在组0中根据LRU算法选择一个行(如第一个空闲行)填充数据,设置有效位和标记。最后,根据块内偏移3从该行取出指令返回CPU。
现有5个操作A、B、C、D和E,操作C必须在A和B完成后执行,操作E必须在C和D完成后执行,请使用信号量的wait()、signal()操作(P、V操作)描述上述操作之间的同步关系,并说明所用信号量及其初值。
(1) 设四个同步信号量 S_AC、S_BC、S_CE、S_DE,初值均为 0,分别描述 A→C、B→C、C→E、D→E 四个先后关系。
(2) 操作同步伪代码(wait/signal 即 P/V 操作):
S_AC = 0;
S_BC = 0;
S_CE = 0;
S_DE = 0;
cobegin {
A() {
A;
signal(S_AC);
}
B() {
B;
signal(S_BC);
}
C() {
wait(S_AC);
wait(S_BC);
C;
signal(S_CE);
}
D() {
D;
signal(S_DE);
}
E() {
wait(S_CE);
wait(S_DE);
E;
}
} coend(3) C 分别等待 A、B 发出的完成信号后才能执行;E 分别等待 C、D 发出的完成信号后才能执行。本题只有同步关系,没有互斥关系。
某32位系统采用基于二级页表的请求分页存储管理方式,按字节编址,页目录项和页表项长度均为4字节,虚拟地址结构如下所示。

某C程序中数组a[1024][1024]的起始虚拟地址为1080 0000H,数组元素占4字节,该程序运行时,其进程的页目录起始物理地址为0020 1000H,请回答下列问题。
1)数组元素a[1][2]的虚拟地址是什么?对应的页目录号和页号分别是什么?对应的页目录项的物理地址是什么?若该目录项中存放的页框号为00301H,则a[1][2]所在页对应的页表项的物理地址是什么?
2)数组a在虚拟地址空间中所占的区域是否必须连续?在物理地址空间中所占区域是否必须连续?
3)已知数组 a 按行优先方式存放,若分别按行遍历和按列遍历数组 a,则哪种遍历方式的局部性更好?
(1)
10801008H042H001H00201108H00301004H(2)数组 a 在虚拟地址空间中必须连续,在物理地址空间中可以不连续。
(3)按行遍历的局部性更好。
某校园网有两个局域网,通过路由器 R1、R2 和 R3 互联后接入 Internet,S1 和 S2 为以太网交换机。局域网采用静态 IP 地址配置,路由器部分接口以及各主机的 IP 地址如下图所示。

假设 NAT 转换表结构为

请回答下列问题:
1)为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置?
2)若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送,则 H2 发送 P 的源 IP 地址和目的 IP 地址分别是什么?经过 R3 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?
(1)在 R2 上配置静态 NAT 端口映射:
| 外网 IP 地址 | 外网端口号 | 内网 IP 地址 | 内网端口号 |
|---|---|---|---|
203.10.2.2 | 80 | 192.168.1.2 | 80 |
(2)
| 位置 | 源 IP 地址 | 目的 IP 地址 |
|---|---|---|
| H2 发送时 | 192.168.1.2 | 203.10.2.2 |
| R3 转发后 | 203.10.2.6 | 203.10.2.2 |
| R2 转发后 | 203.10.2.6 | 192.168.1.2 |