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

评分及理由
(1)得分及理由(满分4分)
学生作答中给出的边序列为 AD→DE→EC→CB,这与标准答案 (A,D)、(D,E)、(C,E)、(B,C) 完全一致。虽然表达形式略有不同(使用了箭头符号),但边的选择顺序和顶点对应关系正确。因此得4分。
(2)得分及理由(满分2分)
学生回答"不是",但标准答案为"MST是唯一的"。根据图G的结构,所有边的权值均不相同,因此MST应该是唯一的。学生的这个判断错误,扣2分。
(3)得分及理由(满分2分)
学生回答"带权连通图的权值唯一",这个表述虽然不够精确,但核心意思是正确的 - 当图中所有边的权值都不相同时,MST是唯一的。考虑到可能存在识别误差(如"带权路"可能是误写),且核心思想正确,给2分。
题目总分:4+0+2=6分

评分及理由
(1)得分及理由(满分4分)
学生答案正确解释了n=0时死循环的原因(n-1为无符号最大值,条件永真),以及改为int型后不会死循环的原因(n-1=-1,条件不成立)。答案与标准答案一致,得4分。
(2)得分及理由(满分3分)
学生答案正确指出f1(23)和f2(23)返回值相等,但机器数表示有误:f1(23)应为00FFFFFFH(学生答对),f2(23)应为4B7FFFFFH(学生答为4BFFFFFFH,尾数部分错误)。因机器数部分错误,扣1分,得2分。
(3)得分及理由(满分1分)
学生答案错误地解释为"溢出",但实际原因是float的24位有效位数导致舍入后数值增大。核心逻辑错误,扣1分,得0分。
(4)得分及理由(满分2分)
学生答案正确解释了f1(31)返回值-1的原因(超过表示范围),并正确给出最大n值为30。答案完整正确,得2分。
(5)得分及理由(满分3分)
学生答案未给出f2(127)对应的值(应为+∞),但正确给出了不溢出的最大n=126。然而未回答精确计算的最大n值(应为23)。根据评分标准,第二问正确得1分,第三问缺失扣1分,第一问错误扣1分,最终得1分。
题目总分:4+2+0+2+1=9分

评分及理由
(1)得分及理由(满分2分)
学生回答“CISC;因为机器代码不固定”,与标准答案“M为CISC。M的指令长短不一,不符合RISC指令系统特点”意思一致。虽然表述不够精确(“不固定”应为“长度不等”),但核心逻辑正确,因此得2分。
(2)得分及理由(满分2分)
学生回答“6字节;55占一字节,同理分别占3字节,2字节,1字节”,计算过程错误。题目要求计算f1全部机器指令代码长度,学生仅计算了部分指令,未考虑整个函数范围(从00401020H到0040107FH)。标准答案为96字节。因此得0分。
(3)得分及理由(满分3分)
学生回答“CF = 1;0 - (-1) = 1”,结果正确但计算过程不完整。标准答案需说明cmp执行减法运算时,i=0(00000000H)与n-1=0-1=FFFFFFFFH(即-1的补码)相减,通过补码运算和借位标志推导CF=1。学生未展示完整计算过程,但结果正确,扣1分,得2分。
(4)得分及理由(满分3分)
学生回答“不能;会溢出,精度产生误差”,结论正确但理由不准确。标准答案强调float类型含阶码,左移不能实现乘2功能,而学生提到的“溢出”和“精度误差”未切中核心原因(数据类型结构差异)。因此扣1分,得2分。
题目总分:2+0+2+2=6分

评分及理由
(1)得分及理由(满分1分)
学生回答“1页”,与标准答案一致。理由:函数f1的机器指令代码虚拟地址高20位相同,因此所有指令在同一页中,仅占1页。得1分。
(2)得分及理由(满分2分)
学生回答“各自的第二个表项”,标准答案为页目录第1个表项和页表第1个表项(编号从0开始)。学生回答“第二个表项”可能是指编号为1的表项(因为从0开始计数时,第二个表项编号为1),这与标准答案一致。因此得2分。
(3)得分及理由(满分4分)
学生回答“由运行态变成阻塞态,再从阻塞态变成就绪态”描述了进程状态变化,与标准答案一致,但缺少“被调度程序调度变为运行态”这一步骤,扣1分。学生回答“会”表示CPU会进入内核态,与标准答案一致。因此状态变化部分得2分(满分3分),CPU状态部分得1分(满分1分),本小题总计得3分。
题目总分:1+2+3=6分

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了mutexy和mutexz两个信号量,但缺少对y变量的细粒度控制。标准答案需要mutex_y1和mutex_y2两个信号量来分别控制thread1与thread3、thread2与thread3对y的访问,以实现最大并发。学生只用一个mutexy会降低并发度。得1分(只正确定义了z的信号量)。
(2)thread1实现得分及理由(满分1分)
thread1正确使用P(mutexy)和V(mutexy)保护了对y的访问,虽然使用的信号量名称与标准答案不同,但逻辑正确。得1分。
(3)thread2实现得分及理由(满分2分)
thread2中存在逻辑错误:先P(mutexz)后P(mutexy),但w=add(y,z)需要同时访问y和z,应该先获取y的锁再获取z的锁,或者按固定顺序获取以避免死锁。此外,add函数参数识别不清,但根据上下文应为(y,z)。由于存在获取锁顺序不当的问题,扣1分,得1分。
(4)thread3实现得分及理由(满分2分)
thread3中存在严重逻辑错误:在修改y时写成了"z = add(y,w)",这明显是笔误,应该是"y = add(y,w)"。由于这个错误会导致程序逻辑完全错误,扣1分。另外,对y的访问只使用一个mutexy,没有实现最大并发,但这不是逻辑错误。综合考虑,得1分。
题目总分:1+1+1+1=4分

评分及理由
(1)得分及理由(满分3分)
学生回答正确接收的数据帧为S0,0、S1,0、S2,0,共3个,与标准答案完全一致。得3分。
(2)得分及理由(满分3分)
学生回答最多还可以发送5个数据帧,第一个帧为S5,2,与标准答案一致。但最后一个帧回答为S9,2,而标准答案为S1,2。由于序号字段为3比特,序号范围为0-7,S9,2中的发送序号9超出范围,属于逻辑错误。扣1分。得2分。
(3)得分及理由(满分2分)
学生回答需要重发3个数据帧,数量正确。但重发的第一个帧回答为S2,0,而标准答案为S2,3。确认序号错误,属于逻辑错误。扣1分。得1分。
(4)得分及理由(满分1分)
学生计算过程存在多处错误:帧传输时间计算错误(应为0.08ms但写成了8×10⁻⁵=0.08ms,单位不一致),公式结构不完整(缺少确认帧传输时间),最终结果53.8%错误。逻辑错误,扣1分。得0分。
题目总分:3+2+1+0=6分