文章

15

粉丝

0

获赞

6

访问

827

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

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

(1) 考虑从后往前遍历的同时维护最大值max和最小值min,若A[i]>=0,那么乘以max并放入res[i],若A[i]<0,那么乘以min并放入res[i]。
(2)
C语言代码如下:
#include <stdio.h>
#include <stdlib.h>
void CalMulMax(int A[], int res[], int n) {

    int max = A[n - 1], min = A[n - 1];

    for (int i = n - 1; i >= 0; i--) {

        max = A[i] > max ? A[i] : max;

        min = A[i] < min ? A[i] : min;

        if (A[i] >= 0)

            res[i] = A[i] * max;

        else

            res[i] = A[i] * min;

     }

}

(3) 时间复杂度O(n),空间复杂度O(1)


评分及理由

(1)得分及理由

得分:4分

理由:学生的基本思想与标准答案一致,都是从后往前遍历并维护最大值和最小值,思路正确且表述清晰。

(2)得分及理由

得分:5分

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

  • 未初始化res[n-1]的值,直接开始循环,会导致最后一个元素的值未被正确计算。
  • 逻辑上,最大值和最小值的更新应在计算res[i]之前完成,但学生的代码中顺序是正确的,只是缺少初始值的设置。

(3)得分及理由

得分:2分

理由:学生正确分析了时间复杂度和空间复杂度,与标准答案一致。

题目总分:4+5+2=11分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发