GESP 一级 · GESP 202512 C++ 一级 第 13 题

选择题 · 答案 D · 考点:循环结构

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

题目

如果一个正整数能被 $3$ 整除,或者某一位能被 $3$ 整除,则称之为“漂亮数”。下面的 C++ 代码用于判断正整数 $N$ 是否为漂亮数,L1 行的横线处应该填入的代码是( )。

int N, Flag;
cin >> N;

Flag = 0; // "非漂亮数"
if (N % 3 == 0)
    Flag = 1; // "漂亮数"
else
    while (N != 0){
        if (_____________){ // L1
            Flag = 1;
            break;
        }
        N /= 10;
    }
cout << (Flag? "漂亮数" : "非漂亮数");
答案:D

考点

循环结构

解题思维

答案D。先分析已有代码的功能,确定输出目标,再反推横线处需要的代码。可用代入法验证。

常见错误

将每个选项代入横线处验证是最可靠的方法。注意代码的完整逻辑和输出格式。

详细解析(节选)

【考点】取模运算|循环结构|数字位处理

解题思维:先判断 N 整体能被3整除(N%3==0),若成立直接标记为漂亮数。否则进入循环逐位处理:N%10 取出当前个位数字,再对3取模判断该位是否为3的倍数。循环体末尾 N/=10 去掉已处理位,直到 N 为0。横线处必须同时完成两个操作:取出个位(N%10)并判断其被3整除(%3==0),因此 D 选项 N%10%3==0 是唯一正确组合。

陷阱拆解:

反命题思维:命题人故意用"整体整除"与"某位整除"两个并列条件,考察对取模运算的连续性与循环逐位处理的掌握。若将 N%3 改为 N%5,或将条件改为"某位是奇数",只需替换相应取模与比较对象,循环结构完全复用。

总之,遇到此类题先拆解题意:整体条件→循环逐位→位操作组合,再代入选项验证语法与逻辑。

同考点真题

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