ARTICLE · 1240371
206|GESP 2级真题拆解:13 道题按考点分好类,收藏刷
重点速览
1. 2 级卷子两块分:客观题(单选+判断)+两道编程题,各占一半。
2. 语言只有三层:机器 → 汇编 → 高级;低级语言=机器+汇编,漏掉汇编是判断题的高发坑。
3. 编译和解释不是第四层:它们是高级语言内部的两种翻译方式,C++ 走编译、Python 走解释。
4. 流程图常见的五种图形:圆角矩形起止、平行四边形进出、矩形处理、菱形判断、箭头流向。
5. 13 道真题按考点分 6 块:每块一句「卷面爱考什么」,块块指回对应讲次。
6. 90 分能跨一级:1 级 90 分后可报 3 级;没有教师推荐时首次只能报 1 级。
一、先看卷子长什么样
前面五篇讲的都是知识点。这一篇换个角度:把 2 级整张卷子摊开,看这些知识点在卷面上各自站在哪个位置。2 级卷子分两块:客观题(单选+判断)和两道编程题,各占一半分。客观题丢分和编程题一样疼——而客观题的分相对好拿:不写代码、不调试,认得、分得清就能选对。
2 级大纲 9 条,前 7 条在 201~205 已经讲完。本篇收口最后两条——语言分类、流程图——再把 13 道真题按考纲条目重新分组。用法一句话:第二节认词认图,第三节照着块刷题,第四节看下一步报哪级。
二、语言三层与流程图:最容易白丢的两块分
这两条考纲有个共同点:都不写一行代码。不写代码的题最容易拿分,实际上却是丢分重灾区——平时都在写代码,这些词和图形没人专门带着认一遍。
三层,不是四层
计算机只认 0 和 1,人写不动 0 和 1,中间必须有一层翻译。翻译的深度不同,就分出三层:
· 机器语言——CPU 直接执行的 0/1 指令,人几乎读不懂。
· 汇编语言——用助记符代替 0/1,仍要翻译成机器指令才能跑。
· 高级语言——C++、Python 这类,必须经过编译或解释才能执行。
第一个高频坑:低级语言指的是机器语言和汇编语言两种,不是只有机器语言。看到「低级语言就是机器语言」,直接判错。
第二个坑:编译和解释不是第四层。C++ 编译成目标程序再链接,Python 边翻译边执行——两条路都在「高级语言」这一层里面,不构成新的一层。
📌 (2023 年 12 月·2 级真题,判断)小杨最近在准备考 GESP,他用 Dev C++ 来练习和运行程序,所以 Dev C++ 也是一个小型操作系统。( )答案:错误。Dev C++ 是编程软件,跑在操作系统之上,自己不管理硬件、不调度进程——是「应用程序」,不是「操作系统」。凡是「某某工具也是操作系统」的说法,一律先怀疑。
流程图,认常见的五种图形
流程图是「用图形写程序」。2 级只要求两件事:认得出图形对应哪种语句,说得出三种基本结构。
· 圆角矩形——开始 / 结束,一张图只有头尾两个。
· 平行四边形——输入 / 输出,cin 和 cout 都住这里。
· 矩形——处理,赋值、计算都住这里。
· 菱形——判断,if 和循环条件都住这里。
· 箭头——流向,把框一个个串起来。
三种基本结构:顺序(往下走)、分支(菱形分两路)、循环(箭头往回指)——再复杂的程序都能拆成这三种的组合。
记一句口诀:进出用平行四边形,算用矩形,判用菱形,起止用圆角。第三节第一块 5 道题连着看,就知道这句口诀怎么用。
三、13 道真题按考点分好类
下面 13 道全部来自 CCF 官网公布的 2 级真题。分组依据是考纲条目,不是难度——同一块里的题考同一个知识点。每块开头那句「卷面爱考什么」就是复习重点。
第一块 · 语言与流程图(条 3、4|本篇独家,5 道)
这块爱考什么:给一句话判断属于哪一层,给一段代码指出该用哪种图形。全是认词认图,不涉及运行结果。
📌 (2023 年 6 月·2 级真题,单选)高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。A. 编辑 B. 保存 C. 调试 D. 编译答案:D。编辑是敲代码、保存是存文件、调试是找错,只有编译把源代码翻成机器能执行的代码。
📌 (2024 年 9 月·2 级真题,判断)小杨最近开始学习 C++ 编程,老师说 C++ 是一门面向对象的编程语言,也是一门高级语言。( )答案:正确。面向对象说的是编程范式,高级语言说的是层级——两件不同的事,都对,不冲突。
📌 (2025 年 3 月·2 级真题,判断)C++、Python 都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。( )答案:正确。不管编译还是解释,最后落到 CPU 上的都是机器指令——这正是「三层」的底层逻辑。
📌 (2025 年 3 月·2 级真题,单选)对整型变量 N,如果它能同时被 3 和 5 整除,则输出 N 含有至少两个质因数。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。A. 圆形框 B. 椭圆形框 C. 平行四边形框 D. 菱形框答案:C。输出就是「出去一个结果」,用平行四边形。起止框是圆角矩形,别被圆形、椭圆这两个干扰项带偏。
📌 (2026 年 3 月·2 级真题,单选)下面代码用来找出输入的 N 个正整数中最大的一个。如果将代码段用流程图来表示,则 L1 标记的代码行应该使用的图形是( )。int N, max = 0, val;cin >> N;while (N) {cin >> val;if (val > max) // L1max = val;N--;}cout << max;A. 圆形框 B. 椭圆形框 C. 平行四边形框 D. 菱形框答案:D。L1 是 if,判断用菱形。这段代码里 cin、cout 都有,要看清问的是哪一行。
第二块 · 存储与网络(条 1、2|201 讲过,1 道)
这块爱考什么:单位换算和存储介质特性。换算只记一条——1GB=1024MB。
📌 (2023 年 3 月·2 级官方试题解析,判断)明明和笑笑在「小庙会」上分别抽到一个 4GB 和 4096MB 的 U 盘,容量大的盘是笑笑的。( )答案:错误。4GB=4096MB,两个盘一样大(实测)。看到 GB 和 MB 混着比,先统一单位。
⚠️ 这道题的原始标注是「官方试题解析」,与其他「真题」不同,本篇按原标注如实写。存储单位与介质原理见 201,不在此重讲。
第三块 · 字符与类型转换(条 5、6|202 讲过,2 道)
这块爱考什么:字符按 ASCII 码参与运算,强转只砍小数不四舍五入。两条都反直觉,所以年年考。
📌 (2024 年 6 月·2 级真题,判断)执行 C++ 代码 cout << '9'+'1'; 的输出为 10。( )答案:错误。单引号包着的是字符,不是数字。'9' 的 ASCII 码是 57,'1' 是 49,相加得 106(实测)。想得到 10,得写成两个数字。
📌 (2024 年 6 月·2 级真题,判断)C++ 表达式 int(12.56) 的值为 13。( )答案:错误。强转成 int 是直接砍掉小数部分,不是四舍五入,结果 12(实测)。想要 13 得用 round 之类的函数。
第四块 · 分支(条 7|203 讲过,2 道)
这块爱考什么:条件表达式的等价改写,以及区间连写的陷阱。
📌 (2024 年 12 月·2 级真题,单选)下面 C++ 代码用于输出 0~100 之间(包含 100)能被 7 整除但不能被 3 整除的数,横线处不能填入的代码是( )。for (i = 0; i <= 100; i++)if (_____________)cout << i << endl;A. i % 7 == 0 && i % 3 != 0B. !(i % 7) && i % 3 != 0C. i % 7 && i % 3D. i % 7 == 0 && !(i % 3 == 0)答案:C。A、B、D 意思完全一样,实测输出都是 7 14 28 35 49 56 70 77 91 98;C 少写了「等于 0」,翻成「既不能被 7 整除、也不能被 3 整除」,输出的是一大串完全不同的数。整除判断只有两种写法:等于 0,或者取反。(原题循环条件写作 i < 100,这里按题干「包含 100」写成 i <= 100;原题 for 头未声明 i,是真题的简写,自己写完整代码要补 int i;,否则编译报错。)
📌 (2024 年 12 月·2 级真题,判断)在 C++ 语句 cout << (10 <= N <= 12) 中,假设 N 为 12,则其输出为 1。( )答案:正确。这不是数学的「10 ≤ N ≤ 12」,而是从左往右算两次:先算 10 <= 12 得 1(真),再算 1 <= 12 还是 1(实测)。答案碰巧是 1,但 N 换成 5 也输出 1——真要判区间得写 N >= 10 && N <= 12。
第五块 · 循环(条 8|204 讲过,1 道)
这块爱考什么:给一段循环,让你手算输出。方法只有一条——把变量列成表,一轮一轮往下走。
📌 (2024 年 3 月·2 级真题,单选)下面 C++ 代码执行后的输出是( )。int n, i, result;n = 81;i = 1, result = 1;while (i * i <= n) {if (n % (i * i) == 0)result = i * i;i += 1;}cout << result;A. 16 B. 36 C. 49 D. 81答案:D。这段循环在找不超过 81 的最大平方数。i 从 1 走到 9(9×9=81 仍满足 ≤81),每轮整除就记下 i×i,最后记的是 81(实测)。选 16、36、49 的都是循环没走完就下了结论。
顺带把 break 的口径钉一下:break 只能待在循环或 switch 里;单独写在 if 里(外面没循环包着)编译报错;if 在循环里时只决定「何时执行 break」,跳出的仍是外层循环。
第六块 · 运算符与表达式(条 9|205 讲过,2 道)
这块爱考什么:整数除法、取余、优先级三件事混在一起。记两条:整数相除只留整数部分;乘、除、取余同级,比加、减先算。
📌 (2024 年 9 月·2 级真题,单选)在 C++ 中,cout << (5 / 2 + 5 % 3) 的输出是( )。A. 1 B. 2 C. 4 D. 5答案:C。5/2 是整数除法得 2(不是 2.5),5%3 得 2,2+2=4(实测)。
📌 (2024 年 12 月·2 级真题,单选)C++ 语句 cout << (3 + 3 % 3 * 2 - 1) 执行后输出的值是( )。A. -1 B. 4 C. 56 D. 2答案:D。取余和乘法同级,从左往右:3%3 得 0,0×2 得 0,式子变成 3+0-1=2(实测)。选 56 的是把 % 当成了别的运算,选 -1 的是先算了 3-1。
13 道走完,回看分组:语言与流程图独占 5 道,分量比很多人以为的重——正因为不写代码,平时最容易被跳过。
四、考完 2 级,下一步报哪一级
三条硬规则,一条都不能记错:
· ① 首次报名——没有教师推荐时,首次只能报 1 级;有符合条件教师推荐的考生,首次即可跨级报考。
· ② 90 分跨一级——每级 90 分(含)以上可跨一级。「跨一级」就是跳过一级,1 级 90 分后可以报 3 级。
· ③ 推荐名额——推荐主要用于首次报名;没被推荐过、只考过一次且 90 分以上的,下一次可再被推荐一次;一旦用推荐跨级并完成认证,后续不再具备资格。指导老师每期认证有 10 个推荐名额,推荐的考生没过则下一期等额扣减。
级别版图:3 级学进制与位运算、数组、字符串、枚举与模拟;4 级学函数、递推、手写排序、结构体、文件读写。4 级是 C++ 语法的收口,5 级起才真正学算法——5 级递归、二分、贪心登场,动态规划到 6 级才进大纲。补一句:语法入门不等于能打竞赛,CSP-J 还要另外补算法训练。
下一篇从 3 级第一讲开始:数在计算机里到底怎么存——原码、反码、补码。
五、四句话带走
1. 卷面两块分:客观题与两道编程题各占一半;客观题的分相对好拿,认得、分得清就能选对。
2. 语言三层:机器 → 汇编 → 高级;低级语言=机器+汇编;编译和解释是高级语言内部的两条路,不是第四层。
3. 流程图常见的五种图形:起止圆角、进出平行四边形、算用矩形、判用菱形、箭头连流向。
4. 真题按考点刷:13 道分 6 块,块块指回对应讲次;90 分能跨一级,1 级 90 分后可报 3 级。⭐ 收藏这一篇,考前照着块过一遍。
拓展阅读
· 《数学函数与随机数:abs、sqrt、max/min、rand 怎么用》——2 级第五讲,第六块真题的出处
· 《计算机的存储与网络:数据存在哪、怎么传出去》——2 级第一讲,单位换算与存储介质
· 《从零到 8 级要走多久?一份 GESP 备考路线图》——各级时间账与卡点
练一练
真题的价值不在「做对一次」,在「同一个考点连着撞几次都不错」。这篇分好的 6 块正好可以按块刷。「GESP C++ 模拟考试」小程序按级别整理了历年真题:选级别 → 做题 → 交卷自动判分,错题留着考前过一遍;免费开放、不用注册。点文末的卡片就能进去。
免责与信息来源说明
本文依据 CCF 官方《GESP 认证标准(C++)》整理;真题摘自官网历年试卷。大纲如有调整,以官方最新公布为准。整理排版借助 AI 辅助。















































































