2020 年 408 真题

本节正在编写中,敬请期待。

选择题

数据结构

1

将一个 10*10 对称矩阵 M 的上三角部分的元素 mij(1≤i≤j≤10),按列优先存入 C 语言的一维数组 N 中, 元素 m7,2 在 N 中的下标是( )

正确答案: C

上三角矩阵按列优先存储,先存储仅 1 个元素的第一列,再存储有 2 个元素的第二列,以此类推。加 7,2 位于左下角,对应右上角的元素为加 2, 7 , 在加 2,7 之前存有

第 1 列:1

第 2 列:2

第 6 列:6

第 7 列: 1

前面共存有 1 + 2 + 3 + 4 + 5 + 6 + 1 = 2 2 个 元 素 (数组下标范围为 0〜21), 注意数组下标 从 0 开始,故加工 7 在数组 N 中的下标为 2 2 , 即加 7,2 在数组 N 中的下标为 22。

2

对空栈 S 进行 Push 和 Pop 操作入栈序列 a,b,c,d,e 经过 Push,Push,Pop,Push,Pop,Push,Push,Pop 操作后得到的出栈序列是:(  )

正确答案: D

按题意,出入栈操作的过程如下:

操作栈内元素出栈元素
Pusha
Pusha b
Popab
Pusha c
Popac
Pusha d
Pusha d e
Popa de

故出栈序列为 c,e 。

3

对与任意一棵高度为 5 且有 10 个节点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元数量至少是:( )

正确答案: A
二叉树采用顺序存储时,用数组下标来表示结点之间的父子关系。对于一棵高度为 5 的二 叉树,为了满足任意性,其 1〜 5 层的所有结点都要被存储起来,即考虑为一棵高度为 5 的满二叉树,总共需要存储单元的数量为 1 + 2 + 4 + 8 + 16 = 31。
4

已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a,b,c,d,e,f,后根遍历序列是 b,a,d,f,e,c 则 T 的后遍历序列是:( )

正确答案: C

森林 F 的先根遍历序列对应其二叉树 T 的先序遍历序列,森林 F 的中根遍历序列对应其二叉树 T 的中序遍历序列。即 T 的先序遍历序列为 a,b,c,d,e,f,中序遍历序列为 b,a,d,f,e,c。根据二叉树 T 的先序序列和中序序列可以唯一确定它的结构,构造过程如下:

a
b
dfec
b
b
c
dfc
b
b
c
d
fe
b
b
c
d
e
d

可以得到二叉树 T 的后序序列为 b,f,e,d,c,a。

5

下列给定的关键字输入序列中,不能生成如下二叉排序树的是:( )

4
2
5
1
3
正确答案: B
6

修改递归方式实现的图的深度优先搜索(DFS)算法,将输出(访问)定点信息的语句移到退出递归前(即执行输出语句后立刻退出递归)。采用修改后的算法遍历有向无环图 G,若输出结果中包含 G 中的全部顶点, 则输出的顶点序列是 G 的:( )

正确答案: B
DFS 是一个递归算法,在遍历过程中,先访问的顶点被压入栈底。设在图中有顶点 $v_i$,它有后继顶点 $v_j$,即存在边<$v_i$, $v_j$>。根据 DFS 的规则,$v_i$ 入栈后,必先遍历完其后继顶点后 $v_j$ 才会出栈,也就是说 $v_i$ 会在 $v_j$ 之后出栈,在如题所指的过程中,$v_i$ 在 $v_j$ 后打印。由于 $v_i$ 和 $v_j$ 具有任意性,从上面的规律可以看出,输出顶点的序列是逆拓扑有序序列。
7

已知无向图 G 如下所示,使用克鲁斯卡尔(Kruskal)算法求图 G 的最小生成树,加入到最小生成树中的边依次是:( )

a
c
b
d
e
f
12
20
18
6
5
7
14
10
9
11
正确答案: A

a
c
b
d
e
f
12
20
18
6
5
7
14
10
9
11
a
c
b
d
e
f
12
20
18
6
5
7
14
10
9
11
a
c
b
d
e
f
12
20
18
6
5
7
14
10
9
11
a
c
b
d
e
f
12
18
6
5
7
14
10
9
11
a
c
b
d
e
f
12
18
6
5
7
14
10
9
11
第一步
选取 < b, f >
第二步
选取 < b, d >
第三步
选取 < a, e >
第四步
选取 < c, e >
第五步
选取 < b, e >

8

若使 AOE 网估算工程进度则下列叙述中正确的是:( )

正确答案: B
关键路径是指权值之和最大而非边数最多的路径,故选项 A 错误。选项 B 正确,是关键路径的概念。无论是存在一条还是存在多条关键路径,增加任一关键活动的时间都会延长工程的工期,因为关键路径始终是权值之和最大的那条路径,选项 C 错误。仅有一条关键路径时,减少关键活动的时间会缩短工程的工期;存在多条关键路径时,缩短一条关键活动的时间不一定会缩短工程的工期,缩短了路径长度的那条关键路径不一定还是关键路径,选项 D 错误。
9

下列关于大根堆(至少含 2 个元素)的叙述中正确的是:( )

I.可以将堆看成一颗完全二叉树; II、可采用顺序存储方式保存堆;

III、可以将堆看成一棵二叉排序树; IV、堆中的次大值一定在根的下一层。

正确答案: C
堆是一棵完全树,采用一维数组存储,故 I 正确,正确。大根堆只要求根结点值大于左右孩子值,并不要求左右孩子值有序, 错误。堆的定义是递归的,所以其左右子树也是大根堆,所以堆的次大值一定是其左孩子或右孩子,IV 正确。
10

依次将关键字 5,6,9,13,8,2,12,15 插入初始为空的 4 阶 B 树后,根节点中包含的关键字是:( )

正确答案: B

一 个 4 阶 B 树的任意非叶结点至多含有加-1 = 3 个关键字,在关键字依次插入的过程中,会导致结点的不断分裂,插入过程如下所示。

5    6    9
5    6    9    13
9    13
5
6
8    9    13
2    5
6
8    9    12    13
2    5
6
12    13
2    5
6    9
8
12    13    15
2    5
6    9
8
插入 5, 6, 9
插入 13
分裂
插入 8, 2
插入 12
分裂
插入 15

得到根结点包含的关键字为 6, 9。

11

对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率更高,其原因是:( )

I、直接插入排序过程中元素之间的比较次数更少

II、直接插入排序过程中所需要的辅助空间更少

III、直接插入排序过程中元素的移动次数更少

正确答案: A
考虑较极端的情况,对于有序数组,直接插入排序的比较次数为 $n-1$, 简单选择排序的比 较次数始终为 $1 + 2 + \cdots + n-1 = n(n-1)/2$, I 正确。两种排序方法的辅助空间都是 $O(1)$ , 无 差别,II 错误。初始有序时,移动次数均为 0 ;对于通常情况,直接插入排序每趟插入都 需要依次向后挪位,而简单选择排序只需与找到的最小元素交换位置,后者的移动次数少 很多,III 错误。

组成原理

12

下列给出的部件中其位数(宽度)一定与机器字长相同的是:

I、ALU Ⅱ、指令寄存器

III、通用寄存器 IV、浮点寄存器

正确答案: B
机器字长是指 CPU 内部用于整数运算的数据通路的宽度。 CPU 内部数据通路是指 CPU 内 部的数据流经的路径及路径上的部件,主要是 CPU 内部进行数据运算、存储和传送的部件, 这些部件的宽度基本上要一致才能相互匹配。因此,机器字长等于 CPU 内部用于整数运算 的运算器位数和通用寄存器宽度。
13

已知带符号整数用补码表示,float 型数据用 IEEE 754 标准表示,假定变量 x 的类型只能是 int 或 float。 当 x 的机器数为 C800 0000H 时,x 的值可能是:( )

正确答案: A

C800 0000H = 1100 1000 0000 0000 0000 0000 0000 0000

将其转换为对应的 float 或 int:

  1. 为 float 型时,尾数隐藏最高位 1 ,数符为 1 表示负数,阶码 $1001 0000 = 2^{7} + 2^{4} = 128 + 16$ , 再减去偏置值 127 得到 17 ,算出 x 值为 $-2^{17}$。
  2. 为 int 型时,带符号补码,为负数,数值部分取反加 1 ,得 011 1000 0000 0000 0000 0000 0000 0000 ,算出 x 值为 $-7 \times 2^{27}$ 。
14

在按字节编址,采用小端方式的 32 位计算机中,按边界对齐方式为以下 C 语言结构型变量 a 分配存储空间。

struct record{
    short x1;
    int x2;
} a;

若 a 的首地址为 2020FE00H,a 的成员变量 x2 的机器数为 12340000H,则其中 34H 所在存储单元的地址是:

正确答案: D
15

下列关于 TLB 和 Cache 的叙述中,错误的是( )。

正确答案: D
Cache 由 SRAM 组成;TLB 通常由相联存储器组成,也可由 SRAM 组成。DRAM 需要不 断刷新,性能偏低,不适合组成 TLB 和 Cacheo 选 项 A 、B 和 C 都是 TLB 和 Cache 的特点。
16

某计算机采用 16 位定长指令字格式,操作码位数和寻址方式位数固定,指令系统有 48 条指令,支持直接、间接、立即、相对 4 种寻址方式,单地址指令中直接寻址方式可寻址范围是:( )

正确答案: A
48 条指令需要 6 位操作码字段 ($2^5 < 48 < 2^6$ ), 4 种寻址方式需要 2 位寻址特征位 ($4 = 2^2$), 还剩 16 - 6 - 2 = 8 位作为地址码,故直接寻址范围为 0 ~ 255 。注意,主存地址不能为负。
17

下列给出的处理器类型中理想情况下 CPI 为 1 的是:

I、单周期 CPU; II、多周期 CPU;

III、基本流水线 CPU; IV 超标量流水线 CPU

正确答案: B
CPI 表示执行指令所需的时钟周期数。对于一个程序或一台机器来说,其 CPI 指执行该程 序或机器指令集中的所有指令所需的平均时钟周期数。对于单周期 CPU,令指令周期= 时 钟周期,CPI=1, I 正确。对于多周期 CPU, CPU 的执行过程分成几个阶段,每个阶段用 一个时钟去完成,每种指令所用的时钟数可以不同,CPI > 1 , II 错误。对于基本流水线 CPU, 让每个时钟周期流出一条指令,CPI = 1, III 正确。超标量流水线 CPU 在每个时钟周期内 并发执行多条独立的指令,每个时钟周期流出多条指令,CPI < 1, IV 错误。
18

下列关于“自陷”(Trap,也称陷阱)的叙述中错误的是:

正确答案: A
自陷是一种内部异常,A 错误。在 80x86 中,用于程序调试的“断点设置”功能是通过“自 陷”方式实现的,选 项 B 正确。执行到自陷指令时,无条件或有条件地自动调出操作系统 内核程序进行执行,选 项 C 正确。CPU 执 行 “陷阱指令”后,会自动地根据不同“陷阱” 类型进行相应的处理,然后返回到“陷阱指令”的下一条指令执行,选 项 D 正确。
19

QPI 总线是一种点对点全工双周同步串行总线,总线上的设备可同时接收和发送信息,每个方向可同时传输 20 位信息(16 位数据+4 位校验位),每个 QPI 数据包有 80 位信息,分 2 个时钟周期传送,每个时钟周期传递 2 次,因此 QPI 总线带宽为每秒传送次数2B2。若 QPI 时钟频率为 2.4GHz,则总线带宽为:

正确答案: C

每个时钟周期传送 2 次,故每秒传送的次数= 时钟频率 x2 = 2.4Gx2/s。

总线带宽 =每秒传送次数 x2Bx2 = 2.4Gx2x2Bx2/s=19.2GB/s。

题中已给出总线带宽公式,降低了难度。公式中的“ x2B” 是因为每次传输 16 位数据,“ x2”

是因为采用点对点全双工总线,两个方向可同时传输信息。

20

下列事件中属于外部中断事件的是:

I、访存时缺页;

II、定时器延时;

III、网络数据包到达选项暂无

正确答案: C
访存时缺页属于内部异常,I 错误;定时器到时描述的是时钟中断,属于外部中断,II 正确; 网络数据包到达描述的是 CPU 执行指令以外的事件,属于外部中断,III 正确。
21

外部中断包括不可屏蔽中断(NMI)和可屏蔽中断,下列关于外部中断的叙述中错误的是:

正确答案: B
由 C P U 内部产生的异常称为内中断,内中断都是不可屏蔽中断。通过中断请求线 INTR 和, N M L 从 CPU 外部发出的中断请求为外中断,通 过 INTR 信号线发出的外中断是可屏蔽中 断,而通过 N M I 信号线发出的是不可屏蔽中断。不可屏蔽中断不受中断标志位的影响,即 使在关中断的情况下也会被响应,选 项 A 正确。不可屏蔽中断的处理优先级最高,任何时 候只要发生不可屏蔽中断,都要中止现行程序的执行,转到不可屏蔽中断处理程序执行, 选 项 C 正确。C PU 响应中断需要满足 3 个条件:①中断源有中断请求;② CPU 允许中断 及开中断;③一条指令执行完毕,且没有更紧迫的任务。故选项 B 错误。
22

若设备采用周期挪用 DMA 方式进行输入输出,每次 DMA 传送的数据块大小为 512 字节,相应的 I/O 接口中有一个 32 位数数据缓冲寄存器,对于数据输入过程,下列叙述中错误的是:

正确答案: C
周期挪用法由 D M A 控制器挪用一个或几个主存周期来访问主存,传送完一个数据字后立 即释放总线,是一种单字传送方式,每个字传送完后 C P U 可以访问主存,选 项 C 错误。 停 止 CPU 访存法则是指在整个数据块的传送过程中,使 CPU 脱离总线,停止访问主存。

操作系统

23

若多个进程共享同一个文件 F,则下列叙述中,正确的是( )。

正确答案: B
多个进程可同时以“读 ”或 “写”方式打开文件,操作系统并不保证写操作的互斥性,进 程可通过系统调用对文件加锁,保 证 互斥写(读者-写者问题),选 项 A 错误。整个系统只 有一个系统打开文件表,同一个文件打开多次只需改变引用计数,选项 B 正确。用户进程 的打开文件表关于同一个文件不一定相同,例如读写指针位置不一定相同,选 项 C 错误。 进程关闭文件时,文件的引用计数减 1 , 引用计数变为 0 时才删除系统打开文件表中的表 项,选 项 D 错误。
24

下列选项中,支持文件长度可变、随机访问的磁盘存储空间分配方式是()。

正确答案: A
索引分配支持变长的文件,同时可以随机访问文件的指定数据块,选项 A 正确。链接分配 不支持随机访问,需要依靠指针依次访问,选项 B 错误。连续分配的文件长度固定,不支持 可变文件长度(连续分配的文件长度虽然也可变,但是需大量移动数据,代价较大,相比之 下不太合适),选 项 C 错误。动态分区分配是内存管理方式,不是磁盘空间的管理方式,选 项 D 错误。
25

下列与中断相关的操作中,由操作系统完成的是()。

Ⅰ、保存被中断程序的中断点

Ⅱ、提供中断服务

Ⅲ、初始化中断向量表

Ⅳ、保存中断屏蔽字

正确答案: D
当 CPU 检测到中断信号后,由硬件自动保存被中断程序的断点(即程序计数器 PC), I 错 误。之后,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(各 中断向量统一存放在中断向量表中,该表由操作系统初始化,i n 正确)。接下来开始执行 中断服务程序,保 存 PSW、保存中断屏蔽字、保存各通用寄存器的值,并提供与中断信号 对应的中断服务,中断服务程序属于操作系统内核,I I 和 IV 正确。
26

下列与进程调度有关的因素中,在设计多级反馈队列调度算法时需要考虑的是( )。

Ⅰ. 就绪队列的数量

Ⅱ. 就绪队列的优先级

Ⅲ. 各就绪队列的调度算法

Ⅳ. 进程在就绪队列间的迁移条件

正确答案: D
级反馈队列调度算法需要综合考虑优先级数量、优先级之间的转换规则等,就绪队列的 数量会影响长进程的最终完成时间,I 正确;就绪队列的优先级会影响进程执行的顺序,II 正确;各就绪队列的调度算法会影响各队列中进程的调度顺序,m 正确;进程在就绪队列 中的迁移条件会影响各进程在各队列中的执行时间,IV 正确。
27

某系统中有 A、B 两类资源各 6 个,t 时刻资源分配及需求情况如下表所示。

进程A 已分配数量B 已分配数量C 已分配数量
P1234
P2213
P3123

t 时刻安全性检测结果是( )。

正确答案: B
首先求出需求矩阵: 由 Allocation 得知当前 Available 为(1, 0)。由需求矩阵可知,初始只能满足 P 2 的需求,选 项 A 错误。P 2 释放资源后 Available 变为(3, 1 ) , 此时仅能满足 P 1 的需求,选 项 C 错误。 P 1 释放资源后 Available 变为(5, 4 ) , 可以满足 P 3 的需求,得到的安全序列为 P2, Pl, P3, 选 项 B 正确,选 项 D 错误。
28

下列因素中,影响请求分页系统有效(平均)访存时间的是( )。

Ⅰ. 缺页率

Ⅱ. 磁盘读写时间

Ⅲ. 内存访问时间

Ⅳ. 执行缺页处理程序的 CPU 时间

正确答案: D
I 影响缺页中断的频率,缺页率越高,平均访存时间越长;I I 和 IV 影响缺页中断的处理时 间,中断处理时间越长,平均访存时间越长;皿影响访问页表和访问目标物理地址的时间, 故 I、II、III 和 IV 均正确。
29

下列关于父进程与子进程的叙述中,错误的是( )。

正确答案: B
父进程与子进程当然可以并发执行,选 项 A 正确。父进程可与子进程共享一部分资源,但 不能共享虚拟地址空间,在创建子进程时,会为子进程分配资源,如虚拟地址空间等,选 项 B 错误。临界资源一次只能为一个进程所用,选 项 D 正确。进程控制块 P C B 是进程存 在的唯一标志,每个进程都有自己的 P C B ,选 项 C 正确。
30

对于具备设备独立性的系统,下列叙述中,错误的是( )。

正确答案: D
设备可视为特殊文件,选项 A 正确。用户使用逻辑设备名来访问物理文件,有利于设备独 立性,选 项 B 正确。通过逻辑设备名访问物理设备时,需要建立逻辑设备和物理设备之间 的映射关系,选 项 C 正确。应用程序按逻辑设备名访问设备,再经驱动程序的处理来控制 物理设备,若更换物理设备,则只需更换驱动程序,而无须修改应用程序,选 项 D 错误。
31

某文件系统的目录项由文件名和索引结点号构成。若每个目录项长度为 64 字节,其中 4 字节存放索引结点号,60 字节存放文件名。文件名由小写英文字母构成,则该文件系统能创建的文件数量的上限为( )。

正确答案: B
在 总 长 为 6 4 字节的目录项中,索 引 结点占 4 字节,即 3 2 位 。不同目录下的文件的文件名 可以相同,所以在考虑系统创建最多文件数量时,只需考虑索引结点的个数,即创建文件 数 量 上 限 = 索引结点数量上限。整个系统中最多存储 2 3 2 个索引结点,因此整个系统最多 可 以 表 示 2 3 2 个文件,选 项 B 正确。
32

下列准则中,实现临界区互斥机制必须遵循的是()。

Ⅰ、两个进程不能同时进入临界区

Ⅱ、允许进程访问空闲的临界资源

Ⅲ、进程等待进入临界区的时间是有限的

Ⅳ、不能进入临界区的执行态进程立即放弃 CPU

正确答案: C
实现临界区互斥需满足多个准则。“忙则等待”准则,即两个进程不能同时访问临界区,I 正确。 “空闲让进”准 则 ,若临界区空闲,则允许其他进程访问,II 正确。 “有限等待” 准则,即进程应该在有限时间内访问临界区,III 正确。I、II 和 m 是互斥机制必须遵循的 原则。I V 是 “让权等待”准则,不一定非得实现,如皮特森算法。

计算机网络

33

下图描述的协议要素是(  )

发送方
接收方
时间

I、语法; II、语义; III、时序

正确答案: C
协议由语法、语 义 和 时 序 (又称同步)三部分组成。语法规定了通信双方彼此“如何讲”, 即规定了传输数据的格式。语义规定了通信双方彼此“讲什么”,规定了所要完成的功能, 如通信双方要发出什么控制信息、执行的动作和返回的应答。时序规定了信息交流的次序。 由图可知发送方与接收方依次交换信息,体现了协议三要素中的时序要素。
34

下列关于虚电路网络的叙述中错误的是:

正确答案: B
虚电路服务需要有建立连接过程,每个分组使用短的虚电路号,属于同一条虚电路的分组 按照同一路由进行转发,分组到达终点的顺序与发送顺序相同,可以保证有序传输,不需 要为每条虚电路预分配带宽。
35

下图所示的网络冲突域和广播域的个数分别是:

路由器
以太网交换机
100 BastT 集线器
正确答案: C
网络层设备路由器可以隔离广播域和冲突域;链路层设备普通交换机只能隔离冲突域;物 理层设备集线器、中继器既不能隔离冲突域又不能隔离广播域。因此,题 中 共 有 2 个广播 域 、4 个冲突域。
36

假设主机采用停-等协议向主机乙发送数据帧,数据帧长与确认帧长均为 1000B。数据传输速率是 10kbps, 单项传播延时是 200ms。则甲的最大信道利用率:

正确答案: D

发送数据帧和确认帧的时间均为 t= 1000x8b/10kbps = 800ms。

发送周期 T = 800ms + 200ms + 800ms + 200ms = 2000ms。 信道利用率= t/T x 100% = 800/2000x100% = 40%。

37

某 IEEE 802.11 无线局域网中主机 H 与 AP 之间发送或接收 CSMA/CA 帧的过程如下图所示,在 H 或 AP 发送帧前所等待的帧间间隔时间(IFS)中最长的是:

RTS
CTS
DATA
ACK
IFS1
IFS3
IFS2
IFS4
时间
正确答案: A

为了尽量避免碰撞,802.11 规定,所有站在完成发送后,必须等待一段很短的时间(继续 监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space, IFS)。帧间间隔的长 短取决于该站要发送的帧的类型。IEEE 802.11 使 用 3 种帧间间隔:

DIFS (分布式协调 IFS):最长的 I F S , 优先级最低,用于异步帧竞争访问的时延。

PIFS (点协调 IFS):中等长度的 I F S , 优先级居中,在 PC F 操作中使用。

SIFS (短 IFS):最短的 I F S , 优先级最高,用于需要立即响应的操作。

网络中的控制帧及所接收数据的确认帧都采用 SIFS 作为发送之前的等待时延。当结点要发 送数据帧时,载波监听到信道空闲时,需等待 DIFS 后发送 RTS 预约信道,图中 IFS1 对应 的是帧间间隔 D I F S ,时间最长,图中 IFS2、IFS3、IFS4 对 应 SIFS。

38

若主机甲与主机乙已建立一条 TCP 连接,最大段长(MSS)为 1KB,往返时间(RTT)为 2ms,则在 不出现拥塞的前提下,拥塞窗口从 8kB 增长到 20KB 所需的最长时间是:

正确答案: D
由于慢开始门限 ssthresh 可以根据需求设置,为了求拥塞窗口从 8KB 增长到 32KB 所需的 最长时间,可以假定慢开始门限小于等于 8 K B ,只要不出现拥塞,拥塞窗口就都是加法增 大,每经历一个传输轮次(RTT), 拥塞窗口逐次加 1 ,所需最长时间为(3 2 -8 )x2ms = 48 m s。
39

若主机甲与主机乙建立 TCP 连接时发送的 SYN 段中的序号为 1000,在断开连接时,甲发送给乙的 FIN 段中的序号为 5001,则在无任何重传的情况下,甲向乙已经发送的应用层数据的字节数为:

正确答案: C
甲与乙建立 TC P 连接时发送的 SYN 段中的序号为 1 0 0 0 ,则在数据传输阶段所用的起始序 号 为 1001;断开连接时,甲发送给乙的 F IN 段中的序号为 5 0 0 1 ,在无任何重传的情况下, 甲向乙已经发送的应用层数据的字节数为 5001- 1001 =4000。
40

假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名的服务器均只提供迭代查询服务; 局域网内主机访问 Internet 上各服务器的往返时间 ( RTT ) 均 为 10ms,忽略其他各种时延 , 若主机 H 通过超链接 http://www.abc.com/index.html,请求浏览纯文本 Web 页 index.html,则从点击 超链接开始到浏览器接收到 index.html 页面为止,所需最短、最长时间分别是:

路由器
本地域名服务器
局域网
H
www.abc.com
Internet
com 顶级
域名服务器
根域名
服务器
abc.com
域名服务器
正确答案: D
题中 RTT 均为局域网内主机(主 机 H 、本地域名服务器)访 问 Internet 上各服务器的往返 时间,且忽略其他时延,因此主机 H 向本地域名服务器的查询时延忽略不计。最短时间: 本 地 主 机 中 有 该 域 名 到 I P 地 址 对 应 的 记 录 ,因 此 不 需 要 D N S 查 询 时 延 ,直接和 www.abc.com 服务器建立 TC P 连接再进行资源访问,TC P 连接建立需要 1 个 R T T ,接着发 送访问请求并收到服务器资源响应需要 1 个 R T T ,共 计 2 个 R T T ,即 20ms;最长时间:本 地主机递归查询本地域名服务器(延时忽略),本地服务器依次迭代查询根域名服务器、com 顶级域名服务器、abc.com 域名服务器,共 3 个 R T T ,查询到 I P 地址后,将该映射返回给 主 机 H , 主 机 H 和 www.abc.com 服务器建立 TC P 连接再进行资源访问,共 2 个 R T T ,因 此最长时间需要 3 + 2 = 5 个 R T T ,即 50ms。

解答题

数据结构

41

定义三元组 $(a,b,c)$($a,b,c$ 均为正数)的距离 $D = |a-b|+|b-c|+|c-a|$。给定 $3$ 个非空整数集合 $S_1,S_2,S_3$,按升序分别存储在 $3$ 个数组中。请设计一个尽可能高效的算法,计算并输出所有可能的三元组 $(a,b,c)$ ($a \in S_1, b \in S_2, c \in S_3$)中的最小距离。例如 $S_1 = {-1,0,9}, S_2={-25,-10,10,11},S_3 = {2,9,17,30,41}$。则最小距离为 $2$,相应的三元组为 $(9, 10, 9)$。

要求:

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

(2)根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释;

(3)说明你所设计算法的时间复杂度和空间复杂度

42

任一个字符的编码都不是其它字符编码的前缀,则称这种编码具有前缀特性。现有某字符集(字符个数≥2)的不等长编码,每个字符的编码均为二进制的 0、1 序列,最长为 L 位,且具有前缀特性。请回答下列问题:

⑴ 哪种数据结构适宜保存上述具有前缀特性的不等长编码?

⑵ 基于你所设计的数据结构,简述从 0/1 串到字符串的译码过程。

⑶ 简述判定某字符集的不等长编码是否具有前缀特性的过程。

组成原理

43

有实现 $x \times 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 = 2^{31}−1$ 、$y = 2$ 时,带符号整数乘法指令和无符号整数乘法指令得到的 $x \times y$ 的 $2n$ 位乘积分别是什么(用十六进制表示)?此时函数 umul()imul() 的返回结果是否溢出?对于无符号整数乘法运算,当仅取乘积的低位作为乘法结果时,如何用 $2n$ 位乘积进行溢出判断

44

假定主存地址为 32 位,按字节编址,指令 Cache 和数据 Cache 与主存之间均采用 8 路组相联映射方式,直写(WriteThrough)写策略和 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 在主存中的起始地址为 008000C0H,则该程序段执行过程中,访问数组 s 的数据 Cache 缺失次数为多少?

(3) 若 CPU 最先开始的访问操作是读取主存单元 00010003H 中的指令,简要说明从 Cache 中访问该指令的过程,包括 Cache 缺失处理过程。

操作系统

45

现有 5 个操作 A、B、C、D 和 E,操作 C 必须在 A 和 B 完成后执行,操作 E 必须在 C 和 D 完成后执行,请使用信号量的 wait()、signal()操作(P、V 操作)描述上述操作之间的同步关系,并说明所用信号量及其初值。

46

某 32 位系统采用基于二级页表的请求分页存储管理方式,按字节编址,页目录项和页表项长度均为 4 字节,虚拟地址结构如下所示。

某 C 程序中数组 a[1024][1024]的起始虚拟地址为 1080 0000H,数组元素占 4 字节,该程序运行时,其进程的页目录起始物理地址为 0020 1000H,请回答下列问题。

(1) 数组元素 a[1][2]的虚拟地址是什么?对应的页目录号和页号分别是什么?对应的页目录项的物理地址是什么?若该目录项中存放的页框号为 00301H,则 a[1][2]所在页对应的页表项的物理地址是什么?

(2) 数组 a 在虚拟地址空间中所占区域是否必须连续?在物理地址空间中所占区域是否必须连续?

(3) 已知数组 a 按行优先方式存放,若对数组 a 分别按行遍历和按列遍历,则哪一种遍历方式的局部性更好?

计算机网络

47

某校园网有两个局域网,通过路由器 R1、R2 和 R3 互联后接入 Internet, S1 和 S2 为 以太网交换机,局域网采用静态 IP 地址配置,路由器部分接口以及各主机的 IP 地址如图所示:

Internet
203.10.2.5/30
203.10.2.1/30
203.10.2.2/30
192.168.1.1
NAT
NAT
203.10.2.6/30
192.168.1.1
S1
S2
web 服务器
H1
192.168.1.2
192.168.1.3
H2
H3
192.168.1.2
192.168.1.3
R1
R2
R3

假设 NAT 转换表结构为:

IP 地址
端口号
IP 地址
端口号
外网
内网

请回答下列问题:

1)为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置?

2)若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送,则 H2 发送 P 的源 IP 地址和目的 IP 地址分别是?经过 R3 转发后,P 的源 IP 地 址和目的 IP 地址分别是?经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是?