佛大附属信奥 在线评测 · 分级学习
登录

GESP C++ 二级 · 2026 年 6 月认证理论卷

登录 后作答才能记录成绩

一、单选题(每题 2 分)

1. 学校组织到未来农场参观,⼩明听讲解员介绍,在智能温室中,湿度传感器可以连续检测⼟壤的湿度变化,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这⾥的湿度传感器所发挥的作⽤,类似于计算机系统中的哪⼀类组件?( )
2. ⼩明去农场参观回来后就在⾃⼰的电脑上安装了⼀个 3D 农场仿真模拟系统,因为他今年买的⼆⼿电脑有点⽼旧,系统运⾏时经常弹出"系统内存不⾜"的警告,导致系统卡顿严重。他计划通过增加物理内存来解决问题。请问他应该购买以下哪种硬件组件?( )
3. 有关如下 C++ 代码的说法,正确的是( )。 ```cpp float a = 3 + 3.5; cout << a; ```
4. 下⾯选择项中,与 C++ 表达式 `not (x > 5 or y <= 10)` 等价的是( )。
5. ⼩明在某开发环境中执⾏ C++ 代码 `cout << (2.5 + 2.25) << ' ' << (2.2 + 2.1)` 时输出 `4.75 4.300000000000001`,其原因最可能是( )。
6. 执⾏如下 C++ 程序后,当输⼊ 4 时,输出的最后⼀⾏是( )。 ```cpp int n; cin >> n; for (int i = n; i > 0; i--) { for (int j = 0; j < i; j++) cout << j + 1 << ' '; cout << endl; } ```
7. 下⾯的 C++ 代码执⾏后其输出是( )。 ```cpp int tnt = 0; for (int i = 1; i < 5; i += 3) { for (int j = 0; j < i; j++) tnt += 1; cout << tnt << "#"; } cout << tnt; ```
8. 下⾯的 C++ 代码执⾏之后的输出是( )。 ```cpp int i; for (i = -2; i < 2; i++) if (not i % 3 == 0) cout << i << "#"; cout << i; ```
9. 下⾯的 C++ 代码执⾏后其输出是( )。 ```cpp int cnt = 0, i, j; for (i = 0; i < 3; i++) { j = i; while (j) { cnt += 1; j -= 1; } } cout << i << ' ' << j << ' ' << cnt; ```
10. 下⾯ C++ 代码执⾏后其输出是( )。 ```cpp 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; ```
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`。横线处应该填⼊的运算符是( )。 ```cpp int num = 1; for (int i = 0; i < 35; i++) { cout << num << " "; if (num _______ 10) num _______ 2; else num _______ 1; } ```
12. 如下数字图形在通过执⾏后续的 C++ 代码时,输⼊ 10 来输出。横线处应填⼊的代码是( )。 ``` 1 1 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 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ``` ```cpp 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; } ```
13. 英⽂ corner case 通常翻译为极端案例或边角案例,通常指正常范围以外的问题或者情形。在如下 C++ 代码中,变量都是整型,则 corner case 最应该是( )。 ```cpp int tnt = 0, cnt = 0; while (1) { int score; cin >> score; if (score == -1) break; tnt += score; cnt += 1; } cout << tnt / cnt; ```
14. 如下 C++ 代码执⾏后,输⼊ 4 后,输出的数字图形是( )。 ```cpp 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; } ```
15. 某学校举办"校园演讲⽐赛",每位选⼿由 8 位评委打分(分数为 0~10 的整数),且每位评委必须打分。计分规则:去掉⼀个最⾼分,去掉⼀个最低分。如下程序通过键盘先输⼊选⼿编号,然后依次输⼊ 8 个分数,并计算最终得分。下列说法正确的是( )。 ```cpp 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); } ```

二、判断题(每题 2 分)

1. ⼜到期末考试周,⼩明发现这次许多闭卷考试不仅禁⽌携带⼿机、平板电脑,还有最近⽐较时髦的各类 AI 眼镜(也有叫智能眼镜)也同样不允许带⼊考场。这些 AI 眼镜应该也是内置了操作系统并可能⽀持 Wi-Fi 或蓝⽛连接。
2. C++ 代码 `cout << (not ('5' % 2 == 0) == ((not '5' % 2) == 0))` 执⾏后的输出是 1。
3. 执⾏ C++ 语句 `cout << (int(3.5) * 2)` 将输出 6。
4. 下⾯ C++ 代码执⾏后将输出 `1-4-7-`。 ```cpp for (int i = 1; i < 10; i += 3) { if (not i % 3) break; cout << i << "-"; } ```
5. 执⾏如下 C++ 代码,将从⼩到⼤依次输出 abs(N) 个整数,并在最后输出 1。 ```cpp int N; cin >> N; int start_num = 1, end_num = N + 1, i; if (N < 0) start_num = N, end_num = 0; for (i = start_num; i < end_num; i++) cout << i << " "; cout << endl << ((i - 1) == abs(N)) << endl; ```
6. 如下 C++ 代码执⾏后,输出值为 9。 ```cpp int cnt = 0, i; for (i = 0; i < 10; i++) { for (int j = 0; j < i; j++) cnt += 1; break; } cout << i; ```
7. 如下 C++ 代码执⾏时如输⼊ 10,输出将是 100。 ```cpp int cnt = 0, N; cout << "请输入正整数:"; cin >> N; for (int i = 0; i < N; i++) for (int j = -i; j < i; j++) cnt += 1; cout << cnt; ```
8. 如下 C++ 代码执⾏其输出是 3。 ```cpp int count = 0; int i = 0; while (i < 3) { int j = 0; while (j < 3) { if (i + j >= 3) count += 1; j += 1; } i += 1; } cout << count; ```
9. 如下 C++ 代码执⾏时如果输⼊正整数,其输出将是输⼊的正整数。 ```cpp int N; cin >> N; int i = 0, Nbase = 1; int rst = 0; while (N != 0) { rst = rst + N % 10 * Nbase; N /= 10, Nbase *= 10; i += 1; } cout << rst; ```
10. 如下 C++ 代码执⾏时如输⼊ 5,将输出代码后的字符图形。 ```cpp int n; cin >> n; for (int i = 1; i < n + 1; i++) { for (int j = 1; j < n - i + 1; j++) cout << 0; for (int k = 1; k < 2 * i; k++) { if (k <= i) cout << k; else cout << 2 * i - k; } for (int j = 1; j < n - i + 1; j++) cout << 0; cout << endl; } ``` ``` 000010000 000121000 001232100 012343210 123454321 ```