ARTICLE · 1314126
GESP C++ 三级备考全攻略:知识点总结 + 学习规划
一、先搞清楚:三级到底考什么
根据 CCF GESP 2026 年最新大纲,三级核心考点可以归纳为六大板块:
| 板块 | 具体内容 | 重要程度 |
|---|---|---|
| 进制转换 | 二/八/十/十六进制互转 | ⭐⭐⭐ |
| 数据编码 | 原码、反码、补码 | ⭐⭐⭐ |
| 位运算 | &、|、~、^、<<、>> | ⭐⭐⭐ |
| 一维数组 | 声明、遍历、最值、统计(不含变长数组) | ⭐⭐⭐⭐⭐ |
| 字符串 | 大小写转换、搜索、分割、替换 | ⭐⭐⭐⭐ |
| 枚举与模拟 | 用暴力枚举或流程复现解决简单问题 | ⭐⭐⭐⭐⭐ |
一个关键提醒:2026 年新大纲明确写了“不考变长数组”,C++ 标准以 C++11为准。复习时不用去碰 int a[n] 这种写法,老老实实用固定长度数组。

二、三级真正的“坎”在哪里
很多同学二级考得不错,到了三级却突然卡住。原因不在知识点本身,而在于思维要求变了。
二级的要求是:会用循环、会用一维数组、能照着题目步骤写代码。
三级的要求是:能自己想出步骤。
具体体现在三个“叠加”上:
第一,循环叠循环。 嵌套循环是三级最标志性的门槛。外层转一圈、内层转完整一遍,很多同学看讲解能懂,自己写就分不清“哪个变量管行、哪个管列”。
第二,数组叠统计。 三级不再只是“求最大值最小值”,而是要在遍历中同时维护计数、求和、条件判断,甚至用数组下标做桶来统计频次。
第三,问题叠情境。 题目不再直白地说“请输出 1 到 n 的和”,而是给一个生活场景,需要你自己拆成循环 + 判断 + 累加。
三、知识点逐个拆解
1. 进制转换(送分题,必须拿稳)
必须掌握:十进制 ↔ 二进制、八进制、十六进制的手算方法。二进制 ↔ 八进制/十六进制的快速分组法(3 位一组、4 位一组)。
常见考法:选择题里给一个数,问转成某进制是多少;或者编程题里要求输出二进制形式。
易错点:十六进制里 A~F 对应 10~15,别记混。
2. 原码 / 反码 / 补码
核心理解:计算机为什么用补码?因为可以把减法变成加法,硬件只需要一套加法电路。
必须会算:给定一个负整数,写出它的原码、反码、补码。反过来,给补码能还原成十进制数。
考试频率:选择题高频,编程题偶尔作为背景出现。
3. 位运算
六个运算符:&(与)、|(或)、^(异或)、~(非)、<<(左移)、>>(右移)。
必须熟练的套路:
判断奇偶:
n & 1取某一位:
(n >> k) & 1异或的性质:
a ^ a = 0,a ^ 0 = a
提醒:位运算优先级容易记错,写代码时养成加括号的习惯。
4. 一维数组(三级最重要的板块)
必须掌握:
声明、初始化、下标访问(从 0 开始)
遍历数组的固定写法:
for (int i = 0; i < n; i++)求最大值 / 最小值 / 总和 / 平均值
统计满足条件的元素个数
进阶但常考:
桶统计:用数组下标当“桶”,统计每个数出现次数(如统计分数段人数)
前缀和思想:如果题目多次询问“区间和”,先算一个前缀和数组,后面每次查询 O(1) 出结果
红线:数组长度必须用常量或固定数字声明,不要写变长数组。
5. 字符串处理
C 风格 vs C++ 风格:三级两种都可能遇到,但重点建议放在 std::string 上,更安全。
必须会:
读入含空格的字符串:
getline(cin, s)遍历每个字符:
for (int i = 0; i < s.size(); i++)大小写转换:
toupper(s[i])/tolower(s[i])判断字符类型:
isalpha、isdigit查找子串:
s.find("abc")截取子串:
s.substr(pos, len)
经典题型:凯撒密码(每个字母往后移几位)、统计各类字符数量、单词替换。
6. 枚举与模拟(编程大题的主力)
枚举法:把所有可能的情况一一试过去。
典型题:百钱买百鸡、水仙花数、找满足条件的数对。三级可能要求双重枚举(两两配对比较),注意循环边界和提前退出条件。
模拟法:题目怎么说,你就怎么一步步做。
典型题:日期计算(给定日期算星期几 / 过了多少天)、数字反转、坐标移动、简单的队列模拟。
方法建议:拿到模拟题,先在草稿纸上写流程(或者写伪代码),确认逻辑没问题再敲代码。直接上手写容易漏掉边界情况。

四、学习规划(按 8 周设计,可根据基础调整)
第 1~2 周:底层基础(进制 + 编码 + 位运算)
目标:选择题里的进制和编码题不丢分,位运算的基本操作能写出来。
每天安排:
30 分钟看知识点 + 手算例题
20 分钟做 5~8 道选择题(进制 / 补码 / 位运算)
10 分钟整理错题
本周必须搞定:十进制转二进制的手算速度、负数的补码计算、n & 1 判断奇偶。
第 3~4 周:一维数组专题
目标:看到数组题能立刻想到“遍历一遍能解决什么”。
每天安排:
20 分钟看例题(求最值、统计、桶计数)
40 分钟自己敲代码,至少完成 2 道编程题
10 分钟对比自己的写法和标准写法
本周必须搞定:遍历数组的肌肉记忆、桶统计的思路、数组下标从 0 开始不越界。
第 5 周:字符串 + 嵌套循环
目标:能处理字符级操作,能看懂并写出简单的二重循环。
每天安排:
20 分钟学字符串函数
40 分钟练题(字符统计 / 凯撒密码 / 打印图形)
重点练:外层控制行、内层控制列,分清循环变量。
第 6 周:枚举与模拟专项
目标:拿到一道情境题,能自己拆出步骤。
每天安排:
先花 5 分钟在纸上写思路(不要急着写代码)
再花 30 分钟实现
最后 10 分钟测试边界情况
重点练:百钱买百鸡类枚举题、日期计算类模拟题。
第 7 周:真题 + 错题回顾
目标:适应考试节奏,找出自己的薄弱点。
安排:
做 2~3 套 GESP 三级真题(选择题 + 编程题完整做)
每套做完后,把错题对应的知识点标记出来
回头翻第 1~6 周的笔记,针对性补漏
第 8 周:考前冲刺
目标:保持手感,不碰新知识点。
安排:
每天 1 道编程题(保持写代码的感觉)
复习错题本(尤其是数组越界、循环边界、
pow返回值是浮点数这类坑)熟悉考试环境(用自己习惯的 IDE,确认编译选项)

五、三级最容易丢分的 5 个坑
坑 1:循环边界写错。i < n 写成 i <= n,数组直接越界。记住:长度为 n 的数组,下标范围是 0 ~ n-1。
坑 2:pow() 返回浮点数。pow(2, 3) 返回的是 8.0 而不是 8,直接赋给 int 在某些情况下会有精度问题。能用手算乘法就用乘法。
坑 3:字符 '0' 和数字 0 混用。 字符转数字要 s[i] - '0',数字转字符要 char('0' + n)。
坑 4:cin >> 和 getline 混用。 如果前面用了 cin >> n,后面用 getline 读字符串,记得先 cin.ignore() 清掉换行符。
坑 5:枚举范围开太小或太大。 枚举前先想清楚:我要枚举什么?范围是多少?有没有可能漏掉情况?
六、一句话总结
三级的核心不是学多少新语法,而是把循环、数组、字符串这三样工具用熟,然后用枚举和模拟去解决那些“需要自己想步骤”的问题。把上面 5 个坑避开,60 分通过线其实并不远。
本文依据 CCF GESP 2026 年最新大纲整理。具体考试安排和报名信息请以 GESP 官网(gesp.ccf.org.cn)为准。















































































