GESP C++ 二级考试重点与编程题模板大全
GESP C++ 二级考试涵盖计算机基础、流程图、ASCII 编码及数据类型转换等理论知识点,核心在于多层分支与循环结构的应用。文章提供了包括标准输入输出、条件判断、循环统计、数学函数处理在内的 12 个编程题模板,并总结了输入细节、变量初始化、边界值处理及输出格式等常见错误防范指南。备考重点在于代码细节完整度,需特别注意变量初始化、特殊值判断及浮点数精度控制。

GESP C++ 二级考试涵盖计算机基础、流程图、ASCII 编码及数据类型转换等理论知识点,核心在于多层分支与循环结构的应用。文章提供了包括标准输入输出、条件判断、循环统计、数学函数处理在内的 12 个编程题模板,并总结了输入细节、变量初始化、边界值处理及输出格式等常见错误防范指南。备考重点在于代码细节完整度,需特别注意变量初始化、特殊值判断及浮点数精度控制。

'会写多层 if else + 多层循环 + 用基础数学函数解决综合问题'
根据大纲,以下内容是必考且高频。
👉 特点:不考计算,多为'认识型''判断型'。
👉 可能考:「下面流程图表示的是哪种结构?」
必须牢记的 4 个字符编码:
' ' → 32
'0' → 48
'A' → 65
'a' → 97
常考形式:
char c = 'A'; c+1 是什么?int a = 3.8; // a = 3
int a = (int)3.8;
if / if-else / switchfor / while / do-whileabs(x); // 绝对值
sqrt(x); // 平方根
max(a, b); // 最大值
min(a, b); // 最小值
rand(); // 随机数(了解)
根据历次真题与大纲目标,总结如下:
'流程题 + 分类讨论 + 循环统计'
下面这些模板,可以直接作为二级备考速查。
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
// 在这里写代码
return 0;
}
if (条件 1) {
// 情况 1
} else if (条件 2) {
// 情况 2
} else if (条件 3) {
// 情况 3
} else {
// 其他情况
}
📌 常见应用:成绩等级、年龄分类、区间判断。
switch (x) {
case 1: // 情况 1 break;
case 2: // 情况 2 break;
case 3: // 情况 3 break;
default: // 其他
}
📌 典型题型:星期、月份、菜单选择。
int n;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
cout << sum << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
// 处理第 i 行,第 j 列
}
}
📌 高频场景:表格输出、坐标遍历、数字矩阵。
int cnt = 0;
for (int i = 1; i <= n; i++) {
if (条件) {
cnt++;
}
}
cout << cnt << endl;
📌 用途:统计符合条件的个数、计数题。
char c;
cin >> c;
int code = (int)c;
cout << code << endl;
或
char c;
cin >> c;
if (c >= 'a' && c <= 'z') {
cout << "小写字母";
}
double x;
cin >> x;
cout << abs(x) << endl;
cout << sqrt(x) << endl;
int n;
cin >> n;
int cnt1 = 0, cnt2 = 0;
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
if (x >= 60) cnt1++;
else cnt2++;
}
cout << cnt1 << " " << cnt2 << endl;
📌 场景:合格 / 不合格、正数 / 负数、奇数 / 偶数。
int n;
cin >> n;
int x;
cin >> x;
int mx = x, mn = x;
for (int i = 2; i <= n; i++) {
cin >> x;
mx = max(mx, x);
mn = min(mn, x);
}
cout << mx << " " << mn << endl;
📌 不用 max/min 写成 if 判断语句也可以。
char c;
int cnt = 0;
while (cin >> c) {
if (c >= '0' && c <= '9') {
cnt++;
}
}
cout << cnt << endl;
📌 常考:数字字符个数、字母判断。
#include <cstdlib>
#include <ctime>
srand(time(0));
int x = rand() % 10; // 0~9
这些内容没写进'模板',但 90% 二级编程题都会用到。
int x;
while (cin >> x) {
// 处理 x
}
📌 用途:直到 EOF、多行输入。
int x;
while (cin >> x && x != 0) {
// 处理 x
}
📌 二级常见:'输入若干整数,以 0 结束'。
int sum; // ❌ 未初始化
sum += x;
✅ 正确模板
int sum = 0;
int cnt = 0;
double ans = 0;
📌 记忆口诀:'统计类变量,先给变量赋值为 0'。
if (n <= 0) {
cout << 0 << endl;
return 0;
}
📌 二级对算法无太大要求,但要求考虑特殊情况。
cout << ans << endl;
❌ 禁止出现
cout << "结果是:" << ans; // ❌
📌 GESP 原则:'输出必须和题目一模一样'。
#include <iomanip>
cout << fixed << setprecision(2) << ans << endl;
📌 二级常见要求:'保留 2 位小数'、'输出结果为实数'。
sqrt(2); // 返回 double
int x = sqrt(2); // ❌ 易错理解
✅ 正确示范
double x = sqrt(2.0);
或
int x = (int)sqrt(2.0);
📌 结合「强制类型转换」一起考。
学生交卷前对照检查:
✅ 变量是否初始化
✅ 循环是否少 / 多一次
✅ if 是否漏 else
✅ 边界值是否处理
✅ 输出是否多字
✅ 换行是否正确
✅ 是否用了题目不允许的输出
✅ 是否遗漏 return 0;
二级拼的不是算法,而是'细节完整度'
思路正确 ≠ 程序得分
初始化 + 边界 + 输出格式 👉 是真正的'保命三件套'

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online