CCF GESP C++ 编程等级考纲
来源:中国计算机学会 | 官方:gesp.ccf.org.cn | 更新:2026年
| 级别 | 核心知识点 | 考核目标 |
|---|---|---|
| 一级 | 计算机基础、变量、数据类型、控制语句、基本运算、输入输出 | 掌握顺序/循环/分支结构,能编写简单程序 |
| 二级 | 存储与网络、ASCII、类型转换、多层分支循环、数学函数 | 了解存储网络,掌握类型转换与数学库函数 |
| 三级 | 原反补码、进制转换、位运算、一维数组、字符串、枚举/模拟 | 掌握编码进制位运算,能用数组字符串解决问题 |
| 四级 | 指针、结构体、二维数组、函数、排序算法、文件操作 | 掌握函数与二维数组、常用排序、文件读写 |
| 五级 | 数论、高精度、链表、二分、贪心/分治、递归、复杂度 | 掌握数论线性表、二分分治贪心、高精度运算 |
| 六级 | 树、DFS/BFS、简单DP、面向对象、栈/队列 | 掌握树与搜索、简单DP、面向对象思想 |
| 七级 | 数学函数、复杂DP、图论、哈希表 | 掌握复杂DP、图论算法、哈希表应用 |
| 八级 | 组合数学、倍增法、图论综合、算法优化 | 掌握组合数学、高级图论、算法时空优化 |
一级标准
知识点
- 计算机基础知识:计算机的软硬件组成(CPU、内存、I/O设备)、常见操作、发展历程
- 集成开发环境:Dev C++等环境的创建文件、编辑文件、保存文件、编译、解释、调试
- 程序的基本语句:
cin语句、scanf语句、cout语句、printf语句、赋值语句、复合语句 - 程序的基本概念:标识符、关键字、常量、变量、表达式的概念;常量与变量的命名、定义、作用、初始化与赋值;变量的自加与自减运算;程序的注释
- 基本运算:算术运算(加、减、乘、除、整除、求余)、逻辑运算(
&&、||、!)、关系运算(>、>=、<、<=、==、!=)、变量自增与自减运算、三目运算 - 基本数据类型:整数型(
int、long long)、实数型(float、double)、字符型(char)、布尔型(bool) - 结构化程序设计:顺序结构、分支结构(
if语句、if-else语句、switch语句)、循环结构(for语句、while语句、do-while语句)、continue语句和break语句
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:120分钟
二级标准
知识点
- 计算机存储与网络:RAM、ROM、Cache的功能及区别;计算机网络分类(WAN、MAN、LAN);TCP/IP四层模型与OSI七层模型;IP地址及子网划分
- 程序设计语言:程序设计语言分类(机器语言、汇编语言、高级语言);常见的高级语言(C++、Python等)
- 流程图:流程图的概念、基本表示符号、绘制流程图、描述流程图
- ASCII编码:常见字符的ASCII编码(空格:32、"0":48、"A":65、"a":97)、字符编码之间的相互转换
- 数据类型转换:强制类型转换、隐式类型转换
- 多层分支结构:
if语句、if...else语句、switch语句的嵌套 - 多层循环语句:
while循环、do...while循环、for循环的嵌套 - 数学函数:绝对值函数
abs()、平方根函数sqrt()、最大值函数max()、最小值函数min()、随机数函数rand()/srand()及相关
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:120分钟
三级标准
知识点
- 数据编码:原码、反码、补码
- 进制转换:二进制、八进制、十进制、十六进制之间的相互转换
- 位运算:与(
&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)的基本使用及原理 - 算法与描述:枚举法、模拟法;自然语言描述、流程图描述、伪代码描述
- 数据结构:C++一维数组基本应用(不包括变长数组)
- 字符串及其函数:大小写转换、字符串搜索、分割、替换等
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:120分钟
四级标准
知识点
- 指针:指针类型概念、指针类型定义变量、指针类型变量的赋值与解引用
- 二维及多维数组:C++二维及多维数组的定义与使用(不包括变长数组)
- 结构体:结构体定义和使用、结构体数组、结构体指针、结构体嵌套结构体、结构体做函数参数、结构体中
const使用场景 - 函数:函数的定义、调用、声明(不包含匿名函数、类的括号运算符重载);形参与实参;全局作用域、局部作用域;值传递、引用传递、指针传递
- 递推算法:递推算法基本思想、递推关系式推导
- 排序算法:冒泡排序、插入排序、选择排序;时间复杂度、空间复杂度、算法稳定性;简单算法复杂度的估算(含多项式、指数复杂度)
- 文件操作:文件重定向、读操作、写操作、读写操作
- 异常处理:异常处理机制和常用方法
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:120分钟
五级标准
知识点
- 初等数论:素数与合数、最大公约数与最小公倍数、同余与模运算、约数与倍数、质因数分解、奇偶性;欧几里得算法(辗转相除法);唯一分解定理;素数表的埃氏筛法和线性筛法
- 算法复杂度估算方法:含多项式的算法复杂度、含对数的算法复杂度
- C++高精度运算:C++数组模拟高精度加法、减法、乘法、除法
- 链表:单链表、双链表、循环链表的创建、插入、删除、遍历、查找的基本操作
- 二分算法:二分查找算法、二分答案算法(也称二分枚举法)
- 递归算法:递归算法的相关概念、递归算法的时间复杂度和空间复杂度、递归的优化策略
- 分治算法:归并排序算法、快速排序算法
- 贪心算法:贪心算法的相关概念、最优子结构
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:180分钟
六级标准
知识点
- 树:树的基本概念、哈夫曼树、完全二叉树、二叉排序树
- 基于树的编码:格雷编码、哈夫曼编码
- 搜索算法:深度优先搜索算法(DFS)、宽度优先搜索算法(BFS)、二叉树的搜索算法
- 简单动态规划:一维动态规划、简单背包问题
- 面向对象:面向对象思想、类的创建和初始化、类的特性(继承、封装、多态)
- 栈和队列:栈、队列、循环队列的基本定义、应用场景和常见操作
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:180分钟
七级标准
知识点
- 数学库函数:三角函数(
sin(x)、cos(x)等)、对数函数(log10(x)、log2(x))、指数函数(exp(x)) - 复杂动态规划:二维动态规划、动态规划最值优化、区间动态规划、求最长上升子序列(LIS)、求最长公共子序列(LCS)、基于滚动数组的动态规划空间复杂度优化
- 图的定义及遍历:图的概念、图的种类(有向图、无向图)、图节点度的概念、图的广度优先遍历、图的深度优先遍历
- 图论算法:图的泛洪算法(flood fill)
- 哈希表:哈希表的概念与知识及其应用
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:180分钟
八级标准
知识点
- 计数原理:加法原理、乘法原理
- 排列与组合:排列、组合的基本概念及编程求解方法
- 杨辉三角:杨辉三角的定义、杨辉三角形的实现
- 倍增法:倍增的概念、倍增法的时间复杂度
- 代数与平面几何:一元一次方程、二元一次方程、三角形/圆形/长方形面积
- 图论算法及综合应用:最小生成树的概念、Kruskal算法、Prim算法;最短路径的概念、Dijkstra算法、Floyd算法;图论算法的综合应用与问题求解技巧
- 算法的时间和空间效率分析:算法时间和空间复杂度的一般分析方法;各类算法(排序、查找、树和图的遍历、搜索、分治及动态规划等)的时间和空间复杂度
- 算法优化:不同算法求解问题的差异分析、算法优化的一般方法、根据数学知识优化算法的一般方法(如等差/等比数列求和公式等)
题型:单选15道(2分/道) + 判断10道(2分/道) + 编程2道(25分/道) | 时长:180分钟