文章

35

粉丝

0

获赞

0

访问

1.5k

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


评分及理由

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

学生答案中给出了“设计一个就地逆置函数然后递归调用该函数,对前p个、后n-p个逆置后再将全部逆置”的基本设计思想,这与标准答案中通过三次逆置实现循环左移的思路完全一致。因此,本部分得满分4分。

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

学生提供了C语言代码实现,包括Reverse函数和change函数(对应标准答案中的Converse函数)。代码逻辑正确,但存在以下问题:

  • Reverse函数的参数命名和循环逻辑有误:参数n和m分别表示起始和结束索引,但循环中使用了i从n开始到mid,同时j从m开始递减,这会导致索引越界和交换错误(例如,当n=0, m=p-1时,j初始为m,但循环中j++会导致访问超出范围)。标准答案使用from和to参数,并通过计算对称位置进行交换。
  • 具体错误:在Reverse函数中,循环条件i <= mid和j++的逻辑不正确,应该交换from+i和to-i位置的元素,但这里j初始为m(结束索引),然后j++,这会导致无效交换和越界。

由于Reverse函数实现有逻辑错误,无法正确完成逆置操作,因此扣分。但change函数的调用顺序正确(三次Reverse调用参数正确),因此给予部分分数。扣分理由:逻辑错误(Reverse函数实现错误)。本部分得4分(满分7分)。

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

学生正确给出了时间复杂度O(n)和空间复杂度O(1),与标准答案一致。因此,本部分得满分2分。

题目总分:4+4+2=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发