GESP C++ 真题 · 逐题精解
首页C++一级真题 › 2026年3月 › 第13题

GESP 2026年3月 C++一级 单选题 第13题

C++一级单选题2026年3月第13题

所属知识点:if / if-else 语句 难度要求:掌握 考频:高频

小明和弟弟在玩一个拼数字游戏,游戏规则是:二人各写一个两位正整数 M 和 N;然后将较大的数字放在较小的前面,拼成一个 4 位数;将这个 4 位数除以 3 的余数添加到 4 位数的后面,得到一个 5 位数;最后判断这个 5 位数能否被 14 整除。下面的 C++ 代码用于判断 M 和 N 是否符合全部要求,如果符合则输出 Y 否则输出 N。例如输入 85 和 79,可以拼出 85792,恰好是 14 的倍数,则输出 Y。关于下面代码描述正确的是( )。
int M, N, Q;
cin >> M >> N;

if (M > N)        // L1
    Q = M*100+N;
else
    Q = N*100+M;

if ((Q*10+Q%3) % 14 == 0)   // L2
    cout << "Y";
else
    cout << "N";

正确答案:D

题目解析
代码逻辑没问题(A 错):大数放前拼 4 位数 Q,再 Q*10+Q%3 拼出 5 位数,判断能否被 14 整除。其实可以不借助 Q——比较出大小后直接用 M、N 拼数判断也行,选 D。(B 把条件改 M<=N 会放反;C 把 Q%3Q/3 改变原意。) 💡 「能否被 k 整除」= ... % k == 0%3 是取余数(0/1/2),/3 是取商,二者用途不同别混。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习