GESP 三级 · GESP 202512 C++ 三级 第 13 题

选择题 · 答案 B

← 整套速查表 GESP 三级 全部真题

题目

以下代码运行后,sum 的结果是( )

int arr[5] = {2, 4, 6, 8, 10};
int sum = 0;
for (int i = 0; i < 5; i++) {
    switch (arr[i] % (1|2)) {
        case 0: sum += 1; break;
        case 1: sum += 2; break;
        case 2: sum += 3; break;
    }
}
答案:B

解题思维

答案B。追踪for循环:记录每次循环变量的值和累积结果的变化。注意循环终止条件。

常见错误

for循环体可能一次都不执行!这是和while循环一样的"先判断后执行"机制。

详细解析(节选)

【考点】按位或运算|取模运算

1. 🎯 考纲定位

GESP三级《C++基础》运算符与表达式模块。命题人盯住的是按位或优先级低于取模这一冷知识——多数考生只背"取模运算优先级高",却忘了|比%低一级,导致把arr[i] % (1|2)误读成arr[i] % 1或arr[i] % 3都算错。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断