2021-01
已知头指针 h 指向一个带头结点的非空单循环链表,结点结构为
[data|next]
其中 next 是指向直接后继结点的指针,p 是尾指针,q 是临时指针。现要删除该链表的第一个元素,正确的语句序列是( )。
2021 全国硕士研究生入学统一考试
当前显示 47 道题
已知头指针 h 指向一个带头结点的非空单循环链表,结点结构为
[data|next]
其中 next 是指向直接后继结点的指针,p 是尾指针,q 是临时指针。现要删除该链表的第一个元素,正确的语句序列是( )。
已知初始为空的队列 Q 的一端仅能进行入队操作,另外一端既能进行入队操作又能进行出队操作。若 Q 的入队序列是 1, 2, 3, 4, 5,则不能得到的出队序列是( )。
已知二维数组 A 按行优先方式存储,每个元素占用 1 个存储单元。若元素 A[0][0] 的存储地址是 100,A[3][3] 的存储地址是 220,则元素 A[5][5] 的存储地址是( )。
某森林 F 对应的二叉树为 T,若 T 的先序遍历序列是 a, b, d, c, e, g, f,中序遍历序列是 b, d, a, e, g, c, f,则 F 中树的棵数是( )。
若某二叉树有 5 个叶结点,其权值分别为 10, 12, 16, 21, 30,则其最小的带权路径长度(WPL)是( )。
给定平衡二叉树如下图所示,插入关键字 23 后,根中的关键字是( )。

给定如下有向图,该图的拓扑有序序列的个数是( )。

使用 Dijkstra 算法求下图中从顶点 1 到其余各顶点的最短路径,将当前找到的从顶点 1 到顶点 2,3,4,5 的最短路径长度保存在数组 dist 中,求出第二条最短路径后,dist 中的内容更新为( )。

在一棵高度为 3 的 3 阶 B 树中,根为第 1 层,若第 2 层中有 4 个关键字,则该树的结点个数最多是( )。
设数组 S[] = {93, 946, 372, 9, 146, 151, 301, 485, 236, 327, 43, 892},采用最低位优先(LSD)基数排序将 S 排列成升序序列。第 1 趟分配、收集后,元素 372 之前、之后紧邻的元素分别是( )。
将关键字 6,9,1,5,8,4,7 依次插入到初始为空的大根堆 H 中,得到的 H 是( )。
2017 年公布的全球超级计算机 TOP 500 排名中,我国“神威 · 太湖之光”超级计算机蝉联第一,其浮点运算速度为 93.0146 PFLOPS,说明该计算机每秒钟内完成的浮点操作次数约为( )。
已知带符号整数用补码表示,变量 x, y, z 的机器数分别为 FFFDH, FFDFH, 7FFCH,下列结论中,正确的是( )。
下列数值中,不能用 IEEE 754 浮点格式精确表示的是( )。
某计算机的存储器总线中有 24 位地址线和 32 位数据线,按字编址,字长为 32 位。如果 00 0000H~3F FFFFH 为 RAM 区,那么需要 512K×8 位的 RAM 芯片数为( )。
若计算机主存地址为 32 位,按字节编址,Cache 数据区大小为 32KB,主存块大小为 32B,采用直接映射方式和回写(Write Back)策略,则 Cache 行的位数至少是( )。
下列寄存器中,汇编语言程序员可见的是( )。
Ⅰ. 指令寄存器 Ⅱ. 微指令寄存器 Ⅲ. 基址寄存器 Ⅳ. 标志/状态寄存器
下列关于数据通路的叙述中,错误的是( )。
下列关于总线的叙述中,错误的是( )。
下列选项中,不属于 I/O 接口的是( )。
异常事件在当前指令执行过程中进行检测,中断请求则在当前指令执行后进行检测。下列事件中,相应处理程序执行后,必须回到当前指令重新执行的是( )。
下列是关于多重中断系统中CPU响应中断的叙述,其中错误的是( )。
下列指令中,只能在内核态执行的是( )。
下列操作中,操作系统在创建新进程时,必须完成的是( )。
Ⅰ. 申请空白的进程控制块
Ⅱ. 初始化进程控制块
Ⅲ. 设置进程状态为执行态
下列内核的数据结构或程序中,分时系统实现时间片轮转调度需要使用的是( )。
Ⅰ. 进程控制块
Ⅱ. 时钟中断处理程序
Ⅲ. 进程就绪队列
Ⅳ. 进程阻塞队列
某系统中磁盘的磁道数为200(0~199),磁头当前在184号磁道上。用户进程提出的磁盘访问请求对应的磁道号依次为184,187,176,182,199。若采用最短寻道时间优先调度算法(SSTF)完成磁盘访问,则磁头移动的距离(磁道数)是( )。
下列事件中,可能引起进程调度程序执行的是( )。
Ⅰ. 中断处理结束
Ⅱ. 进程阻塞
Ⅲ. 进程执行结束
Ⅳ. 进程的时间片用完
某请求分页存储系统的页大小为4KB,按字节编址。系统给进程P分配2个固定的页框,并采用改进型Clock置换算法,进程P页表的部分内容如下表所示。
| 页号 | 页框号 | 存在位<br>1:存在<br>0:不存在 | 访问位<br>1:访问<br>0:未访问 | 修改位<br>1:修改<br>0:未修改 |
|---|---|---|---|---|
| … | … | … | … | … |
| 2 | 20H | 0 | 0 | 0 |
| 3 | 60H | 1 | 1 | 0 |
| 4 | 80H | 1 | 1 | 1 |
| … | … | … | … | … |
若 P 访问虚拟地址为 02A01H 的存储单元,则经地址变换后得到的物理地址是( )。
在采用三级页表的分页系统中,CPU页表基址寄存器中的内容是( )。
若目录dir下有文件file1,则为删除该文件内核不必完成的工作是( )。
若系统中有n(n≥2)个进程,每个进程均需要使用某类临界资源2个,则系统不会发生死锁所需的该类资源总数至少是( )。
下列选项中,通过系统调用完成的操作是( )。
在TCP/IP参考模型中,由传输层相邻的下一层实现的主要功能是( )。
若下图为一段差分曼彻斯特编码信号波形,则其编码的二进制位串是( )。

现将一个IP网络划分为3个子网,若其中一个子网是192.168.9.128/26,则下列网络中,不可能是另外两个子网之一的是( )。
若路由器向MTU=800B的链路转发一个总长度为1580B的IP数据报(首部长度为20B)时,进行了分片,且每个分片尽可能大,则第2个分片的总长度字段和MF标志位的值分别是( )。
某网络中的所有路由器均采用距离向量路由算法计算路由。若路由器E与邻居路由器A,B,C和D之间的直接链路距离分别是8,10,12和6,且E收到邻居路由器的距离向量如下表所示,则路由器E更新后的到达目的网络Net1~Net4的距离分别是( )。

若客户首先向服务器发送FIN段请求断开TCP连接,则当客户收到服务器发送的FIN段并向服务器发送了ACK段后,客户的TCP状态转换为( )。
若大小为12B的应用层数据分别通过1个UDP数据报和1个TCP段传输,则该UDP数据报和TCP段实现的有效载荷(应用层数据)最大传输效率分别是( )。
设主机甲通过TCP向主机乙发送数据,部分过程如下图所示。甲在t₀时刻发送一个序号seq=501,封装200B数据的段,在t₁时刻收到乙发送的序号seq=601、确认序号ack_seq=501,接收窗口rcvwnd=500B的段,则甲在未收到新的确认段之前,可以继续向乙发送的数据序号范围是( )。

已知无向连通图G由顶点集V和边集E组成,|E|>0,当G中度为奇数的顶点个数为不大于2的偶数时,G存在包含所有边且长度为|E|的路径(称为EL路径)。设图G采用邻接矩阵存储,类型定义如下:
typedef struct {
int numVertices, numEdges; // 图的定义
char VerticesList[MAXV]; // 顶点表。MAXV为已定义常量
int Edge[MAXV][MAXV]; // 邻接矩阵
} MGraph;请设计算法 int IsExistEL(MGraph G),判断 G 是否存在 EL 路径,若存在,则返回1,否则返回0。要求:
1)给出算法的基本设计思想。
2)根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释。
3)说明你所设计算法的时间复杂度和空间复杂度。

小程序中我的-账号中心-隐私与账号可绑定网页端账号
(1)基本设计思想:统计图中度数为奇数的顶点个数。若该个数为0或2,则存在包含所有边且长度为|E|的路径(即欧拉路径),返回1;否则返回0。
(2)算法描述(C/C++语言):
int IsExistEL(MGraph G) {
int degree, i, j, count = 0;
for (i = 0; i < G.numVertices; i++) {
degree = 0; // 初始化记录度的变量
for (j = 0; j < G.numVertices; j++) {
degree = degree + G.Edge[i][j]; // 记录各点的度
}
if (degree % 2 != 0)
count++; // 度为奇数的顶点计数
}
if (count == 0 || count == 2) // 度为奇数的点数量是0或2
return 1;
else
return 0;
}(3)时间复杂度:O(n²),其中n为顶点数(numVertices)。空间复杂度:O(1),仅使用常数额外空间。
已知某排序算法如下:
void cmpCountSort(int a[],int b[],int n)
{ int i,j,*count;
count=(int *)malloc(sizeof(int)*n); //C++语言:count=new int[n];
for(i=0;i<n;i++) count[i]=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]) count[j]++;
else count[i]++;
for(i=0;i<n;i++) b[count[i]]= a[i];
free(count); //C++语言:delete count;
}请回答下列问题。
1)若有 int a[] = {25,-10,25,10,11,19},b[6];,则调用 cmpCountSort(a,b,6) 后数组 b 中的内容是什么?
2)若 a 中含有 n 个元素,则算法执行过程中,元素之间的比较次数是多少?
3)该算法是稳定的吗?若是,则阐述理由;否则,修改为稳定排序算法。

小程序中我的-账号中心-隐私与账号可绑定网页端账号
1) 调用 cmpCountSort(a, b, 6) 后,数组 b 的内容为 {-10, 10, 11, 19, 25, 25}。
2) 算法执行过程中,元素之间的比较次数为 n(n-1)/2。
3) 该算法不是稳定的。
理由:原数组中相同的元素(如两个 25)在排序后相对顺序发生了改变(第一个 25 出现在第二个 25 之后)。
修改为稳定排序算法的方法:在比较 a[i] 和 a[j] 时,当两者相等时,应根据下标 i 和 j 的大小来决定增加 count[i] 还是 count[j]。例如,可修改比较逻辑为:
if (a[i] < a[j] || (a[i] == a[j] && i < j))
count[j]++;
else
count[i]++;假定计算机 M 字长为 16 位,按字节编址,连接 CPU 和主存的系统总线中地址线为 20 位、数据线为 8 位,采用 16 位定长指令字,指令格式及其说明如下:

其中,op1~op3 为操作码,rs、rt 和 rd 为通用寄存器编号,R[r] 表示寄存器 r 的内容,imm 为立即数,target 为转移目标的形式地址。请回答下列问题。
1)ALU 的宽度是多少位?可寻址主存空间大小为多少字节?指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)分别应有多少位?
2)R 型格式最多可定义多少种操作?I 型和 J 型格式总共最多可定义多少种操作?通用寄存器最多有多少个?
3)假定 op1 为 0010 和 0011 时,分别表示带符号整数减法和带符号整数乘法指令,则指令 01B2H 的功能是什么(参考上述指令功能说明的格式进行描述)?若 1、2、3 号通用寄存器当前内容分别为 B052H、0008H、0020H,则分别执行指令 01B2H 和 01B3H 后,3 号通用寄存器内容各是什么?各自结果是否溢出?
4)若采用 I 型格式的访存指令中 imm(偏移量)为带符号整数,则地址计算时应对 imm 进行零扩展还是符号扩展?
5)无条件转移指令可以采用上述哪种指令格式?

小程序中我的-账号中心-隐私与账号可绑定网页端账号
(1)ALU 宽度为 16 位;可寻址主存空间为 220 B,即 1 MB;IR 为 16 位,MAR 为 20 位,MDR 为 8 位。
(2)R 型格式最多定义 16 种操作;I 型和 J 型格式总共最多定义 63 种操作;通用寄存器最多 4 个。
(3)
01B2H:R[3] ← R[1] - R[2],执行后 R[3]=B04AH,不溢出;01B3H:R[3] ← R[1] × R[2],执行后 R[3]=8290H,溢出。(4)对 imm 进行符号扩展。
(5)采用 J 型格式。
假设计算机 M 的主存地址为 24 位,按字节编址;采用分页存储管理方式,虚拟地址为 30 位,页大小为 4 KB;TLB 采用 2 路组相联方式和 LRU 替换策略,共 8 组。请回答下列问题。
1)虚拟地址中哪几位表示虚页号?哪几位表示页内地址?
2)已知访问 TLB 时虚页号高位部分用作 TLB 标记,低位部分用作 TLB 组号,M 的虚拟地址中哪几位是 TLB 标记?哪几位是 TLB 组号?
3)假设 TLB 初始时为空,访问的虚页号依次为 10,12,16,7,26,4,12 和 20,在此过程中,哪一个虚页号对应的 TLB 表项被替换?说明理由。
4)若将 M 中的虚拟地址位数增加到 32 位,则 TLB 表项的位数增加几位?

小程序中我的-账号中心-隐私与账号可绑定网页端账号
虚拟地址30位,页大小为4KB(2^12),页内地址占12位,虚页号占30-12=18位。
TLB共8组,组号需3位(log2(8)=3)。虚页号的低3位作为TLB组号,高位部分作为TLB标记。
虚页号4对应的TLB表项被替换。
理由:TLB初始为空,访问序列中,当访问虚页号20时,其TLB组号(20 mod 8 = 4)对应的组已满(包含虚页号12和4),且虚页号4在组内为LRU(最久未使用),因此被替换。
虚拟地址增至32位后,虚页号位数增至32-12=20位。TLB组号仍为3位,TLB标记位数增至20-3=17位。TLB表项中物理页号等位数不变,故TLB表项位数增加2位。
下表给出了整型信号量 S 的 wait() 和 signal() 操作的功能描述,以及采用开/关中断指令实现信号量操作互斥的两种方法。

请回答下列问题。
1)为什么在 wait() 和 signal() 操作中对信号量 S 的访问必须互斥执行?
2)分别说明方法 1 和方法 2 是否正确。若不正确,请说明理由。
3)用户程序能否使用开/关中断指令实现临界区互斥?为什么?

小程序中我的-账号中心-隐私与账号可绑定网页端账号
(1)wait() 和 signal() 对共享信号量 S 的读、改、写必须作为原子操作执行,否则并发访问会造成 S 的值错误。
(2)方法 1 错误,方法 2 正确。方法 1 在 wait() 的忙等期间始终关闭中断,当 S≤ 0 时,能够执行 signal() 的进程得不到运行机会,可能陷入死循环;方法 2 在等待期间重新开中断,并在修改 S 前再次关中断。
(3)不能。开/关中断指令是特权指令,只能在内核态执行。
某计算机用硬盘作为启动盘,硬盘第一个扇区存放主引导记录,其中包含磁盘引导程序和分区表。磁盘引导程序用于选择要引导哪个分区的操作系统,分区表记录硬盘上各分区的位置等描述信息。硬盘被划分成若干个分区,每个分区的第一个扇区存放分区引导程序,用于引导该分区中的操作系统。系统采用多阶段引导方式,除了执行磁盘引导程序和分区引导程序外,还需要执行ROM中的引导程序。请回答下列问题。
1)系统启动过程中操作系统的初始化程序、分区引导程序、ROM中的引导程序、磁盘引导程序的执行顺序是什么?
2)把硬盘制作为启动盘时,需要完成操作系统的安装、磁盘的物理格式化、逻辑格式化、对磁盘进行分区,执行这4个操作的正确顺序是什么?
3)磁盘扇区的划分和文件系统根目录的建立分别是在第2)问的哪个操作中完成的?

小程序中我的-账号中心-隐私与账号可绑定网页端账号
某网络拓扑如题47图所示,以太网交换机S通过路由器R与Internet互联。路由器部分接口、本地域名服务器、H1、H2的IP地址和MAC地址如图中所示。在t₀时刻H1的ARP表和S的交换表均为空,H1在此刻利用浏览器通过域名www.abc.com请求访问Web服务器,在t₁时刻(t₁>t₀)S第一次收到了封装HTTP请求报文的以太网帧,假设从t₀到t₁期间网络未发生任何与此此次Web访问无关的网络通信。

请回答下列问题。
1)从t₀到t₁期间,H1除了HTTP之外还运行了哪个应用层协议?从应用层到数据链路层,该应用层协议报文是通过哪些协议进行逐层封装的?
2)若S的交换表结构为<MAC地址,端口>,则t₁时刻S交换表的内容是什么?
3)从t₀到t₁期间,H2至少会接收到几个与此次Web访问相关的帧?接收到的是什么帧?帧的目的MAC地址是什么?

小程序中我的-账号中心-隐私与账号可绑定网页端账号
(1)DNS 协议。封装顺序为:DNS 报文 → UDP 数据报 → IP 数据报 → 以太网帧。
(2)t1 时刻 S 的交换表为:
| MAC 地址 | 端口 |
|---|---|
00-11-22-33-44-CC | 4 |
00-11-22-33-44-BB | 1 |
00-11-22-33-44-AA | 2 |
(3)H2 至少接收到 2 个与此次访问相关的帧,均为 ARP 查询广播帧,目的 MAC 地址均为 FF-FF-FF-FF-FF-FF。