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

评分及理由
(1)得分及理由(满分7分)
得分:5分。
理由:学生的合并过程描述正确:先合并A和B,再与C合并;合并D和E;再合并ABC与DE;最后与F合并。这符合类似哈夫曼树(最佳归并树)的思想,过程描述正确,按评分说明第①条给5分。
但是,学生在计算最坏情况下比较总次数时,只写出了“45+85+110+195=……”等部分中间表长相加,未按标准答案要求给出每次合并的最坏比较次数,也未算出最终总次数825。根据评分说明第②条,正确算出与合并过程一致的总比较次数给2分;若计算过程正确但结果错误可给1分。学生这里没有给出正确总次数,计算部分不能给满分。考虑到其合并过程正确,且列出的中间表长与过程一致,可认为计算思路部分正确,但最终未得出总比较次数,因此第②条给0分。
所以(1)得5分。
(2)得分及理由(满分3分)
得分:3分。
理由:学生说明“先将N个不等长升序表构造Huffman树,权值为元素个数,再按Huffman树给出的顺序两两合并,即每次选择最短的2个数组合并”,这正确描述了采用类似哈夫曼树(最佳归并树)的构造方法作为合并策略。根据评分说明第③条,只要说明采用类似哈夫曼树(或最佳归并树)的构造方法作为合并策略,即可给3分。
所以(2)得3分。
题目总分:5+3=8分

评分及理由
(1)得分及理由(满分4分)
得分:4分。学生的设计思想虽与标准答案不同,但核心思路正确:通过两个指针分别遍历两个链表,当任一指针到达末尾时转向另一链表头,从而消除长度差,使两指针在共同后缀起始位置相遇。该思路有效且高效,符合题目要求。未扣分。
(2)得分及理由(满分8分)
得分:8分。代码实现基本正确,逻辑无误。具体分析如下:
while (i != j) 正确,当两指针相遇时停止。i = i->next; j = j->next; 再判断是否为空并转向另一链表头。该顺序正确处理了指针到达末尾后跳转的情况(但需注意:若两链表无公共后缀,最终 i 和 j 会同时为 NULL 而退出循环,返回 NULL,符合常理)。if (i == NULL) i = s2; if (j == NULL) j = s1; 正确实现了“遍历完自身后转向另一链表”的策略。i 即为共同后缀起始结点(若存在)或 NULL(若无公共后缀)。代码中未显式处理头结点(str1 和 str2 指向头结点),导致首次移动时可能跳过第一个有效数据结点。但题目所给链表带头结点,而学生代码从 s1、s2 开始遍历并直接取 next,实际上忽略了头结点的存在,相当于将头结点视为第一个数据结点。这会导致返回结果可能偏移一个结点(若共同后缀起始于第一个数据结点,则返回头结点而非该数据结点)。由于题目示例中共同后缀起始于字符 i(非第一个数据结点),该错误不影响正确性判断,但严格来说存在逻辑瑕疵。考虑到识别可能误写(如是否遗漏对头结点的处理),且核心逻辑正确,不扣分。
综上,代码正确,时间复杂度 O(m+n),给满分8分。
(3)得分及理由(满分1分)
得分:1分。学生给出时间复杂度 O(n+m),与算法一致,正确。
题目总分:4+8+1=13分

评分及理由
(1)得分及理由(满分4分)
得分:4分。
理由:学生正确计算出MIPS=20;正确计算出平均每秒Cache缺失次数为300k(3×10^5)次;正确根据块大小16B计算出主存带宽至少为4.8MB/s。结果与标准答案一致,逻辑正确,给满分。
(2)得分及理由(满分2分)
得分:2分。
理由:学生正确计算出平均每秒缺页异常次数为1.5次;在DMA请求次数计算中,学生写为“6KB/32b=1.5K次”,虽然表达中“32b”若按比特理解会不一致,但结合上下文及标准答案可知其实际含义是每次DMA传送32位即4B,且第一次识别中明确为“6KB/32b=1.5K次”,本质结果1.5K次正确。按误写/识别问题处理,不扣分,给满分。
(3)得分及理由(满分2分)
得分:2分。
理由:学生正确回答DMA优先级更高,并给出理由:DMA数据若不及时处理可能导致I/O数据丢失或出错。与标准答案核心逻辑一致,给满分。
(4)得分及理由(满分2分)
得分:2分。
理由:学生正确理解四体低位交叉存储模式下,每个存储周期可并行/流水取得4个体各4B数据,总数据量16B,并用16B/50ns计算得到320MB/s,与标准答案一致,给满分。
题目总分:4+2+2+2=10分

评分及理由
(1)得分及理由(满分2分)
得分:0分。理由:学生第(1)问未给出正确结果。标准答案为FEFFH。学生作答中两次识别均只出现“R1: PEPRH / PE PR H”等无法对应的内容,未按题目要求用十六进制给出右移后的R1内容,核心结论缺失或错误,不能得分。
(2)得分及理由(满分2分)
得分:2分。理由:学生写出“5+(4-1)=8个时钟周期”,与标准答案“4+(5-1)=8”等价,结论正确。虽然表述形式不同,但计算结果和含义正确,不扣分。
(3)得分及理由(满分2分)
得分:0分。理由:学生回答“I2的ID段数据相关,I4的IF段结构相关”存在明显问题。标准答案要求说明:I3的ID段因与I1、I2存在数据相关而阻塞;I4的IF段因前一条指令I3在ID段阻塞而被阻塞。学生未正确指出I3的ID段阻塞,且将I4的IF段阻塞原因错误判断为结构相关,核心逻辑错误,故不能得分。
(4)得分及理由(满分7分)
得分:4分。理由:学生给出的指令序列能够实现x=x*2+a,基本正确,可给指令部分2分;学生正确列出了17个时钟周期的流水线执行过程,且I1至I5各段的起止周期与标准答案一致,可给流水线示意图及周期数部分2分。但学生指令序列中I5写为“STORE R1 [X]”,而标准答案应为“STORE R1, [x]”,即将R1写回x;其前序指令最终结果在R2中,若按学生I4“ADD R2, R1”则结果在R2,I5却写R1,存在寄存器使用前后的逻辑不一致问题,应扣1分;另外第(4)问要求“模仿题44图画出指令序列及其在流水线中的执行过程示意图”,学生未按标准表格完整画出各指令每周期阶段,图示规范性不足,再扣1分。合计得分4分。
题目总分:0+2+0+4=6分

评分及理由
(1)得分及理由(满分1分)
得分:1分。学生作答“页框号21”,与标准答案一致,正确。
(2)得分及理由(满分2分)
得分:2分。学生作答“页框号为32”,与标准答案一致;理由说明了页1在较早时已分配页框32,之后被回收到空闲页框链表中,11时刻再次访问时重新放回驻留集,核心逻辑正确。
(3)得分及理由(满分2分)
得分:2分。学生作答“页框号为41”,与标准答案一致;理由说明此时空闲页框链表头为41,因此分配给新访问且从未驻留过的页2,核心逻辑正确。
(4)得分及理由(满分2分)
得分:2分。学生答“适合”,并说明时间局部性好的程序更可能快速重新访问已回收页面,从而有机会直接从空闲页框链表中取回未清空内容的页框,提高效率,理由与标准答案一致。
题目总分:1+2+2+2=7分

评分及理由
(1)得分及理由(满分4分)
得分:4分。
理由:学生正确计算了文件系统所能容纳的磁盘块总数为 4TB/1KB = 2^32,从而得出索引项中块号最少占 32b = 4B;并且正确计算出直接索引区可容纳 512B/4B = 128 个索引项,单个文件最大长度为 128×1KB = 128KB。思路和计算结果均与标准答案一致,无明显逻辑错误。按标准答案给满分 4 分。
(2)得分及理由(满分4分)
得分:4分。
理由:学生正确利用块数占 2B 得到可表示 2^16 个磁盘块,即 2^16×1KB = 2^26B = 64MB;正确计算直接索引区 504B/6B = 84 个索引项,对应 84KB,因此最大长度为 64MB+84KB,与标准答案一致。在合理值部分,学生根据文件系统最多 2^32 块,指出起始块号最少需 32b = 4B;并说明起始块号位数越少、块数字段位数越多,可表示范围越大,因此选取起始块号 4B、块数 4B,理由正确且数值合理,符合标准答案中“4,4”这一组合理值。按标准答案给满分 4 分。注:第二次识别结果中“804B÷4B”应为识别误写,第一次识别结果为“504B÷6B”,且结论正确,不另扣分。
题目总分:4+4=8分