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

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

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

所属知识点:循环综合应用 难度要求:掌握 考频:中频

N 是一个正整数。如果 N 的所有奇数位的数位和等于所有偶数位的数位和,则称它是一个"双螺旋数"。例如 `12375` 的所有奇数位的数位和是 9,同时它的所有偶数位的数位也是 9,则 `12375` 就是一个双螺旋数。下面的 C++ 代码用于判断输入的 N 是否为双螺旋数。空白处应该填入的代码是( )。 ---
int i, N, N1=0, N2=0, N0;
cin >> N;
N0 = N;
while (N) {
    _________________________
    _________________________
}
if (N1 == N2)
    cout << N0 << "是双螺旋数" << endl;

正确答案:A

题目解析
要把数位「一个归奇位、一个归偶位」交替累加。A 的两行 N1 += N%10, N/=10N2 += N%10, N/=10:每轮先取个位给 N1 并去掉,再取下一位给 N2 并去掉,正好交替分配。验证 12375:N1=5+3+1=9、N2=7+2=9 相等,是双螺旋数,选 A。(B 取的是 N/10 不是数位;C、D 用 N%=10 会破坏数据。) 💡 交替分组:在循环里连写两段「取位+去位」,就能把数位轮流分到两个累加器。去位要用 /=10 而非 %=10

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

进入 GESPPASS 开始练习