GESP 一级 · GESP 202603 C++ 一级 第 5 题

选择题 · 答案 A · 考点:运算符优先级

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

题目

整型变量 a、b 的初值都是 4,则下面的 C++ 代码执行后的输出是( )。

a, b = 3, 4;
cout << (a + 2) << (b - 2) << endl;
cout << a << b << endl;

A.

61
43

B.

52
34

C.

62
44

D.

62
32
答案:A

考点

运算符优先级

解题思维

答案A。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。

常见错误

逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。

详细解析(节选)

【考点】变量定义与赋值|运算符优先级|逗号表达式

🎯 考纲定位:GESP一级变量与赋值、运算符优先级、逗号表达式。命题人用逗号表达式伪装赋值,专卡初学者对C++语法解析的直觉——看到a, b = ...下意识想成a=...; b=...;,其实逗号运算符优先级低于赋值,a, b = 3, 4;等价于a, (b = 3), 4;,只给b赋了3,a保持原值4。

🧠 解题思维:先设a=4,b=4。语句a, b = 3, 4;是逗号表达式,按优先级先执行b = 3,再执行4,a保持4。第一行cout:(4+2)(3-2)→61。第二行cout:43。

🪤 陷阱拆解:看选项B/C/D都是把a, b = 3, 4;误读成a=3,b=4或a=4,b=3。关键陷阱在逗号表达式:优先级低于赋值,a, b = 3, 4;实际只改变b,a不变。若只背结论不看语法,选C/D必栽。

🔄 反命题:若初值a=10,b=10,则第一行输出(10+2)(10-2)=128,第二行1010。提醒:刷题先问"逗号表达式真义",别被视觉符号欺骗。

同考点真题

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