第 1 题
已知程序如下:
int S(int n) {
return (n <= 0) ? 0 : S(n - 1) + n;
}
void main() {
cout << S(1);
}
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。
查看答案与解析
正确答案:A
main(),S(1),S(0),故栈底到栈顶的信息依次是 main(),S(1),S(O) 。做题模式
作答方式
默认进入做题模式,仅包含可评分的选择题。提交试卷后统一评分并展示解析。
做题模式
当前试卷的选择题会集中在这里作答,提交前可随时修改答案,提交后统一查看结果与解析。
已知程序如下:
int S(int n) {
return (n <= 0) ? 0 : S(n - 1) + n;
}
void main() {
cout << S(1);
}
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。
正确答案:A
main(),S(1),S(0),故栈底到栈顶的信息依次是 main(),S(1),S(O) 。先序序列为 a,b,c,d 的不同二叉树的个数是()。
正确答案:B
下列选项给出的是从根分别到达两个叶结点路径上的权值序列,能属于同一棵哈夫曼树的是( )。
正确答案:D
现有一棵无重复关键字的平衡二叉树(AVL 树),对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是( )。
正确答案:D
设有向图 G=(V,E),顶点集 V={ , , , },边集 E={< , >,< , >,< , >,< , >}。若从顶点 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是()。
正确答案:D
画出该有向图图形如下:
采用图的深度优先遍历,共 5 种可能: < , , , >, < , , , >, < , , vi, >, < , , , >, < , , , >, 选 D。
求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(Kruskal)算法第 2 次选中但不是普里姆(Prim)算法(从 V4 开始)第 2 次选中的边是()。
正确答案:C
下列选项中,不能构成折半查找中关键字比较序列的是()。
正确答案:A
画出查找路径图,因为折半查找的判定树是一棵二叉排序树,看其是否满足二叉排序树的要求。
显然,选项 A 的查找路径不满足。
已知字符串 s 为 “abaabaabacacaabaabcc”,模式串 t 为 “abaabc”。采用 KMP 算法进行匹配,第一次出现“失配”(s[i] ≠ t[j])时,i = j = 5,则下次开始匹配时,i 和 j 的值分别是( )。
正确答案:C
由题中失配 s[i] ≠ s[j] 时,i = j = 5", 可知题中的主串和模式串 的位序都是从 0 开始的(要注意灵活应变)。按照 next 数组生成算法,对于 t 有:
| 编号 | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| t | a | b | a | a | b | b |
| next | -1 | 0 | 0 | 1 | 1 | 2 |
依据 KMP 算法 “当失配时,i 不变,j 回退到 next[j] 的位置并重新比较”,当失配 s[i] ≠ s[j]时,i=j=5, 由上表不难得出 next[j]=next[5]=2(位序从 0 开始)。从而最后结果应为 i=5(i 保持不变),j=2 。
下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是()。
正确答案:C
已知小根堆为 8,15,10,21,34,16,12,删除关键字 8 之后需重建堆,在此过程中,关键字之间的比较次数是()。
正确答案:C
删除 8 后,将 12 移动到堆顶,第一 次是 15 和 10 比较,第二次是 10 和 12 比较并交换,第三次还需比较 12 和 16, 故比较次数为 3 次。
希尔排序的组内排序采用的是()。
正确答案:A
计算机硬件能够直接执行的语言是( )。
I. 机器语言程序
II. 汇编语言程序
III. 硬件描述语言程序
正确答案:A
由 3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数( )。
正确答案:B
下列有关浮点数加减运算的叙述中,正确的是( )。
Ⅰ. 对阶操作不会引起阶码上溢或下溢
Ⅱ. 右规和尾数舍入都可能引起阶码上溢
Ⅲ. 左规时可能引起阶码下溢
Ⅳ. 尾数溢出时结果不一定溢出
正确答案:D
假定主存地址位数为 32 位,按字节编址,主存和 Cache 之间采用直接映射方式,主存块大小为 4 个字,每字 32 位,写操作时采用回写 (Write Back) 方式,则能存放 4K 字数据的 Cache 的总容量的位数至少是( )。
正确答案:C
直接映射的 地址结构 为:
主存字块标记 | 行号 | 块内地址
主存块大小为 4 个字,每字 32 位,因此块大小为:
。
计算机按字节编址,故块内地址占
位。
Cache 可存放 4K 字数据,块大小为 4 字,因此 Cache 行数为:
,
行号占
位。
主存地址位数为 32 位,块内地址占 4 位,行号占 10 位,
因此主存字块标记占
位。
写操作采用回写(Write Back)方式,每行标记字段包括:
18 位主存字块标记、1 位有效位、1 位脏位,
合计
位。
每行数据部分大小为 4 字 × 32 位 = 128 位。
Cache 总容量为:
假定编译器将赋值语句 “x=x+3;” 转换为指令 “add xaddr, 3”,其中 xaddr 是 x 对应的存储单元地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的 TLB,且 Cache 使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是( )。
正确答案:B
下列存储器中,在工作期间需要刷新的是( )。
正确答案:B
DRAM 芯片 使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。SDRAM 表示同步动态随机存储器。
B 选项 SDRAM 中 S 的意思是 synchronized 的,意思是同步 DRAM。
某计算机使用 4 体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是( )。
正确答案:D
本题考察 多体交叉存储器,每个访存地址对应的存储模块序号 (0, 1, 2, 3) 如下所示:
其中,模块序号 = 访存地址 % 存储器交叉模块数。
判断可能发生访存冲突的规则是:给定的访存地址在相邻的四次访问中出现在同一个存储模块内。据此,根据上表可知 8004 和 8000 对应的模块号都为 0,即表明这两次的访问出现在同一模块内且在相邻的访问请求中,满足发生冲突的条件。
下列有关总线定时的叙述中,错误的是( )。
正确答案:C
若磁盘转速为 7200rpm,平均寻道时间为 8ms,每个磁道包含 1000 个扇区,则访问一个扇区的平均存取时间大约是( )。
正确答案:B
在采用中断 I/O 方式控制打印输出的情况下,CPU 和打印控制接口中的 I/O 端口之间交换的信息不可能是( )。
正确答案:B
在 程序中断方式 中,CPU 和打印控制接口(I/O 端口)之间常见的交互信息包括:
所以 B 选项错误,主存地址属于内存地址空间,而不是 I/O 端口和控制接口之间直接交换的信息。
在中断 I/O 方式中:
因此,中断 I/O方式下不会在 CPU 和设备控制器之间交换主存地址。
内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的是( )。
正确答案:D
处理外部中断时,应该由操作系统保存的是( )。
正确答案:B
假定下列指令已装入指令寄存器,则执行时不可能导致 CPU 从用户态变为内核态(系统态)的是( )。
正确答案:C
下列选项中,会导致进程从执行态变为就绪态的事件是( )。
正确答案:D
若系统 S1 采用死锁避免方法,S2 采用死锁检测方法。下列叙述中,正确的是()。
Ⅰ、S1 会限制用户申请资源的顺序,而 S2 不会
Ⅱ、S1 需要进程运行所需的资源总量信息,而 S2 不需要
Ⅲ、S1 不会给可能导致死锁的进程分配资源,而 S2 会
正确答案:B
死锁处理 采用三种策略:死锁预防、死锁避免、死锁检测和解除。
死锁预防,采用破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,也就是限制了用户申请资源的顺序,故 I 的前半句属于死锁预防的范畴。
银行家算法是最著名的死锁避免算法,其中的最大需求矩阵 MAX 定义了每一个进程对 m 类资源的最大需求量,系统在执行安全性算法中都会检查此次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。
在死锁的检测和解除中,在系统为进程分配资源时不采取任何措施,但提供死锁的检测和解除的手段。故 II、III 正确。
系统为某进程分配了 4 个页框,该进程已访问的页号序列为 2, 0, 2, 9, 3, 4, 2, 8, 2, 4, 8, 4, 5。若进程要访问的下一页的页号为 7,依据 LRU 算法,应淘汰页的页号是( )。
正确答案:A
在系统内存中设置磁盘缓冲区的主要目的是( )。
正确答案:A
在文件的索引节点中存放直接索引指针 10 个,一级和二级索引指针各 1 个。磁盘块大小为 1KB,每个索引指针占 4 个字节。若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为 1234 和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是( )。
正确答案:B
本题考察 混合索引:
其中 10 个直接索引指针指向的数据块大小为 10×1KB = 10KB。
每个索引指针占 4B,则每个磁盘块可存放 1KB/4B = 256 个索引指针,一级索引指针指向的数据块大小为 256×1KB = 256KB,二级索引指针指向的数据块大小为 256×256×1KB = 216KB = 64MB。
按字节编址,偏移量为 1234 时,因 1234B < 10KB,则由直接索引指针可得到其所在的磁盘块地址。文件的索引结点已在内存中,则地址可直接得到,故仅需 1 次访盘即可。
偏移量为 307400 时,因 10KB+256KB < 307400B < 64MB,可知该偏移量的内容在二级索引指针所指向的某个磁盘块中,索引结点已在内存中,故先访盘 2 次得到文件所在的磁盘块地址,再访盘 1 次即可读出内容,故共需 3 次访盘。
在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是( )。
正确答案:C
文件系统用 位图法 表示磁盘空间的分配情况,位图存于磁盘的 32~127 号块中,每个盘块占 1024 个字节,盘块和块内字节均从 0 开始编号。假设要释放的盘块号为 409612,则位图中要修改的位所在的盘块号和块内字节序号分别是( )。
正确答案:C
某硬盘有 200 个磁道(最外侧磁道号为 0),磁道访问请求序列为:130,42,180,15,199,当前磁头位于第 58 号磁道并从外侧向内侧移动。按照 SCAN 调度方法处理完上述请求后,磁头移过的磁道数是( )。
正确答案:C
通过 POP3 协议接收邮件时,使用的传输层服务类型是( )。
正确答案:D
使用两种编码方案对比特流 01100111 进行编码的结果如下图所示,编码 1 和编码 2 分别是( )。
正确答案:A
主机甲通过 128 kbps 卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播延迟为 250 ms,帧长为 1000 字节。不考虑确认帧的开销,为使链路利用率不小于 80%,帧序号的比特数至少是( )。
正确答案:B
不考虑确认帧的开销,一个帧发送完后经过一个单程传播时延到达接收方,再经过一个单程传播时延发送方收到应答,从而继续发送。要使得传输效率最大化,就是不用等确认也可以连续发送多个帧。设连续发送 n 个帧,一个帧的发送时延为 1000B/128kbps= 62.5ms。对于采用滑动窗口协议的流水线机制,我们有如下公式:链路利用率 = (n×发送时延)/(RTT+ 发送时延)。
依题意,有 (n×62.5ms)/(62.5ms+250msx2)≥80%, 得 n≥7.2, 帧序号的比特数 K 需要满足 。从而,帧序号的比特数至少为 4。
下列关于 CSMA/CD 协议的叙述中,错误的是( )。
正确答案:B
下列关于交换机的叙述中,正确的是( )。
正确答案:A
某路由器的路由表如下表所示:
| 目的网络 | 下一跳 | 接口 |
|---|---|---|
| 169.96.40.0/23 | 176.1.1.1 | S1 |
| 169.96.40.0/25 | 176.2.2.2 | S2 |
| 169.96.40.0/27 | 176.3.3.3 | S3 |
| 0.0.0.0/0 | 176.4.4.4 | S4 |
若路由器收到一个目的地址为 169.96.40.5 的 IP 分组,则转发该 IP 分组的接口是( )。
正确答案:C
主机甲和主机乙新建一个 TCP 连接,甲的拥塞控制初始阈值为 32 KB,甲向乙始终以 MSS = 1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配 16 KB 接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发生超时的情况下,经过 4 个 RTT 后,甲的发送窗口是( )。
正确答案:A
某浏览器发出的 HTTP 请求报文如下( )。
GET /index .html HTTP/1.1
Host: www.test.edu.cn
Connection: close
Cookie: 123456
下列叙述中,错误的是
正确答案:C
| 1 | A | 2 | B | 3 | D | 4 | D | 5 | D |
| 6 | C | 7 | A | 8 | C | 9 | C | 10 | C |
| 11 | A | 12 | A | 13 | B | 14 | D | 15 | C |
| 16 | B | 17 | B | 18 | D | 19 | C | 20 | B |
| 21 | B | 22 | D | 23 | B | 24 | C | 25 | D |
| 26 | B | 27 | A | 28 | A | 29 | B | 30 | C |
| 31 | C | 32 | C | 33 | D | 34 | A | 35 | B |
| 36 | B | 37 | A | 38 | C | 39 | A | 40 | C |
已知程序如下:
int S(int n) {
return (n <= 0) ? 0 : S(n - 1) + n;
}
void main() {
cout << S(1);
}
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。
正确答案:A
正确答案:Amain(),S(1),S(0),故栈底到栈顶的信息依次是 main(),S(1),S(O) 。
先序序列为 a,b,c,d 的不同二叉树的个数是()。
正确答案:B
正确答案:B下列选项给出的是从根分别到达两个叶结点路径上的权值序列,能属于同一棵哈夫曼树的是( )。
正确答案:D
正确答案:D现有一棵无重复关键字的平衡二叉树(AVL 树),对其进行中序遍历可得到一个降序序列。下列关于该平衡二叉树的叙述中,正确的是( )。
正确答案:D
正确答案:D设有向图 G=(V,E),顶点集 V={ , , , },边集 E={< , >,< , >,< , >,< , >}。若从顶点 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是()。
正确答案:D
正确答案:D画出该有向图图形如下:
采用图的深度优先遍历,共 5 种可能: < , , , >, < , , , >, < , , vi, >, < , , , >, < , , , >, 选 D。
求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(Kruskal)算法第 2 次选中但不是普里姆(Prim)算法(从 V4 开始)第 2 次选中的边是()。
正确答案:C
正确答案:C下列选项中,不能构成折半查找中关键字比较序列的是()。
正确答案:A
正确答案:A画出查找路径图,因为折半查找的判定树是一棵二叉排序树,看其是否满足二叉排序树的要求。
显然,选项 A 的查找路径不满足。
已知字符串 s 为 “abaabaabacacaabaabcc”,模式串 t 为 “abaabc”。采用 KMP 算法进行匹配,第一次出现“失配”(s[i] ≠ t[j])时,i = j = 5,则下次开始匹配时,i 和 j 的值分别是( )。
正确答案:C
正确答案:C由题中失配 s[i] ≠ s[j] 时,i = j = 5", 可知题中的主串和模式串 的位序都是从 0 开始的(要注意灵活应变)。按照 next 数组生成算法,对于 t 有:
| 编号 | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| t | a | b | a | a | b | b |
| next | -1 | 0 | 0 | 1 | 1 | 2 |
依据 KMP 算法 “当失配时,i 不变,j 回退到 next[j] 的位置并重新比较”,当失配 s[i] ≠ s[j]时,i=j=5, 由上表不难得出 next[j]=next[5]=2(位序从 0 开始)。从而最后结果应为 i=5(i 保持不变),j=2 。
下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是()。
已知小根堆为 8,15,10,21,34,16,12,删除关键字 8 之后需重建堆,在此过程中,关键字之间的比较次数是()。
正确答案:C
正确答案:C删除 8 后,将 12 移动到堆顶,第一 次是 15 和 10 比较,第二次是 10 和 12 比较并交换,第三次还需比较 12 和 16, 故比较次数为 3 次。
希尔排序的组内排序采用的是()。
正确答案:A
正确答案:A计算机硬件能够直接执行的语言是( )。
I. 机器语言程序
II. 汇编语言程序
III. 硬件描述语言程序
正确答案:A
正确答案:A由 3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数( )。
正确答案:B
正确答案:B下列有关浮点数加减运算的叙述中,正确的是( )。
Ⅰ. 对阶操作不会引起阶码上溢或下溢
Ⅱ. 右规和尾数舍入都可能引起阶码上溢
Ⅲ. 左规时可能引起阶码下溢
Ⅳ. 尾数溢出时结果不一定溢出
正确答案:D
正确答案:D假定主存地址位数为 32 位,按字节编址,主存和 Cache 之间采用直接映射方式,主存块大小为 4 个字,每字 32 位,写操作时采用回写 (Write Back) 方式,则能存放 4K 字数据的 Cache 的总容量的位数至少是( )。
正确答案:C
正确答案:C直接映射的 地址结构 为:
主存字块标记 | 行号 | 块内地址
主存块大小为 4 个字,每字 32 位,因此块大小为:
。
计算机按字节编址,故块内地址占
位。
Cache 可存放 4K 字数据,块大小为 4 字,因此 Cache 行数为:
,
行号占
位。
主存地址位数为 32 位,块内地址占 4 位,行号占 10 位,
因此主存字块标记占
位。
写操作采用回写(Write Back)方式,每行标记字段包括:
18 位主存字块标记、1 位有效位、1 位脏位,
合计
位。
每行数据部分大小为 4 字 × 32 位 = 128 位。
Cache 总容量为:
假定编译器将赋值语句 “x=x+3;” 转换为指令 “add xaddr, 3”,其中 xaddr 是 x 对应的存储单元地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的 TLB,且 Cache 使用直写(Write Through)方式,则完成该指令功能需要访问主存的次数至少是( )。
正确答案:B
正确答案:B下列存储器中,在工作期间需要刷新的是( )。
正确答案:B
正确答案:BDRAM 芯片 使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。SDRAM 表示同步动态随机存储器。
B 选项 SDRAM 中 S 的意思是 synchronized 的,意思是同步 DRAM。
某计算机使用 4 体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是( )。
正确答案:D
正确答案:D本题考察 多体交叉存储器,每个访存地址对应的存储模块序号 (0, 1, 2, 3) 如下所示:
其中,模块序号 = 访存地址 % 存储器交叉模块数。
判断可能发生访存冲突的规则是:给定的访存地址在相邻的四次访问中出现在同一个存储模块内。据此,根据上表可知 8004 和 8000 对应的模块号都为 0,即表明这两次的访问出现在同一模块内且在相邻的访问请求中,满足发生冲突的条件。
下列有关总线定时的叙述中,错误的是( )。
若磁盘转速为 7200rpm,平均寻道时间为 8ms,每个磁道包含 1000 个扇区,则访问一个扇区的平均存取时间大约是( )。
正确答案:B
正确答案:B在采用中断 I/O 方式控制打印输出的情况下,CPU 和打印控制接口中的 I/O 端口之间交换的信息不可能是( )。
正确答案:B
正确答案:B在 程序中断方式 中,CPU 和打印控制接口(I/O 端口)之间常见的交互信息包括:
所以 B 选项错误,主存地址属于内存地址空间,而不是 I/O 端口和控制接口之间直接交换的信息。
在中断 I/O 方式中:
因此,中断 I/O方式下不会在 CPU 和设备控制器之间交换主存地址。
内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的是( )。
正确答案:D
正确答案:D处理外部中断时,应该由操作系统保存的是( )。
假定下列指令已装入指令寄存器,则执行时不可能导致 CPU 从用户态变为内核态(系统态)的是( )。
下列选项中,会导致进程从执行态变为就绪态的事件是( )。
若系统 S1 采用死锁避免方法,S2 采用死锁检测方法。下列叙述中,正确的是()。
Ⅰ、S1 会限制用户申请资源的顺序,而 S2 不会
Ⅱ、S1 需要进程运行所需的资源总量信息,而 S2 不需要
Ⅲ、S1 不会给可能导致死锁的进程分配资源,而 S2 会
正确答案:B
正确答案:B死锁处理 采用三种策略:死锁预防、死锁避免、死锁检测和解除。
死锁预防,采用破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,也就是限制了用户申请资源的顺序,故 I 的前半句属于死锁预防的范畴。
银行家算法是最著名的死锁避免算法,其中的最大需求矩阵 MAX 定义了每一个进程对 m 类资源的最大需求量,系统在执行安全性算法中都会检查此次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。
在死锁的检测和解除中,在系统为进程分配资源时不采取任何措施,但提供死锁的检测和解除的手段。故 II、III 正确。
系统为某进程分配了 4 个页框,该进程已访问的页号序列为 2, 0, 2, 9, 3, 4, 2, 8, 2, 4, 8, 4, 5。若进程要访问的下一页的页号为 7,依据 LRU 算法,应淘汰页的页号是( )。
在系统内存中设置磁盘缓冲区的主要目的是( )。
正确答案:A
正确答案:A在文件的索引节点中存放直接索引指针 10 个,一级和二级索引指针各 1 个。磁盘块大小为 1KB,每个索引指针占 4 个字节。若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为 1234 和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是( )。
正确答案:B
正确答案:B本题考察 混合索引:
其中 10 个直接索引指针指向的数据块大小为 10×1KB = 10KB。
每个索引指针占 4B,则每个磁盘块可存放 1KB/4B = 256 个索引指针,一级索引指针指向的数据块大小为 256×1KB = 256KB,二级索引指针指向的数据块大小为 256×256×1KB = 216KB = 64MB。
按字节编址,偏移量为 1234 时,因 1234B < 10KB,则由直接索引指针可得到其所在的磁盘块地址。文件的索引结点已在内存中,则地址可直接得到,故仅需 1 次访盘即可。
偏移量为 307400 时,因 10KB+256KB < 307400B < 64MB,可知该偏移量的内容在二级索引指针所指向的某个磁盘块中,索引结点已在内存中,故先访盘 2 次得到文件所在的磁盘块地址,再访盘 1 次即可读出内容,故共需 3 次访盘。
在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是( )。
文件系统用 位图法 表示磁盘空间的分配情况,位图存于磁盘的 32~127 号块中,每个盘块占 1024 个字节,盘块和块内字节均从 0 开始编号。假设要释放的盘块号为 409612,则位图中要修改的位所在的盘块号和块内字节序号分别是( )。
正确答案:C
正确答案:C某硬盘有 200 个磁道(最外侧磁道号为 0),磁道访问请求序列为:130,42,180,15,199,当前磁头位于第 58 号磁道并从外侧向内侧移动。按照 SCAN 调度方法处理完上述请求后,磁头移过的磁道数是( )。
正确答案:C
正确答案:C通过 POP3 协议接收邮件时,使用的传输层服务类型是( )。
使用两种编码方案对比特流 01100111 进行编码的结果如下图所示,编码 1 和编码 2 分别是( )。
正确答案:A
正确答案:A主机甲通过 128 kbps 卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播延迟为 250 ms,帧长为 1000 字节。不考虑确认帧的开销,为使链路利用率不小于 80%,帧序号的比特数至少是( )。
正确答案:B
正确答案:B不考虑确认帧的开销,一个帧发送完后经过一个单程传播时延到达接收方,再经过一个单程传播时延发送方收到应答,从而继续发送。要使得传输效率最大化,就是不用等确认也可以连续发送多个帧。设连续发送 n 个帧,一个帧的发送时延为 1000B/128kbps= 62.5ms。对于采用滑动窗口协议的流水线机制,我们有如下公式:链路利用率 = (n×发送时延)/(RTT+ 发送时延)。
依题意,有 (n×62.5ms)/(62.5ms+250msx2)≥80%, 得 n≥7.2, 帧序号的比特数 K 需要满足 。从而,帧序号的比特数至少为 4。
下列关于 CSMA/CD 协议的叙述中,错误的是( )。
正确答案:B
正确答案:B下列关于交换机的叙述中,正确的是( )。
正确答案:A
正确答案:A某路由器的路由表如下表所示:
| 目的网络 | 下一跳 | 接口 |
|---|---|---|
| 169.96.40.0/23 | 176.1.1.1 | S1 |
| 169.96.40.0/25 | 176.2.2.2 | S2 |
| 169.96.40.0/27 | 176.3.3.3 | S3 |
| 0.0.0.0/0 | 176.4.4.4 | S4 |
若路由器收到一个目的地址为 169.96.40.5 的 IP 分组,则转发该 IP 分组的接口是( )。
正确答案:C
正确答案:C主机甲和主机乙新建一个 TCP 连接,甲的拥塞控制初始阈值为 32 KB,甲向乙始终以 MSS = 1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配 16 KB 接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发生超时的情况下,经过 4 个 RTT 后,甲的发送窗口是( )。
正确答案:A
正确答案:A某浏览器发出的 HTTP 请求报文如下( )。
GET /index .html HTTP/1.1
Host: www.test.edu.cn
Connection: close
Cookie: 123456
下列叙述中,错误的是
正确答案:C
正确答案:C用单链表保存 个整数,结点的结构为,且 ( 为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中 data 的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表 head 如下:
则删除结点后的 head 为:
要求:
(1) 给出算法的基本设计思想。
(2) 使用 C 或 C++ 语言,给出单链表结点的数据类型定义。
(3) 根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。
(4) 说明你所设计算法的时间复杂度和空间复杂度。
1)算法的基本设计思想
算法的核心思想是用空间换时间。使用辅助数组记录链表中已出现的数值,从而只需对链表进行一趟扫描。
因为 ,故辅助数组 的大小为 ,各元素的初值均为 0。依次扫描链表中的各 结点,同时检查 的值,如果为 ,则保留该结点,并令 ;否则,将该结点从 链表中删除。
2)使用 C 语言描述的单链表结点的数据结构定义:
3)算法实现
void RemoveElements(ListNode *head, int n) {
// 数组充当哈希表
int hash[n+1];
for (int i = 0; i <= n; i++) {
// 0 表示没有命中
hash[i] = 0;
}
// 当遍历的结点
ListNode *q = head->link;
// 先前的结点
ListNode *p = head;
while (q != NULL) {
// 绝对值已经出现过
if (hash[abs(q->data)] == 1) {
// 删除该节点
p->next = q->next;
q = p->next;
} else {
// 设置哈希表
hash[abs(q->data)] = 1;
q = q->next;
p = p->next;
}
}
}
【评分说明】若考生设计的算法满足题目的功能要求且正确,则酌情给分。
4)参考答案所给算法的时间复杂度为 O(m),空间复杂度为 O(n)。
【评分说明】若考生所估计的时间复杂度和空间复杂度与考生实现的算法一致,可给分。
已知含有 个顶点的图 如下图所示。
请回答下列问题:
(1) 写出图 的邻接矩阵 (行、列下标均从 开始)。
(2) 求 ,矩阵 中位于 0 行 3 列元素值的含义是什么?
(3) 若已知具有 个顶点的图的邻接矩阵为 ,则 中非零元素的含义是什么?
1)图 的邻接矩阵如下:
2) 如下:
0 行 3 列的元素值 3 表示从顶点 0 到顶点 3 之间长度为 2 的路径共有 3 条。
3) ( ) 中位于 行 列( , )的非零元素的含义是:图中从顶点 到顶点 长度为 的路径条数。
某 16 位计算机的主存按字节编址,存取单位为 16 位;采用 16 位定长指令字格式;CPU 采用单总线结构,主要部分如下图所示。
图中 R0~R3 为通用寄存器;T 为暂存器;SR 为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3 种操作,控制信号为 SRop,SR 的输出由信号 SRout 控制;ALU 可实现直送 A(mova)、A 加 B(add)、A 减 B(sub)、A 与 B(and)、A 或 B(or)、非 A(not)、A 加 1(inc)这 7 种操作,控制信号为 ALUop。
注:已补充内总线到 MAR 的箭头和内总线到 IR 的箭头。
请回答下列问题。
(1) 图中哪些寄存器是程序员可见的?为何要设置暂存器 T?
(2) 控制信号 ALUop 和 SRop 的位数至少各是多少?
(3) 控制信号 SRout 所控制部件的名称或作用是什么?
(4) 端点①~⑨中,哪些端点须连接到控制部件的输出端?
(5) 为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。
(6) 为什么二路选择器 MUX 的一个输入端是 2?
1)程序员可见寄存器为通用寄存器(R0~R3)和 PC。因为采用了单总线结构,因此,若无暂存器 T,则 ALU 的 A、B 端口会同时获得两个相同的数据,使数据通路不能正常工作。
【评分说明】回答通用寄存器(R0~R3),给分;回答 PC,给分;部分正确,酌情给分。设置暂存器 T 的原因若回答用于暂时存放端口 A 的数据,则给分;其他答案,酌情给分。
2)ALU 共有 7 种操作,故其操作控制信号 ALUop 至少需要 3 位;移位寄存器有 3 种操作,其操作控制信号 SRop 至少需要 2 位。
3)信号 SRout 所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。
【评分说明】只要回答出三态门或者控制连接/断开,即给分。
4)端口 ①、②、③、⑤、⑧ 须连接到控制部件输出端。
【评分说明】答案包含④、⑥、⑦、⑨中任意一个,不给分;答案不全酌情给分。
5)连线 1,⑥→⑨:连线 2,⑦→④。
【评分说明】回答除上述连线以外的其他连线,酌情给分。
6)因为每条指令的长度为 16 位,按字节编址,所以每条指令占用 2 个内存单元,顺序执行时,下条指令地址为 (PC)+2。MUX 的一个输入端为 2,可便于执行 (PC)+2 操作。
题 43 中描述的计算机,其部分指令执行过程的控制信号如题 44 图 a 所示。
该机指令格式如题 44 图 b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为 0 和 1,通用寄存器 R0~R3 的编号分别为 0、1、2 和 3。
请回答下列问题。
(1) 该机的指令系统最多可定义多少条指令?
(2) 假定 inc、shl 和 sub 指令的操作码分别为 01H、02H 和 03H,则以下指令对应的机器代码各是什么?
inc R1; // (R1)+1→R1
shl R2, R1; // (R1)<<1→R2
sub R3, (R1), R2; // ((R1))–(R2)→R3
(3) 假设寄存器 X 的输入和输出控制信号分别为 Xin 和 Xout,其值为 1 表示有效,为 0 表示无效(例如,PCout=1 表示 PC 内容送总线);存储器控制信号为 MEMop,用于控制存储器的读 (read) 和写 (write) 操作。写出题 44 图 a 中标号①~⑧处的控制信号或控制信号的取值。
(4) 指令 sub R1,R3,(R2) 和 inc R1 的执行阶段至少各需要多少个时钟周期?
1)指令操作码有 7 位,因此最多可定义 条指令。
2)各条指令的机器代码分别如下:
①“incR1”的机器码为 0000001001000000,即 0240H。
②“shlR2,R1”的机器码为 0000010010001000,即 0488H。
③“subR3,(R1),R2”的机器码为 0000011011101010,即 06EAH。
3)各标号处的控制信号或控制信号取值如下: ①0;②mov;③mova;④left;⑤read;⑥sub;⑦mov;⑧Srout
【评分说明】答对两个给分。
4)指令 subR1, R3, (R2) 的执行阶段至少包含 4 个时钟周期;指令 incR1 的执行阶段至少包含 2 个时钟周期。
有 A、B 两人通过信箱进行辩论,每个人都从自己的信箱中取得对方的问题,将答案和向对方提出的新问题组成一个邮件放人对方的信箱中。假设 A 的信箱最多放 个邮件,B 的信箱最多放 个邮件。初始时 A 的信箱中有 个邮件 ( ),B 的的信箱中有 个邮件 ( )。辩论者每取出一个邮件,邮件数减 1。A 和 B 两人的操作过程描述如下:
A {
while (true) {
从 A 的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入 B 的信箱;
}
}
B {
while (true) {
从 B 的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入 A 的信箱;
}
}
当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。请添加必要的信号量和 P、V(或 wait、signal)操作,以实现上述过程的同步。要求写出完整的过程,并说明信号量的含义和初值。
semaphore A_full = x; // A 信箱中已有的邮件个数
semaphore A_empty = M - x; // A 信箱还可以放多少个邮件
semaphore B_full = y; // B 信箱中已有的邮件个数
semaphore B_empty = N - y; // B 信箱中还能放多少个邮件
semaphore A_mutex = 1; // 互斥访问 A 信箱
semaphore B_mutex = 1; // 互斥访问 B 信箱
A() {
while (1) {
P(A_full);
P(A_mutex);
从A信箱中取出一个邮件;
V(A_mutex);
V(A_empty);
回答问题并提出新问题;
P(B_empty);
P(B_mutex);
将信件放入B邮箱;
V(B_mutex);
V(B_full);
}
}
B() {
while (1) {
P(B_full);
P(B_mutex);
从B信箱中取出一个邮件;
V(B_mutex);
V(B_empty);
回答问题并提出新问题;
P(A_empty);
P(A_mutex);
将信件放入A邮箱;
V(A_mutex);
V(A_full);
}
}
【评分说明】 1)每对信号量的定义及初值正确,给分。
2)每个互斥信号量的 P、V 操作使用正确,各给分。
3)每个同步信号量的 P、V 操作使用正确,各给分。
4)其他答案酌情给分。
某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:
| 页目录号(10 位) | 页表索引(10 位) | 页内偏移量(12 位) |
请回答下列问题。
(1) 页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?
(2) 假定页目录项和页表项均占 4 个字节,则进程的页目录和页表共占多少页?要求写出计算过程。
(3) 若某指令周期内访问的虚拟地址为 0100 0000H 和 0111 2048H,则进行地址转换时共访问多少个二级页表?要求说明坪由。
1)在分页存储管理方式 中,将用户程序的地址空间分为若干固定大小的区域,称为“页”或“页面”。相应地,将内存空间分为若干物理块或页框(frame),页和页框大小相同。因此,页和页框大小均为 B = KB。进程的虚拟地址空间大小为 页。
2) (页目录所占页数)+ (页表所占页数)= 页。
3)需要访问一个二级页表。因为虚拟地址 01000000H 和 01112048H 的最高 10 位的值都是 4,页目录号相同,访问的是同一个二级页表。
【评分说明】用其他方法计算,思路和结果正确同样给分。
某网络拓扑如题 47 图所示,其中路由器内网接口、DHCP 服务器、WWW 服务器与主机 1 均采用静态 IP 地址配置,相关地址信息见图中标注;主机 2~主机 N 通过 DHCP 服务器动态获取 IP 地址等配置信息。
(1) DHCP 服务器可为主机 2~主机 N 动态分配 IP 地址的最大范围是什么?主机 2 使用 DHCP 协议获取 IP 地址的过程中,发送的封装 DHCP Discover 报文的 IP 分组的源 IP 地址和目的 IP 地址分别是什么?
(2) 若主机 2 的 ARP 表为空,则该主机访问 Internet 时,发出的第一个以太网帧的目的 MAC 地址是什么?封装主机 2 发往 Internet 的 IP 分组的以太网帧的目的 MAC 地址是什么?
(3) 若主机 1 的子网掩码和默认网关分别配置为 255.255.255.0 和 111.123.15.2,则该主机是否能访问 WWW 服务器?是否能访问 Internet?请说明理由。
1)DHCP 服务器可为 主机 2 ~ 主机 N 动态分配 IP 地址的最大范围是:111.123.15.5 ~ 111.123.15.254;主机 2 发送的封装 DHCP Discover 报文的 IP 分组的源 IP 地址和目的 IP 地址分别是 0.0.0.0 和 255.255.255.255。
2)主机 2 发出的第一个以太网帧的目的 MAC 地址是 ff-ff-ff-f-ff-ff,封装主机 2 发往 Internet 的 P 分组的以太网帧的目的 MAC 地址是 00-a1-a1-a1-a1-a1。
3)主机 1 能访问 WWW 服务器,但不能访问 Internet。.由于主机 1 的子网掩码配置正确而默认网关 IP 地址被错误地配置为 111.123.15.2(正确 IP 地址是 111.123.15.1),所以主机 1 可以访问在同一个子网内的 WWW 服务器,但当主机 1 访问 Internet 时,主机 1 发出的 IP 分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。