文章

109

粉丝

0

获赞

0

访问

22.8k

头像
2015年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2026年9月8日 21:39
阅读数 156


评分及理由

(1)得分及理由(满分3分)
学生的算法设计思想基本正确:“利用绝对值函数求出结点的绝对值,若绝对值为m,则将计数数组的值修改为1,若新结点的值在计数数组中为bool类型(已标记过),直接删去。”该思想体现了用空间换时间、一躺扫描的核心,与标准答案一致,但表述不够完善(如未明确说明数组下标范围及初始值)。故得2分。

(2)得分及理由(满分2分)
结构体定义正确,包含了data和link字段,并使用了typedef定义节点类型和指针类型。虽然写法与标准答案略有差异(类型名不同),但功能等价,没有错误。根据禁止扣分规则,此处不扣分,得2分。

(3)得分及理由(满分8分)
代码实现存在逻辑错误:
1. 在循环中,先让p = p->next,但未判断p是否为空,当访问最后一个结点时,p变为NULL,下一次循环while(p)退出,但此时在循环体内先让prev = p(即NULL),再执行p = p->next会出错(p为NULL不能取next)。这是严重越界/空指针问题。(扣3分)
2. 删除结点的操作不完整:else分支中prev->next = p->next后未释放被删除的结点,且未移动prev指针,当后续还有其他重复结点时会导致指针错乱,逻辑不严谨。(扣2分)
3. 数组初始化循环条件“i<=n+1”误写为“<=n+1”,实际应遍历到i<n+1,会导致数组越界一次。但此可能为识别误写(标准答案也是i<n+1),根据防误写扣分规则,不扣分。核心逻辑有误,因此该小题得分:8-3-2=3分。

(4)得分及理由(满分2分)
学生未作答时间复杂度与空间复杂度,该部分得0分。

题目总分:2+2+3+0=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发