2950 字
15 分钟
CCF GESP C++ 编程能力等级认证标准(大纲)

官方链接:CCF GESP C++ 编程能力等级认证标准

📚 各级别标准#

一级标准#

知识点详述#

编号知识点
1了解计算机的基本构成 (CPU, 内存, I/O设备等)
2了解 Windows、Linux等操作系统基本概念和常见操作
3熟悉集成开发环境使用 (例如 Dev C++):创建文件、编辑文件、保存文件、编译、解释、调试
4掌握基础的 cin语句scanf语句cout语句printf语句, 赋值语句等
5掌握标识符、关键字、常量、变量、表达式的概念
6掌握常量与变量的命名、定义、作用、初始化与赋值以及变量的自加与自减运算
7掌握基础算术表达式:加、减、乘、除、整除、求余
8掌握逻辑运算 与 (&&)或 (||)非 (!)
9掌握关系运算:大于、大于等于、小于、小于等于、等于、不等于
10掌握基础的数据类型的定义和使用 (整型、实数型、字符型、布尔型)
11掌握顺序结构程序的编写
12掌握分支结构程序的编写,掌握 if语句if-else语句switch语句, 了解三目运算
13掌握循环结构程序的编写,掌握 forwhiledo-while循环语句 以及 continuebreak 语句在循环中的应用
14理解程序的注释和调试的概念

考核目标#

学生通过计算机基础知识的学习,了解计算机的构成与操作。通过编程基础知识以及语句的掌握,可以独立完成简单功能的顺序结构分支结构循环结构的程序。

考试信息#

  • 考试时间:120分钟

二级标准#

知识点详述#

编号知识点
1了解计算机存储的基本概念及分类 (RAM、ROM、Cache)
2了解计算机网络的概念、分类及TCP/IP四层模型与OSI七层模型
3了解程序设计语言的几大分类及特点,了解常见的高级语言 (C++、Python等)
4了解流程图的概念及基本表示符号,掌握绘制流程图的方法
5了解 ASCII编码 原理,能识别常用字符的ASCII码,掌握ASCII码和字符之间相互转换的方法
6掌握数据类型的转换:强制类型转换隐式类型转换
7掌握多层分支结构,掌握 if语句if…else语句switch语句 及相互嵌套的方法
8掌握多层循环结构,掌握 for语句while语句do…while语句 及相互嵌套的方法
9掌握常用的数学函数:绝对值函数平方根函数最大值函数最小值函数随机数函数

考核目标#

通过C++知识的学习,掌握数据类型的转换方法数学库函数的使用,可以独立完成多分支结构循环结构的程序。

考试信息#

  • 考试时间:120分钟

三级标准#

知识点详述#

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

考核目标#

掌握计算机中常用进位制、位运算及数据编码的知识,掌握一维数组字符串类型及其函数的使用,掌握枚举法、模拟法的原理和运用技巧。

考试信息#

  • 考试时间:120分钟

四级标准#

知识点详述#

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

考核目标#

掌握C++指针类型二维及多维数组的基本使用;通过函数相关知识的学习,掌握模块化设计思想,具备编写自定义函数程序的能力。掌握文件读写操作,并通过对排序算法、递推法的学习,可以根据不同的使用场景,合理选择最优的算法。

考试信息#

  • 考试时间:120分钟

五级标准#

知识点详述#

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

考核目标#

掌握初等数论知识点,能够使用辗转相除法、素数表的埃氏筛法和线性筛法、唯一分解定理等相关知识解决相应的问题。掌握单链表双链表循环链表的基本操作方法。熟悉二分法分治法贪心算法递归算法的算法思想。C++掌握使用数组模拟高精度加法、减法、乘法和除法的知识

考试信息#

  • 考试时间:180分钟

六级标准#

知识点详述#

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

考核目标#

掌握树的基础知识,并能够分辨和使用哈夫曼树、完全二叉树、二叉排序树。掌握搜索算法。掌握动态规划的思路和步骤,能够解决一维动态规划问题和简单背包问题。掌握面向对象的概念和特性,掌握类的创建及其基本使用方法。掌握栈、队列、循环队列的基本定义和常见操作。

考试信息#

  • 考试时间:180分钟

七级标准#

知识点详述#

编号知识点
1掌握数学库常用函数 (三角、对数、指数):sin(x), cos(x), log10(x), log2(x), exp(x) 等
2掌握复杂动态规划 (二维动态规划动态规划最值优化):区间动态规划、最长上升子序列 (LIS)、最长公共子序列 (LCS) 等,理解基于滚动数组等降低动态规划空间复杂度的方法
3图的定义及基本图论算法:有向图、无向图,图节点的度的概念,图的DFS和BFS搜索与遍历方法,图的泛洪 (flood fill) 算法
4掌握哈希表的概念与知识及其应用

考核目标#

掌握常用数学库函数。掌握复杂动态规划,包括二维动态规划、求LIS、LCS等内容,并掌握利用滚动数组等的优化方法。了解图的定义与广搜和深搜的算法,泛洪算法。了解哈希表的概念和知识。

考试信息#

  • 考试时间:180分钟

八级标准#

知识点详述#

编号知识点
1掌握计数原理:加法原理和乘法原理
2掌握排列与组合基础知识
3掌握杨辉三角形 (帕斯卡三角形) 的概念
4掌握倍增法概念,了解倍增法的时间复杂度
5掌握代数与平面几何基础知识 (初中数学部分)
6掌握图论算法及综合应用技巧:最小生成树 (kruskal算法、prim算法)、最短路径 (dijkstra算法、Floyd算法)
7算法的时间和空间效率分析:能够掌握较为复杂算法的时间和空间复杂度分析方法
8算法优化:理解不同方法求解一个问题在时间复杂度和空间复杂度上的差异,掌握一般的算法优化技巧

考核目标#

掌握基本计数原理、排列组合概念。掌握杨辉三角形的概念和应用。掌握代数与平面几何的基本知识。掌握较为复杂算法的时间复杂度和空间复杂度分析方法,及其一般的算法优化技巧,能根据数学知识优化算法。

考试信息#

  • 考试时间:180分钟

📊 C++ 各级别核心能力总结#

级别核心能力
一级基础语法、输入输出、三大结构
二级数据类型转换、多层嵌套、数学函数
三级进制转换、位运算、一维数组、字符串
四级指针、结构体、多维数组、函数、排序算法
五级数论、高精度运算、链表、递归、分治、贪心、二分
六级树、搜索算法、动态规划、面向对象、栈队列
七级复杂动态规划、图论基础、哈希表、数学库函数
八级组合数学、图论算法、算法复杂度分析、算法优化

📝 考试时间汇总#

级别考试时间
一级 ~ 四级120分钟
五级 ~ 八级180分钟
CCF GESP C++ 编程能力等级认证标准(大纲)
https://yezi.press/posts/gesp/gesp-dagang/
作者
Yezi 叶子
发布于
2023/03/21
许可协议
CC BY-NC-SA 4.0