题型:单选题
漂亮数的定义是:如果N能被M整除,或者某位是M,或者N的每位数之和能被M整除,则说N是M的漂亮数。如果三个条件都满⾜,则是完整漂亮数。123是3的完整漂亮数,因为123能被3整除,也含有3,其每位数之和为6也能被3整除。下⾯的代码⽤于判断N是否为M的完整漂亮数并输出。相关说法正确的是( )。
int N, M, Flag, Sum, num;
cout << "请输入N,不等于0的正整数:";
cin >> N;
cout << "请输入M:M必须大于1小于9:";
cin >> 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的完整漂亮数 。 |
更新时间:2026-07-21 18:50:09
|
【知识点】
CCF—GESP C++二级
抱歉! 您未登录, 不能查看答案和解析点击登录
相似题推荐
单选题
下面的C++代码执行后其输出是( )。
int cnt = 0, N; for (int i =1; i < 10; i += 2) for (int j =0; j < i; j++) cnt += 1; cout << cnt;
| A. 100 |
B. 55 |
| C. 45 |
D. 25 |
2026-07-22
单选题
下面C++代码执行后其输出是( )。
int i,j;
for (i = 1; i < 12; i++){
if (i % 2 == 0)
continue;
for (j = 0; j < i; j++)
if (i * j % 2 == 0)
break;
if(j >= i)
cout << i * j << " ";
}
if(i >= 12)
cout << (i * j); | A. 0 0 |
B. 11 |
| C. 0 |
D. 0 11 |
2026-07-22
单选题
下面有关C++变量的说法,正确的是( )。2025.12-2
| A. 不可以用 for 作为变量名,因为 for 是C++的关键字(保留字)。 |
B. _tnt 不可以是变量名,因为变量名的第一个字符必须是英文字母。 |
| C. _tnt_ 不可以是变量名,因为最后一个字符容易与减号混淆。 |
D. 可以用 printf 作为变量名,因为 printf 是关键字,但这不是好习惯,因为 printf 有约定的功能与含义。 |
2026-07-22
单选题
阅读下面的C++代码。执行后如输入 5 ,其输出的字符图形是( )。
int n,i,j,k;
cin >> n;
for (i = 0; i < n; i++){
for (j = 0; j < n-i-1; j++)
cout << " ";
for (k = 0; k < 2*i+1; k++)
cout << "*";
cout << endl;
} A.***** **** *** ** * |
B.* *** ***** ******* ********* |
C.* ** *** **** ***** |
D.* ** *** **** ***** |
2026-07-22
