#G1151. 2024年12月 GESP C++ 二级
2024年12月 GESP C++ 二级
GESP 202412 C++ 二级
第 1 题
2024 年 10 月 8 日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰弗里·辛顿(Geoffrey E. Hinton)。这两位科学家的主要研究方向是({{ select(1) }})。
- 天体物理
- 流体力学
- 人工智能
- 量子理论
第 2 题
计算机系统中存储的基本单位用 B 来表示,它代表的是({{ select(2) }}),比如某个照片大小为 3MB。
- Byte
- Block
- Bulk
- Bit
第 3 题
C++ 语句 cout << (3 + 3 % 3 * 2 - 1) 执行后输出的值是({{ select(3) }})。
- -1
- 4
- 56
- 2
第 4 题
下面 C++ 代码执行后其输出是( )。
for (int i=0; i<10; i++)
printf("%d",i);
{{ select(4) }}
- 123456789
- 0123456789
- 12345678910
- 012345678910
第 5 题
下面 C++ 代码的相关说法中,正确的是( )。
int tnt;
for (int i=0; i<10; i++)
tnt += i;
cout << tnt;
{{ select(5) }}
- 上述代码执行后其输出相当于求 1-10 的和(包含 10)
- 上述代码执行后其输出相当于求 1-10 的和(不包含 10)
- 上述代码执行后其输出相当于求 0-10 的和(不包含 10)
- 上述代码执行后将输出不确定的值
第 6 题
下面 C++ 代码执行后输出是( )。
int i;
for (i=1; i<10; i++)
if (i % 2)
continue;
else
break;
cout << i;
{{ select(6) }}
- 1
- 2
- 9
- 10
第 7 题
下面 C++ 代码执行后的输出是( )。
for (i=0; i<10; i++){
if (i % 3)
continue;
printf("0#");
}
if(i>=10)
printf("1#");
{{ select(7) }}
- 0#0#0#0#0#0#0#1#
- 0#0#0#0#0#0#0#1#
- 0#0#0#0#0#1#
- 0#0#0#0#
第 8 题
下面 C++ 代码用于输出 0-100 之前(包含 100)能被 7 整除但不能被 3 整除的数,横线处不能填入的代码是( )。
for (i=0; i<100; i++)
if(______________)
cout << i << endl;
{{ select(8) }}
i % 7 == 0 && i % 3 != 0!(i % 7) && i % 3 != 0i % 7 && i % 3i % 7 == 0 && !(i % 3 == 0)
第 9 题
下面 C++ 代码用于求正整数各位数字之和,横线处不应填入代码是( )。
int tnt, N;
printf("请输入正整数:");
cin >> N;
tnt = 0;
while (N != 0){
________________
N /= 10;
}
cout << tnt;
{{ select(9) }}
tnt = tnt + N % 10tnt += N % 10tnt = N % 10 + tnttnt = N % 10
第 10 题
下图的 C++ 程序执行后的输出是( )。
for (i=0; i<5; i++)
for (j=0; j<i; j++)
cout << j;
{{ select(10) }}
- 0010120123
- 01012012301234
- 001012012301234
- 01012012301234012345
第 11 题
下面 C++ 代码用于实现图示的九九乘法表。相关说法错误的是( )。
/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
for (int Hang=1; Hang<10; Hang++){
for (int Lie=1; Lie<Hang+1; Lie++){
if (Lie * Hang > 9)
printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
else
printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
// L2
}
printf("\n"); // L1
}
{{ select(11) }}
- 将 L1 注释的
printf("\n")移到 L2 注释所在行,效果相同 - 将 L1 注释的
printf("\n")修改为print("%c", '\n')效果相同 - 将
Lie * Hang > 9修改为Lie * Hang >= 10效果相同 - 将
Lie * Hang > 9修改为Hang * Lie > 9效果相同
第 12 题
在数学中 表示 的阶乘,即 到 的乘积,如 。下面的 C++ 用于求 - 的阶乘之和,如 为 ,则是 。下面代码段补充选项后用于实现上述功能,其中不能实现阶乘和的选项是( )。
int N;
cin >> N;
int tnt = 0, nowNum = 1; // tnt 保存求和之值,当前 N 的阶乘
for (int i = 1; i < N + 1; i++) {
____________ // 基于上一个计算出当前数的阶乘
____________ // 从 1 到 i 每个数阶乘之和
}
cout << tnt;
A.
nowNum *= i;
tnt += nowNum;
B.
nowNum = nowNum * i;
tnt = tnt + nowNum;
C.
nowNum *= i;
tnt = nowNum + tnt;
D.
nowNum = nowNum + i;
tnt *= nowNum;
{{ select(12) }}
- A
- B
- C
- D
第 13 题
下面 C++ 代码用于输出 和 之间(可以包括 和 )的孪生素数。孪生素数是指间隔为 的两个数均为素数,如 和 分别是素数,且间隔为 。isPrime(N) 用于判断 是否为素数的函数。为完成上述功能,横线处应填上的代码是( )。
int N, M;
// 本题假设 N 小于 M
cin >> N >> M;
for (int i = N; i < __________; i++)
if (isPrime(i) && isPrime(i + 2))
printf("%d %d\n", i, i + 2);
{{ select(13) }}
M - 2M - 1MM + 1
第 14 题
下面 C++ 代码实现输出如下图形。横线应填入的代码是( )。
/*
高度:5
*
***
*****
*******
*********
*/
int height;
cout << "高度:";
// 获取用户输入的高度
cin >> height;
for (i = 0; i < height; i++) {
// 打印每行前面的空格
for (j = 0; j < __________; j++)
cout << " ";
// 打印每行的星号
for (k = 0; k < __________; k++)
cout << "*";
// 输出一行后,换行
cout << endl;
}
A.
height - i
2 * i
B.
height
2 * i
C.
height - i
2 * i + 1
D.
height - i - 1
2 * i + 1
{{ select(14) }}
- A
- B
- C
- D
第 15 题
下面 C++ 代码执行后的输出是 ,则横线处不能填入( )。
int a = 10, b = 20, c = 30;
cout << __________ << endl;
cout << endl;
{{ select(15) }}
max(max(a, b), c)min(a + b, c)sqrt(a + b + c)(a + b + c) / 2
第 16 题
在 Windows 的资源管理器中为已有文件 A 建立副本的操作是 Ctrl+C,然后 Ctrl+V({{ select(16) }})。
- 正确
- 错误
第 17 题
在 C++ 代码中,假设 为正整数,则 cout << (N - N / 10 * 10) 将获得 的个位数({{ select(17) }})。
- 正确
- 错误
第 18 题
在 C++ 语句 cout << (10 <= N <= 12) 中,假设 N 为 12,则其输出为 1({{ select(18) }})。
- 正确
- 错误
第 19 题
如果 C++ 表达式 int(sqrt(N))*int(sqrt(N)) == N 的值为 True,则说明 为完全平方数,如 4、9、25 等({{ select(19) }})。
- 正确
- 错误
第 20 题
下面 C++ 代码执行后将输出 2*3=6。( )
int a = 2, b = 3;
printf("%%a*%%b=%d", a*b);
{{ select(20) }}
- 正确
- 错误
第 21 题
以下 C++ 代码因为循环变量为 _ 将导致错误,即 _ 不能作为变量名称,不符合 C++ 变量命名规范。( )
for (int _ = 0; _ < 10; _++)
continue;
{{ select(21) }}
- 正确
- 错误
第 22 题
下面 C++ 代码执行后因为有 break,将输出 0。( )
int i;
for (i = 0; i < 10; i++){
continue;
break;
}
cout << i;
{{ select(22) }}
- 正确
- 错误
第 23 题
下面的 C++ 代码执行后将输出 18 行 “OK”。( )
int i,j;
for (i = 8; i > 2; i-=2)
for (j =0; j < i; j++)
printf("OK\n");
{{ select(23) }}
- 正确
- 错误
第 24 题
将下面 C++ 代码中的 i = 1 调整为 i = 0 的输出结果相同。( )
int i;
int cnt = 0;
for (i = 1; i < 5; i++)
if(i%2) cnt += 1;
cout << cnt;
{{ select(24) }}
- 正确
- 错误
第 25 题
下面两段 C++ 代码都是用于求 1-10 的和,其运行结果相同。通常说来,for 循环都可以用 while 循环实现。( )
int tnt;
int i;
tnt = 0;
for (i = 1; i < 10 + 1; i++)
tnt += i;
cout << tnt << endl;
int tnt;
int i;
tnt = 0;
i = 1;
while (i <= 10){
tnt += i;
i += 1;
}
cout << tnt << endl;
{{ select(25) }}
- 正确
- 错误