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

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

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

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

小明想要快速知道任给一个正整数中有多少个奇数位(数位值是奇数)。下面的 C++ 代码是其实现,横线处该填入的代码是( )。
int N;
cin >> N;

int odd_count = 0;     // 记录奇数的个数
int old_number = N;    // 保存原数

while (N != 0) {
    if (_________________)
        odd_count += 1;

    N = (N - N % 10) / 10;
}
cout << old_number << "中共有 " << odd_count << " 个奇数";

正确答案:B

题目解析
数「奇数位」的个数:用 N%10 取出当前个位,再看它除 2 是否余 1(奇数),即 N % 10 % 2 == 1,选 B。(A 选的是偶数位。) 💡 取某位再判奇偶:N%10 拿个位 → %2==1 判奇、%2==0 判偶。注意 (N-N%10)/10 也是去个位(等价 N/=10)。

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

进入 GESPPASS 开始练习