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

判断题 · 答案 A

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

题目

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

答案:A

解题思维

这道题看似简单,实则在考‘逻辑或’的本质和短路求值。拿到题先别急着算 5+2,要问自己:这是算术或还是逻辑或?左边非零即真,短路后右边根本不求值,结果就是逻辑真(整数 1)

常见错误

很多考生把 || 当成算术加法,以为 5||2 等于 7,或者误以为输出应该是 0/1 之外的布尔值。更隐蔽的坑是混淆短路与非短路:若题目是 5||0,右边的 0 会被求值,结果是 5;只有 0||0 才输出 0。命题人常在全为非零时设陷阱,测试你是否真的懂短路机制而非死记结论

详细解析(节选)

考点:逻辑运算符短路求值与布尔表达式输出

1. 考纲定位与命题视角

GESP 三级「基本运算」模块明确要求掌握逻辑运算符(||、&&、!)及其优先级。命题人卡住的是考生对「逻辑或」的本质认知——它不是算术或(5+2),而是布尔或(5 非零为真,2 非零为真,真或真为真),真值输出为整数 1。

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