万卷网 > 题目详情
题型:单选题

漂亮数的定义是:如果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++二级

相似题推荐

单选题

下面代码用来找出输入的N个正整数中最大的一个。如果将代码段用流程图来表示,则 L1 标记的代码行应 该使用的图形是( )。

int N, max=0, val; 
cin >> N; 

while(N){ 
    cin >> val; 
    if(val > max) // L1 
        max = val; 
    N--; 
} 
cout << max;
A.

圆形框

B.

椭圆形框

C.

平行四边形框

D.

菱形框

2026-09-29
判断题

下面C++代码段执行后将输出 0-3-6-9- 。 ( )

for (int i = 0; i < 10; i++){ 
    if (i % 3) 
        continue; 
    cout << i << "-"; 
}


A.正确 B.错误
2026-09-29
单选题

下面的 C++ 代码段正常执行后其输出的数字图形是( )。

for (i = 1; i < 5; i++){ 
    for (j = 1; j < i+1; j++) 
        cout << j; 
    cout << endl; 
}
A.

1

12

123

1234

B.

1

22

333

4444

C.

1

21

321

4321

D.

4

34

234

1234

2026-09-29
判断题

C++ 语句cout << ('4' % '2' == '2' * '2' % 2); 执行后的输出是1。( )

A.正确 B.错误
2026-09-29
单选题

下面 C++ 代码段执行后,其输出是( )。

int i, j, cnt; 
cnt = 0; 
for (i = 0; i < 5; i++){ 
    i = -i; for (j = i; j < -i; j++) cnt += 1; 
    i = -i; 
} 
cout << cnt;
A.

5

B.

15

C.

20

D.

30

2026-09-29
公众号
客服 反馈
顶部