文章

75

粉丝

78

获赞

0

访问

4.2k

头像
2010年(408)计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年12月13日 17:11
阅读数 52


评分及理由

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

学生给出的基本设计思想是使用辅助数组,将原数组后P个元素和前n-P个元素按特定顺序放入辅助数组,再覆盖回原数组。该思路可以实现循环左移,与标准答案中的“另解”一致,思路正确。但描述中“将原数组后面P个元素按从后往前的顺序依次放入辅助数组中”这一细节与标准答案略有差异(标准答案中是将前P个元素暂存,然后移动后n-P个元素,最后将暂存元素放回),但整体逻辑正确,不影响结果。因此,本部分得满分4分。

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

学生提供了两次识别结果,但两次的代码均存在逻辑错误或实现不完整。

第一次识别代码:函数名为loopMove,参数为int ETR, int n, int P,但ETR被当作数组使用,参数类型错误;且代码中多次对ETR赋值,最后返回ETR,逻辑混乱。例如,在填充辅助数组L后,又用多个循环试图将L的内容覆盖回ETR,但最后一个循环for (int p = 0; p < n; p++) ETR[p] = L[p];会覆盖前面所有操作,且ETR作为int类型不能下标访问。这些属于严重逻辑错误,代码无法正确运行。因此,本部分扣4分,得3分。

第二次识别代码:函数名为loopMove,参数为int *L, int *R, int n, int P,但函数体内对LR的使用混乱,例如L[R - L + j]这种指针运算没有明确意义,且最后return R但函数声明为void。代码逻辑无法正确实现循环左移,存在逻辑错误。因此,本部分同样扣4分,得3分。

根据“只要其中有一次回答正确则不扣分”的原则,但两次识别均存在逻辑错误,因此需扣分。综合两次识别,取较高得分3分。

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

学生正确给出了时间复杂度O(n)和空间复杂度O(n),与辅助数组解法一致。因此,本部分得满分2分。

题目总分:4+3+2=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发