执行 C++ 代码 cout << (not not 5) 将输出 5 。
看到 not not 5 先想逻辑运算:not 会把非零整数转为 true,再转回 false,最终输出 1。关键是记住 not 返回布尔值,不是原数。
错误选项 A 利用直觉陷阱:学生常误以为 not not 5 等于 5,或以为 cout 输出 true 字符串。其实 not 返回布尔值,true 输出为 1。
本题考查 GESP 二级 C++ 大纲第 2.3 节「逻辑运算符」。命题人专门放这道题,就是要卡住那些「看到 not 就以为会返回原数」的直觉型考生——二级里逻辑运算和算术运算混在一起考,是经典陷阱区。
完整思考链: 1. 先确定 not 的语义:逻辑非,返回布尔值。 2. 确定 5 的布尔值:非零整数 → true。 3. 计算 not 5:not true → false。 4. 计算 not not 5:not false → true。 5. 输出 true:cout << true 输出 1。
关键数字推演:
5 → true(非零)not true → falsenot false → truecout << true → 1