执行C++代码 cout<<(5&&2)<<endl; 后将输出 $1$。()
答案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,题型就变味了。刷到这类题先问自己:"运算符优先级有没有干扰?操作数类型会不会触发隐式转换?"