简介:面向K12青少年编程学习者与培训讲师的GESP一级集训课件,围绕CCF编程能力等级认证的入门备考场景,帮助梳理一级考纲、建立C++编程基础,并支持课堂讲授与课后复习。资源包仅含1个pptx文件,大小约19.99MB,以演示课件形式组织认证概述、考试规则、知识点讲解与练习案例。课件内容覆盖GESP考试简介、题型与分数分布、晋级规则和一级大纲,并展开Dev-C++开发环境、C++程序基本结构、cout输出与cin输入、变量命名及整型/浮点型/字符型数据类型,配合顺序、选择、循环三大结构和打印图形、数值四则运算等课堂练习,便于教师直接授课、学生按模块查漏补缺。已有1615人学习,适合零基础或初次接触GESP一级的学员系统入门。
1. GESP 到底是什么:一句话讲清这个让家长犯迷糊的缩写
GESP 一级集训课,说白了就是把“考什么、按什么顺序学、练到什么程度算过关”提前排好的一套备考材料。
先给一句定义:GESP 是一项面向青少年的编程能力等级验证,用统一命题的考试来说明“你现在的编程水平大概处在第几级”。它分 1 到 8 级,一级是最底下那层台阶。很多家长第一次见到这四个字母,第一反应是“又一个比赛”,其实它不排名、不发奖杯,给的是一张等级结果。
搞清它的意义在于:学编程和验证编程学得怎么样,是两件事。前者靠课程和兴趣,后者靠考纲和题型。这份集训课 PPT 干的就是后者——把一份看起来干巴巴的考纲,翻译成一节节能上手的课:温故知新、课程内容、过关测验、课后练习,四段走完一个循环。看懂了它,你至少不会再被“要不要报”“从哪一级开始”这类问题绕晕。
2. 为什么一级值得单独集训:90 分跳级规则背后的账
很多人对“一级”有天然的轻视:一级嘛,能有多难,随便看看书不就过了。真到出分的时候,翻车的往往就是这批人。原因不复杂——一级的题目不难,但它的分值结构很不客气,容错空间比想象中小得多。你用“看看书”的方式准备,和用“按题型拆开练”的方式准备,最后差出来的可能就是那十几分。
一级还有一条容易被误读的规则:第一级必须考,而每一级拿到 90 分及以上,下一次可以跨过紧邻的一级去报名。这条规则让一部分人产生错觉,以为一级只是个形式,赶紧跳过去才划算。实际正相反,它筛的恰恰是“基础真的扎实”的那部分人。基础不牢的人跳上去,后面每一级都会加倍还回来。
2.1 一张卷子的分数构成,决定了复习的重心
一级满分 100 分,题型的分布是这样的:
| 题型 | 题量 | 每题分值 | 合计 |
|---|---|---|---|
| 单选题 | 15 题 | 2 分 | 30 分 |
| 判断题 | 10 题 | 2 分 | 20 分 |
| 编程题 | 2 题 | 25 分 | 50 分 |
这张表最值得盯的不是“100 分”,而是最后一行:两道编程题,独占一半分数。这意味着什么?意味着你就算把单选题和判断题全做对,也只拿到 50 分;反过来,概念题错几道,只要编程题写出来了,分数依然能站住。
所以一级的复习重心应该倒过来排:先把编程题的两种典型形态练到能默写,再回头收拾概念题。概念题的特点是覆盖面广、单题分值低,适合用零碎时间过;编程题的特点是形态固定、单题分值高,必须整块时间动手敲。
顺带说一个很多人忽略的点:判断题只有 20 分,却是最容易丢冤枉分的地方。判断往往考的是“边界”,比如变量名能不能用数字开头、大小写算不算同一个名字。这类题不靠理解,靠记准,错一道就是 2 分,错五道就是 10 分,比一道编程题的小问还贵。
2.2 一级考纲的六个知识块,其实是一条线而不是六堆砖
把一级考纲摊开,能看到六块内容:计算机历史与基础知识、变量的定义与使用、基本数据类型、程序三大结构、基本运算(算术、关系、逻辑)、输入与输出。
初学者容易把它当成六个独立的知识点分别去背,背完发现串不起来。实际上它是一条线:
程序要处理数据,所以先要有装数据的东西——变量;变量得有类型,装整数的和装小数的不是一种盒子,于是有基本数据类型;数据进来要靠输入,结果出去要靠输出,这是程序的两端;两端之间怎么走,就是三大结构;而运算,是把数据从一端送到另一端时做的加工。
你看,六个块其实是一个完整小程序的解剖图。理解这一点,复习顺序就自然出来了:先认识盒子(变量与类型),再认识两端的门(输入输出),然后认识中间的路(三大结构),运算贯穿其中。计算机历史与基础知识单独放,用零散时间过即可,它更像“常识题”,不参与编程。
2.3 90 分跳级这条规则,到底在奖励什么样的人
规则原文是:采取第一级必考,每级得分在 90 分(含)以上可跨一级报名的规则。
这句话里有两个关键词。第一个是“必考”,一级没有绕过的方式,所有人从同一块砖起步。第二个是“跨一级”,注意是跨一级,不是随便跳几级。它奖励的是那些“本级知识已经形成完整闭环”的人,而不是“提前学了后面内容”的人。
我见过最常见的误判,是把“提前学”当成“学扎实”。有个同学把循环、数组都看了一遍,回头做一级的变量题,照样在“变量名能不能以下划线开头”上犹豫半天。这不叫学扎实,这叫学得远但学得虚。跳级规则真正筛的是后者。
还有一点要提醒:具体某一期能不能跨级、怎么报名,以主办方当期公布的规则为准,别拿旧经验套新场次。这条是血泪经验,每年都有人按去年的说法准备,结果卡在报名环节。
3. 一级考纲拆开看:变量、三大结构与输入输出怎么串成一条线
上一章把六个知识块串成了一条线,这一章就把这条线上的三个关键节点掰开:变量、三大结构、输入输出。这三个东西构成了一个最小可运行程序的全部骨架——有地方存数据,有路径走数据,有门进出数据。把这三个节点吃透,一级的编程题基本就没有陌生的东西了。
需要提前说明一点:一级不要求你写出多复杂的程序,它要的是你能把一段最简单的逻辑,用正确的语法表达出来,不写错符号、不漏分号、不把大小写搞混。听起来简单,做起来最容易出错的地方恰恰就在这些细节上。
3.1 变量是一个贴了名字的盒子,名字的规矩比盒子本身更重要
先看一段最小的完整程序:
#include <iostream> // 引入输入输出相关的头文件 using namespace std; // 使用标准命名空间,才能直接写 cout、cin int main() { // 主函数,程序从这里开始执行 int c1 = 1; // 声明一个整型变量 c1,并放入初值 1 int c2 = 2; // 声明整型变量 c2,放入初值 2 cout << c1 + c2 << endl; // 输出两数之和,endl 表示换行 return 0; // 返回 0,告诉系统程序正常结束 }这段代码里每一行的作用,最好按“门—房间—出口”来记:第一行是把输入输出的工具箱搬进来,第二行是声明用哪套标准名字,main是房间的门,return 0是出口。
变量本身不难理解,就是一个可以变化的量,一个存储信息的容器。真正扣分的地方不在“什么是变量”,而在“变量能叫什么名字”。一级常考的命名规则有五条:
- 只能由字母、数字、下划线组成;
- 不能以数字开头,所以
4name是错的; - 不能包含空格;
- 不能和关键字重名,比如不能叫
int; - 区分大小写,
teacher、Teacher、TEACHER是三个不同的名字。
这五条里,第一条和第二条经常被混在一起考。能组成名字的字符里包含数字,但数字不能站在开头,这两句话是两件事,出题人就爱在这个缝里下刀。
还有一条不在规则里、但影响很大的习惯:名字要能看出装的是什么。c1、c2在课堂练习里没问题,真写题的时候用sum、score、count这类名字,回头查错会快很多。
3.2 顺序、选择、循环:程序只有三条路可走
编程语言里常说的三大结构,指的是顺序结构、选择结构、循环结构。这三个词听着抽象,换成走路就很好懂。
顺序结构是“按写下来的先后,一行一行往下走”,不拐弯。选择结构是“走到路口看条件,满足就走左边,不满足就走右边”。循环结构是“这段路走到某个条件不成立为止,反复走”。
一级的编程题,绝大多数落在顺序结构上:读入两个数,输出它们的和、差、积、商;按指定格式输出几行字符。为什么?因为一级考的是“能不能把一条直线走直”,还没到“能不能拐弯”的阶段。但这不代表选择结构和循环结构可以不学,考纲里明确写了三大结构,概念题会考,判断题也会考“循环一定会执行至少一次吗”这类边界。
这里有个理解上的小技巧:把三大结构当成积木,而不是当成三个章节。任何一段程序,都是这三种积木拼出来的,顺序是底板,选择和循环是插在上面的零件。你后面学到的所有复杂程序,拆到最后都是这三样。
3.3 cout 和 cin:程序跟外界说话的两张嘴
程序要跟人打交道,得有进有出。C++ 里负责这两件事的,就是cout和cin。
cout管输出,方向是“从程序流向屏幕”,所以箭头朝外,写作<<。它的基本写法是把要输出的东西一项一项接上去:
cout << "Hello World" << endl; // 双引号包住的内容,原样输出这串字符 cout << 1 + 3 << endl; // 没加引号的表达式,先算出结果 4,再输出 4这两行的对比是一级的高频考点:加了双引号,输出的是引号里的内容本身;不加双引号,输出的是表达式算出来的值。同样一个1 + 3,加了引号就是四个字符1+3,不加引号就是4。很多人第一次做题时想不通“为什么我输出的是算式不是答案”,问题就出在引号上。
cin管输入,方向是“从键盘流进变量”,所以箭头朝里,写作>>:
int n; // 先准备一个整型盒子 cin >> n; // 从键盘读入一个整数,装进 n注意顺序不能反:先声明盒子,再往里装东西。写成cin >> n;在前、int n;在后,编译就过不去。这个顺序感和后面要讲的“声明与赋值”是同一件事的两个侧面。
输出还有个常被忽略的细节:endl不只是换行,它还会把缓冲区里的内容立刻送出去。一级不用深究缓冲,但要知道endl要写在每一行输出的末尾,漏了它,所有内容会挤在一行里,格式题直接判错。
4. 常见易混概念:五组看着像、其实完全不同的东西
一级的失分,很大一部分不是因为“不会”,而是因为“混”。两个概念各自单独问,答得上来;放在一道题里对比,就开始犹豫。这一章挑出五组最容易混的,每组按“容易混在哪、为什么会混、怎么分开”来说。
4.1 GESP 和更高级别的选拔考试:一个验证等级,一个筛选名额
易混点:两者都带“编程考试”的标签,都用 C++,都面向学编程的青少年,于是常被当成“同一个考试的不同叫法”。
为什么混:因为 GESP 的 C++ 方向确实和更高级别的选拔类考试存在衔接关系,学的内容有重叠,路径上也是往上的。一重叠,人就容易把两件事压成一件。
怎么区分:看它给你什么。GESP 给的是等级结果,1 到 8 级,回答“你现在大概在哪一层”;选拔类考试给的是名额和晋级,回答“你能不能进入下一轮”。前者像体检报告,后者像录取通知。体检报告的作用是让你知道下一步补什么,录取通知的作用是决定你去哪。弄混这两者,最常见的后果是拿刷选拔题的方式去准备等级验证,方向偏了,时间也浪费了。
4.2 图形化、Python、C++:三条入口,不是三个难度
易混点:把“图形化编程、Python、C++”理解成初级、中级、高级三级台阶,以为必须按顺序爬。
为什么混:因为三者的上手门槛确实不同,图形化拖积木,Python 写短句,C++ 要写头文件、分号、大括号,看起来就像难度递进。
怎么区分:它们是三种表达方式,对应不同的考察语言方向,不是同一把尺子的三个刻度。图形化把逻辑可视化,适合建立“顺序、判断、重复”的直觉;Python 语法轻,适合把注意力放在逻辑本身;C++ 语法严,适合训练“一个符号都不能错”的严谨。一个人完全可以直接从 C++ 起步,也完全可以先用图形化把逻辑感建立起来再转。选哪条,看目标考试要求哪一种,而不是看“哪个更高级”。
4.3 声明和赋值:int a;和a = 1;是两件不同的事
易混点:两行代码长得像,都跟变量有关,初学者常把它们当成“同一个动作的两种写法”。
为什么混:因为在int c1 = 1;这一行里,两件事被合在了一起——既声明了变量,又给了初值。看多了这种合写,就以为它们本来就是一回事。
怎么区分:声明是“向系统要一个盒子,并给它起名字”,赋值是“往已经存在的盒子里放东西”。int a;只是要了盒子,里面是空的;a = 1;才是往里放。顺序上,声明必须在赋值之前,盒子不存在,东西没处放。这也解释了一个常见报错:变量没声明就直接用,编译器不认识这个名字,直接拦下来。
4.4cout的<<和赋值的=:两个符号,方向感完全相反
易混点:<<和=都出现在“把东西给另一个东西”的语境里,视觉上都像“往左送”。
为什么混:因为中文里我们常说“把结果赋给变量”“把内容输出到屏幕”,两个“给”字,掩盖了方向的不同。
怎么区分:记住箭头的朝向就是数据的流向。cout << c1,箭头朝左,数据从变量流向输出流,最后到屏幕;c1 = 1,等号不是箭头,它是“把右边的值放进左边的盒子”,方向是从右往左。一个记忆法是:<<是“送出去”,=是“装进去”。写反了不会立刻报错,但结果会莫名其妙,这类错误排查起来最费时间。
4.5 大小写:teacher和Teacher是不是同一个名字
易混点:自然语言里,大小写变化通常只是书写习惯,不影响含义;到了 C++ 里,它决定是不是同一个东西。
为什么混:因为日常经验一直在暗示“这只是写法不同”。而且很多输入法、编辑器还会自动把首字母改成大写,人在不知不觉中就把名字换了。
怎么区分:把变量名当成身份证号,一个字符不同就是另一个人。teacher、Teacher、TEACHER是三个互不相干的变量,各自占各自的盒子。由此延伸出两条实用建议:一是起名统一风格,要么全小写加下划线,要么驼峰,别混着来;二是别用只靠大小写区分的两个名字,比如sum和Sum同时出现,别人读代码会疯,自己查错也会疯。
5. 编程思维到底指什么:拿一道“打印图形”的题拆到能写出来
“编程思维”“计算思维”“逻辑思维”这三个词,是这类课程介绍里出现频率最高、解释得最含糊的三个词。含糊的原因是它们听起来像能力,不像方法。能力没法教,方法可以。这一章就把它还原成方法:拿到一道题,怎么一步一步拆到能敲出代码。
一级的课堂练习里有一道很典型的题:打印出指定的图形。题目本身只有几行输出,看起来简单到不需要思考。但恰恰是这种题,最能看出一个人是“凭感觉敲”还是“按步骤拆”。
5.1 计算思维不是心算快,是把问题拆成机器能执行的步骤
先破一个误解:计算思维不是数学好,也不是心算快。它指的是把一个模糊的任务,拆成一串明确到“机器照着做就不会错”的指令。
举个生活里的例子。你让一个人“去买菜”,他能完成,因为他会自动补上“去哪买、买什么、买多少、怎么付钱”这些没被说出来的步骤。你让计算机“去买菜”,它一步都动不了,因为它不会补。所谓编程思维,就是把你脑子里那些自动补上的步骤,一条一条写出来,写到没有歧义为止。
这就是为什么一级的题看起来“太简单”。它考的不是你能想出多巧的解法,而是你能不能不跳过步骤。跳过一步,机器就停在那儿。
5.2 四个动作:拆开、找重复、抓共性、排顺序
拿到“打印图形”这道题,可以按四个动作走一遍。
第一个动作是拆开。图形有几行?每行几个字符?把整体拆成一行一行,问题立刻从“画一个图形”变成“输出若干行文本”。
第二个动作是找重复。哪几行结构一样,只是空格数量或字符数量不同?找到重复,就意味着这部分可以用同一种写法处理,不用一行一行硬写。
第三个动作是抓共性,也就是抽象。把“这一行有几个空格、几个星号”提炼成一个数量关系,比如“第 n 行有 n 个星号”。抽象的结果不是代码,是一句能用数字描述的话。
第四个动作是排顺序。先输出哪一行,后输出哪一行,中间要不要换行。顺序排错,图形就上下颠倒。
这四个动作走完,代码几乎是自己浮出来的。下面是最朴素的顺序写法:
// 一级阶段最稳的写法:一行一行照实输出 cout << "*****" << endl; // 第 1 行,5 个星号 cout << " *** " << endl; // 第 2 行,前后各 1 个空格 cout << " * " << endl; // 第 3 行,前后各 2 个空格这段代码没有任何技巧,但它把“拆开”和“排顺序”两个动作完整地表达了出来。每一行对应图形的一行,endl负责换行,空格也必须写在引号里,少一个空格,图形就歪了。
等学到循环结构之后,同一道题可以写成“重复输出若干行、每行的空格数随行号变化”。那种写法更短,但对一级来说,先把顺序写法写对、写全,比提前用循环更重要。因为循环写错的时候,你还是得回到“一行一行应该是什么样”去对照,顺序写法就是那个对照标准。
5.3 一套集训课在备考里真正的作用:把“听过的”变成“敲过的”
看懂一道题和写对一道题之间,隔着一段很长的距离。这段距离只能用键盘填。
一份按“温故知新、课程内容、过关测验、课后练习”四段排下来的集训材料,价值不在于它讲了多少新知识,而在于它给了一个闭环:先回忆上一节的内容,再学新的,然后当堂测,最后留练习。这个闭环的作用是让“以为懂了”的地方尽早暴露。当堂测验错的那两道题,比课后自己看三遍书都有用。
一级的编程题只有两种典型形态,一种是按格式输出,一种是读入两个数做四则运算。这两种形态,看一遍就会,写一遍就熟,写五遍才稳。所谓集训,本质上就是把“写五遍”这件事安排好,让你不用自己想去写什么。
这里有个很实用的自测方法:关掉课件,只看题目描述,从空文件开始敲,敲完能编译通过、输出和样例一致,才算过。开着课件抄一遍,看着样例改一遍,都属于“以为自己会了”。这个坑,几乎每个人都踩过。
6. 什么时候该用这套一级集训课:三种合适与三种可以缓一缓
前面几章把概念、结构、易混点都过了一遍,最后落到一个很实际的问题:这套东西,什么情况下用得上,什么情况下用了也白用。
先看合适的三类情况:
| 情况 | 建议 | 原因 |
|---|---|---|
| 刚接触 C++,语法还处在“分号老忘”的阶段 | 适合,按章节顺序走 | 一级考纲本身就是一条从零起步的线,顺序不乱 |
| 准备第一次参加等级验证,不知道题型和分值 | 适合,重点看题型和分数分布 | 知道编程题占一半,复习重心才不会偏 |
| 学过一阵但不成体系,知识点是散的 | 适合,用它做一次梳理 | 四段式结构能把散点串回一条线 |
再看可以缓一缓的三类:
| 情况 | 建议 | 原因 |
|---|---|---|
| 还在犹豫要不要学编程,兴趣没定 | 缓一缓 | 备考材料解决的是“怎么考”,不解决“要不要学” |
| 主要方向是图形化,暂时不碰 C++ | 缓一缓 | 语法体系不同,硬套会两头不靠 |
| 指望靠它直接冲高级别 | 缓一缓 | 它只覆盖一级范围,高级别的内容不在里面 |
判断标准其实只有一条:你现在的目标,是“把一级这一层走扎实”,还是别的东西。如果是前者,这套材料的存在意义就是把考纲翻译成可执行的练习,省掉你自己去猜“考什么、练多少”的时间。如果是后者,比如想直接冲更高级别,或者只是想让孩子随便感受一下编程,那么按一级的节奏走反而会拖慢。
还有一个容易被忽略的边界:这套材料是“课”,不是“题库”。它的编排逻辑是讲一段、测一段、练一段,跟着走能形成完整的认知;如果你想的是“刷题提分”,那它给你的题量并不算多,你需要的是另一种用法——把里面的编程题反复重写,而不是反复看。
我自己吃过的一次亏,是把“看过”当成“会了”。当时对着一份材料从头翻到尾,每一页都觉得眼熟,合上之后让我从空白文件写一个读入两数、输出和差积商的程序,卡在变量声明的位置上。从那以后我每次带人过一级的内容,都强制走一遍“关掉资料、从空文件开始敲”的流程,哪怕题目再简单。简单题里暴露的问题,往往是最基础也最值钱的问题。
希望这套按考纲排下来的集训课,能帮你把一级这一层走稳,而不是走过去。
本文还有配套的精品资源,点击获取