GESP C++ 真题 · 逐题精解
首页C++一级真题 › 2025年12月 › 第12题

GESP 2025年12月 C++一级 单选题 第12题

C++一级单选题2025年12月第12题

所属知识点:while / do-while 循环 难度要求:掌握 考频:高频

两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的 C++ 代码用于实现该操作,横线处应该填写的代码是( )。
int N, M;
cin >> N >> M;

while (N != M){
    if (N > M)
        _______________;
    else
        _______________;
}

cout << N;

正确答案:A

题目解析
这是辗转相减:两数不等时,谁大就减去对方。N>M 时 N=N−M,否则 M=M−N,直到相等,选 A。(D 是 Python 式并行赋值,C++ 不支持;B、C 把大小关系或方向弄反。) 💡 辗转相减法求最大公约数:大减小、反复做,直到相等。和辗转相除(%)是一对经典算法。

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

进入 GESPPASS 开始练习