资料库 · 备考笔记

备考笔记 · 考点速查

课堂重点、易错点与高效学习方法笔记,按 GESP 级别系统整理,复习更高效、冲刺更有底。

课程表课堂课件课后作业数学知识浅奥思维英语词汇备考笔记考试技巧

GESP C++ 考点笔记

按 CCF 官方考纲(C++ 一至八级认证标准)逐级整理 · 语法要点 + 易错提醒

📘 覆盖:一级至四级已整理 📋 依据:CCF GESP 官网认证大纲 ⏱ 五至八级:整理中
1

一级 · 编程基础入门

掌握顺序、分支、循环三大结构,会用 DevC++ 独立编写调试程序。

1️⃣ 计算机基础与开发环境

  • 计算机基本构成:CPU(运算器 + 控制器)、内存、I/O 设备,了解 Windows / Linux 基本操作。
  • 集成开发环境 DevC++:新建文件 → 编写 → 保存(.cpp)→ 编译 → 运行 → 调试(断点、单步)。
  • 程序注释:// 单行 与 /* 多行 */,注释不参与运行。

2️⃣ 变量与基本数据类型

  • 类型:int(整数)、long long(大整数)、float/double(实数)、char(字符)、bool(布尔 true/false)。
  • 命名规则:字母、数字、下划线组成,不能以数字开头,不能与关键字重复,区分大小写。
  • 变量先定义再使用:int a; a = 5; 或 int a = 5;(初始化)。
  • 自增自减:a++(先用后加)、++a(先加后用)。

3️⃣ 输入输出

  • 流式:cin >> a; 读入,cout << a; 输出(需 #include <iostream> + using namespace std;)。
  • 格式化:scanf("%d",&a)、printf("%d\n",a);格式符 %d(int)、%lld(long long)、%f(浮点)、%c(字符)。
  • 换行:cout << endl; 或 \n;保留小数 printf("%.2f",x) 或 fixed<<setprecision(2)。

4️⃣ 运算符

  • 算术:+ - * / %;整数相除得整数(7/2=3),% 为求余(7%2=1)。
  • 关系:> >= < <= == !=,结果为 true/false。
  • 逻辑:&&(且)、||(或)、!(非)。
  • 三目运算:a>b ? a : b 取较大值。

5️⃣ 三大程序结构

  • 顺序:从上到下依次执行。
  • 分支:if / if-else / if-else if-else / switch-case(记得 break)。
  • 循环:for(计数)、while(条件)、do-while(先做后判,至少执行一次);break 跳出循环,continue 跳过本次。
⚠️ 易错提醒:① cin/cout 与 scanf/printf 不要混用;② 负数求余结果符号跟随被除数;③ int 最大约 21 亿,求和累乘用 long long;④ switch 每个 case 后要 break,否则会穿透。
2

二级 · 语法拓展与嵌套

掌握多层分支/循环嵌套、类型转换与数学函数,独立完成综合案例。

1️⃣ 计算机存储与网络(常识)

  • RAM 随机存储器(断电数据丢失)、ROM 只读存储器(固件)、Cache 高速缓冲存储器(CPU 与内存之间)。
  • 网络分类:WAN 广域网 / MAN 城域网 / LAN 局域网;了解 TCP/IP 四层模型与 OSI 七层模型。
  • IP 地址:如 192.168.1.1,四段 0-255。

2️⃣ 程序设计语言与流程图

  • 语言分类:机器语言(0/1)→ 汇编语言 → 高级语言(C++、Python 等)。
  • 流程图符号:起止框(圆角矩形)、处理框(矩形)、判断框(菱形)、流程线(箭头)。

3️⃣ ASCII 编码

  • 记住三组关键码值:空格 32、"0" 48、"A" 65、"a" 97。
  • 字符转数字:int('A') → 65;数字转字符:char(65) → 'A';大小写相差 32。

4️⃣ 数据类型转换

  • 隐式转换(自动):int a = 3; double b = a; // 3.0;低精度向高精度提升。
  • 强制转换:double x=7.5; int y=(int)x; // 7(截断取整)。

5️⃣ 多层分支与循环嵌套

  • 分支嵌套:先判外层条件再进入内层,注意 else 与最近的 if 配对。
  • 循环嵌套:外层循环控制行,内层循环控制列(如九九乘法表、打印三角形)。

6️⃣ 常用数学函数

  • abs(x) 绝对值、sqrt(x) 平方根(需要 #include <cmath>)、max(a,b) / min(a,b) 最值。
  • 随机数:srand(time(0)) 播种 + rand() 生成。
⚠️ 易错提醒:① 嵌套分支的 else 就近配对,必要时加 {};② 整数除法先转换再除:(double)a/b;③ 开方先判断负数;④ ASCII 大小写转换 ±32。
3

三级 · 数组、字符串与算法

掌握编码/进制/位运算、一维数组与字符串,会用枚举法、模拟法解题。

1️⃣ 数据编码:原码、反码、补码

  • 正数:原码 = 反码 = 补码;负数:反码 = 原码符号位不变其余取反,补码 = 反码 + 1。
  • 计算机用补码存储负数,减法转化为加法。

2️⃣ 进制转换

  • 十进制 → 二进制:除 2 取余倒序;二进制 → 十进制:按位权展开(8 4 2 1)。
  • 常用:0b 二进制、0o 八进制、0x 十六进制(A-F 表示 10-15)。

3️⃣ 位运算

  • & 按位与(全 1 才 1,常用于取末位 x&1)、| 按位或、~ 取反、^ 异或(相同 0 不同 1,x^x=0)、<< 左移(×2)、>> 右移(÷2)。
  • 运算优先级低于算术与比较,加括号更安全。

4️⃣ 算法描述

  • 三种描述方式:自然语言、流程图、伪代码;先想清楚再写代码。

5️⃣ 一维数组

  • 定义:int a[100];(下标从 0 开始);数组不能整体赋值,需逐元素赋值。
  • 常见应用:求和、求最值、统计频次(桶计数)、逆序输出、筛选。

6️⃣ 字符串

  • string 类型:s.size() 长度、s.substr(i,k) 截取、s.find(t) 查找、s.replace(...) 替换。
  • 大小写转换:遍历用 ASCII ±32 或 tolower/toupper。

7️⃣ 枚举法与模拟法

  • 枚举法:把所有可能情况逐一尝试,找满足条件的解(如百钱百鸡、完美数)。
  • 模拟法:按题目规则一步一步模拟过程(如走格子、报数问题)。
⚠️ 易错提醒:① 数组越界访问是高频 RE 原因,下标严格 < 长度;② 位运算与比较混用时加括号;③ 字符串下标从 0 开始;④ 桶计数注意值域上限防数组越界。
4

四级 · 函数、结构体与排序

掌握指针、函数参数传递、结构体、递推与三大排序算法,会文件读写。

1️⃣ 指针

  • 定义:int *p = &a;(取地址);解引用:*p 即 a 的值。
  • 指针作函数参数可以修改实参指向的变量。

2️⃣ 二维与多维数组

  • 定义:int a[3][4];(3 行 4 列,不包含变长数组);双重循环按行遍历。
  • 应用:矩阵、图形打印(正方形、三角形)、地图。

3️⃣ 结构体

  • 定义:struct Student { string name; int score; };,可定义结构体数组、指针。
  • 结构体作函数参数建议用引用(const Student &s)避免拷贝。

4️⃣ 函数

  • 声明、定义、调用三步;形参是定义处参数,实参是调用处传入的值。
  • 作用域:局部变量(函数内)与全局变量(函数外,慎用)。
  • 传递方式:值传递(拷贝,不改变实参)、引用传递(&,改变实参)、指针传递(*,改变实参)。

5️⃣ 递推算法

  • 由已知推未知:斐波那契 f[i]=f[i-1]+f[i-2];找到递推关系式是核心。

6️⃣ 排序算法(必考)

  • 冒泡:相邻两两比较交换,每一轮把最大值"冒"到最后。
  • 插入:把元素插入到已排序部分正确位置。
  • 选择:每轮从未排序部分选出最小值放到最前。
  • 三者时间复杂度均为 O(n²);稳定性:插入、冒泡稳定,选择不稳定。

7️⃣ 文件操作与异常处理

  • 重定向:freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);。
  • 异常处理:try { ... } catch (...) { ... } 了解即可。
⚠️ 易错提醒:① 值传递不会改变实参,需要修改必须用引用/指针;② 结构体数组排序前想清楚比较字段与升降序;③ 冒泡内层循环边界 n-1-i;④ 数组名作函数参数会退化为指针,函数内 sizeof 失效。
5

五级 · 初等数论与基础算法(欧几里得、筛法、二分、贪心、分治、高精度、链表)

笔记整理中

五级 · 初等数论与基础算法(欧几里得、筛法、二分、贪心、分治、高精度、链表)该级别笔记正在整理中,敬请期待。
6

六级 · 树、搜索与简单动态规划(二叉树、DFS/BFS、一维 DP、栈与队列)

笔记整理中

六级 · 树、搜索与简单动态规划(二叉树、DFS/BFS、一维 DP、栈与队列)该级别笔记正在整理中,敬请期待。
7

七级 · 图论与复杂动态规划(图遍历、二维 DP、哈希表、数学库函数)

笔记整理中

七级 · 图论与复杂动态规划(图遍历、二维 DP、哈希表、数学库函数)该级别笔记正在整理中,敬请期待。
8

八级 · 组合数学与算法优化(计数原理、排列组合、最短路、最小生成树)

笔记整理中

八级 · 组合数学与算法优化(计数原理、排列组合、最短路、最小生成树)该级别笔记正在整理中,敬请期待。

🔗 双教材分工与考纲覆盖率总览

等级考纲条目主线教材覆盖情况 一级 13 条 趣味教材 上册 1–34 课
+一本通 第四章(while/do-while) ✅ 全部覆盖 二级 9 条 趣味教材 下册 40–60 课
+一本通 补全部理论考点 ✅ 全部覆盖 三级 8 条 一本通 第五章《数组》
+初赛篇 第一章 ✅ 全部覆盖 四级 12 条 一本通 函数 / 结构体 / 指针
/数据排序/递推算法 ✅ 全部覆盖

为什么这样切分:一、二级考纲以「语法 + 基础概念」为主,趣味教材的故事化例程更适合启蒙;三、四级开始要求「数组 → 函数 → 结构体 → 算法」,一本通的体系化讲解与配套题库正好匹配,且能直接衔接 CSP-J/S。

📌 教学衔接与备考提醒

在线编译器