在 C++ 中,cout << (5 % 2 && 5 % 3) 的输出是( )。
答案A。文件重定向后cout的输出被写入文件。程序本身无法确定输出目的地。
文件重定向后程序行为不变,只是I/O目的地改变了。程序无法区分。
我是 ,由 创作。
【考点】取模运算|逻辑与|布尔值输出
考纲定位:C++ 二级大纲“运算符优先级”“布尔值输出”模块。命题人放这道题卡住那些只背“&& 返回 true/false”而不知道输出细节的考生。
解题思维:先算 5 % 2 = 1,5 % 3 = 2,再逻辑与 1 && 2 → true,cout 输出 1。通法:遇到 cout << 布尔 直接记“真→1,假→0”,取模先算结果,别被中间值迷惑。注意 && 返回布尔而非第二个值,% 返回整数而非布尔。
陷阱拆解:A 正确。B 误把第二个取模值当输出,因为有人以为 && 只返回第二个值;C 以为会打印 "true",因为见过 cout << true 但忘了 C++ 默认输出 0/1;D 完全相反。最阴险的是“&& 返回 true/false”这个绝对表述——只背结论会掉进这个陷阱,忘记取模结果是整数、cout 输出 0/1。
反命题思维:若改成 cout << (5 % 2 || 5 % 3),短路会跳过第二个;换成 | 则按位或结果仍是 1。刷到类似题先问“命题人想考我什么”。