GESP 三级 · GESP 202312 C++ 三级 第 16 题

判断题 · 答案 A

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

题目

执行C++代码 cout<<(5&&2)<<endl; 后将输出 $1$。()

答案:A

解题思维

答案A。cout用于输出到标准输出(通常是屏幕)。cin从标准输入读取。

常见错误

cout和cin在iostream头文件中定义,使用时需#include <iostream>。

详细解析(节选)

【考点】逻辑运算符|表达式求值|输出转换

🎯 考纲定位: 本题考查《GESP 考试大纲》三级"基础语法"模块中的逻辑运算考点。命题人专挑这个点卡人——C++ 逻辑运算结果转为整型输出是三级高频陷阱,90% 考生会误以为输出布尔值 true/false,其实 cout 对逻辑值有固定转换规则。

🧠 解题思维: 看到 5&&2 先判断运算符类型:这是逻辑与(&&),不是位与(&)。C++ 规定逻辑运算操作数按 bool 转换:非零值转 true,零值转 false。5 和 2 都非零,故 5&&2 结果为 true。cout 输出逻辑值时,true 固定转为整型 1,因此 cout<<(5&&2) 输出 1 完全正确。

🪤 陷阱拆解: A 项正确,但错误选项设计得很狡猾。若误把&&当成位运算,会算成 5&2=0 而选 B;若混淆了逻辑值输出规则,会以为输出"true";若忽略了 C++ 中整数参与逻辑运算先转 bool 的隐式规则,就会陷入死胡同。最阴险的是这个题连"非零即真"都没考,纯考运算符识别,专治粗心。

🔄 反命题思维: 把&&换成||,5||2 仍是 1,输出不变;把 5 换成 0,0&&2 得 false 输出 0,题型就变味了。刷到这类题先问自己:"运算符优先级有没有干扰?操作数类型会不会触发隐式转换?"

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