题库首页 › GESP等级认证(C++) › 题目 21002

漂亮数的定义是:如果N能被M整除,或者某位是M,或者N的每位数之和能被M整除,则说N是M的漂亮数。如果三个条件都满⾜,则是完整漂亮数。123是3的完整漂亮数,因为123能被3整除,也含有3,其每位数之和为6也能被3整除。下⾯的代码⽤于判断N是否为M的完整漂亮数并输出。相关说法正确的是( )。int N, M, Flag, Sum, num; cout > N; cout > M; Sum = 0; // 记录各位数之和 Flag = 0; // 假设记录N不含有M while (N != 0){ num = N % 10; Sum += num; if (num == M) Flag = 1; N /= 10; } if ((N % M == 0) && (Flag == 1) && (Sum % M == 0)) // L1 printf("%d 是 %d 的完整漂亮数", N, M); else printf("%d 不是 %d 的完整漂亮数", N, M);

A. 代码能完成题目设定目标。
B. 在 while 循环中N最终将变成0,因此L1行代码中 N % M 将总是满足条件,可以在 while 前增加一行代码int old_num = N; ,并将L1开始这4行代码中的 N都改为 old_num 就可以做出正确的判定。
C. while 循环中 if 判断语句可以增加 else 子句,其内容为 Flag = 0 。
D. 如果先后输入 0 和 3 ,则肯定会输出 0是3的完整漂亮数 。

正确答案:B

试卷来源:202512 CCF-GESP编程能力等级认证C++二级真题

本卷相关题目

在线做题 同科目题库