GESP 二级 · GESP 202409 C++ 二级 第 17 题

判断题 · 答案 B

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

题目

在 C++ 中,cout << (3, 4, 5) 可以输出 $3$ $4$ $5$,且每个输出项之间用空格分开。( )

答案:B

解题思维

答案B。文件重定向后cout的输出被写入文件。程序本身无法确定输出目的地。

常见错误

文件重定向后程序行为不变,只是I/O目的地改变了。程序无法区分。

详细解析(节选)

【考点】C++ 运算符优先级|逗号运算符|表达式求值

1. 🎯 考纲定位:GESP 二级 C++ 考纲第 4 章“表达式与运算”明确列出逗号运算符。命题人卡住的是考生对“逗号运算符”的陌生感——绝大多数人看到括号里的数字序列,下意识当成列表或数组,却不知 C++ 里逗号是运算符不是分隔符。

2. 🧠 解题思维:看到题先想:括号里是运算符还是语法结构?关键观察:逗号在表达式里是“逗号运算符”,优先级极低,比赋值还低。推理链:(3, 4, 5) 其实是 ((3, 4), 5),先算 3, 4 得 4,再算 4, 5 得 5,整个括号值就是 5。cout << 5 只输出一个数字,中间不可能有自动空格。通法:遇到括号内多个常量或表达式,先拆解运算符,别被视觉上的“列表”误导。

3. 🪤 陷阱拆解:选项 A 错误选项设计:利用视觉惯性,把逗号当成“分隔符”,像 Python 或数学列表那样理解。阴险细节:题目说“每个输出项之间用空格分开”,暗示有多个输出项,但实际只有一个值。如果你只背 cout 输出格式,不理解逗号运算符的语义,就会掉进“以为有多个值”的陷阱。

4. 🔄 反命题思维:命题人视角:如果把 (3, 4, 5) 改成 cout << 3, 4, 5(去掉括号),会变成三个输出项,中间有空格,答案就反了。提醒:刷到类似题,先问自己“逗号在这里是运算符还是分隔符?”

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