Appearance
附录 D · 学习路径与备考规划
面向零基础考生的一级通关路线:知识地图 → 三阶段路径 → 6 周计划 → 自测清单 → 考场时间分配。
一、一级知识地图
┌─────────────────────────────┐
│ 第1章 总览 · 考纲全景 │
└──────────────┬──────────────┘
│
┌──────────────┬───────────┼───────────┬──────────────┐
│ │ │ │ │
┌────▼────┐ ┌─────▼────┐ ┌────▼────┐ ┌───▼─────┐ ┌─────▼─────┐
│ 第2章 │ │ 第3章 │ │ 第4章 │ │ 第5章 │ │ 第6章 │
│ 计算机 │ │ 编程规范 │ │ 基础语法 │ │ 数据类型│ │ 三大结构 │
│ 基础/IDE │ │ 框架/括号 │ │ 标识/变量│ │ int/char│ │ if/for │
└─────────┘ └──────────┘ └─────────┘ └─────────┘ └───────────┘
│ │ │ │ │
└──────────────┴───────────┼───────────┴──────────────┘
│
┌──────────────▼──────────────┐
│ 第7章 运算符(贯穿全篇) │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ 第8章 输入输出(程序入口) │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ 第9章 编程题实战(50 分) │
└─────────────────────────────┘依赖关系:第3章(框架)→ 第4章(变量)→ 第5章(类型)→ 第6章(结构)→ 第8章(输入输出)→ 第9章(实战)。第7章(运算符)与第4~6章穿插学习。
二、三阶段学习路径
| 阶段 | 目标 | 章节 | 产出 |
|---|---|---|---|
| 阶段一:能跑起来 | 装好环境、会写框架、能编译运行 | 第2、3章 | 独立写出 Hello World 并成功运行 |
| 阶段二:会算会存 | 掌握变量、类型、运算符、输入输出 | 第4、5、7、8章 | 能写"输入两个数求它们的和与积" |
| 阶段三:会控流程 | 掌握三大结构 + 编程题套路 | 第6、9章 | 能独立完成 2 道编程大题 |
三、6 周计划(每天 30~45 分钟)
| 周次 | 学习章节 | 重点任务 | 周末自测 |
|---|---|---|---|
| 第 1 周 | 第1、2章 | 认识计算机软硬件;装好 Dev-C++;F9/F10/F11 三个快捷键练熟 | 第2章 15 题 ≥ 12 对 |
| 第 2 周 | 第3章 | 背下程序框架四件套;大括号、分号、注释规矩 | 第3章 12 题 ≥ 10 对 |
| 第 3 周 | 第4章 | 标识符规则、关键字表、变量声明初始化 | 第4章 10 题 ≥ 8 对 |
| 第 4 周 | 第5章 | int/long long 范围、char 单引号、bool 非 0 即真 | 第5章 12 题 ≥ 10 对 |
| 第 5 周 | 第6、7章 | 三大结构 + 全部运算符;重点攻克整数除法与 =/== | 第6章 9 题 + 第7章 10 题 ≥ 15 对 |
| 第 6 周 | 第8、9章 | cin/scanf(别漏 &)、printf 格式符;刷完编程题七大套路 | 第8章 10 题 + 第9章 7 题 ≥ 14 对;完整做 2 道编程题 |
💡 若时间更紧,可压缩为 4 周:把第2、3章合并,第4、5章合并,第6、7章合并,第8、9章合并。
四、自测清单(考前逐项打勾)
基础与环境
- [ ] 能默写程序框架四件套(
#include/using namespace std;/int main()/return 0;) - [ ] 知道
#include行不加分号 - [ ] 知道哪些行不加分号(
#include、函数头、右大括号后) - [ ] 能区分编译错误和逻辑错误,会用"加
cout"调试
语法与数据
- [ ] 能判断一个标识符是否合法(不能数字开头、不能含
-、不能是关键字) - [ ] 知道 C++ 区分大小写
- [ ] 变量声明时一定初始化(避免垃圾值)
- [ ] 知道
int约 ±21 亿,求和一律用long long - [ ] 字符用单引号
'A',字符串用双引号"A"
运算与控制
- [ ] 整数除法会截断:
5 / 2 == 2;要小数写5.0 / 2 - [ ] 判等用
==,if里出现单个=立刻警觉 - [ ]
&&/||两边写成完整条件 - [ ]
switch每个 case 后写了break - [ ] 分清
break(跳出整个循环)与continue(跳过本轮) - [ ] 知道
while可能 0 次、do-while至少 1 次
输入输出
- [ ]
cin >> a;与scanf("%d", &a);都会写,&没漏 - [ ] 记住常用格式符:
%d、%lld、%c、%f、%lf - [ ] 输出严格照抄样例,不加任何提示语
编程题
- [ ] 会用四步法:读题 → 思路 → 编码 → 测试
- [ ] 掌握七大套路(求和/计数/数位拆分/最值/范围判断/分支计价/字符处理)
- [ ] 会处理边界:n = 0、n = 1
- [ ] 知道"先写能跑的最简版本拿部分分"
五、考场时间分配(120 分钟)
| 时间段 | 用时 | 做什么 |
|---|---|---|
| 0~3 分钟 | 3 min | 快速浏览全卷,先看两道编程题考什么,心里有底 |
| 3~35 分钟 | 32 min | 做完 15 道单选题(平均每题 2 分钟,卡住的先跳过并标记) |
| 35~55 分钟 | 20 min | 做完 10 道判断题(平均每题 2 分钟) |
| 55~60 分钟 | 5 min | 回头检查标记题;填涂/确认客观题答案 |
| 60~100 分钟 | 40 min | 攻克两道编程题(每题约 20 分钟) |
| 100~115 分钟 | 15 min | 用样例测试;补边界测试(0、1、最大值) |
| 115~120 分钟 | 5 min | 最后检查:编译是否通过、输出格式是否与样例一致 |
编程题时间盒(每题 20 分钟)
| 步骤 | 用时 | 内容 |
|---|---|---|
| 读题 + 圈输入输出 | 3 min | 圈出输入格式、输出格式、样例 |
| 想思路 + 选套路 | 3 min | 属于七大套路中的哪一个 |
| 写代码 | 8 min | 先写四段式骨架,再填逻辑 |
| 测试 | 6 min | 样例 + 边界(0、1、极值) |
⚠️ 保底策略:如果 8 分钟还没思路,先写出"读入 + 原样输出"的最简版本,确保能编译通过拿到基础分,再逐步加逻辑。空白 = 0 分,能跑 = 有分。
六、常见备考误区
| 误区 | 正确做法 |
|---|---|
| 只看不敲代码 | 编程是手艺,每个例题都要亲手敲一遍并运行 |
| 死记硬背代码 | 理解"为什么这样写",套路比代码重要 |
| 忽视输出格式 | 格式错 = 0 分,务必照抄样例 |
| 追求难题偏题 | 一级只考基础,把七大套路练熟即可 |
| 不测边界 | n = 0、n = 1 是最高频的失分点 |
| 编程题留到最后 | 编程题占 50 分,必须留足 40 分钟 |
七、通过之后:向二级衔接
拿到一级证书只是起点。二级在一级之上新增了八大知识块,其中"计算机基础 + 程序逻辑复杂化"是两条主线。本节给出衔接地图、自测题与两周过渡计划,方便无缝接上《GESP 二级备考白皮书》。
7.1 一级 → 二级:新增内容对照
| 一级已掌握(可直接沿用) | 二级新增(必须新学) |
|---|---|
程序框架、main、头文件 | ① 计算机存储与网络:ROM/RAM/CACHE、网络分类、OSI 七层与 TCP/IP 四层、IP 地址与子网掩码 |
| 标识符、关键字、变量、常量 | ② 程序设计语言:机器/汇编/高级语言,编译型 vs 解释型,编辑→编译→链接→运行 |
int/long long/double/char/bool | ③ 流程图:六种标准符号,读流程图算结果 |
| 顺序 / 分支 / 循环 | ④ ASCII 编码:'0'=48、'A'=65、'a'=97 三个锚点,大小写 ±32,数字字符转数值 |
| 算术 / 关系 / 逻辑 / 三目 | ⑤ 数据类型转换:隐式转换规则、强制转换、整数除法陷阱 |
cin/cout/scanf/printf | ⑥ 多层分支:if-else if 阶梯、嵌套 if、switch 与 break 穿透 |
| 编程题七大基础套路 | ⑦ 多层循环:嵌套循环、图形打印、枚举、break/continue |
| —— | ⑧ 数学函数:abs/sqrt/pow/max/min/rand+srand |
💡 难度跃迁一句话:一级考"能不能写对",二级考"能不能把逻辑写复杂"——嵌套、多分支、字符与编码计算,是二级的三大分水岭。
7.2 衔接自测:6 道"二级预备题"
做完再看答案,错 3 道以上建议先补对应章节再进入二级。
自测 1(单选题) 表达式 '5' - '0' 的值是( ) A. 5 B. 53 C. 48 D. 0
自测 2(单选题) 执行 int a = 5, b = 2; double c = a / b; 后,c 的值是( ) A. 2.5 B. 2 C. 2.0 D. 不确定
自测 3(判断题) switch 语句中每个 case 后若不加 break,会继续执行下一个 case 的语句。( )
自测 4(判断题) RAM 断电后数据不丢失。( )
自测 5(程序阅读题) 下面程序输出什么?
cpp
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= i; j++) cout << "*";
cout << endl;
}
return 0;
}自测 6(编程题) 输入两个整数 a、b,输出 a 的 b 次方(用 pow 或循环均可,1 ≤ a, b ≤ 10)。
🔑 点击查看答案与解析
答案: 1-A 2-C 3-正确 4-错误 5-见下 6-见下
解析:
- A:数字字符转数值就是减
'0':'5'(53) −'0'(48) = 5。 - C:
a / b两边都是int,先按整数除法得2,再赋给double变成2.0。想要 2.5 必须写成a * 1.0 / b。 - 正确:这就是
case穿透(fall through),二级必考。 - 错误:RAM 是易失性存储器,断电丢失;ROM 才不丢失。
- 输出直角三角形:外层
* ** ***i控制行(1~3),内层j控制每行i个星号——外层管行、内层管列,这是二级图形打印的核心套路。 - 参考代码:cpp
#include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; int ans = 1; for (int i = 1; i <= b; i++) ans *= a; // 连乘 b 次 cout << ans << endl; return 0; }
7.3 两周过渡计划
| 周次 | 重点 | 目标 |
|---|---|---|
| 第 1 周 | ASCII 与字符运算、数据类型转换、数学函数 | 看到 'A' + 32 能秒答;整数除法不再踩坑 |
| 第 2 周 | 多层分支(switch 穿透)、嵌套循环(图形打印、枚举) | 能独立写出九九乘法表与两层嵌套的枚举程序 |
📚 完成过渡后,直接进入《GESP 二级备考白皮书》第 1 章(考点总览)即可,本书的一级基础已完整覆盖二级的前置要求。
本规划为建议值,请按自己的实际进度调整;关键是每天都敲代码。
