文章

63

粉丝

0

获赞

0

访问

1.7k

头像
2010年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年10月24日 17:22
阅读数 8


评分及理由

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

得分:2分

理由:学生的基本设计思想是使用辅助数组S,将前P个元素暂存到S的特定位置,然后移动后n-P个元素,最后将S中的元素复制回R。这个思路与标准答案中的"另解"(借助辅助数组)一致,是正确的。但是,学生的描述存在不清晰之处:前P个元素放到S中下标为n-P+i的位置,这个位置实际上是S的后P个位置,但描述不够准确;而且最后一步"将数组S中后P个数据复制到数组R中相同下标的位置"在后续代码中没有正确实现。由于思路基本正确但描述存在缺陷,扣2分。

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

得分:2分

理由:学生的代码实现存在严重逻辑错误:

  • 在第二个for循环中,同时执行了R[i-P] = R[i]和R[i] = S[i],这会导致数据覆盖问题,因为此时S[i]还没有被赋值(除了i < P的部分,但这里i从P开始)。
  • 代码没有正确实现将S中存储的前P个元素复制回R的前面位置。
  • 函数没有返回值类型声明(应该是void)。
  • 数组S初始化方式不正确(int S[N]=0只能初始化第一个元素为0)。

由于核心逻辑错误严重,但代码框架基本正确,给予2分。

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

得分:2分

理由:学生正确分析了算法的时间复杂度为O(n)和空间复杂度为O(n),这与使用辅助数组的解法是一致的,因此给满分。

题目总分:2+2+2=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发