科目组合
计算机: 数据结构 、计算机组成原理 、操作系统 、计算机网络

评分及理由
(1)得分及理由(满分4分)
学生答案中描述的设计思想是“按照广度优先遍历的思想,设置一个标记find,用于标记已访问过的顶点,将顶点放入队列中依次输出”。这与题目要求“输出所有出度大于入度的顶点(K顶点)”完全不符。广度优先遍历(BFS)是用于图的遍历,而本题的核心是统计每个顶点的入度和出度并进行比较。学生的设计思想没有涉及入度、出度的计算,也没有提及K顶点的判断条件,因此属于完全错误的解题思路。
得分:0分(满分4分)。
(2)得分及理由(满分9分)
学生答案中只提供了设计思想,没有给出任何C/C++代码实现。题目明确要求“根据算法思想,写出C/C++描述,并注释”,因此代码部分完全缺失。
得分:0分(满分9分)。
题目总分:0+0=0分

评分及理由
(1)得分及理由(满分8分)
学生回答生成4个归并段,与标准答案(3个)不符。给出的具体归并段内容也与标准答案完全不同,且存在明显逻辑错误(如归并段内无序、重复出现23、未包含所有记录等)。这表明学生未能正确理解置换-选择排序算法。因此,本题不得分。
得分:0分
(2)得分及理由(满分2分)
学生回答第一个初始归并段的最大长度为n,这与标准答案一致。但回答最小长度为1,这与标准答案(最小长度为m)不符。在置换-选择排序中,工作区大小为m,生成的初始归并段长度至少为m。因此,最小值回答错误,扣1分。
得分:1分
题目总分:0+1=1分

评分及理由
(1)得分及理由(满分3分)
学生答案正确。页面大小4KB,sizeof(int)=4,每页可存放1024个int元素。数组a共24×64=1536个元素,需要2页存储(第一页1024个,第二页512个)。访问数组a会触发两次缺页异常,页故障地址分别为起始地址0042 2000H和下一页起始地址0042 2000H+0x1000=0042 3000H。学生回答与标准答案一致,得3分。
(2)得分及理由(满分2分)
学生答案正确。时间局部性指被访问的数据短期内可能再次被访问。本题中数组a的每个元素仅被赋值一次,没有重复访问,因此没有时间局部性。学生回答“没有时间局部性”并给出了解释,得2分。
(3)得分及理由(满分4分)
学生答案正确。主存块大小32B,块内地址需要5位(A4~A0)。Cache数据区8KB,4路组相联,则总块数=8KB/32B=256块,组数=256/4=64组,组号需要6位。块内地址5位,因此组号为A10~A5。a[1][0]的地址:起始地址0042 2000H + (1×64+0)×4 = 0042 2000H + 256 = 0042 2100H。其所在主存块地址为0042 2100H向下对齐到32B边界,即低5位清零,得0042 2100H。计算组号:取A10~A5,即地址的二进制位中对应部分。0042 2100H二进制为...,低12位为0x100H=0001 0000 0000B,A10~A5为001000B=8。学生回答与标准答案一致,得4分。
(4)得分及理由(满分5分)
学生答案部分正确。第一问:数组a共1536个元素,主存块大小32B可存放8个int,因此占用1536/8=192个主存块,正确。第二问:原循环(i外,j内)按行访问,空间局部性好。Cache共64组,4路,可容纳256块。数组a占用192块,全部装入后不会冲突。访问每块第一个元素时缺失,后续7个命中,命中率=7/8=87.5%,正确。第三问:交换循环后(j外,i内)按列访问,每访问一个元素就跨行(跨主存块),导致每次访问都可能不在Cache中,命中率极低,但严格计算并非0%。因为数组a总共192块,Cache可容纳256块,全部装入后,按列访问时,同一列的不同行元素可能映射到不同Cache行,且每次访问间隔64个元素(跨行),几乎每次都会缺失,但若Cache足够大且全相联,可能有一定命中。实际4路组相联下,按列访问的命中率接近0%,但标准答案为87.5%(此处标准答案可能有误?原题标准答案第三问也是87.5%,但按列访问命中率应显著下降)。学生回答0%不符合标准答案,但根据计算机组成原理知识,按列访问会破坏空间局部性,命中率应很低,但标准答案给出87.5%,可能题目假设了特殊条件(如Cache足够大且全装载)。鉴于评分应依据标准答案,学生第三问答错,扣1分。本小题满分5分,扣1分,得4分。
题目总分:3+2+4+4=13分

评分及理由
(1)得分及理由(满分3分)
学生两次识别结果均正确给出第20条指令的虚拟地址为004010B9H,与标准答案一致。得3分。
(2)得分及理由(满分2分)
第一问:学生正确指出两条指令采用相对寻址方式,与标准答案一致。
第二问:学生给出了正确的计算过程“00401079 + 2 + 09 = 00401084h”,该过程体现了相对寻址中“当前指令地址+指令长度+偏移量=目标地址”的核心思想,与标准答案的计算逻辑一致。
因此,本小题得2分。
(3)得分及理由(满分3分)
第一问:学生回答“源操作数采用变址寻址”是错误的。题目问的是“源操作数”的寻址方式,源操作数是立即数10(0Ah),应为立即寻址。学生的回答混淆了目的操作数(其寻址方式为基址加变址加位移)和源操作数。扣1分。
第二问:学生回答“ecx存放的是前面i行元素的大小”或“前面1行元素的大小”。标准答案为“i×256”。考虑到数组a[i][j]的存储,若j循环上限为64,且每个元素占4字节(由指令中的`edx*4`可知),则一行大小为64*4=256字节。因此,“前面i行元素的大小”即 i * 256,该描述在逻辑上与标准答案等价,可以视为正确。不扣分。
第三问:学生正确判断为小端方式,并给出了依据(0A 00 00 00的存放顺序),与标准答案一致。得1分。
本小题第一问扣1分,第二问和第三问共得2分,因此本小题总得分为2分。
(4)得分及理由(满分1分)
学生回答“会发生缺页异常”是错误的。标准答案明确指出不会发生缺页异常,因为第19条指令与第1条指令虚页号相同,访问第1条指令后该页已调入主存。学生的判断与正确逻辑相反。扣1分,得0分。
题目总分:3+2+2+0=7分

评分及理由
(1)得分及理由(满分4分)
学生答案正确指出了两处错误并给出了正确的修改:
if (key == TRUE) 改为 while (key == TRUE),这是正确的,因为需要循环等待直到成功获得锁。lock = TRUE; 改为 lock = FALSE;,这也是正确的,因为退出临界区后需要释放锁。这两处修改与标准答案完全一致。因此,本题得分为4分。
(2)得分及理由(满分3分)
学生答案正确回答了“不可以用函数调用语句”,并给出了理由:“因为要保证其原子性,不能被打断。一旦被打断,访问临界区可能产生错误”。
该理由准确指出了核心问题:swap指令是硬件实现的原子操作,而函数调用不具备原子性,在并发执行时可能导致多个线程同时进入临界区。虽然学生的解释比标准答案简略,但核心观点(原子性、不能被打断、可能导致错误)是正确的。因此,本题得分为3分。
题目总分:4+3=7分

评分及理由
(1)得分及理由(满分3分)
学生答案:操作①的前一个操作是③,后一个操作是⑤;操作⑥的后一个操作是④。
标准答案:操作①的前一个操作是③,后一个操作是⑤;操作⑥的后一个操作是④。
学生答案与标准答案完全一致。得3分。
(2)得分及理由(满分2分)
学生答案:执行②后,CPU一定从进程P切换到其他进程;操作①后,CPU调度才能选中P执行。
标准答案:CPU一定会从进程P切换到其他进程的操作是②;CPU调度程序才能选择进程P执行的操作是①。
学生答案与标准答案完全一致。得2分。
(3)得分及理由(满分1分)
学生答案:完成③的代码属于键盘驱动程序。
标准答案:完成操作③的代码属于键盘驱动程序。
学生答案与标准答案完全一致。得1分。
(4)得分及理由(满分2分)
学生答案:键盘中断处理程序执行时,进程P处于执行态;CPU处于内核态。
标准答案:键盘中断处理程序执行时,进程P处于阻塞状态;CPU处于内核态。
学生答案的第二部分(CPU处于内核态)正确,得1分。第一部分(进程P处于执行态)错误。当键盘中断被触发时,进程P正在等待输入,处于阻塞状态,而非执行态。因此,该部分不得分。本小题得1分。
题目总分:3+2+1+1=7分

评分及理由
(1)得分及理由(满分3分)
学生第一次识别结果中“非持久 控制连接持久,数据连接非持久”表述存在歧义,但结合第二次识别结果“控制连接持久,数据连接非持久,TCP连接的是控制连接”,可以明确其答案为:控制连接持久、数据连接非持久、登录时建立的是控制连接。这与标准答案完全一致。
得3分。
(2)得分及理由(满分2分)
学生答案:F的第一个字节序号是101,ACK序号是18101。
标准答案:101, 18102。
第一个字节序号101正确。ACK序号应为18102(初始序号100 + 文件大小18000B + 1 = 18101?这里需要仔细计算:TCP序号以字节为单位,初始序号为100,第一个数据字节序号为101,最后一个数据字节序号应为100+18000=18100。因此,对最后一个数据字节的确认ACK应为18101。但标准答案给的是18102,这可能是将文件大小18000B直接加到初始序号100上得到18100,然后ACK=18100+1=18101?标准答案18102存在疑问。根据TCP规则,ACK序号等于期望收到的下一个字节序号。若最后一个字节序号是18100,则ACK应为18101。但题目中“第二次挥手的ACK序号”指的是断开数据连接时服务器对客户端FIN的确认,该ACK序号应为收到的FIN序号+1。客户端发送FIN时,其序号应为发送完文件后的下一个序号,即18101。因此服务器ACK应为18102。学生答案18101错误。
因此,第一部分正确得1分,第二部分错误得0分。
得1分。
(3)得分及理由(满分2分)
学生答案:收到2101时,拥塞窗口调整为3MSS;收到7101时,拥塞窗口调整为0。
标准答案:3MSS, 5MSS。
第一部分正确。第二部分错误,在未发生丢包的情况下,拥塞窗口不会调整为0。收到确认序号7101时,应处于拥塞避免阶段,窗口增加1个MSS,从4MSS变为5MSS。
因此,第一部分正确得1分,第二部分错误得0分。
得1分。
(4)得分及理由(满分2分)
学生答案:至少需要18ms。
标准答案:需要6个RTT,即至少60ms,平均速率2.4Mbps。
学生答案仅给出了时间,且数值18ms错误。未计算平均发送速率。根据TCP传输过程,建立连接(1个RTT)、慢启动和拥塞避免传输文件(需计算所需数据段数量)、以及传输完成后的确认(可能包含在最后一个RTT中),总时间至少为6个RTT=60ms。学生答案完全错误。
得0分。
题目总分:3+1+1+0=5分