文章

9

粉丝

0

获赞

0

访问

377

头像
【250518年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2025年6月12日 18:15
阅读数 28

计算机考研408统考历年真题及答案解析

(1):采取遍历数组的方式,在遍历数组的过程中只访问奇数序号的,此时将零号元素视为第一个元素,由于相同元素一定相邻,所以单个的元素一定会出现在奇数的位置,此时再去查看它与它之后的一个元素是否相同,若不相同则是要查找的元素。

int findOnly()
{
for(int i=1;i<=n;i+=2)//从第一个遍历到第n个元素
{
if(arr[i-1]!=arr[i])//由于元素下标从0开始,将个数减去1即是元素在数组中的位置
{
return arr[i-1];//找到则返回该元素
}

}
}

(3)算法总共会访问元素中一半的元素,为n/2,时间复杂度为O(n);


评分及理由

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

得分:2分

理由:学生的设计思想基本正确,但表述不够清晰。学生提到“访问奇数序号的元素”,但未明确说明是从0开始还是1开始计数,容易引起混淆。此外,学生未明确说明如果遍历完所有偶数对后仍未找到目标元素,最后一个元素即为目标元素的情况。

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

得分:6分

理由:学生的代码实现基本正确,但存在以下问题:

  • 函数未接收数组和长度参数,导致代码无法直接运行。
  • 循环条件为i<=n,可能导致数组越界访问。
  • 未处理最后一个元素为目标元素的情况(如数组长度为奇数时)。

代码逻辑与设计思想一致,但实现细节不够完善。

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

得分:2分

理由:学生正确分析了时间复杂度为O(n),与标准答案一致。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发