简介:GESP一级集训课PPT由CCF编程能力等级认证配套资料整理而成,面向准备参加GESP一级考试的K12阶段Python/C++学习者,重点梳理C++编程基础与考试规则。内容涵盖GESP考试简介、评分题型占比(单选、判断、编程题)、Dev-C++开发环境操作、顺序选择循环三大结构、变量与数据类型、输入输出语句等核心模块,并穿插图形打印与数值运算课堂练习,帮助学员从零搭建编程思维。资源为单个PPTX演示文稿,体积约19.99MB,章节式结构便于按知识点复习或直接用于课堂教学。已有1603人学习,适合需要快速掌握GESP一级考纲并完成C++语法入门的中小学生和指导教师。
1. 什么是 GESP 一级认证:从报名到拿证的完整课程落地
当你拿到一份“GESP 一级集训课”的 PPT,第一反应可能是“又是一堆 C++ 语法”。但拆完这份材料你会发现,真正值钱的不是那几个输出语句,而是它把 CCF 编程能力等级认证(即 GESP)的考纲、题型、分值策略和教学节奏全揉进了 40 页里。GESP 面向 K12 阶段的编程学习者,一级考纲固定,题型稳定,满 90 分还能跳一级报名。对于零基础的 C++ 学习者来说,它就是你从“能听懂”到“能过级”之间的那条最短路径。这篇笔记我会按上课顺序拆解 PPT 里的每一个考点和程序示例,把环境搭建、程序框架、变量运算和考前排查一次性讲透。
2. GESP 一级考什么:考纲、题型与分数分布的全拆解
2.1 考纲范围与考试时间安排
GESP 一级的考纲非常收敛,主要覆盖五块:计算机基础知识、变量定义与使用、基本数据类型、程序的顺序/选择/循环三大结构、基本运算(算术、关系、逻辑)以及输入输出。这里最容易被忽略的是“计算机历史与基础知识”,我见过不少学生把精力全砸在写代码上,结果单选前 5 题全是计算机常识,直接白丢 10 分。考试每年 3、6、9、12 月各一场,一级到四级考试时长为 2 小时,满分 100 分。
时间分配上,单选题 15 题共 30 分,判断题 10 题共 20 分,编程题 2 题共 50 分。也就是说编程题才是大头,但判断题和单选题合计 50 分,如果基础概念不牢,光靠编程题很难及格。一级的编程题难度不高,通常是一道图形输出和一道基础运算题,重点考查对cout和变量的熟练度,而不是复杂算法,所以训练核心应该放在“手写完整程序”上。
2.2 题型分布与分值策略:先保哪部分最划算
从分数结构看,最划算的得分顺序是:先保编程题,再保判断题,最后扣单选题。编程题只要程序能跑出正确输出,基本能拿满分,而且一级编程题几乎没有边界条件,写对了就有分。判断题靠概念记忆,比如“变量名不能以数字开头”“C++ 区分大小写”,这些在考前花半小时背一遍就能拿足 20 分。单选题反而需要知识面,比如“C++ 源代码后缀名是什么”“三大结构是哪三种”,这些在 PPT 的“温故知新”里都反复出现过,可以用刷题的方式快速覆盖。
另一个关键是晋级规则:一级必考,每级得分 90 分(含)以上可以跨一级报名。这意味着你如果一次考到 90+,下一场可以直接报三级,节省一整个备考周期。所以备考 GESP 一级的目标不应该只是“及格”,而是瞄准 90 分以上,这才需要把每一道判断题和基础概念题都拿稳。
2.3 备考节奏:模拟练习的四个阶段
我一般会建议备考周期分四周:第一周过一遍考纲和 C++ 程序框架,能独立写出“Hello World”变体;第二周练变量和运算,每天写 5 个完整程序;第三周刷单选和判断题真题,重点记录错题概念;第四周按考试时间表做两套模拟题,卡着 2 小时交卷。这份 PPT 的课程内容正好按这个节奏组织,从“温故知新”到“过关测验”,每个环节都对应一个备考阶段,所以拿它做集训材料的最大价值是帮你免掉自己从零整理考纲的时间。
3. 搭建 C++ 开发环境:Dev-C++ 安装与第一个可运行程序
3.1 开发环境选择与安装要点
PPT 里推荐的编程工具是 Dev-C++,这是一个免费的 C++ 集成开发环境,非常适合 GESP 一级的图形输出和基础运算练习。下载安装时选“Full”版本,装完后默认编译器是 TDM-GCC,可以直接编译运行。安装路径里不要带中文或空格,比如放到C:\Dev-Cpp,否则某些版本会出现中文目录下编译失败的问题。另外在“工具 - 编译器选项”里把语言标准设置为ISO C++11,GESP 考试环境对 C++11 语法完全兼容,但部分 Dev-C++ 旧版本默认的是 C++98,会导致auto或nullptr这类关键字报错。
Dev-C++ 的调试功能对初学者来说足够用,但我更推荐你用它写好代码后,先按 F9 编译,再按 F10 运行。编译报错时重点看第一行错误提示,后面的错误往往是连锁反应,修完第一个再看下一个。我见过很多学生在编译报错后一次修改十几个地方,结果越改越乱,正确的做法是每次只改第一个错误,再重新编译。
3.2 C++ 程序基本框架逐行解析
PPT 里反复强调的 C++ 程序结构是这样的:
#include <iostream> // 声明头文件,提供输入输出功能 using namespace std; // 使用标准命名空间 int main( ) { // 主函数,程序从这里开始执行 cout << "Hello, World!" << endl; // 输出语句 return 0; // 返回 0 表示程序正常结束 }这段代码是 C++ 程序的“骨架”。第一行#include <iostream>是预处理指令,它告诉编译器引入输入输出流库,没有这一行cout和cin都用不了。第二行using namespace std;是为了简化写法,因为cout和cin都定义在std命名空间里,如果没有这一行,你每次都要写std::cout,考试时手写容易丢分,所以 PPT 直接要求写这行。第三行int main()是主函数名,每个可执行程序必须有且仅有一个main函数,程序从这个函数的第一条语句开始顺序执行。
最后一行return 0;是函数的返回值,对于int main()来说,返回 0 告诉系统程序正常结束。漏掉这个返回语句在很多编译器里不会报错,但 GESP 考试环境有时会提示警告,最好每次都写上。书写要求里强调了英文键盘、缩进用 tab、符号成对书写、注意空格和随手保存,这五点在考试手写代码时尤其重要,因为阅卷系统是逐字符比对的,全角符号或漏掉分号直接判错。
3.3 cout 输出:格式控制与常见写法
cout是 C++ 中最基础的输出语句,它是标准输出流,用<<运算符把内容送入输出流。基本语法是:
cout << 项目1 << 项目2 << ... << 项目n;其中项目可以是表达式,输出表达式的值;也可以是加了双引号的字符串,原样输出双引号内的内容。比如cout << 1+3;会输出数字 4,而cout << "1+3";会输出字符串1+3。endl是换行并刷新缓冲区,等价于"\n",但endl在输出大量数据时效率稍低,一级考试数据量很小,用哪个都行,关键是别漏掉换行,因为程序输出比对是逐行进行的。
PPT 里的课堂练习一“打印如下图形”也是考这种逐行输出,例如:
#include <iostream> using namespace std; int main() { cout << "*" << endl; cout << "**" << endl; cout << "***" << endl; return 0; }图形输出的要点是别省endl,每一行结尾必须有换行符。还有一点是输出里的空格,题目要求几个空格就写几个,GESP 的判分系统对多余空格通常也是按错误处理的,前期养成“所见即所写”的习惯能省下大量试错时间。
4. 变量与基本运算:从零开始写一个可运行的运算程序
4.1 变量声明与命名规则
PPT 中对变量的定义是“一个可以变化的量,是存储信息的容器”。C++ 里声明变量的基本格式是:
int c1 = 1; // 声明整型变量 c1,并赋初值为 1 int c2 = 2; // 声明整型变量 c2,并赋初值为 2 cout << c1 + c2 << endl; // 输出 3声明变量必须指定数据类型,int是整型,只能存储整数。变量名是标识符,规则有四条:只能由字母、数字和下划线_组成;不能以数字开头;不能包含空格;不能和 C++ 关键字重名。PPT 特意强调区分大小写,teacher、Teacher、TEACHER是三个不同变量,所以考试时定义变量名一定要前后一致,变量名的大小写写错了,编译报错倒是轻的,最惨的是少写一个大写字母,看起来像逻辑错误,实际是未定义标识符。
命名规范上建议用有意义的单词,比如num1、num2、sum,不要用a、b、c这种没有指向性的名字。一级考试的代码量不大,但养成好习惯可以避免低级错误,比如把sum写成sumn,这种拼写错误在编译阶段就会被发现,但考试时浪费的时间已经找不回来了。
4.2 算术运算与表达式求值
C++ 的算术运算符包括加+、减-、乘*、除/和取余%。PPT 里的课堂练习是“输出两个数字的和、差、乘、除”,示例代码:
#include <iostream> using namespace std; int main() { int a = 135; int b = 5; cout << a + b << endl; cout << a - b << endl; cout << a * b << endl; cout << a / b << endl; return 0; }这里要注意的是除法运算。当两个操作数都是整数时,a / b执行的是整除,结果也是整数。比如135 / 5结果是 27,但7 / 2的结果是 3,而不是 3.5。余数用%运算符获得,7 % 2结果是 1。一级考纲里虽然不直接考取余,但常会作为单选题的陷阱,比如问“7 / 2 结果是多少”,答案是 3,不是 3.5。这是初学者最容易翻车的地方。
另一个坑是运算优先级。乘除和取余的优先级高于加减,同级从左到右。表达式1 + 3 * 4计算的是 13,不是 16。考试时如果想改变优先级,就要用括号。cout << (1 + 3) * 4;输出 16。记住,括号永远是改变优先级最安全的写法,不要依赖优先级规则,写成(a + b) * (c + d)一眼就能看懂。
4.3 完整示例:输入两个数,输出和差积商
PPT 里还引入了cin输入语句,使程序能接收用户数据。完整程序如下:
#include <iostream> using namespace std; int main() { int c1, c2; // 定义两个整型变量 cin >> c1 >> c2; // 从键盘输入,依次存入 c1 和 c2 cout << c1 + c2 << endl; // 输出和 cout << c1 - c2 << endl; // 输出差 cout << c1 * c2 << endl; // 输出积 cout << c1 / c2 << endl; // 输出商 return 0; }这段代码是 GESP 一级“编程题第 2 题”的典型模板。先cin读入整数,再分四行输出运算结果。cin >>会自动跳过空格和换行,连续读入多个变量时,你输入135 5或135\n5都能正确读入。考试环境里输入数据是文件重定向的,不需要人工输入,所以你不用写任何提示语,直接cin >>就能拿到数据,忽略这个细节会导致程序卡在输入阶段。
程序中的int类型能存储的最大值大约是 21 亿,一级考试的数据范围不会超过这个值,所以int就够用。但如果你在练习时遇到更大的数据,就要考虑long long,那已经不是一级考纲要求的内容,看到别人的代码里写long long先别急着学,把int的运算练扎实更重要。
5. 初学 C++ 的五个典型编译运行故障排查
5.1 现象:编译报错“未定义标识符”
第一次写cout时,编译结果一堆红字,提示cout is not declared。原因是忘了写#include <iostream>或忘了写using namespace std;。
解决方法是回到代码最上方,检查头文件是否完整。如果没有using namespace std;,则只能在cout前加std::前缀。建议初学时坚持写using namespace std;,等熟悉后再学命名空间的完整用法。
5.2 现象:程序能运行但输出全是乱码
输出中文时显示乱码,或者英文对但符号不对。最常见原因是源文件编码是 UTF-8,而 Dev-C++ 控制台默认用 GBK 显示,导致中文无法正确解析。GESP 考试环境通常不会出现这个问题,但平时训练时建议把输出内容全部换成英文或数字,避免中文干扰。
如果一定要输出中文,可以在源文件开头写system("chcp 65001");切换控制台编码,但一级考试不要求中文输出,直接放弃中文输出是最省事的方案。
5.3 现象:变量赋值后输出结果不对
比如int a = 5; int b = 2; cout << a / b;输出结果是 2,而不是 2.5。原因是整数除法会截断小数部分,这是 C++ 的既定行为。解决方法是把至少一个操作数改成浮点类型,比如cout << a * 1.0 / b;或定义double变量,但一级考试只要掌握整数除法规则就行,不要为了得到小数而额外引入浮点运算,因为浮点输出格式是三级以后才考的,一级用不到。
5.4 现象:cin 输入后程序直接跳过导致输出为空
代码里写cin >> c1; cin >> c2;,但运行时输入了一个数然后按回车,程序就直接结束了。原因是cin默认按空格或换行分隔输入,如果你输入135 5然后回车,两个变量能正确读入;但如果你每行输一个数,也需要换行继续输入才能完成读取。还有一种情况是你提前按了回车导致第一个变量读入换行符,解决方法是确认输入数据的个数和格式与cin的读取顺序一致,不要多给数据。考试数据由评测系统提供,你无法预判格式,所以必须按题目要求来写读取逻辑,多余数据不理会即可。
5.5 现象:编程题输出格式和样例不符
程序本地运行结果正确,但提交后 0 分。最常见原因是行尾多了空格、少了换行,或者输出内容前后多了一个空行。GESP 的判分系统逐字节比对输出文件,多一个空格都算错。解决方法是调试时把输出结果复制到记事本里,显示所有字符,检查每行末尾有没有多余空格,以及最后一行的换行符是否存在。
另外,注意题目要求的输出顺序,先输出什么后输出什么不能乱。如果题目要求输出两行,第一行是和,第二行是差,就不要自己加一行提示语。任何多余输出都是错误。从那以后我每次写完题目,都会先把输出样例粘贴到 Dev-C++ 的调试窗口里逐字符核对一遍,确认没有隐藏的空白字符再提交。
6. 考前一周的检查清单与程序验证技巧
到了考前一周,再学新知识已经来不及了,关键是把手头的程序模板练到肌肉记忆。我习惯用一份自检清单来收尾:第一,确认自己能在三分钟内无错误地写出完整的#include <iostream>到return 0;框架;第二,能默写变量命名规则的四条限制;第三,能口算出7 / 2、7 % 2、1 + 3 * 4的正确结果;第四,能用手写方式画出单、双、三行的星号图形。
程序验证技巧也是这一周的重点。我常用的第一个技巧是“边界测试法”:每次写完程序,除了题目给的样例,再手动输入边界值。比如两个数都是 1,结果是什么;两个数都是大数,结果会不会溢出;被除数是 0 会怎样。一级考试虽然数据范围友好,但边界测试能帮助你发现隐藏的整除问题。
第二个技巧是利用 Dev-C++ 的“编译并运行”快捷键 F11,它会直接运行,并显示黑窗口。如果程序运行后一闪而过,可以在return 0;前加一句system("pause");。但考试评测系统不会运行黑窗口,所以这个技巧只用于本地调试,提交代码前必须删掉,否则会被判运行超时。
第三个技巧是仔细检查分数输出中是否用了浮点。一级编程题几乎全是整数运算,如果你在代码里写了double,但输出时忘了指定精度,可能会输出科学计数法或多种小数位,导致格式错误。最稳妥的做法是:看清题目是要求整数输出还是浮点输出,一级默认都是整数,直接用int计算和输出。
最后一个我自己的血泪习惯:提交前把每一道编程题的样例输入复制到程序里运行,然后比对输出是否逐字符一致。不要只看数字相同,要看空格和换行符也在正确的位置。GESP 的判分系统没有人工复核,格式错误就是零分,这个坑每年都有人踩。从那以后我每次集训课结束前,都强制学生把样例输出和程序输出并排放在两个窗口里,用反斜杠转义符检查空白字符,确认无差异后再打包提交。希望这些小经验和这份课程拆解能帮到你,让你拿着 GESP 一级的真题目、真考纲,少走弯路,一击即过。
本文还有配套的精品资源,点击获取