GESP 二级 · GESP 202306 C++ 二级 第 15 题

选择题 · 答案 C

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

题目

执行以下 C++ 语言程序后,输出结果是( )。

#include <iostream>
using namespace std;
int main() {
    for (char x = 'A'; x <= 'D'; x++)
        if ((x != 'A') + (x == 'C') + (x == 'D') + (x != 'D') == 3)
            cout << x;
    return 0;
}
答案:C

解题思维

这题别急着代入,先反应过来 C++ 里关系表达式就是整数(true=1,false=0),那 if 括号里其实是在数'有多少个条件为真'。看到 (x==D)+(x!=D) 这种互补项,直接想到它们加起来恒为 1,能瞬间把四段式压缩成三段判断,这样 x 取不同值时结果一目了然。

常见错误

最大坑是死记硬背'布尔值'三个字,却在计算时当成逻辑真假去判断,忘了它们在算术运算里就是 1 和 0。很多考生会逐项算出 A 时为 1、B 时为 2、C 时为 3、D 时为 2,却误以为只有 C 满足就选 C,其实题目问的是输出结果,C 确实输出,但选项里只有 C 对应输出字符'C',所以选 C 没错,但错误往往出现在对条件的理解上,比如把 (x==D)+(x!=D) 当成矛盾条件,认为不可能同时为真,从而漏掉这一项的恒为 1 特性。

详细解析(节选)

【考点】for 循环|字符比较|布尔值求和

这题考的是 C++ 里一个非常底层但极其重要的概念:关系表达式在参与算术运算时会被自动转换为整数,true 是 1,false 是 0。命题人故意把四个关系式用加号连起来,再跟 3 比较,其实就是让你数'有几个条件为真'。二级考生最容易掉进的坑,就是只盯着'布尔值'四个字,却忘了它们在加法里就是数字,导致要么算错,要么对条件组合产生直觉错误。

【命题视角】命题人喜欢在循环里埋这种'条件计数'的陷阱,尤其是用互补条件(比如 x==D 和 x!=D)来迷惑只会机械代入的人。你看 (x==D)+(x!=D),不管 x 是什么,这两项加起来永远等于 1,因为它们不可能同时为假,也不可能同时为真。命题人就是利用这种'看似矛盾实则互补'的设计,让考生如果不懂底层转换,就会觉得'怎么可能两个条件加起来是 1',从而在心理上卡住。

【思考心法】拿到这题,先别急着写代码或代入,花两秒钟反应过来:if 括号里是算术表达式,不是逻辑表达式。那四个条件加起来等于 3,就是在问'有几个条件为真'。接下来,把循环变量 x 从'A'到'D'一个个过一遍,看每个 x 满足几个条件。

【逐值推演】

所以最终输出只有'C',对应选项 C。

【陷阱拆解】最阴险的细节就是 (x==D)+(x!=D) 这一项。很多考生会误以为这是两个互斥条件,加起来可能为 0 或 2,却忘了它们加起来恒为 1。命题人用这一项来抵消其他条件,让整体表达式变得不那么直观。如果你能一眼看出这一项恒为 1,那整个条件就简化为:(x!='A')+(x=='C')+(x!='D')==2。这样再代入 x 的值,就能更快判断。但二级考生往往缺乏这种'化简'意识,只能硬算,容易在计算过程中出错。

【反命题思维】如果把这题的条件改成==2,那 x='B'和 x='D'都会输出,答案就会变成'B'和'D';如果改成==4,那没有任何 x 能满足,输出为空。刷到类似题,先问自己:这段加法到底在统计什么?有没有互补项可以化简?这样就能快速抓住命题人的意图。

【考频与趋势】这道题属于'基础语法'和'控制结构'的交叉点。从题库数据看,'基础语法'在 2023 年考了 287 题,2024 年 413 题,2025 年 401 题,2026 年 109 题,呈现先升后降的趋势,说明命题人近期对基础概念的考察力度很大,尤其是'布尔值转整数'这种底层细节。'控制结构'在 2023 年 81 题,2024 年 138 题,2025 年 160 题,2026 年 45 题,也保持了较高热度。'循环结构'在 2023 年 77 题,2024 年 128 题,2025 年 158 题,2026 年 161 题,逐年上升,说明循环相关的题目在 GESP 二级中占比越来越高。

综合来看,未来 GESP 二级继续加大'基础语法'和'控制结构'的考察力度是大概率事件,尤其是'布尔值转整数'、'条件计数'这类细节,命题人可能会继续用循环嵌套、复杂条件表达式来包装,让考生不仅要懂概念,还要能在动态环境中快速推理。如果数据不足以支撑更具体的预测,那就只能基于经验判断:这类题会越来越'灵活',但核心考点不会变,就是'底层转换'和'条件组合'。

【答案】C

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