#1155. GESP C++ 二 级 2026年6月真题 · 单选题
GESP C++ 二 级 2026年6月真题 · 单选题
GESP C++ 二 级 2026年6月真题(120 分钟,总分 100 分)
单选题(共 15 题,每题 2 分,共 30 分)
1. 学校组织到未来农场参观,小明听讲解员介绍,在智能温室中,湿度传感器可以连续检测土壤的湿度变化,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这里的湿度传感器所发挥的作用,类似于计算机系统中的哪一类组件?
{{ select(1) }}
- 处理器
- 存储器
- 输入设备
- 输出设备
2. 小明去农场参观回来后就在自己的电脑上安装了一个3D农场仿真模拟系统,因为他今年买的二手电脑有点老旧,系统运行时经常弹出“系统内存不足”的警告,导致系统卡顿严重。他计划通过增加物理内存来解决问题。请问他应该购买以下哪种硬件组件?
{{ select(2) }}
- 机械硬盘
- 内存条
- 图形显卡
- 移动硬盘
3. 有关如下C++代码的说法,正确的是( )。
float a = 3 + 3.5;
cout << a;
{{ select(3) }}
- 代码执行将报错。如果将a = 3 + 3.5改为a = float(3) + 3.5将能正常执行。
- 代码执行将报错。如果将a = 3 + 3.5改为a = 3.0 + 3.5将能正常执行。
- 代码能正常执行,将输出6。
- 代码能正常执行,将输出6.5。
4. 下面选择项中,与C++表达式not (x > 5 or y <= 10)等价的是( )。
{{ select(4) }}
x <= 5 or y > 10x > 5 and y <= 10x <= 5 and y > 10not x > 5 and not y <= 10
5. 小明在某开发环境中执行C++代码cout << (2.5 + 2.25) << ' ' << (2.2 + 2.1)时输出4.75 4.300000000000001,其原因最可能是( )。
{{ select(5) }}
- C++的+运算符在处理浮点数时有时正确,有时错误
- 某些浮点数难以精确表示,导致微小误差
- +运算符不能用于浮点数,只能用于整数
- 因为cout函数难以输出太长的数值
6. 执行如下C++程序后,当输入4时,输出的最后一行是( )。
int n;
cin >> n;
for (int i = n; i > 0; i--) {
for (int j = 0; j < i; j++)
cout << j + 1 << ' ';
cout << endl;
}
{{ select(6) }}
- 0
- 1
- 1 2
- 1 2 3 4
7. 下面的C++代码执行后其输出是( )。
int tnt = 0;
for (int i = 1; i < 5; i += 3) {
for (int j = 0; j < i; j++)
tnt += 1;
cout << tnt << "#";
}
cout << tnt;
{{ select(7) }}
1#5#51#5#5#1#5#12#12- 0
8. 下面的C++代码执行之后的输出是( )。
int i;
for (i = -2; i < 2; i++)
if (not i % 3 == 0)
cout << i << "#";
cout << i;
{{ select(8) }}
-2#-1#1#2-2#-1#1#2#31#2#30#1#2#3
9. 下面的C++代码执行后其输出是( )。
int cnt = 0, i, j;
for (i = 0; i < 3; i++) {
j = i;
while (j) {
cnt += 1;
j -= 1;
}
}
cout << i << ' ' << j << ' ' << cnt;
{{ select(9) }}
- 3 0 3
- 2 0 4
- 2 0 5
- 3 0 5
10. 下面C++代码执行后其输出是( )。
int count = 0, i, j;
for (i = 1; i < 4; i++)
for (j = 0; j < i; j++) {
if (j % 3 != 0)
continue;
count += 1;
break;
}
cout << i << ' ' << j << ' ' << count;
{{ select(10) }}
- 4 0 4
- 3 0 0
- 3 2 0
- 4 0 3
11. 如下C++代码执行后输出是1 2 3 4 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7。横线处应该填入的运算符是( )。
int num = 1;
for (int i = 0; i < 35; i++) {
cout << num << " ";
if (num ______ 10)
num ______ 2;
else
num ______ 1;
}
{{ select(11) }}
> /= +=>= %= +=> /= =+>= %= =+
12. 如下数字图形在通过执行后续的C++代码时,输入10来输出。横线处应填入的代码是( )。
1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 1
1 0 1 0 0 0 0 0 0 1
1 0 0 1 0 0 0 0 0 1
1 0 0 0 1 0 0 0 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 1 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1
int N;
cin >> N;
for (int i = 1; i < N + 1; i++) {
for (int j = 1; j < N + 1; j++)
if (________)
cout << "1 ";
else
cout << "0 ";
cout << endl;
}
{{ select(12) }}
i == j and i == 1 and j == 1 and i == N and j == Ni == j or i == 1 or j == 1 or i == N or j == Ni == j or i == 0 or j == 0 or i == (N + 1) or j == (N + 1)i == j and i == 1 and j == 1 and i == (N + 1) and j == (N + 1)
13. 英文corner case通常翻译为极端案例或边角案例,通常指正常范围以外的问题或者情形。在如下C++代码中,变量都是整型,则corner case最应该是( )。
int tnt = 0, cnt = 0;
while (1) {
int score;
cin >> score;
if (score == -1)
break;
tnt += score;
cnt += 1;
}
cout << tnt / cnt;
{{ select(13) }}
- tnt = 0, cnt = 0是corner case,应分为两行
- while(1)是corner case,因为while(1)将会导致死循环
- cin >> score是corner case,因为输入数据前应该提示整型数据
- cout << tnt / cnt是corner case,因为如果直接输入-1,将导致执行错误,虽然这种情况较为罕见
14. 如下C++代码执行后,输入4后,输出的数字图形是( )。
int n;
cin >> n;
for (int i = n; i > 0; i--) {
for (int j = 0; j < n - i; j++)
cout << "0 ";
for (int k = 0; k < i; k++)
cout << k + 1 << " ";
cout << endl;
}
{{ select(14) }}
1 2 3 41 2 3 01 2 0 01 0 0 01 2 3 40 1 2 30 0 1 20 0 0 11 2 3 42 3 4 03 4 0 04 0 0 00 0 0 10 0 1 20 1 2 31 2 3 4
15. 某学校举办“校园演讲比赛”,每位选手由8位评委打分(分数为0~10的整数),且每位评委必须打分。计分规则:去掉一个最高分,去掉一个最低分。如下程序通过键盘先输入选手编号,然后依次输入8个分数,并计算最终得分。下列说法正确的是( )。
for (int i = 0; i < 10; i++) {
int id, score;
printf("输入选手编号:");
scanf("%d", &id);
int max_score = 0, min_score = 100; // 最高分和最低分
int total_score = 0; // 总分
for (int j = 1; j < 9; j++) {
printf("输入选手第%d个成绩:", j);
scanf("%d", &score);
if (max_score < score)
max_score = score;
if (min_score > score)
min_score = score;
total_score += score;
}
total_score = total_score - max_score - min_score;
printf("%d号选手的成绩:\
去掉一个最高分%d,\
去掉一个最低分%d,\
最后成绩是: %d", id, max_score, min_score, total_score);
}
{{ select(15) }}
- 上述代码能完成题目要求
max_score = 0, min_score = 100应修改为max_score = 0, min_score = 0max_score < score和min_score > score必须相应修改为<=和>=total_score = total_score - max_score - min_score不能达到预期,可修改如下:int total = total_score - max_score - min_score;
total_score = total;
相关
在下列比赛中: