GESP 二级 · GESP202609 C++ 二级 第 4 题

选择题 · 答案 D

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

题目

执行如下 C++ 代码,其输出是(  )。

cout << (bool(5) + bool(-5) + bool(5.0));
答案:D

解题思维

这题考查 C++ 类型转换规则。核心思路是识别出 bool 构造函数会把任何非零值转为 true(1),零值转为 false(0),然后按运算符优先级求值。

常见错误

A 错在以为 bool(5)+bool(-5)=0,忘了转换先发生;B 错在把+当成逻辑或,或认为整体为真;C 错在误判 bool(5.0) 为 false,或把 bool(-5) 当成 false。

详细解析(节选)

1. 考纲定位

本题考查 GESP C++ 二级大纲中"类型转换与表达式求值"模块。命题人放这道题,就是要卡住"条件转换(conditional conversion)"这个二级知识点——绝大多数考生知道 bool 转换,但容易在混合整数和浮点、正负数时出错。

2. 解题思维

看到题先识别出三个 bool 构造函数调用。关键观察:bool(5)→true(1),bool(-5)→true(1),bool(5.0)→true(1)。然后按运算符优先级:三个 bool 值都是 int 类型,执行整数加法 1+1+1=3。

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