C++ 语句 cout << (2, 3, "23") 的输出为 2, 3, 23。
这道题考的是逗号运算符的求值规则。拿到题先别急着看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选项'正确'就是利用学生'看到多个值就以为会逐个输出'的直觉来设置的陷阱。