GESP C++ 真题 · 逐题精解
首页C++二级真题 › 2026年6月 › 第15题

GESP 2026年6月 C++二级 单选题 第15题

C++二级单选题2026年6月第15题

所属知识点:综合应用(跨题型) 难度要求:掌握 考频:—

某学校举办"校园演讲比赛",每位选手由 8 位评委打分(分数为 0~10 的整数),且每位评委必须打分。计分规则:去掉一个最高分,去掉一个最低分。如下程序先输入选手编号,然后依次输入 8 个分数,并计算最终得分。下列说法正确的是( )。
for (int i = 0; i < 10; i++) {
    int id, score;
    scanf("%d", &id);

    int max_score = 0, min_score = 100;  // 最高分和最低分
    int total_score = 0;  // 总分

    for (int j = 1; j < 9; j++) {
        scanf("%d", &score);
        if (max_score < score)
            max_score = score;
        if (min_score > score)
            min_score = score;
        total_score += score;
    }

    total_score = total_score - max_score - min_score;
    printf("%d号选手最后成绩是: %d", id, total_score);
}

正确答案:A

题目解析
内层 j=1;j<9 恰好读 8 个分数;分数范围 0~10,max_score 初值 0、min_score 初值 100 能保证被正确更新;总分减去最高、最低分即为结果。代码逻辑正确,选 A。💡 B 改成 min_score=0 反而永远更新不了最小值;C 改成 <=/>= 不影响结果;D 的改写与原式等价。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习