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


评分及理由
(1)得分及理由(满分5分)
得分:3分。理由:学生的基本设计思想正确,指出了使用中序遍历并添加括号的方法。但存在以下问题:1)没有明确说明何时需要添加括号(如根节点和叶节点不需要括号);2)没有提到通过深度参数控制括号的添加,而是简单地对所有非叶节点添加括号,这会导致最外层多出一对括号。因此扣2分。
(2)得分及理由(满分10分)
得分:6分。理由:代码框架正确,实现了中序遍历并添加括号的基本逻辑。但存在以下逻辑错误:1)使用`t->left != NULL || t->right != NULL`作为非叶节点判断条件不准确,表达式树中操作符节点应同时具有左右子树(题目示例为二叉树);2)输出格式使用`%c`但数据域为`char data[10]`,应使用`%s`;3)没有处理根节点不需要括号的情况,会导致输出结果最外层多出括号。根据错误严重程度扣4分。
题目总分:3+6=9分

评分及理由
(1)得分及理由(满分4分)
学生给出的边依次为:A-D、D-E、C-E、C-B,与标准答案(A,D)、(D,E)、(C,E)、(B,C)完全一致,且顺序正确。因此得4分。
(2)得分及理由(满分2分)
学生回答"是",与标准答案"图G的MST是唯一的"一致。因此得2分。
(3)得分及理由(满分2分)
学生回答"当前顶点集到其它各个顶点有且只有一条最小带权路径",这个描述虽然与标准答案"当带权连通图的任意一个环中所包含的边的权值均不相同时,其MST是唯一的"表述不同,但本质上表达的是MST唯一性的充分条件。在Prim算法执行过程中,如果每次选择最小权边时都没有歧义,即每个顶点到当前顶点集的最小权边唯一,那么MST就是唯一的。学生的回答从算法执行的角度描述了MST唯一的条件,思路正确,因此不扣分。得2分。
题目总分:4+2+2=8分

评分及理由
(1)得分及理由(满分4分)
学生答案正确解释了n=0时死循环的原因(无符号数比较导致条件永真),并正确说明了将i和n改为int型后不会死循环的原因(带符号整数比较时条件不成立)。两次识别结果一致,答案完整且正确。得4分。
(2)得分及理由(满分3分)
学生正确指出f1(23)和f2(23)返回值相等,并给出了正确的机器数(00FF FFFFH和4B7F FFFFH)。两次识别结果一致,答案正确。得3分。
(3)得分及理由(满分1分)
学生正确指出f2(24)需要25位表示但float只有24位有效位,导致精度不够。虽然表述中"精度不够"稍显笼统,但核心意思正确(需舍入处理)。得1分。
(4)得分及理由(满分2分)
第一问正确解释了f1(31)返回-1的原因(int型溢出,最高位被解释为符号位)。但第二问回答n=31错误,正确答案应为n=30。扣1分。得1分。
(5)得分及理由(满分3分)
第一问正确指出机器数7F80 0000H对应+∞;第二问正确给出不溢出的最大n=126;第三问正确给出精确结果的最大n=23。三次识别结果一致,答案完全正确。得3分。
题目总分:4+3+1+1+3=12分

评分及理由
(1)得分及理由(满分2分)
学生回答正确,得2分。理由:学生正确判断为CISC,并给出理由“机器指令不等长”,这与标准答案中“指令长短不一”一致。
(2)得分及理由(满分2分)
学生回答错误,得0分。理由:学生计算过程为0040107FH - 00401020H = 5FH = 95D,但正确的计算应该是末地址减首地址再加1(0040107FH - 00401020H + 1 = 60H = 96字节)。学生未加1,导致结果错误。
(3)得分及理由(满分3分)
学生回答部分正确,得2分。理由:学生正确得出CF=1,但计算过程过于简略,仅写出“0 - FFFFFFFFH = 1H”,未完整展示补码运算过程(如未说明减法转换为补码加法的具体步骤)。标准答案要求给出计算过程,因此扣1分。
(4)得分及理由(满分3分)
学生回答正确,得3分。理由:学生正确判断“不能”,并解释“power是float型,直接用shl指令可能导致阶码溢出”,这与标准答案中“整体左移不能实现乘2功能”的核心逻辑一致。
题目总分:2+0+2+3=7分

评分及理由
(1)得分及理由(满分1分)
学生回答“1页”,与标准答案一致。理由:函数f1的代码段所有指令虚拟地址高20位相同,因此所有指令在同一页中。得1分。
(2)得分及理由(满分2分)
学生回答“第一个、第一个”,与标准答案“页目录的第1个表项、页表的第1个表项”一致。虽然表述简略,但核心意思正确。得2分。
(3)得分及理由(满分4分)
学生回答“运行态转为阻塞态”和“会”,分别对应进程状态变化和CPU进入内核态的问题。第一部分正确描述了进程从运行态变为阻塞态(得1分);第二部分正确回答了CPU会进入内核态(得1分)。但学生没有完整描述状态变化的完整过程(阻塞态→就绪态→运行态),缺少两个状态转换描述,按标准答案需扣2分。因此本小题得2分。
题目总分:1+2+2=5分

评分及理由
(1)信号量定义得分及理由(满分3分)
学生定义了mutex_y和mutex_z两个信号量,但缺少对y变量的细粒度互斥控制。标准答案需要mutex_y1和mutex_y2两个信号量来分别控制thread1-thread3和thread2-thread3对y的访问,以实现最大并发。学生只用一个mutex_y会导致不必要的串行化。扣2分。
得分:1分
(2)thread1实现得分及理由(满分1分)
thread1正确使用了P(mutex_y)和V(mutex_y)来保护对y的访问,逻辑正确。得1分。
得分:1分
(3)thread2实现得分及理由(满分2分)
thread2同时获取了mutex_z和mutex_y的锁,保护了对y和z的访问,逻辑正确。但使用的mutex_y不够细化,这已在信号量定义部分扣分,此处不重复扣分。得2分。
得分:2分
(4)thread3实现得分及理由(满分2分)
thread3对z的操作正确使用了mutex_z,但对y的操作只使用了一个mutex_y,没有实现thread1和thread2对y的并发访问。标准答案需要同时获取mutex_y1和mutex_y2来确保完全互斥。扣1分。
得分:1分
题目总分:1+1+2+1=5分

评分及理由
(1)得分及理由(满分3分)
学生答案正确指出可以断定乙方已正确接收的数据帧数为3个,且正确识别出是S0,0、S1,0、S2,0。与标准答案完全一致,因此得3分。
(2)得分及理由(满分3分)
学生答案错误。标准答案指出最多还可以发送5个数据帧,第一个是S5,2,最后一个是S1,2。学生回答为2个,且帧序号错误。这里存在逻辑错误,因为GBN协议中发送窗口大小是7,甲方在t1时刻已发送到S4,2,且收到乙方确认序号2,表明乙方期望接收序号2,因此甲方可以继续发送序号2到6(共5个帧)。学生未能正确计算发送窗口内的可用帧数,扣3分。
(3)得分及理由(满分2分)
学生答案正确。需要重发3个数据帧,重发的第一个帧是S2,3,与标准答案一致。得2分。
(4)得分及理由(满分1分)
学生答案正确。虽然计算过程中写的是"2^3-1=7"和公式形式,但最终结果50%与标准答案一致,且计算逻辑正确(使用了7个帧的传输时间除以总周期时间)。得1分。
题目总分:3+0+2+1=6分