GESP 一级 · GESP 202309 C++ 一级 第 19 题

判断题 · 答案 B

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

题目

C++ 语句 cout << (2, 3, "23") 的输出为 2, 3, 23。

答案:B

解题思维

这道题考的是逗号运算符的求值规则。拿到题先别急着看cout,要识别出括号里是个逗号表达式,记住它只返回最后一个值这个核心性质,再想cout到底输出了什么。

常见错误

学生最容易把逗号当成输出分隔符,以为会逐个输出2、3、23,或者误以为逗号运算符会返回多个值。命题人专门盯着这种惯性思维,利用'2, 3, 23'这个看起来合理的输出结果来诱导选A。其实逗号运算符在表达式里只保留最右边的值,前面的2和3就算求值了也会被丢弃,不会出现在输出里。

详细解析(节选)

考点与概念拆解

这道题考查的是逗号运算符的求值规则以及cout的输出行为。逗号运算符是C++中一个很特殊的语法元素,它的作用是从左到右依次求值每个操作数,但最终只返回最后一个操作数的值。也就是说,在表达式(2, 3, "23")中,2和3都会被求值,但它们的结果会被忽略,整个表达式的值就是"23"。

命题人怎么挖坑

命题人专门盯着学生'把逗号当分隔符'的惯性思维——90%考生误以为cout看到逗号就输出分隔,却不知逗号运算符本身会吞噬前面所有值,只留下最后一个。题目给出的'2, 3, 23'这个表述极具迷惑性,它暗示逗号在输出中起作用,而实际上逗号运算符是语法层面的,不是输出层面的。A选项'正确'就是利用学生'看到多个值就以为会逐个输出'的直觉来设置的陷阱。

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