CCF GESP · C++ · 一至八级

C++ 一至八级大纲

点击标签切换级别 · 共 8 个级别

C++ 一级知识体系
🖥️
BLOCK 01
计算机基础知识
  • 计算机的软硬件组成
  • CPU · 内存 · I/O 设备
  • 操作系统基本概念与常见操作
  • Windows · Linux
  • 计算机发展历程
  • 计算机在现代社会的常见应用
⚙️
BLOCK 02
集成开发环境
  • 熟悉 Dev C++ 等 IDE 的使用
  • 创建 / 编辑 / 保存文件
  • 编译与解释的概念
  • 程序调试基础
🔄
BLOCK 03
结构化程序设计
  • 顺序结构
  • 分支结构
  • if · if-else · switch · 三目运算
  • 循环结构
  • for · while · do-while
  • continue · break
📝
BLOCK 04
程序的基本语句
  • 输入语句
  • cin · scanf
  • 输出语句
  • cout · printf
  • 赋值语句 · 复合语句
  • 注释 · 调试的概念
💡
BLOCK 05
程序的基本概念
  • 标识符 · 关键字
  • 常量 · 变量 · 表达式
  • 变量的命名 · 定义 · 初始化 · 赋值
  • 变量的自加(++)与自减(--)
🔢
BLOCK 06
基本运算
  • 算术运算
  • + · - · * · / · 整除 · % 求余
  • 关系运算
  • > · >= · < · <= · == · !=
  • 逻辑运算
  • && · || · !
  • 三目运算 · 自增自减运算
📦
BLOCK 07
基本数据类型
  • 整数型
  • int · long long
  • 实数型(浮点型)
  • float · double
  • 字符型
  • char
  • 布尔型
  • bool(true / false)
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
120min
考试时长
C++ 二级知识体系
💾
BLOCK 01
计算机存储与网络
  • 存储器分类
  • RAM(随机存储)· ROM(只读)· Cache(高速缓存)
  • 计算机网络分类
  • WAN 广域网 · MAN 城域网 · LAN 局域网
  • 网络层级结构
  • TCP/IP 四层模型 · OSI 七层模型
  • IP 地址及子网划分
💬
BLOCK 02
程序设计语言
  • 语言分类
  • 机器语言 · 汇编语言 · 高级语言
  • 常见高级语言
  • C++ · Python · Java 等
📊
BLOCK 03
流程图
  • 流程图的概念与基本符号
  • 绘制流程图的方法
  • 用流程图描述三种基本结构
  • 顺序 · 分支 · 循环
🔤
BLOCK 04
ASCII 编码
  • ASCII 编码原理
  • 常用字符编码(必记)
  • 空格:32 · '0':48 · 'A':65 · 'a':97
  • 字符与 ASCII 码相互转换
🔁
BLOCK 05
数据类型转换
  • 强制类型转换
  • (int)x · (double)x 等
  • 隐式类型转换
  • 低精度向高精度自动转换
🌿
BLOCK 06
多层分支结构
  • if 语句嵌套
  • if...else 语句嵌套
  • switch 语句嵌套
🔃
BLOCK 07
多层循环结构
  • while 循环嵌套
  • do...while 循环嵌套
  • for 循环嵌套
  • 三种循环相互嵌套
📐
BLOCK 08
数学函数
  • abs() — 绝对值
  • sqrt() — 平方根
  • max() / min() — 最大/最小值
  • rand() / srand() — 随机数
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
120min
考试时长
C++ 三级知识体系
🔢
BLOCK 01
数据编码
  • 原码
  • 反码
  • 补码
  • 负数在计算机中的表示方式
🔀
BLOCK 02
进制转换
  • 二进制(Binary)
  • 八进制(Octal)
  • 十进制(Decimal)
  • 十六进制(Hexadecimal)
  • 四种进制之间相互转换
BLOCK 03
位运算
  • 与  & (AND)
  • 或  | (OR)
  • 非  ~ (NOT)
  • 异或 ^ (XOR)
  • 左移 << · 右移 >>
  • 左移=×2 · 右移=÷2
📋
BLOCK 04
算法与描述
  • 算法的概念与特性
  • 自然语言描述算法
  • 流程图描述算法
  • 伪代码描述算法
  • 枚举法(暴力枚举)
  • 模拟法
📦
BLOCK 05
一维数组
  • 数组的定义与初始化
  • 数组的访问与遍历
  • 数组与循环结合使用
  • 不包括变长数组
🔤
BLOCK 06
字符串及其函数
  • 字符串基本概念
  • 大小写转换
  • 字符串搜索
  • 字符串分割
  • 字符串替换
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
120min
考试时长
C++ 四级知识体系
👆
BLOCK 01
指针
  • 指针类型的概念
  • 指针变量的定义
  • int* p;
  • 指针的赋值
  • p = &x;
  • 指针的解引用
  • *p 访问所指向的值
🗂️
BLOCK 02
二维及多维数组
  • 二维数组的定义与使用
  • int a[3][4];
  • 多维数组的扩展
  • 内存中的行优先存储
  • 不包括变长数组
🏗️
BLOCK 03
结构体
  • 结构体定义与使用
  • 结构体数组
  • 结构体指针
  • 结构体嵌套结构体
  • 结构体作为函数参数
  • 结构体中 const 的使用
⚙️
BLOCK 04
函数
  • 函数的定义 · 调用 · 声明
  • 形参与实参
  • 全局作用域 · 局部作用域
  • 参数传递方式
  • 值传递 · 引用传递 · 指针传递
➡️
BLOCK 05
递推算法
  • 递推算法基本思想
  • 递推关系式的推导
  • 如斐波那契 f(n)=f(n-1)+f(n-2)
  • 递推问题的求解
🔃
BLOCK 06
排序算法
  • 冒泡排序
  • 插入排序
  • 选择排序
  • 排序稳定性 · 时间 / 空间复杂度
  • 内排序与外排序概念
  • 简单算法复杂度估算
  • 多项式复杂度 · 指数复杂度
📁
BLOCK 07
文件操作
  • 文件重定向
  • 读操作(ifstream)
  • 写操作(ofstream)
  • 读写操作(fstream)
🛡️
BLOCK 08
异常处理
  • 异常处理机制
  • try / catch / throw
  • 常用异常处理方法
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
120min
考试时长
C++ 五级知识体系
🔢
BLOCK 01
初等数论
  • 素数与合数
  • 最大公约数 (GCD) · 最小公倍数 (LCM)
  • 同余与模运算
  • 约数与倍数
  • 质因数分解
  • 奇偶性
  • 欧几里得算法(辗转相除法)
  • 唯一分解定理
  • 埃氏筛法 · 线性筛法(欧拉筛)
📊
BLOCK 02
算法复杂度估算
  • 含多项式的算法复杂度
  • O(1) · O(n) · O(n²) · O(n³)
  • 含对数的算法复杂度
  • O(log n) · O(n log n)
🔢
BLOCK 03
高精度运算
  • 数组模拟高精度加法
  • 数组模拟高精度减法
  • 数组模拟高精度乘法
  • 数组模拟高精度除法
🔗
BLOCK 04
链表
  • 单链表
  • 双链表
  • 循环链表
  • 基本操作
  • 创建 · 插入 · 删除 · 遍历 · 查找
🔍
BLOCK 05
二分算法
  • 二分查找算法
  • 在有序数组中定位目标值
  • 二分答案算法(二分枚举法)
  • 对答案范围进行二分
🔄
BLOCK 06
递归算法
  • 递归的概念与终止条件
  • 递归的时间 · 空间复杂度分析
  • 递归的优化策略
  • 记忆化 · 尾递归
✂️
BLOCK 07
分治算法
  • 分治算法的基本原理
  • 归并排序
  • 稳定 · O(n log n)
  • 快速排序
  • 平均 O(n log n) · 最坏 O(n²)
🥇
BLOCK 08
贪心算法
  • 贪心算法的基本原理
  • 最优子结构
  • 贪心与动态规划的区别
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
180min
考试时长
C++ 六级知识体系
🌳
BLOCK 01
  • 树的基本概念
  • 根 · 叶 · 深度 · 高度
  • 哈夫曼树
  • 最优二叉树 · 构建方法
  • 完全二叉树
  • 二叉排序树(BST)
  • 插入 · 查找 · 删除
🔣
BLOCK 02
基于树的编码
  • 哈夫曼编码
  • 变长编码 · 前缀码性质
  • 格雷编码
  • 相邻码只有一位不同
🔎
BLOCK 03
搜索算法
  • 深度优先搜索 DFS
  • 用栈实现 · 递归实现
  • 宽度优先搜索 BFS
  • 用队列实现
  • 二叉树的搜索算法
  • 前序 · 中序 · 后序 · 层序遍历
📈
BLOCK 04
简单动态规划
  • 一维动态规划
  • 状态定义 · 转移方程 · 初始化
  • 简单背包问题
  • 0/1 背包 · 内层倒序遍历
🧱
BLOCK 05
面向对象
  • 面向对象思想
  • 类的创建与初始化
  • 封装
  • 数据隐藏 · public/private
  • 继承
  • 基类 · 派生类
  • 多态
  • 虚函数 · 运行时多态
📚
BLOCK 06
栈和队列
  • 栈(Stack)
  • LIFO · push / pop / top
  • 队列(Queue)
  • FIFO · push / pop / front
  • 循环队列
  • front / rear 指针 · 判空判满
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
180min
考试时长
C++ 七级知识体系
📐
BLOCK 01
数学库函数
  • 三角函数
  • sin(x) · cos(x) · tan(x)
  • 对数函数
  • log10(x) · log2(x)
  • 指数函数
  • exp(x) · pow(x, y)
📈
BLOCK 02
复杂动态规划
  • 二维动态规划
  • 动态规划最值优化
  • 区间动态规划
  • 最长上升子序列(LIS)
  • 最长公共子序列(LCS)
  • 滚动数组降低空间复杂度
🕸️
BLOCK 03
图的定义及遍历
  • 图的概念
  • 有向图 · 无向图 · 节点度
  • 图的存储结构
  • 邻接矩阵 · 邻接表
  • 图的广度优先遍历 BFS
  • 图的深度优先遍历 DFS
🌊
BLOCK 04
图论算法
  • 泛洪算法(Flood Fill)
  • 连通区域染色 · 岛屿计数
#️⃣
BLOCK 05
哈希表
  • 哈希表的概念
  • 哈希函数
  • 冲突处理
  • 链地址法 · 开放地址法
  • 哈希表的应用
  • unordered_map · unordered_set
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
180min
考试时长
C++ 八级知识体系
🔢
BLOCK 01
计数原理
  • 加法原理
  • 分类计数,各类互斥
  • 乘法原理
  • 分步计数,各步独立
🎲
BLOCK 02
排列与组合
  • 排列(Permutation)
  • 有序选取 · P(n,r) = n!/(n-r)!
  • 组合(Combination)
  • 无序选取 · C(n,r) = n!/(r!(n-r)!)
  • 排列组合编程实现
🔺
BLOCK 03
杨辉三角
  • 杨辉三角的定义(帕斯卡三角形)
  • C(n,r) = C(n-1,r-1) + C(n-1,r)
  • 杨辉三角的编程实现
  • 与组合数的关系
BLOCK 04
倍增法
  • 倍增法的概念
  • 时间复杂度 O(log n)
  • 应用场景
  • 快速幂 · LCA 等
📏
BLOCK 05
代数与平面几何
  • 一元一次方程求解
  • 二元一次方程组求解
  • 基本图形面积
  • 三角形 · 圆形 · 长方形
  • (限初中数学范围)
🕸️
BLOCK 06
图论算法及综合应用
  • 最小生成树
  • Kruskal 算法 · Prim 算法
  • 单源最短路径
  • Dijkstra 算法
  • 多源最短路径
  • Floyd 算法
  • 图论算法综合应用与问题求解
⏱️
BLOCK 07
算法时空效率分析
  • 时间复杂度分析方法
  • 空间复杂度分析方法
  • 各类算法的复杂度
  • 排序 · 查找 · 遍历 · 搜索 · DP
🚀
BLOCK 08
算法优化
  • 不同算法的差异分析
  • 算法优化的一般方法
  • 用数学知识辅助优化
  • 等差数列求和公式
  • 等比数列求和公式
15题
单选 · 每题 2 分
10题
判断 · 每题 2 分
2题
编程 · 每题 25 分
180min
考试时长