文章

317

粉丝

1

获赞

220

访问

83.0k

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


评分及理由

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

学生给出的基本设计思想是使用双层循环,对每个A[i]与所有A[j](包括自身)相乘并取最大值。这种方法虽然正确,但时间复杂度为O(n²),不符合题目要求的“尽可能高效”。标准答案采用从右向左一次遍历,利用最大值和最小值性质,时间复杂度为O(n)。学生的思路虽然正确但效率较低,因此扣2分。得分为2分。

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

学生根据设计思想实现了双层循环的算法,代码逻辑正确,能够计算出每个A[i]与所有A[j]乘积的最大值。但存在以下问题:
1. 算法效率低,未达到“尽可能高效”的要求。
2. 代码中max初始化为0,若所有乘积均为负数(例如数组全为负数),则max始终为0,导致结果错误。这是一个逻辑错误,应初始化为一个极小值(如INT_MIN)。
3. 题目要求函数原型为void calMulMax,只需计算并填充res数组,不应包含打印输出(printf),但这不是核心逻辑错误。
基于逻辑错误(max初始化问题)扣2分,效率低下扣2分,共扣4分。得分为3分。

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

学生正确分析了算法的时间复杂度为O(n²)和空间复杂度为O(1),与实现一致,因此不扣分。得分为2分。

题目总分:2+3+2=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发