CSP-J 入门级 · CSP 2026 入门级第一轮 第 3 题

选择题 · 答案 C · 考点:运算符与表达式、运算符优先级、基础语法

← 整套速查表 CSP-J 入门级 全部真题

题目

【单选】执行下列 C++ 代码,输出是( )。

int a = 7, b = 3;
std::cout << a / b * b + a % b;
答案:C

考点

运算符与表达式运算符优先级基础语法

解题思维

按 C++ 整数运算的优先级手算:先乘除后加减,且整数除法向零取整——7/3 = 2,7%3 = 1。

常见错误

先把 7/3 当成 2.33 算成 2.33×3+1=8,或者把 a / b * b 当成 a / (b * b)(忽略左结合)。

详细解析(节选)

解析

题目代码:

int a = 7, b = 3;
std::cout << a / b * b + a % b;

本题考查整数除法与取余以及运算符优先级/结合性。

逐步计算

1. 优先级:/、*、% 同级,都高于 +,且同级按从左到右结合。 2. a / b = 7 / 3。两个操作数都是 int,执行整数除法,结果向零截断 = 2(不是 2.333)。 3. 2 * b = 2 × 3 = 6。 4. a % b = 7 % 3 = 1(7 = 2×3 + 1)。 5. 最后 6 + 1 = 7,选 C。

关键结论

对任意正整数 a、b 恒有:**a / b * b + a % b == a**。 原因:设 a = q·b + r(0 ≤ r < b),则 a/b = q、a%b = r,代回即得。本题不过是把它当成"看起来复杂"的表达式来考。

其他选项为什么错

记忆点

同考点真题

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