CCF GESP 2026年3月认证 C++ 2级
二
判断题
第 1 题
小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。( )
第 2 题
C++ 语句 cout << ('4' % '2' == '2' * '2' % 2); 执行后的输出是 1。( )
第 3 题
下面的 C++ 代码段执行时将报错,因为 10 是整数类型,a 是布尔类型。由于类型不同,不能进行加法运算。( )
bool a = true;
cout << (10 + a);
第 4 题
下面 C++ 代码段执行后将输出 0-3-6-9- 。( )
for (int i = 0; i < 10; i++){
if (i % 3)
continue;
cout << i << "-";
}
第 5 题
执行下面的 C++ 代码段,如果 N 是基本数据类型,则语句 cout << (N); 将被执行 0 次或无数次(即死循环)。( )
cin >> N;
while (N)
cout << (N);
第 6 题
下面的 C++ 代码段可正常执行,删除 continue 不影响执行效果。( )
for (i = 0; i < 10; i++){
i += 1;
continue;
}
cout << (i);
第 7 题
下面的 C++ 代码段用于计算 1 到 N 之间且包含 N 的所有数字中含有的 3 的个数, 如 1 到 40 含有 14 个 3,而 1 到 20 则只含有 2 个 3。如果将 while (i != 0) 改为 while (abs(i)) ,则执行结果相同。( )
cout << "请输入正整数N:";
cin >> N;
cnt = 0; // 保存3的个数
for (k = 1; k < N + 1; k++){
i = k;
while (i != 0){
if (i % 10 == 3)
cnt += 1;
i /= 10;
}
}
cout << cnt;
第 8 题
下面的 C++ 代码段执行将不会有输出,因为内层循环 j 总是 0 开始, i*j%10==0 将会被满足,执行 break,故而 i 小于 10,不会满足 if 判断条件。( )
for (i = 1; i < 10; i++)
for (j = 0; j < i; j++)
if (i * j % 10 == 0)
break;
if (i >= 10)
cout << (i*j);
第 9 题
下列 C++ 代码执行后将输出 1#4#9#16#16 。( )
cnt = 0;
for (i = 1; i < 5; i++){
for (j = 1; j < i + 1; j++)
if (i * j % 10 == 0)
break;
if (j >= i + 1)
cout << (i * j) << "#";
}
if(i >= 5)
cout << (i * j);
第 10 题
下面 C++ 代码执行后输出如左图所示,将 "%d" 修改为 "%3d" 即可实现右图输出。( )
/*
// 左图 // 右图
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18 2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27 3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36 4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45 5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54 6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63 7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72 8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81 9 18 27 36 45 54 63 72 81
*/
for (i = 1; i < 10; i++){
for (j = 1; j < 10; j++)
printf(" %d", i*j);
printf("\n");
}
判断题部分已到底了。