GESP 一级 · GESP 202603 C++ 一级 第 7 题

选择题 · 答案 B · 考点:输入输出

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

题目

下面 C++ 代码执行时,其说法正确的是( )。

int M = 0, N = 0;
cin >> M;
cin >> N;

if (N > M)
    cout << (N - M);
else
    cout << (M - N);
答案:B

考点

输入输出

解题思维

答案B。if-else可以嵌套,if子句和else子句都可以嵌套if-else。else与最近的未匹配if结合。

常见错误

else与最近的未匹配且未加花括号的if结合。建议用花括号明确层次。

详细解析(节选)

【考点】if-else 选择结构|整数输入输出

1. 考纲定位 GESP 一级 C++ 第 3 单元"基础语法与算法"。命题人专门卡住初学者对"取绝对值"逻辑的识别力——看到两数差值时,容易忽略绝对值恒非负的本质。

2. 解题思维 代码分两步:先读入 M、N 两个整数;再用 if 判断 N>M 的布尔结果。若为真输出 N-M,否则输出 M-N。无论哪种分支,输出的都是两数差值的绝对值 |N-M|,数学上必然 ≥0。

3. 陷阱拆解

4. 反命题思维 若把 else 改成"不输出",答案就变成 C;若删掉条件判断,输出恒为 N-M,负数情况就全错了。这类题刷到先问:命题人是不是在考"绝对值"这个数学概念?

同考点真题

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