文章

21

粉丝

0

获赞

0

访问

1.0k

头像
2018年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2026年4月30日 19:46
阅读数 133


评分及理由

(1)得分及理由(满分3分)

该生的基本设计思想是正确的:先创建一个辅助数组,用原数组中正数的值作为辅助数组的下标进行计数,然后遍历辅助数组找到第一个计数为0的下标,该下标即为未出现的最小正整数。这一思路能够有效解决问题。虽然标准答案采用原地标记的方法,但本题思路正确且逻辑通顺,应得满分。

(2)得分及理由(满分8分)

代码逻辑与设计思想一致,基本实现了功能。但存在几处潜在问题:

  • 数组B的大小定义为MAXSIZE,在代码中没有给出具体定义,这在实际运行时可能导致数组越界(例如当原数组中存在较大正整数时)。本题中未明确说明数组B的范围,且学生未做处理,存在逻辑不完整的隐患,应适当扣分。
  • for(int j = 1; ; j++)循环没有终止条件,若辅助数组中所有下标对应的值都大于0(即数组包含1到MAXSIZE的所有正整数),则会无限循环。虽然从题意看最终总能找到缺失的数,但在没有明确上限时会导致程序错误。这属于逻辑缺陷,需扣分。
  • 代码风格较简洁,但缺少必要注释,与题目要求“关键之处给出注释”不符,需扣分。

综合以上,扣3分。

(3)得分及理由(满分2分)

时间复杂度分析正确,为O(n);空间复杂度分析正确,为O(n)。应得满分。

题目总分:3+5+2=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发