考试大纲

GESP C++ 官方考试大纲(一至八级)

依据 CCF 官方《编程能力等级认证标准 C++ & Python 一至八级》整理:每个级别的知识块、知识点详述、考核目标与题型分布,帮助家长和学生快速掌握考什么、怎么考。

0

考纲总览一至八级知识体系与考试结构

级别核心知识内容(C++)考核目标题型 / 时间
一级计算机基础与编程环境、变量的定义与使用、基本数据类型(整型/浮点/字符/布尔)、控制语句结构(顺序/循环/选择)、基本运算、输入输出语句掌握顺序、循环、分支的简单程序结构,会用 IDE 编程与调试,完成单一功能程序设计单选15+判断10+编程2
120 分钟
二级计算机的存储与网络、程序设计语言特点、流程图、ASCII 编码、数据类型转换、多层分支/循环结构、常用数学函数(abs/sqrt/max/min/rand)掌握程序设计,能使用简单数学函数,独立完成含分支、循环嵌套的综合案例单选15+判断10+编程2
120 分钟
三级数据编码(原码/反码/补码)、进制转换(二/八/十/十六)、位运算(& | ~ ^ << >>)、算法描述、一维数组、字符串及函数、枚举法、模拟法掌握编码、进制、位运算、一维数组、字符串,能独立用模拟法/枚举法解决问题单选15+判断10+编程2
120 分钟
四级函数的定义与调用、形参实参/作用域、指针、参数传递(值/引用/指针)、结构体、二维与多维数组、递推、排序(冒泡/插入/选择)、复杂度估算、文件重定向与读写、异常处理掌握函数与参数传递、二维数组、常用排序、文件读写与异常处理,解决递推问题单选15+判断10+编程2
120 分钟
五级初等数论(素数/约数/质因数分解/同余)、数组模拟高精度四则运算、链表、辗转相除法、埃氏筛与线性筛、唯一分解定理、二分查找/二分答案、贪心、分治(归并/快排)、递归掌握数论、链表操作,熟悉二分/分治/贪心/递归思想,能选择合适算法解题单选15+判断10+编程2
180 分钟
六级树的定义/构造/遍历、哈夫曼树、完全二叉树、二叉排序树、哈夫曼编码、格雷编码、DFS、BFS、二叉树搜索、简单动态规划(一维/背包)、面向对象与类、栈/队列/循环队列掌握树与搜索算法,会一维 DP 与背包,掌握面向对象思想与栈队列应用单选15+判断10+编程2
180 分钟
七级数学库函数(三角/对数/指数)、复杂动态规划(二维 DP、LIS、LCS、滚动数组)、图的定义及遍历、图论基本算法(DFS/BFS/泛洪)、哈希表掌握复杂 DP 与优化、图的遍历与泛洪、哈希表概念与应用单选15+判断10+编程2
180 分钟
八级计数原理(加法/乘法)、排列与组合、杨辉三角、倍增法、代数与平面几何(初中)、图论综合(最小生成树 kruskal/prim、最短路 dijkstra/Floyd)、算法时空效率分析、算法优化掌握组合数学基础、倍增法、图论算法,能分析复杂算法复杂度并优化单选15+判断10+编程2
180 分钟
1

一级 · 编程基础入门计算机基础 + 三大结构

编号知识块知识点
1计算机基础知识计算机的软硬件组成、常见操作、发展历程
2集成开发环境创建/编辑/保存/编译/调试(如 Dev C++)
3结构化程序设计顺序结构、分支结构、循环结构
4程序的基本语句cin/scanf/cout/printf、赋值、复合语句、if/switch/for/while/do-while
5程序的基本概念标识符、关键字、常量、变量、表达式;命名/定义/作用;注释
6基本运算算术、逻辑(&& || !)、关系(> < == !=)、自增自减、三目
7基本数据类型整型 int/long long、实数 float/double、字符 char、布尔 bool
  1. 了解计算机基本构成(CPU、内存、I/O 等),Windows/Linux 基本概念与常见操作,计算机历史与常见应用
  2. 熟悉 IDE 使用:创建、编辑、保存、编译、调试
  3. 掌握 cin/scanf、cout/printf、赋值语句
  4. 掌握标识符、关键字、常量、变量、表达式概念
  5. 掌握常量/变量命名、定义、初始化与赋值,自加自减
  6. 掌握算术表达式:加、减、乘、除、整除、求余
  7. 掌握逻辑运算与(&&)、或(||)、非(!)
  8. 掌握关系运算:大于/小于/等于/不等于等
  9. 掌握基础数据类型定义与使用(整型/实数型/字符型/布尔型)
  10. 掌握顺序结构程序编写
  11. 掌握分支结构:if、if-else、switch,了解三目
  12. 掌握循环结构:for、while、do-while,continue 与 break
  13. 理解注释和调试概念

题型分布(一级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:120 分钟。

2

二级 · 语法拓展与嵌套存储网络 + 多层结构

编号知识块知识点
1计算机存储与网络ROM、RAM、Cache;网络分类(WAN/MAN/LAN);TCP/IP 四层与 OSI 七层;IP 地址及子网划分
2程序设计语言机器语言、汇编语言、高级语言;常见高级语言(C++/Python)
3流程图流程图概念、基本符号、绘制与描述三种基本结构
4ASCII 编码常见字符 ASCII(空格32/“0”48/“A”65/“a”97),字符与编码互转
5数据类型转换强制类型转换、隐式类型转换
6多层分支结构if、if-else、switch 及相互嵌套
7多层循环语句while、do-while、for 的嵌套
8数学函数abs()、sqrt()、max()、min()、rand()/srand()
  1. 了解存储分类:RAM、ROM、Cache 功能与区别
  2. 了解计算机网络分类、TCP/IP 四层与 OSI 七层、重要协议、IP 地址与子网划分
  3. 了解程序设计语言分类及高级语言特点
  4. 掌握流程图概念与绘制,描述三大基本结构
  5. 了解 ASCII 原理,识别常用字符编码并相互转换
  6. 掌握数据类型转换:强制与隐式
  7. 掌握多层分支:if/if-else/switch 嵌套
  8. 掌握多层循环:for/while/do-while 嵌套
  9. 掌握数学函数:abs/sqrt/max/min/rand 并理解算法原理

题型分布(二级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:120 分钟。

3

三级 · 数组、字符串与算法编码进制 + 枚举模拟

编号知识块知识点
1数据编码原码、反码、补码
2进制转换二进制、八进制、十进制、十六进制
3位运算与(&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)
4算法与描述枚举法、模拟法;自然语言、流程图、伪代码描述
5数据结构C++ 一维数组(不含变长数组)
6字符串及其函数大小写转换、字符串搜索、分割、替换等
  1. 了解二进制数据编码:原码、反码、补码
  2. 掌握进制转换:二/八/十/十六进制
  3. 掌握位运算:与、或、非、异或、左移、右移的原理与使用
  4. 了解算法概念,会用自然语言、流程图、伪代码描述算法
  5. 掌握一维数组基本应用(不包括变长数组)
  6. 掌握字符串及其函数:大小写转换、搜索、分割、替换
  7. 理解枚举算法原理与特点,解决实际问题
  8. 理解模拟算法原理与特点,解决实际问题

题型分布(三级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:120 分钟。

4

四级 · 函数、结构体与排序函数指针 + 递推排序

编号知识块知识点
1指针指针类型、指针变量定义/赋值/解引用
2二维及多维数组C++ 二维及多维数组定义与使用
3结构体结构体定义与使用、结构体数组/指针、嵌套、做函数参数、const 场景
4函数定义/调用/声明;形参实参;全局与局部作用域;值传递、引用传递
5递推算法递推基本思想、递推关系式推导
6排序算法冒泡、插入、选择;时间/空间复杂度;算法稳定性;简单复杂度估算
7文件操作文件重定向、读/写/读写操作、文本文件分类
8异常处理异常处理机制和常用方法
  1. 理解指针概念,掌握指针变量定义、赋值、解引用
  2. 掌握结构体、二维及多维数组的基本概念与使用
  3. 理解模块化编程思想,掌握函数声明/定义/调用,形参实参
  4. 掌握变量作用域,理解全局与局部变量区别
  5. 掌握函数参数传递:值传递、引用传递、指针传递
  6. 掌握递推算法基本思想、递推关系式推导与求解
  7. 掌握排序概念,了解内外排序,理解时间复杂度/空间复杂度/稳定性
  8. 掌握冒泡、插入、选择排序的算法思想与代码实现
  9. 掌握简单算法复杂度估算(多项式、指数)
  10. 掌握文件重定向与读写操作,了解文本文件分类
  11. 了解异常处理机制,掌握常用异常处理方法

题型分布(四级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:120 分钟。

5

五级 · 数论与基础算法数论 + 二分贪心分治

编号知识块知识点
1初等数论素数与合数、最大公约数与最小公倍数、同余与模运算、约数与倍数、质因数分解、奇偶性、欧几里得算法、唯一分解定理、埃氏筛与线性筛
2算法复杂度估算含多项式、对数的复杂度
3C++ 高精度运算数组模拟高精度加、减、乘、除
4链表单链表、双链表、循环链表的创建/插入/删除/遍历/查找
5二分算法二分查找、二分答案(二分枚举法)
6递归算法递归概念、时间与空间复杂度、优化策略
7分治算法归并排序、快速排序
8贪心算法贪心思想与相关应用
  1. 掌握初等数论概念与应用:素数/合数、gcd/lcm、同余与模运算、约数倍数、质因数分解、奇偶性
  2. 掌握 C++ 数组模拟高精度加/减/乘/除
  3. 掌握链表创建、插入、删除、遍历、反转,理解单/双/循环链表区别
  4. 掌握辗转相除法、埃氏筛、线性筛、唯一分解定理
  5. 掌握算法复杂度估算(含多项式、对数)
  6. 掌握二分查找与二分答案,能在有序数组快速定位
  7. 掌握递归基本原理、递归复杂度分析、递归优化
  8. 掌握贪心算法原理与最优子结构,解决相关问题
  9. 掌握分治原理,用归并排序和快速排序实现排序

题型分布(五级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:180 分钟。

6

六级 · 树与动态规划树 + 搜索 + 简单DP

编号知识块知识点
1树树的基本概念、哈夫曼树、完全二叉树、二叉排序树
2基于树的编码格雷编码、哈夫曼编码
3搜索算法深度优先搜索(DFS)、宽度优先搜索(BFS)、二叉树的搜索算法
4简单动态规划一维动态规划、简单背包
5面向对象面向对象思想、类的创建与初始化、继承/封装/多态
6栈和队列栈、队列、循环队列
  1. 掌握树的基本概念,掌握构造与遍历算法
  2. 掌握哈夫曼树、完全二叉树、二叉排序树概念与应用
  3. 理解哈夫曼编码、格雷编码原理并能简单应用
  4. 掌握 DFS、BFS、二叉树搜索算法,选择合适搜索算法
  5. 掌握简单动态规划思想,解决一维 DP 与简单背包问题
  6. 掌握面向对象思想,了解封装/继承/多态,掌握类的创建与使用
  7. 掌握栈、队列、循环队列的定义、应用场景与常见操作

题型分布(六级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:180 分钟。

7

七级 · 图与复杂DP图论 + 复杂动态规划

编号知识块知识点
1数学库函数三角函数 sin/cos、对数 log10/log2、指数 exp
2复杂动态规划二维 DP、区间 DP、最长上升子序列(LIS)、最长公共子序列(LCS)、滚动数组优化
3图的定义及遍历图的概念、图的广度/深度优先遍历
4图论算法图的泛洪算法(flood fill)
5哈希表哈希表的概念、知识与简单应用
  1. 掌握数学库常用函数:三角 sin/cos、对数 log10/log2、指数 exp
  2. 掌握复杂动态规划:二维 DP、区间 DP、LIS、LCS、滚动数组空间优化
  3. 掌握图的定义与基本图论算法:有向/无向图、节点度、DFS/BFS 遍历、flood fill
  4. 掌握哈希表的概念与知识及其应用

题型分布(七级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:180 分钟。

8

八级 · 组合数学与图论综合计数 + 最短路 + 优化

编号知识块知识点
1计数原理加法原理、乘法原理
2排列与组合排列、组合基本概念与编程实现
3杨辉三角杨辉三角(帕斯卡三角形)定义与实现
4倍增法倍增概念与时间复杂度
5代数与平面几何一元一次/二元一次方程、三角形/圆形/长方形面积(初中数学)
6图论算法及综合应用最小生成树(kruskal/prim)、最短路径(dijkstra/Floyd)、综合应用与求解技巧
7算法时空效率分析各类算法(排序/查找/树图遍历/搜索/分治/DP)的复杂度分析
8算法优化不同算法求解差异分析、数学知识辅助优化(等差/等比求和公式等)
  1. 掌握计数原理:加法原理与乘法原理的区别与使用
  2. 掌握排列与组合概念,实现常见排列组合编程求解
  3. 掌握杨辉三角形概念与应用,了解其与组合的关系
  4. 掌握倍增法概念,了解其时间复杂度
  5. 掌握代数与平面几何(初中数学):一元一次/二元一次方程、基本图形面积
  6. 掌握图论算法综合应用:最小生成树 kruskal/prim、最短路 dijkstra/Floyd,理解不同算法比较
  7. 掌握较复杂算法的时间与空间效率分析
  8. 掌握一般算法优化技巧,能根据数学知识优化算法

题型分布(八级):单选题 15 道(2 分/道)· 判断题 10 道(2 分/道)· 编程题 2 道(25 分/道),满分 100 分。考试时间:180 分钟。

注

考试说明C++ 标准与注意事项

对于 C++ 语言考题,如无特殊说明,均以 C++11 标准为准;如考题有特殊说明,以考题说明为准。考题不会涉及该标准下的未定义行为(undefined behavior)。

在线编译器