string(1) "a" string(1) "b" string(1) "c" array(6) { [0]=> object(Post)#136 (8) { ["allImages"]=> NULL ["table"]=> string(12) "sjdszbp_post" ["data"]=> array(19) { ["ID"]=> string(6) "724628" ["CateID"]=> string(2) "24" ["AuthorID"]=> string(1) "1" ["Tag"]=> string(0) "" ["Status"]=> string(1) "0" ["Type"]=> string(1) "0" ["Alias"]=> string(0) "" ["IsTop"]=> string(1) "0" ["IsLock"]=> bool(false) ["Title"]=> string(64) "GESP第13次认证真题解析|图形化编程四级真题回顾" ["Intro"]=> string(0) "" ["Content"]=> string(77680) "GESP第13次认证真题解析|图形化编程四级真题回顾
点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月图形化编程四级认证真题解析。
图形化编程 四级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | D | B | A | C | C | A | D | A | D | B | C | D | B | B |
1、在2026年春晚的《武BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果把机器人看成一台计算机,它的“输入设备”就像耳朵、眼睛,用来从外面接收信息。那么,下面哪一个选项不能当作机器人的“输入设备”?( )
A、检测身体是否歪斜的“平衡传感器”(像感觉站得稳不稳的小秤)
B、机器人内部安装好的“智能程序”(像它的大脑,用来思考和控制动作)
C、用来接收人类指令的“遥控器”
D、机器人的“摄像头眼睛”(用来拍下其他机器人的位置)
【答案】B
【考纲知识点】计算机基础知识
【解析】输入设备是指将外部世界的信息(如光、声音、位置、指令等)转换成计算机能理解信号的硬件设备。A选项平衡传感器用于检测身体姿态,是从外部获取信息;C选项遥控器用于接收人类操作指令;D选项摄像头用于获取视觉信息,三者均属于输入设备。B选项智能程序是存储在机器人内部的代码,用于处理和计算,相当于计算机的“软件”而非硬件,不能当作输入设备。
2、下列流程图的输出结果是?( )

A、50
B、55
C、60
D、65
【答案】D
【考纲知识点】流程图
【解析】它的执行过程就像是一个双层循环:
外层用i 从1 数到4
内层用j 从4 倒着数到当前的i
每次把i 乘以j 的结果累加起来
最终累加的和就是65。
3、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、16
B、18
C、15
D、14
【答案】B
【考纲知识点】循环结构
【解析】这段代码的作用是:计算从第一个数到最后一个数的最小“总步长”。
具体规则是:
如果相邻两数的实际间隔大于预设的步长d(3),则按d计一步;
如果实际间隔小于等于d,则按实际间隔计一步。
初始值result为3(代表起点到第一个数的距离)。
按此规则依次累加,最终算出从起点到最后一个数的总步长为18。
4、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、-37
B、-36
C、37
D、36
【答案】A
【考纲知识点】函数
【解析】初始a=0, b=0, i=1。
循环i=1到5:
若i是偶数,a加i;若i是奇数,a减i。
若i>3,b加2;否则b加1。
循环后a=-3,b=7,拼接成字符串"-37"。
5、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、2
B、3
C、4
D、5
【答案】C
【考纲知识点】复杂的嵌套结构、条件判断与循环的综合应用
【解析】这段代码的功能是:统计列表nums中有多少个完全平方数。
nums包含:81、64、27、16、1、6。
其中完全平方数有:81、64、16、1(共4个)。
因此最终输出ans = 4。
6、默认小猫角色,执行下列程序,第一个字符串输入abcabc,第二个字符串输入abcaaa小猫说出的内容是?( )


A、0
B、1
C、2
D、3
【答案】C
【考纲知识点】字符串处理、循环与字符比较
【解析】输入 A = abcabc,B = abcaaa
程序会从A的第1个字符到第4个字符(因为6−2=4),每次取连续3个字符,和B相同位置的3个字符比较
如果完全一样,就算一次
结果:
第1-3位:abc 对 abc 对
第2-4位:bca 对 bca 对
第3-5位:cab 对 caa 错
第4-6位:abc 对 aaa 错
答:小猫说2(有2处完全匹配)
7、默认小猫角色,执行下列程序,输入gesp.ccf.org.cn,小猫说出的内容是?( )


A、gesp ccf.org.cn
B、gesp ccf org.cn
C、gesp ccf org cn
D、gesp.ccf.org.cn
【答案】A
【考纲知识点】字符串处理、字符遍历与条件替换
【解析】输入gesp.ccf.org.cn程序找到第一个点.,把它分成两段:
前半段:gesp
后半段:ccf.org.cn
最后小猫说出这两段内容:gesp ccf.org.cn
8、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、YXYXYYXY
B、XYXYXXYX
C、XYYXYYXY
D、YXXYXXYX
【答案】D
【考纲知识点】列表操作、循环嵌套、奇偶性判断
【解析】i=0时 a = “YX”
i=1时 b = “XYX”
i=2时 a = “YXXYX”
result = “YXXYXXYX”
9、默认小猫角色,执行下列程序,小猫最后说出的内容是?( )


A、20 7 31 0 0
B、20 7 31 0 31
C、20 7 7 0 31
D、20 7 0 31 0
【答案】A
【考纲知识点】函数
【解析】程序把列表 [20, 0, 7, 0, 31] 里的所有非零数移到前面,所有零移到后面。结果变成:20 7 31 0 0
小猫说出的就是这5个数。
10、某小学男子篮球队招募新成员,要求加入球队的成员身高在135厘米以上(不含135厘米)。本次报名的人员有10人,他们的身高存储在列表nums中,默认小猫角色,运行下列程序,小猫说出的内容是?( )


A、4
B、7
C、6
D、5
【答案】D
【考纲知识点】列表遍历、条件筛选
【解析】程序统计身高大于135厘米的人数。
10个人的身高里,大于135的有:136、137、138、140、145,一共 5个人。
所以小猫说出的结果是:5。
11、默认小猫角色,运行下列程序,输入字符串ccfgesp,小猫输出的内容是?( )

A、cgs
B、cfep
C、ccf
D、gesp
【答案】B
【考纲知识点】字符串索引
【解析】输入字符串为"ccfgesp",字符位置依次为:1:c、2:c、3:f、4:g、5:e、6:s、7:p。答案"cfep"提取了位置1、3、5、7的字符。程序逻辑为:提取字符串中索引为奇数(第1、3、5、7……个)的字符并拼接输出。
12、默认小猫角色,执行下列程序,按下空格键0.5秒后,舞台中会出现几只小猫?( )

A、6
B、5
C、1
D、0
【答案】C
【考纲知识点】克隆的综合应用、程序执行时序
【解析】按下空格键后,5个克隆体同时显示,0.5秒后全部删除;本体在按下空格键时显示,且不会被删除。因此0.5秒后舞台中剩下1只小猫(本体)。
13、默认小猫角色,执行下列程序,输入哪组数字,可绘制如下的图形?( )


A、①6 ② 0
B、①6 ② 2
C、①9 ② 1
D、①9 ② 0
【答案】D
【考纲知识点】画笔拓展模块、正多边形绘制、循环与角度计算
【解析】小猫从(-100,0)的位置开始,先完成左边的第一个三角形,需要转向3次,当小猫回到x轴的时候,需要再向前走100步,走到(0,0)的位置。所以一共需要循环9次,在3,6,9次的时候多向前走100步,所以n=9,r=0
14、针对小球角色,执行下列程序,舞台中会出现小球的个数是?( )

A、9
B、8
C、7
D、6
【答案】B
【考纲知识点】克隆的综合应用、图章/克隆与移动的嵌套循环
【解析】双重for循环
外层循环i从1到5
内层循环i从1到3
如果i+j为偶数,就画出小球,i和j的组合有(1,1),(1,3),(2,2),(3,1),(3,3),(4,2),(5,1),(5,3)
15、在排序过程中,每一轮都从未排序的元素中找到最小(或最大)的元素,将其放在已排序序列的末尾,这种排序方法是?( )
A、插入排序
B、选择排序
C、冒泡排序
D、无正确选项
【答案】B(选择排序)
【考纲知识点】排序概念和稳定性、经典排序算法(冒泡排序、插入排序、选择排序)
【解析】
选择排序:每轮从未排序元素中选出最小(或最大)元素,放到已排序序列末尾——完全符合题目描述。
插入排序:将未排序元素插入到已排序序列的合适位置。
冒泡排序:相邻元素两两比较交换。
题目描述的是选择排序的核心特征。
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | × | × | × | √ | √ | × | × | √ | √ | √ |
1、默认小猫角色,执行下列程序,输入整数8,小猫说出的内容是12。

【答案】×
【考纲知识点】变量运算、循环逻辑
【解析】输入8,按规则循环:
1. n=8(偶)→ result=0+8=8,n=8÷2−1=3
2. n=3(奇)→ result=8+1=9,n=3−1=2
3. n=2(偶)→ result=9+2=11,n=2÷2−1=0
4. n=0(偶)→ result=11+0=11,n=0÷2−1=−1(结束)
输出结果:11
2、默认小猫角色,执行下列程序,输入正整数5,小猫说出的内容为120。

【答案】×
【考纲知识点】循环结构、累乘运算(阶乘)
【解析】输入5程序计算:1! + 2! + 3! + 4! + 5!= 1 + 2 + 6 + 24 + 120= 153
3、默认小猫角色,执行下列程序,输入正整数123,小猫说出的内容是123123。

【答案】×
【考纲知识点】字符串处理、字符串拼接
【解析】每次操作:当前字符+原字符串+序号
输入"123":
i=1 → "1" + "" + "1" = 11
i=2 → "2" + "11" + "2" = 2112
i=3 → "3" + "2112" + "3" = 321123
输出:321123
4
、默认小猫角色,执行下列程序,输入GESP,小猫说出的内容为138。
【答案】√
【考纲知识点】字符与数值转换
【解析】按规则:字母序号×位置,再求和
G(7)×1 = 7
E(5)×2 = 10
S(19)×3 = 57
P(16)×4 = 64
ans = 138
5、默认小猫角色,运行下列程序,小猫说出的内容为Butterfly。


【答案】√
【考纲知识点】字符串
【解析】从列表中找最长的单词,存到ans
6、默认小猫角色,执行下列程序,小猫说出的内容是apple grape orange banana cherry。

【答案】×
【考纲知识点】列表的添加操作
【解析】该题目主要考查列表的添加操作,最后的结果为:apple grape banana cherry orange,故判错。
7、默认小猫角色,下列函数可以在三位数的自然数中,找出至少有一位数字是5的所有整数并存储在列表list中。

【答案】×
【考纲知识点】数位分离、条件判断(逻辑运算)
【解析】十位的i/10 需要向下取整,百位的i/100 也需要向下取整
8、对一组数据 [5, 2, 6, 4, 8, 1, 7, 3]使用冒泡的方法按从大到小的顺序进行排序,则第2轮排序过后的结果是[6, 5, 8, 4, 7, 3, 2, 1]。
【答案】√
【考纲知识点】冒泡排序的执行过程模拟
【解析】从大到小排序,将较小的数向后“沉”:
第1轮:比较交换后得到[5,6,4,8,2,7,3,1],最小数1沉到最后
第2轮:对前7个元素继续操作:5和6交换→6和5保持→5和4保持→4和8交换→4和2保持→2和7交换→2和3交换
结果为[6,5,8,4,7,3,2,1],与题目给出的结果完全一致。
9、冒泡排序和插入排序都是稳定的排序算法而选择排序是不稳定的排序算法。
【答案】√
【考纲知识点】排序算法的稳定性概念
【解析】
稳定排序:相等元素的相对顺序在排序后保持不变
冒泡排序:相等时不交换,稳定
插入排序:相等时插入到后面,稳定
选择排序:如[5₁,8,5₂,2],第一轮选出2与5₁交换,5₁跑到5₂后面,相对顺序改变,不稳定
描述完全正确。
10、若一个数恰好等于其真因子(不包括自身)之和,则称这个数为完全数,例如6的真因子为1、2、3,且1+2+3=6。默认小猫角色,下列程序可以枚举1000以内的完全数。

【答案】√
【考纲知识点】枚举法
【解析】完全数定义:所有真因子之和等于自身。1000以内的完全数只有6(1+2+3)、28(1+2+4+7+14)、496三个。程序通过双层循环(外层遍历2-1000,内层找因子并求和)进行枚举判断。
题号 | 1 | 2 |
答案 |
1、二进制回文数


【题目描述】
小杨在数学课上学习了有趣的二进制数。十进制数是我们平时用的0-9数字,而二进制数只用0和1两个数字表示。每个十进制数都可以转换成二进制数。
十进制转二进制的方法(短除法):
把这个数不断除以2,记下每次的余数(0或1)
一直除到商为0为止
把得到的余数从下往上读出来,就是二进制数
举个例子:把数字9转换成二进制
9 ÷ 2 = 4 ... 余1
4 ÷ 2 = 2 ... 余0
2 ÷ 2 = 1 ... 余0
1 ÷ 2 = 0 ... 余1
从下往上读余数:1001,所以9的二进制是1001。
小杨发现有些数的二进制表示很特别:从左向右读和从右向左读是一样的!这样的数叫做"二进制回文数"。
例如:
数字9的二进制是1001,正着读和倒着读都是1001,所以9是二进制回文数
数字12的二进制是1100,倒着读是0011,去掉前面的0后是11,和原来的1100不一样,所以12不是二进制回文数
默认小猫角色和白色背景,请你帮助小杨编写一个程序,计算从1到n的所有数字中,有多少个是二进制回文数,并把结果存储在变量ans中。
【输入描述】
新建变量“n”,表示一个正整数(1 ≤ n ≤ 10000)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最后的结果,表示1到n之间二进制回文数的个数。
如下图所示:

在1到15之间,二进制回文数有:
1(二进制1)
3(二进制11)
5(二进制101)
7(二进制111)
9(二进制1001)
15(二进制1111)
共6个。
【输入样例】
n = 15
【输出样例】
ans = 6
【输入样例】
n = 25
【输出样例】
ans = 8
注意事项:
1.变量名的拼写(包括大小写)要和题目完全一致。输入变量2.直接赋值即可,无需使用“询问并等待”积木块。
3.输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】进制转换(十进制转二进制)、字符串处理、回文判断、循环嵌套、枚举法
【题目核心要求】
1.输入变量n,计算1到n之间所有“二进制回文数”的个数
2.结果存入变量ans
3.无需使用“询问”和“说”积木
【算法逻辑拆解】
1.初始化:ans = 0
2.外层循环:变量i从1到n
3.十进制转二进制(核心难点):
Scratch没有直接转二进制的积木,需手写算法
方法:对于数num,重复除以2,记录余数(0或1),直到商为0将余数从下往上拼接(注意拼接方向)
判断回文:
获取二进制字符串bin
比较bin是否等于其反转字符串
计数:若是回文数,ans增加1
【易错点提醒】
拼接余数时方向反了(正着拼是错的)
1的二进制是"1",也是回文数
每次处理新数前,bin变量必须清空
【参考程序】



2、凯撒密码


【题目描述】
小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码——凯撒密码。这种密码很简单:每个字母都按照字母表的顺序往后移动固定位数。比如移动3位,A就变成D,B变成E,C变成F……到了Z之后又回到A,Z就变成了C。
小杨现在得到了三行重要的信息:
1.第一行:已知的原始消息(明文)
2.第二行:已知的加密后的消息(密文),它是用凯撒密码对第一行加密得到的
3.第三行:需要解密的密文,它和前面使用了相同的移动位数
默认小猫角色和白色背景,请你帮助小杨,先根据前两行计算出字母移动了多少位,然后用这个规律破解第三行的密文,找到原始消息并把结果存储在变量ans中。
【输入描述】
新建变量“str1”,表示已知的明文(全大写字母)
新建变量“str2”,表示对应的密文(全大写字母)
新建变量“str”,表示需要破解的密文(全大写字母)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最终的结果,表示破解后的明文。
如下图所示:

从前两行可以看出:
A → D(向后移动3位)
B → E(向后移动3位)
以此类推
所以移动位数是3。对第三行密文,我们把每个字母向前移动3位:
W向前移动3位变成T
K向前移动3位变成H
以此类推
最终得到:"THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
【输入样例】
str1 = ABCDEFGVWXYZ
str2 = DEFGHIJYZABC
str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ
【输出样例】
ans = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
【输入样例】
str1 = ABC
str2 = DEF
str = JRRG
【输出样例】
ans = GOOD
注意事项:
1、变量名的拼写(包括大小写)要和题目完全一致。
2、输入变量直接赋值即可,无需使用“询问并等待”积木块。
3、输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】字符串处理、ASCII编码
【题目核心要求】
输入str1(明文)、str2(密文)、str(待解密密文)
根据前两行计算偏移量shift
用相同偏移量反向解密str,结果存入ans
【算法逻辑拆解】
计算偏移量:
建立字母表letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
取str1首字符在字母表中的位置pos1
取str2首字符的位置pos2
shift = pos2 - pos1(若为负则加26)
解密密文:
遍历str的每个字符c
找到c在字母表中的位置p
解密后位置newP = p - shift
循环处理:若newP < 1,则newP = newP + 26
取出对应字符拼接到ans
【参考程序】


策划:GESP技术委员会副主席 刘晓庆
技术支持:朱浩淼
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。


【联系我们】
1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。
2. GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。
3. GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30
扫描下方二维码关注GESP公众号,了解更多资讯


点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月图形化编程四级认证真题解析。
图形化编程 四级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | D | B | A | C | C | A | D | A | D | B | C | D | B | B |
1、在2026年春晚的《武BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果把机器人看成一台计算机,它的“输入设备”就像耳朵、眼睛,用来从外面接收信息。那么,下面哪一个选项不能当作机器人的“输入设备”?( )
A、检测身体是否歪斜的“平衡传感器”(像感觉站得稳不稳的小秤)
B、机器人内部安装好的“智能程序”(像它的大脑,用来思考和控制动作)
C、用来接收人类指令的“遥控器”
D、机器人的“摄像头眼睛”(用来拍下其他机器人的位置)
【答案】B
【考纲知识点】计算机基础知识
【解析】输入设备是指将外部世界的信息(如光、声音、位置、指令等)转换成计算机能理解信号的硬件设备。A选项平衡传感器用于检测身体姿态,是从外部获取信息;C选项遥控器用于接收人类操作指令;D选项摄像头用于获取视觉信息,三者均属于输入设备。B选项智能程序是存储在机器人内部的代码,用于处理和计算,相当于计算机的“软件”而非硬件,不能当作输入设备。
2、下列流程图的输出结果是?( )

A、50
B、55
C、60
D、65
【答案】D
【考纲知识点】流程图
【解析】它的执行过程就像是一个双层循环:
外层用i 从1 数到4
内层用j 从4 倒着数到当前的i
每次把i 乘以j 的结果累加起来
最终累加的和就是65。
3、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、16
B、18
C、15
D、14
【答案】B
【考纲知识点】循环结构
【解析】这段代码的作用是:计算从第一个数到最后一个数的最小“总步长”。
具体规则是:
如果相邻两数的实际间隔大于预设的步长d(3),则按d计一步;
如果实际间隔小于等于d,则按实际间隔计一步。
初始值result为3(代表起点到第一个数的距离)。
按此规则依次累加,最终算出从起点到最后一个数的总步长为18。
4、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、-37
B、-36
C、37
D、36
【答案】A
【考纲知识点】函数
【解析】初始a=0, b=0, i=1。
循环i=1到5:
若i是偶数,a加i;若i是奇数,a减i。
若i>3,b加2;否则b加1。
循环后a=-3,b=7,拼接成字符串"-37"。
5、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、2
B、3
C、4
D、5
【答案】C
【考纲知识点】复杂的嵌套结构、条件判断与循环的综合应用
【解析】这段代码的功能是:统计列表nums中有多少个完全平方数。
nums包含:81、64、27、16、1、6。
其中完全平方数有:81、64、16、1(共4个)。
因此最终输出ans = 4。
6、默认小猫角色,执行下列程序,第一个字符串输入abcabc,第二个字符串输入abcaaa小猫说出的内容是?( )


A、0
B、1
C、2
D、3
【答案】C
【考纲知识点】字符串处理、循环与字符比较
【解析】输入 A = abcabc,B = abcaaa
程序会从A的第1个字符到第4个字符(因为6−2=4),每次取连续3个字符,和B相同位置的3个字符比较
如果完全一样,就算一次
结果:
第1-3位:abc 对 abc 对
第2-4位:bca 对 bca 对
第3-5位:cab 对 caa 错
第4-6位:abc 对 aaa 错
答:小猫说2(有2处完全匹配)
7、默认小猫角色,执行下列程序,输入gesp.ccf.org.cn,小猫说出的内容是?( )


A、gesp ccf.org.cn
B、gesp ccf org.cn
C、gesp ccf org cn
D、gesp.ccf.org.cn
【答案】A
【考纲知识点】字符串处理、字符遍历与条件替换
【解析】输入gesp.ccf.org.cn程序找到第一个点.,把它分成两段:
前半段:gesp
后半段:ccf.org.cn
最后小猫说出这两段内容:gesp ccf.org.cn
8、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、YXYXYYXY
B、XYXYXXYX
C、XYYXYYXY
D、YXXYXXYX
【答案】D
【考纲知识点】列表操作、循环嵌套、奇偶性判断
【解析】i=0时 a = “YX”
i=1时 b = “XYX”
i=2时 a = “YXXYX”
result = “YXXYXXYX”
9、默认小猫角色,执行下列程序,小猫最后说出的内容是?( )


A、20 7 31 0 0
B、20 7 31 0 31
C、20 7 7 0 31
D、20 7 0 31 0
【答案】A
【考纲知识点】函数
【解析】程序把列表 [20, 0, 7, 0, 31] 里的所有非零数移到前面,所有零移到后面。结果变成:20 7 31 0 0
小猫说出的就是这5个数。
10、某小学男子篮球队招募新成员,要求加入球队的成员身高在135厘米以上(不含135厘米)。本次报名的人员有10人,他们的身高存储在列表nums中,默认小猫角色,运行下列程序,小猫说出的内容是?( )


A、4
B、7
C、6
D、5
【答案】D
【考纲知识点】列表遍历、条件筛选
【解析】程序统计身高大于135厘米的人数。
10个人的身高里,大于135的有:136、137、138、140、145,一共 5个人。
所以小猫说出的结果是:5。
11、默认小猫角色,运行下列程序,输入字符串ccfgesp,小猫输出的内容是?( )

A、cgs
B、cfep
C、ccf
D、gesp
【答案】B
【考纲知识点】字符串索引
【解析】输入字符串为"ccfgesp",字符位置依次为:1:c、2:c、3:f、4:g、5:e、6:s、7:p。答案"cfep"提取了位置1、3、5、7的字符。程序逻辑为:提取字符串中索引为奇数(第1、3、5、7……个)的字符并拼接输出。
12、默认小猫角色,执行下列程序,按下空格键0.5秒后,舞台中会出现几只小猫?( )

A、6
B、5
C、1
D、0
【答案】C
【考纲知识点】克隆的综合应用、程序执行时序
【解析】按下空格键后,5个克隆体同时显示,0.5秒后全部删除;本体在按下空格键时显示,且不会被删除。因此0.5秒后舞台中剩下1只小猫(本体)。
13、默认小猫角色,执行下列程序,输入哪组数字,可绘制如下的图形?( )


A、①6 ② 0
B、①6 ② 2
C、①9 ② 1
D、①9 ② 0
【答案】D
【考纲知识点】画笔拓展模块、正多边形绘制、循环与角度计算
【解析】小猫从(-100,0)的位置开始,先完成左边的第一个三角形,需要转向3次,当小猫回到x轴的时候,需要再向前走100步,走到(0,0)的位置。所以一共需要循环9次,在3,6,9次的时候多向前走100步,所以n=9,r=0
14、针对小球角色,执行下列程序,舞台中会出现小球的个数是?( )

A、9
B、8
C、7
D、6
【答案】B
【考纲知识点】克隆的综合应用、图章/克隆与移动的嵌套循环
【解析】双重for循环
外层循环i从1到5
内层循环i从1到3
如果i+j为偶数,就画出小球,i和j的组合有(1,1),(1,3),(2,2),(3,1),(3,3),(4,2),(5,1),(5,3)
15、在排序过程中,每一轮都从未排序的元素中找到最小(或最大)的元素,将其放在已排序序列的末尾,这种排序方法是?( )
A、插入排序
B、选择排序
C、冒泡排序
D、无正确选项
【答案】B(选择排序)
【考纲知识点】排序概念和稳定性、经典排序算法(冒泡排序、插入排序、选择排序)
【解析】
选择排序:每轮从未排序元素中选出最小(或最大)元素,放到已排序序列末尾——完全符合题目描述。
插入排序:将未排序元素插入到已排序序列的合适位置。
冒泡排序:相邻元素两两比较交换。
题目描述的是选择排序的核心特征。
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | × | × | × | √ | √ | × | × | √ | √ | √ |
1、默认小猫角色,执行下列程序,输入整数8,小猫说出的内容是12。

【答案】×
【考纲知识点】变量运算、循环逻辑
【解析】输入8,按规则循环:
1. n=8(偶)→ result=0+8=8,n=8÷2−1=3
2. n=3(奇)→ result=8+1=9,n=3−1=2
3. n=2(偶)→ result=9+2=11,n=2÷2−1=0
4. n=0(偶)→ result=11+0=11,n=0÷2−1=−1(结束)
输出结果:11
2、默认小猫角色,执行下列程序,输入正整数5,小猫说出的内容为120。

【答案】×
【考纲知识点】循环结构、累乘运算(阶乘)
【解析】输入5程序计算:1! + 2! + 3! + 4! + 5!= 1 + 2 + 6 + 24 + 120= 153
3、默认小猫角色,执行下列程序,输入正整数123,小猫说出的内容是123123。

【答案】×
【考纲知识点】字符串处理、字符串拼接
【解析】每次操作:当前字符+原字符串+序号
输入"123":
i=1 → "1" + "" + "1" = 11
i=2 → "2" + "11" + "2" = 2112
i=3 → "3" + "2112" + "3" = 321123
输出:321123
4
、默认小猫角色,执行下列程序,输入GESP,小猫说出的内容为138。
【答案】√
【考纲知识点】字符与数值转换
【解析】按规则:字母序号×位置,再求和
G(7)×1 = 7
E(5)×2 = 10
S(19)×3 = 57
P(16)×4 = 64
ans = 138
5、默认小猫角色,运行下列程序,小猫说出的内容为Butterfly。


【答案】√
【考纲知识点】字符串
【解析】从列表中找最长的单词,存到ans
6、默认小猫角色,执行下列程序,小猫说出的内容是apple grape orange banana cherry。

【答案】×
【考纲知识点】列表的添加操作
【解析】该题目主要考查列表的添加操作,最后的结果为:apple grape banana cherry orange,故判错。
7、默认小猫角色,下列函数可以在三位数的自然数中,找出至少有一位数字是5的所有整数并存储在列表list中。

【答案】×
【考纲知识点】数位分离、条件判断(逻辑运算)
【解析】十位的i/10 需要向下取整,百位的i/100 也需要向下取整
8、对一组数据 [5, 2, 6, 4, 8, 1, 7, 3]使用冒泡的方法按从大到小的顺序进行排序,则第2轮排序过后的结果是[6, 5, 8, 4, 7, 3, 2, 1]。
【答案】√
【考纲知识点】冒泡排序的执行过程模拟
【解析】从大到小排序,将较小的数向后“沉”:
第1轮:比较交换后得到[5,6,4,8,2,7,3,1],最小数1沉到最后
第2轮:对前7个元素继续操作:5和6交换→6和5保持→5和4保持→4和8交换→4和2保持→2和7交换→2和3交换
结果为[6,5,8,4,7,3,2,1],与题目给出的结果完全一致。
9、冒泡排序和插入排序都是稳定的排序算法而选择排序是不稳定的排序算法。
【答案】√
【考纲知识点】排序算法的稳定性概念
【解析】
稳定排序:相等元素的相对顺序在排序后保持不变
冒泡排序:相等时不交换,稳定
插入排序:相等时插入到后面,稳定
选择排序:如[5₁,8,5₂,2],第一轮选出2与5₁交换,5₁跑到5₂后面,相对顺序改变,不稳定
描述完全正确。
10、若一个数恰好等于其真因子(不包括自身)之和,则称这个数为完全数,例如6的真因子为1、2、3,且1+2+3=6。默认小猫角色,下列程序可以枚举1000以内的完全数。

【答案】√
【考纲知识点】枚举法
【解析】完全数定义:所有真因子之和等于自身。1000以内的完全数只有6(1+2+3)、28(1+2+4+7+14)、496三个。程序通过双层循环(外层遍历2-1000,内层找因子并求和)进行枚举判断。
题号 | 1 | 2 |
答案 |
1、二进制回文数


【题目描述】
小杨在数学课上学习了有趣的二进制数。十进制数是我们平时用的0-9数字,而二进制数只用0和1两个数字表示。每个十进制数都可以转换成二进制数。
十进制转二进制的方法(短除法):
把这个数不断除以2,记下每次的余数(0或1)
一直除到商为0为止
把得到的余数从下往上读出来,就是二进制数
举个例子:把数字9转换成二进制
9 ÷ 2 = 4 ... 余1
4 ÷ 2 = 2 ... 余0
2 ÷ 2 = 1 ... 余0
1 ÷ 2 = 0 ... 余1
从下往上读余数:1001,所以9的二进制是1001。
小杨发现有些数的二进制表示很特别:从左向右读和从右向左读是一样的!这样的数叫做"二进制回文数"。
例如:
数字9的二进制是1001,正着读和倒着读都是1001,所以9是二进制回文数
数字12的二进制是1100,倒着读是0011,去掉前面的0后是11,和原来的1100不一样,所以12不是二进制回文数
默认小猫角色和白色背景,请你帮助小杨编写一个程序,计算从1到n的所有数字中,有多少个是二进制回文数,并把结果存储在变量ans中。
【输入描述】
新建变量“n”,表示一个正整数(1 ≤ n ≤ 10000)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最后的结果,表示1到n之间二进制回文数的个数。
如下图所示:

在1到15之间,二进制回文数有:
1(二进制1)
3(二进制11)
5(二进制101)
7(二进制111)
9(二进制1001)
15(二进制1111)
共6个。
【输入样例】
n = 15
【输出样例】
ans = 6
【输入样例】
n = 25
【输出样例】
ans = 8
注意事项:
1.变量名的拼写(包括大小写)要和题目完全一致。输入变量2.直接赋值即可,无需使用“询问并等待”积木块。
3.输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】进制转换(十进制转二进制)、字符串处理、回文判断、循环嵌套、枚举法
【题目核心要求】
1.输入变量n,计算1到n之间所有“二进制回文数”的个数
2.结果存入变量ans
3.无需使用“询问”和“说”积木
【算法逻辑拆解】
1.初始化:ans = 0
2.外层循环:变量i从1到n
3.十进制转二进制(核心难点):
Scratch没有直接转二进制的积木,需手写算法
方法:对于数num,重复除以2,记录余数(0或1),直到商为0将余数从下往上拼接(注意拼接方向)
判断回文:
获取二进制字符串bin
比较bin是否等于其反转字符串
计数:若是回文数,ans增加1
【易错点提醒】
拼接余数时方向反了(正着拼是错的)
1的二进制是"1",也是回文数
每次处理新数前,bin变量必须清空
【参考程序】



2、凯撒密码


【题目描述】
小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码——凯撒密码。这种密码很简单:每个字母都按照字母表的顺序往后移动固定位数。比如移动3位,A就变成D,B变成E,C变成F……到了Z之后又回到A,Z就变成了C。
小杨现在得到了三行重要的信息:
1.第一行:已知的原始消息(明文)
2.第二行:已知的加密后的消息(密文),它是用凯撒密码对第一行加密得到的
3.第三行:需要解密的密文,它和前面使用了相同的移动位数
默认小猫角色和白色背景,请你帮助小杨,先根据前两行计算出字母移动了多少位,然后用这个规律破解第三行的密文,找到原始消息并把结果存储在变量ans中。
【输入描述】
新建变量“str1”,表示已知的明文(全大写字母)
新建变量“str2”,表示对应的密文(全大写字母)
新建变量“str”,表示需要破解的密文(全大写字母)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最终的结果,表示破解后的明文。
如下图所示:

从前两行可以看出:
A → D(向后移动3位)
B → E(向后移动3位)
以此类推
所以移动位数是3。对第三行密文,我们把每个字母向前移动3位:
W向前移动3位变成T
K向前移动3位变成H
以此类推
最终得到:"THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
【输入样例】
str1 = ABCDEFGVWXYZ
str2 = DEFGHIJYZABC
str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ
【输出样例】
ans = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
【输入样例】
str1 = ABC
str2 = DEF
str = JRRG
【输出样例】
ans = GOOD
注意事项:
1、变量名的拼写(包括大小写)要和题目完全一致。
2、输入变量直接赋值即可,无需使用“询问并等待”积木块。
3、输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】字符串处理、ASCII编码
【题目核心要求】
输入str1(明文)、str2(密文)、str(待解密密文)
根据前两行计算偏移量shift
用相同偏移量反向解密str,结果存入ans
【算法逻辑拆解】
计算偏移量:
建立字母表letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
取str1首字符在字母表中的位置pos1
取str2首字符的位置pos2
shift = pos2 - pos1(若为负则加26)
解密密文:
遍历str的每个字符c
找到c在字母表中的位置p
解密后位置newP = p - shift
循环处理:若newP < 1,则newP = newP + 26
取出对应字符拼接到ans
【参考程序】


策划:GESP技术委员会副主席 刘晓庆
技术支持:朱浩淼
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。


【联系我们】
1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。
2. GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。
3. GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30
扫描下方二维码关注GESP公众号,了解更多资讯


点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月C++四级认证真题解析。
C++ 四级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | B | B | B | A | B | B | B | B | B | B | C | B | B | A |
【第1题】执行下面程序后,输出为( )

A. 2 12
B. 6 12
C. 6 4
D. 12 6
【答案】B
【考察知识点】函数的默认参数
【解析】函数f的形参x设置了默认值2,当调用f()时没有传入实参,就会使用默认值2。计算:2 * 3 = 6
调用f(4)时传入了实参4,会覆盖默认值,x的值为4。计算:4 * 3 = 12
【第2题】执行下面代码后,输出为( )

A. 5 5
B. 12 12
C. 12 5
D. 5 12
【答案】B
【考察知识点】指针与多级指针
【解析】**q的含义:
*q:对q解引用,得到p的值(也就是&a,即变量a的地址)
**q:再对*q解引用,得到的就是变量a本身
所以**q += 7 等价于a += 7
【第3题】已知:

则表达式*(*(p+2)+1)的值为( )
A. 6
B. 10
C. 9
D. 11
【答案】B
【考察知识点】二维数组与指针运算
【解析】表达式为:*(*(p + 2) + 1)
1.分析p + 2
p是数组指针,类型为int (*)[4],它指向的是一个包含4个int的数组。
指针运算中,p + n 表示跳过n个指向的数据类型。
所以p + 2 指向了二维数组a的第3行(即a[2]的地址)。
2.分析*(p + 2)
根据指针解引用规则,*(p + 2) 等价于p[2],代表第3行的数组名。
在表达式中,数组名会退化指向第0个元素的指针。即它指向了a[2][0]。
3.分析*(p + 2) + 1
这是在第3行首地址的基础上偏移1个位置。
指向了 第 3行第1列 的元素,即地址 &a[2][1]。
4.分析最外层*(...)
对a[2][1]的地址进行解引用,得到具体的数值。
a[2][1]的值为10。
【第4题】执行下面程序后,输出为( )

A. 2 3 4
B. 1 3 4
C. 2 1 4
D. 1 1 1
【答案】B
【考察知识点】函数参数传递(值、引用、指针)
【解析】
a(值传递):修改副本,不影响实参x,x保持为1。
b(引用传递):直接操作 y,y += 2 变为 3。
*c(指针传递):通过地址操作 z,z += 3 变为 4。
【第5题】执行下面程序后输出为( )

A. 12 3
B. 10 5
C. 12 5
D. 10 3
【答案】A
【考察知识点】变量作用域与作用域解析符
【解析】
main函数内定义了局部变量int x = 10,它会屏蔽全局变量x。
f(x)以引用方式传递局部变量x,函数内x += 2 会直接修改它,局部x变为12。
::x是全局作用域解析符,访问的是全局变量x,其值始终为3。
最终输出:12 3。
【第6题】下列关于结构体初始化的写法,正确的是( )
A.

B.

C.

D.

【答案】B
【考察知识点】结构体的定义与初始化
【解析】
A错误:结构体初始化不能用圆括号(1,2),这种写法不符合C++语法。
C错误:new会返回堆上的指针,不能直接赋值给栈上的结构体变量Point p,类型不匹配。
D错误:尖括号<1,2>不是结构体初始化的合法语法。
【第7题】执行下面代码后输出为( )

A. 11 12
B. 1 12
C. 11 2
D. 1 2
【答案】B
【考察知识点】结构体参数传递
【解析】
g(s)是值传递,函数内修改的是结构体s的副本,不影响原变量,s.a保持为1。
h(s)是引用传递,函数内直接修改原变量,s.b += 10 后变为2 + 10 = 12。
最终输出:1 12。
【第8题】关于递推算法的描述,正确的是( )
A.递推表现为函数自己调用自己
B.递推从已知初值出发,利用递推关系逐步推出后续结果
C.递推只能用于指数复杂度问题
D.递推一定需要回溯
【答案】B
【考察知识点】递推算法
【解析】
A错误:函数自己调用自己是递归的特征,不是递推。
B正确:递推的核心就是从已知初值出发,利用递推关系逐步推出后续结果(比如斐波那契数列)。
C错误:递推可以把很多指数复杂度问题优化成线性复杂度,不是 “只能用于指数复杂度问题”。
D错误:递推是从前往后迭代计算,不需要回溯;回溯是递归/搜索算法的特征。
【第9题】执行climb (6) 的返回值为( )

A. 8
B. 13
C. 5
D. 10
【答案】B
【考察知识点】递推与斐波那契数列
【解析】循环从前两项逐步往后加,算出第6项就是答案。
【第10题】某排序算法对如下数据排序(按score升序),则下面关于该排序算法稳定性的描述中,说法正确的是( )
初始:(90,'A'), (90,'B'), (80,'C'), (90,'D')
排序后:(80,'C'), (90,'A'), (90,'B'), (90,'D')
A.不稳定,因为出现了相同分数
B.稳定,因为相同score的相对顺序保持为A在B前、B在D前
C.不稳定,因为C跑到前面了
D.无法判断
【答案】B
【考察知识点】排序算法的稳定性
【解析】稳定排序的定义:排序后,关键字相同的元素,相对顺序和排序前保持不变。
【第11题】下面代码试图把数组按升序进行 “插入排序”,横线处应填写( )

A. a[j] < key
B. a[j] > key
C. a[j+1] > key
D. a[j] == key
【答案】B
【考察知识点】插入排序算法
【解析】插入排序升序时,while循环需要不断把比key大的元素往后挪,给key腾位置。
循环条件要判断:j >= 0 且a[j] > key 时,执行a[j+1] = a[j](后移)。
横线处应填:a[j] > key。
【第12题】下列代码段的时间复杂度为( )

A. O(n)
B. O(n log n)
C. O(n²)
D. O(2ⁿ)
【答案】C
【考察知识点】算法时间复杂度分析
【解析】代码是两层嵌套循环,总执行次数约为n * n,时间复杂度为O(n²)。
【第13题】下面哪种方式不能实现将字符串Welcome to 2026! 输出重定向到文件log.txt( )

A.

B.

C.

D.

【答案】B
【考察知识点】文件操作与输出重定向
【解析】B选项 只创建了文件流对象outFile,但后续cout的输出仍然打印到控制台,没有写入文件,无法实现重定向。
【第14题】执行下面程序,输出结果是( )

A. A
B. B
C.程序崩溃
D.无输出
【答案】B
【考察知识点】C++异常处理
【解析】异常抛出:调用divi(10,0)时,b=0触发throw 0,抛出的是int类型的异常。
异常匹配:
catch(const char* msg)只能捕获字符串类型异常,不匹配,跳过。
catch(int)专门捕获int类型异常,匹配成功,执行cout << "B";。
最终输出为B。
【第15题】下列函数实现排行榜中单个元素的位置调整(类似插入排序的相邻搬移)。当某玩家分数增加,需将其向前移动时,while循环的条件应为( )

A. i > 0 && cur.score > players[i-1].score
B. i > 0 && cur.score < players[i-1].score
C. i < n-1 && cur.score > players[i+1].score
D. i < n-1 && cur.score < players[i+1].score
【答案】A
【考察知识点】数组元素移动与排序
【解析】边界限制:i > 0 防止数组下标越界。
前移条件:分数要向前移动,必须当前玩家分数高于前一位玩家,即 cur.score > players[i-1].score。
综上,条件为:i > 0 && cur.score > players[i-1].score。
二、判断题(共10题,每题2分,共20分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | √ | √ | × | × | √ | × | √ | × | × | × |

【答案】√
【考察知识点】引用传递
【解析】add10函数的参数是引用传递(int &x),函数内对x的修改会直接作用于原变量a。初始a=5,调用add10(a)后,a += 10,结果为15。
【第2题】引用一旦绑定某个变量,就不能再绑定其他变量。()
【答案】√
【考察知识点】引用的基本特性
【解析】引用初始化后不可重新绑定,为C++标准规则。
【第3题】执行下面代码,输出结果为5。

【答案】×
【考察知识点】二维数组指针运算
【解析】二维数组按行优先存储,从&a[0][1]到&a[1][2],地址相差4个int元素,指针相减结果为4
【第4题】下面程序可以正常编译并输出10。

【答案】×
【考察知识点】函数重载与默认参数冲突
【解析】calc(5)调用存在歧义:既可以匹配int calc(int x),也可以匹配int calc(int x, int y=10)。编译器无法确定调用哪个版本
【第5题】下面程序执行后输出2010。

【答案】√
【考察知识点】全局变量与局部变量
【解析】f()函数内的局部变量x=20会屏蔽全局变量,执行cout << x 输出20。
main函数中访问的是全局变量x=10,执行cout << x 输出10。
【第6题】在C++中,如果声明了一个指针变量但没有显式初始化,该指针会自动被初始化为nullptr。()
【答案】×
【考察知识点】指针的初始化
【解析】在C++中,未显式初始化的局部指针变量,其值是不确定的随机垃圾值,不会自动初始化为nullptr
【第7题】下面代码没有语法错误。

【答案】√
【考察知识点】C++基础语法
【解析】代码语法合法,可正常编译。
【第8题】下面程序能够把Hello写入data.txt文件中。

【答案】×
【考察知识点】文件写入操作
【解析】cout << "Hello"; 会把内容输出到控制台(屏幕),而不是写入文件
【第9题】由于选择排序和插入排序的时间复杂度均为O (n²),在任何实际场景下两者的性能表现几乎相同,可以互相替代。()
【答案】×
【考察知识点】排序算法性能对比
【解析】插入排序在数据接近有序时,时间复杂度可以接近O (n),实际效率很高。
选择排序无论数据初始状态如何,都需要固定的n (n-1)/2 次比较,性能不会因数据有序而提升
【第10题】下面用递推方式计算斐波那契数列第n项的程序,时间复杂度是O (2ⁿ)。

【答案】×
【考察知识点】递推算法复杂度
【解析】这是递推版的斐波那契实现,不是递归,时间复杂度为O(n)
编程题1
试题名称:山之谷
时间限制:1.0 s
内存限制:512.0 MB
题目描述
现有一片山地,可以视为一个N行M列的网格图,第i行j列的海拔为hi,j。如果一个单元格的海拔不高于其所有相邻单元格(相邻包括上、下、左、右、左上、右上、左下、右下,最多8个方向)的海拔,则称该单元格为山谷。请你数一数该片山地中有多少山谷。
输入格式
第一行包含2个整数N, M,表示山地的大小。之后N行,每行包含M个整数hi,1, hi, 2,…… hi,M,表示海拔。
输出格式
输出1行,包含1个整数C,表示山谷的数量。
样例
输入样例

输出样例
样例解释
样例1如图所⽰,绿⾊单元格代表⼭⾕:

数据范围
保证1≤N, M ≤100 ,1≤hi,j≤105
【考察知识点】二维数组、枚举
【解析】
核心题意:统计网格中8邻域内海拔最低的山谷数量。
解题思路:
遍历每个单元格,检查其 8 个相邻位置;
若当前单元格海拔≤所有相邻海拔,即为山谷;
给网格外围赋值极大值,避免边界越界判断。
算法:双重循环枚举+ 8 方向检查
【参考程序】

编程题2
试题名称:礼盒排序
时间限制:1.0 s
内存限制:512.0 MB
题目描述
商店推出了许多礼盒,每个礼盒中包含k件商品,每件商品都有⼀个价格。
现在需要对这些礼盒进⾏排序,排序规则如下:
1.先按礼盒总价格从⼩到⼤排序;
2.如果总价格相同,按礼盒中最贵商品的价格从⼩到⼤排序;
3.如果仍然相同,按礼盒中最便宜商品的价格从⼩到⼤排序;
4.如果仍然相同,按礼盒编号从⼩到⼤排序。
请输出排序后的礼盒编号。
输入格式
第⼀⾏包含两个整数n和k,分别表⽰礼盒数量和每个礼盒中商品的数量。
接下来n⾏,每⾏包含k个整数,第i⾏表⽰第i个礼盒中各商品的价格。
输出格式
输出⼀⾏,包含排序后的礼盒编号(编号从1开始),⽤空格分隔。
样例
输入样例
输出样例
样例解释
4个礼盒分别为:

排序过程:
1.按总价排序,3号礼盒总价最⼩;
2.其余总价均为10,再按最⼤值排序,4号最⼤值更⼩;
3. 1号和2号最⼤值相同,再按最⼩值排序,2号更⼩。
最终顺序为:3 4 2 1
数据范围
保证1≤n≤103,1≤k ≤10,商品价格≤104
【考察知识点】结构体排序
【解析】
核心题意:按总价→最高价→最低价→编号的优先级排序礼盒,输出编号。
解题思路:
用结构体存储每个礼盒的总价、最大 / 最小价格、编号;
自定义排序规则,严格按题目 4 个条件依次比较;
排序后直接输出礼盒编号。
【参考程序】
策划:GESP技术委员会副主席 刘晓庆
技术支持:朱浩淼
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。


【联系我们】
1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。
2. GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。
3. GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30
扫描下方二维码关注GESP公众号,了解更多资讯


点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月C++四级认证真题解析。
C++ 四级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | B | B | B | A | B | B | B | B | B | B | C | B | B | A |
【第1题】执行下面程序后,输出为( )

A. 2 12
B. 6 12
C. 6 4
D. 12 6
【答案】B
【考察知识点】函数的默认参数
【解析】函数f的形参x设置了默认值2,当调用f()时没有传入实参,就会使用默认值2。计算:2 * 3 = 6
调用f(4)时传入了实参4,会覆盖默认值,x的值为4。计算:4 * 3 = 12
【第2题】执行下面代码后,输出为( )

A. 5 5
B. 12 12
C. 12 5
D. 5 12
【答案】B
【考察知识点】指针与多级指针
【解析】**q的含义:
*q:对q解引用,得到p的值(也就是&a,即变量a的地址)
**q:再对*q解引用,得到的就是变量a本身
所以**q += 7 等价于a += 7
【第3题】已知:

则表达式*(*(p+2)+1)的值为( )
A. 6
B. 10
C. 9
D. 11
【答案】B
【考察知识点】二维数组与指针运算
【解析】表达式为:*(*(p + 2) + 1)
1.分析p + 2
p是数组指针,类型为int (*)[4],它指向的是一个包含4个int的数组。
指针运算中,p + n 表示跳过n个指向的数据类型。
所以p + 2 指向了二维数组a的第3行(即a[2]的地址)。
2.分析*(p + 2)
根据指针解引用规则,*(p + 2) 等价于p[2],代表第3行的数组名。
在表达式中,数组名会退化指向第0个元素的指针。即它指向了a[2][0]。
3.分析*(p + 2) + 1
这是在第3行首地址的基础上偏移1个位置。
指向了 第 3行第1列 的元素,即地址 &a[2][1]。
4.分析最外层*(...)
对a[2][1]的地址进行解引用,得到具体的数值。
a[2][1]的值为10。
【第4题】执行下面程序后,输出为( )

A. 2 3 4
B. 1 3 4
C. 2 1 4
D. 1 1 1
【答案】B
【考察知识点】函数参数传递(值、引用、指针)
【解析】
a(值传递):修改副本,不影响实参x,x保持为1。
b(引用传递):直接操作 y,y += 2 变为 3。
*c(指针传递):通过地址操作 z,z += 3 变为 4。
【第5题】执行下面程序后输出为( )

A. 12 3
B. 10 5
C. 12 5
D. 10 3
【答案】A
【考察知识点】变量作用域与作用域解析符
【解析】
main函数内定义了局部变量int x = 10,它会屏蔽全局变量x。
f(x)以引用方式传递局部变量x,函数内x += 2 会直接修改它,局部x变为12。
::x是全局作用域解析符,访问的是全局变量x,其值始终为3。
最终输出:12 3。
【第6题】下列关于结构体初始化的写法,正确的是( )
A.

B.

C.

D.

【答案】B
【考察知识点】结构体的定义与初始化
【解析】
A错误:结构体初始化不能用圆括号(1,2),这种写法不符合C++语法。
C错误:new会返回堆上的指针,不能直接赋值给栈上的结构体变量Point p,类型不匹配。
D错误:尖括号<1,2>不是结构体初始化的合法语法。
【第7题】执行下面代码后输出为( )

A. 11 12
B. 1 12
C. 11 2
D. 1 2
【答案】B
【考察知识点】结构体参数传递
【解析】
g(s)是值传递,函数内修改的是结构体s的副本,不影响原变量,s.a保持为1。
h(s)是引用传递,函数内直接修改原变量,s.b += 10 后变为2 + 10 = 12。
最终输出:1 12。
【第8题】关于递推算法的描述,正确的是( )
A.递推表现为函数自己调用自己
B.递推从已知初值出发,利用递推关系逐步推出后续结果
C.递推只能用于指数复杂度问题
D.递推一定需要回溯
【答案】B
【考察知识点】递推算法
【解析】
A错误:函数自己调用自己是递归的特征,不是递推。
B正确:递推的核心就是从已知初值出发,利用递推关系逐步推出后续结果(比如斐波那契数列)。
C错误:递推可以把很多指数复杂度问题优化成线性复杂度,不是 “只能用于指数复杂度问题”。
D错误:递推是从前往后迭代计算,不需要回溯;回溯是递归/搜索算法的特征。
【第9题】执行climb (6) 的返回值为( )

A. 8
B. 13
C. 5
D. 10
【答案】B
【考察知识点】递推与斐波那契数列
【解析】循环从前两项逐步往后加,算出第6项就是答案。
【第10题】某排序算法对如下数据排序(按score升序),则下面关于该排序算法稳定性的描述中,说法正确的是( )
初始:(90,'A'), (90,'B'), (80,'C'), (90,'D')
排序后:(80,'C'), (90,'A'), (90,'B'), (90,'D')
A.不稳定,因为出现了相同分数
B.稳定,因为相同score的相对顺序保持为A在B前、B在D前
C.不稳定,因为C跑到前面了
D.无法判断
【答案】B
【考察知识点】排序算法的稳定性
【解析】稳定排序的定义:排序后,关键字相同的元素,相对顺序和排序前保持不变。
【第11题】下面代码试图把数组按升序进行 “插入排序”,横线处应填写( )

A. a[j] < key
B. a[j] > key
C. a[j+1] > key
D. a[j] == key
【答案】B
【考察知识点】插入排序算法
【解析】插入排序升序时,while循环需要不断把比key大的元素往后挪,给key腾位置。
循环条件要判断:j >= 0 且a[j] > key 时,执行a[j+1] = a[j](后移)。
横线处应填:a[j] > key。
【第12题】下列代码段的时间复杂度为( )

A. O(n)
B. O(n log n)
C. O(n²)
D. O(2ⁿ)
【答案】C
【考察知识点】算法时间复杂度分析
【解析】代码是两层嵌套循环,总执行次数约为n * n,时间复杂度为O(n²)。
【第13题】下面哪种方式不能实现将字符串Welcome to 2026! 输出重定向到文件log.txt( )

A.

B.

C.

D.

【答案】B
【考察知识点】文件操作与输出重定向
【解析】B选项 只创建了文件流对象outFile,但后续cout的输出仍然打印到控制台,没有写入文件,无法实现重定向。
【第14题】执行下面程序,输出结果是( )

A. A
B. B
C.程序崩溃
D.无输出
【答案】B
【考察知识点】C++异常处理
【解析】异常抛出:调用divi(10,0)时,b=0触发throw 0,抛出的是int类型的异常。
异常匹配:
catch(const char* msg)只能捕获字符串类型异常,不匹配,跳过。
catch(int)专门捕获int类型异常,匹配成功,执行cout << "B";。
最终输出为B。
【第15题】下列函数实现排行榜中单个元素的位置调整(类似插入排序的相邻搬移)。当某玩家分数增加,需将其向前移动时,while循环的条件应为( )

A. i > 0 && cur.score > players[i-1].score
B. i > 0 && cur.score < players[i-1].score
C. i < n-1 && cur.score > players[i+1].score
D. i < n-1 && cur.score < players[i+1].score
【答案】A
【考察知识点】数组元素移动与排序
【解析】边界限制:i > 0 防止数组下标越界。
前移条件:分数要向前移动,必须当前玩家分数高于前一位玩家,即 cur.score > players[i-1].score。
综上,条件为:i > 0 && cur.score > players[i-1].score。
二、判断题(共10题,每题2分,共20分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | √ | √ | × | × | √ | × | √ | × | × | × |

【答案】√
【考察知识点】引用传递
【解析】add10函数的参数是引用传递(int &x),函数内对x的修改会直接作用于原变量a。初始a=5,调用add10(a)后,a += 10,结果为15。
【第2题】引用一旦绑定某个变量,就不能再绑定其他变量。()
【答案】√
【考察知识点】引用的基本特性
【解析】引用初始化后不可重新绑定,为C++标准规则。
【第3题】执行下面代码,输出结果为5。

【答案】×
【考察知识点】二维数组指针运算
【解析】二维数组按行优先存储,从&a[0][1]到&a[1][2],地址相差4个int元素,指针相减结果为4
【第4题】下面程序可以正常编译并输出10。

【答案】×
【考察知识点】函数重载与默认参数冲突
【解析】calc(5)调用存在歧义:既可以匹配int calc(int x),也可以匹配int calc(int x, int y=10)。编译器无法确定调用哪个版本
【第5题】下面程序执行后输出2010。

【答案】√
【考察知识点】全局变量与局部变量
【解析】f()函数内的局部变量x=20会屏蔽全局变量,执行cout << x 输出20。
main函数中访问的是全局变量x=10,执行cout << x 输出10。
【第6题】在C++中,如果声明了一个指针变量但没有显式初始化,该指针会自动被初始化为nullptr。()
【答案】×
【考察知识点】指针的初始化
【解析】在C++中,未显式初始化的局部指针变量,其值是不确定的随机垃圾值,不会自动初始化为nullptr
【第7题】下面代码没有语法错误。

【答案】√
【考察知识点】C++基础语法
【解析】代码语法合法,可正常编译。
【第8题】下面程序能够把Hello写入data.txt文件中。

【答案】×
【考察知识点】文件写入操作
【解析】cout << "Hello"; 会把内容输出到控制台(屏幕),而不是写入文件
【第9题】由于选择排序和插入排序的时间复杂度均为O (n²),在任何实际场景下两者的性能表现几乎相同,可以互相替代。()
【答案】×
【考察知识点】排序算法性能对比
【解析】插入排序在数据接近有序时,时间复杂度可以接近O (n),实际效率很高。
选择排序无论数据初始状态如何,都需要固定的n (n-1)/2 次比较,性能不会因数据有序而提升
【第10题】下面用递推方式计算斐波那契数列第n项的程序,时间复杂度是O (2ⁿ)。

【答案】×
【考察知识点】递推算法复杂度
【解析】这是递推版的斐波那契实现,不是递归,时间复杂度为O(n)
编程题1
试题名称:山之谷
时间限制:1.0 s
内存限制:512.0 MB
题目描述
现有一片山地,可以视为一个N行M列的网格图,第i行j列的海拔为hi,j。如果一个单元格的海拔不高于其所有相邻单元格(相邻包括上、下、左、右、左上、右上、左下、右下,最多8个方向)的海拔,则称该单元格为山谷。请你数一数该片山地中有多少山谷。
输入格式
第一行包含2个整数N, M,表示山地的大小。之后N行,每行包含M个整数hi,1, hi, 2,…… hi,M,表示海拔。
输出格式
输出1行,包含1个整数C,表示山谷的数量。
样例
输入样例

输出样例
样例解释
样例1如图所⽰,绿⾊单元格代表⼭⾕:

数据范围
保证1≤N, M ≤100 ,1≤hi,j≤105
【考察知识点】二维数组、枚举
【解析】
核心题意:统计网格中8邻域内海拔最低的山谷数量。
解题思路:
遍历每个单元格,检查其 8 个相邻位置;
若当前单元格海拔≤所有相邻海拔,即为山谷;
给网格外围赋值极大值,避免边界越界判断。
算法:双重循环枚举+ 8 方向检查
【参考程序】

编程题2
试题名称:礼盒排序
时间限制:1.0 s
内存限制:512.0 MB
题目描述
商店推出了许多礼盒,每个礼盒中包含k件商品,每件商品都有⼀个价格。
现在需要对这些礼盒进⾏排序,排序规则如下:
1.先按礼盒总价格从⼩到⼤排序;
2.如果总价格相同,按礼盒中最贵商品的价格从⼩到⼤排序;
3.如果仍然相同,按礼盒中最便宜商品的价格从⼩到⼤排序;
4.如果仍然相同,按礼盒编号从⼩到⼤排序。
请输出排序后的礼盒编号。
输入格式
第⼀⾏包含两个整数n和k,分别表⽰礼盒数量和每个礼盒中商品的数量。
接下来n⾏,每⾏包含k个整数,第i⾏表⽰第i个礼盒中各商品的价格。
输出格式
输出⼀⾏,包含排序后的礼盒编号(编号从1开始),⽤空格分隔。
样例
输入样例
输出样例
样例解释
4个礼盒分别为:

排序过程:
1.按总价排序,3号礼盒总价最⼩;
2.其余总价均为10,再按最⼤值排序,4号最⼤值更⼩;
3. 1号和2号最⼤值相同,再按最⼩值排序,2号更⼩。
最终顺序为:3 4 2 1
数据范围
保证1≤n≤103,1≤k ≤10,商品价格≤104
【考察知识点】结构体排序
【解析】
核心题意:按总价→最高价→最低价→编号的优先级排序礼盒,输出编号。
解题思路:
用结构体存储每个礼盒的总价、最大 / 最小价格、编号;
自定义排序规则,严格按题目 4 个条件依次比较;
排序后直接输出礼盒编号。
【参考程序】
策划:GESP技术委员会副主席 刘晓庆
技术支持:朱浩淼
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。


【联系我们】
1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。
2. GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。
3. GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30
扫描下方二维码关注GESP公众号,了解更多资讯



为精准把握中考命题方向,优化复习备考策略,凝聚联盟教研合力,切实提升中招数学备考实效,2026年5月29日,嵩县实验中学四校联盟中招备考研讨会数学专场,在嵩县第三实验中学隆重举行。来自联盟各校的全体数学教师齐聚一堂,以研促教,以思致远,共探中考备考新思路、新方法。
研课示范,引领前行
活动伊始,由夏云菲老师带来《函数基础和一次函数》复习示范课。

课堂上,夏老师紧扣中考考点,条理清晰、重难点突出,既夯实基础知识体系,又针对性突破高频易错题型,教学环节设计精巧、讲练结合、深入浅出,充分展现了优秀教师扎实的教学功底与灵动的课堂把控力,为在场所有数学教师提供了极具参考价值的复习教学范本。本次示范课于9:00-9:45,在厚德楼三楼九三班教室精彩开展。


评课研思,聚力精进
示范课结束后,全体参会教师齐聚立德楼一楼小会议室,于10:00-10:15开展集中评课研讨交流。



大家畅所欲言、各抒己见,既充分肯定了课堂中的亮点与巧思,也从教学设计、学情把握、备考侧重点、课堂效率提升等多个角度,展开深度探讨,在思维的碰撞中,凝聚教学智慧,梳理备考得失,明确优化改进方向。
经验分享,笃行致远
研讨过后,进入各校备考工作汇报环节。




10:15-10:45,四所联盟校数学备课组长依次上台,立足本校教学实际,围绕中招备考规划、复习进度安排、分层教学策略、学情短板突破、培优补差举措等核心内容进行细致分享。各校互取所长、互补所短,为接下来的冲刺备考整合优质资源、统一备考步调,搭建了高效的交流共享平台。
道阻且长,行则将至
本次四校联盟中招数学备考研讨会,既是一次思想的交融,更是一场力量的集结。全体数学教师以教研为抓手,凝聚合力、精准发力,明晰了备考方向,坚定了冲刺信心。相信在全体同仁的并肩携手、深耕细研之下,定能在2026年中招考试中乘风破浪、再创佳绩!
审核:李国强
编辑:党政办公室
供稿:教师发展中心

为精准把握中考命题方向,优化复习备考策略,凝聚联盟教研合力,切实提升中招数学备考实效,2026年5月29日,嵩县实验中学四校联盟中招备考研讨会数学专场,在嵩县第三实验中学隆重举行。来自联盟各校的全体数学教师齐聚一堂,以研促教,以思致远,共探中考备考新思路、新方法。
研课示范,引领前行
活动伊始,由夏云菲老师带来《函数基础和一次函数》复习示范课。

课堂上,夏老师紧扣中考考点,条理清晰、重难点突出,既夯实基础知识体系,又针对性突破高频易错题型,教学环节设计精巧、讲练结合、深入浅出,充分展现了优秀教师扎实的教学功底与灵动的课堂把控力,为在场所有数学教师提供了极具参考价值的复习教学范本。本次示范课于9:00-9:45,在厚德楼三楼九三班教室精彩开展。


评课研思,聚力精进
示范课结束后,全体参会教师齐聚立德楼一楼小会议室,于10:00-10:15开展集中评课研讨交流。



大家畅所欲言、各抒己见,既充分肯定了课堂中的亮点与巧思,也从教学设计、学情把握、备考侧重点、课堂效率提升等多个角度,展开深度探讨,在思维的碰撞中,凝聚教学智慧,梳理备考得失,明确优化改进方向。
经验分享,笃行致远
研讨过后,进入各校备考工作汇报环节。




10:15-10:45,四所联盟校数学备课组长依次上台,立足本校教学实际,围绕中招备考规划、复习进度安排、分层教学策略、学情短板突破、培优补差举措等核心内容进行细致分享。各校互取所长、互补所短,为接下来的冲刺备考整合优质资源、统一备考步调,搭建了高效的交流共享平台。
道阻且长,行则将至
本次四校联盟中招数学备考研讨会,既是一次思想的交融,更是一场力量的集结。全体数学教师以教研为抓手,凝聚合力、精准发力,明晰了备考方向,坚定了冲刺信心。相信在全体同仁的并肩携手、深耕细研之下,定能在2026年中招考试中乘风破浪、再创佳绩!
审核:李国强
编辑:党政办公室
供稿:教师发展中心


关于2026年高考中考期间
对“低慢小”航空器临时禁飞的通告
为维护2026年高考中考期间我市各考点及周边区域安全,营造良好的考试环境,根据《中华人民共和国民用航空法》《通用航空飞行管制条例》《无人驾驶航空器飞行管理暂行条例》等相关法律法规,现决定在中高考期间对“低慢小”航空器实施临时禁飞,现就有关事项通告如下:
一、禁飞时间及区域
1、禁飞时间:2026年6月7日7时起至6月9日19时、2026年6月20日7时起至6月22日19时。
2、禁飞区域:武穴市各考点及周边500米范围内。
二、禁飞对象
无人机等“低慢小”航空器:轻型和超轻型飞机、轻型直升机、滑翔机、三角翼、动力三角翼、滑翔伞、动力伞、热气球、飞艇、无人机、航空模型、航天模型、风筝、气球等。
三、禁飞措施
禁飞期间,请广大市民及飞行爱好者主动配合,自觉遵守本通告规定。在禁飞期间,对于违反本通告飞行的行为,公安机关将依据《无人驾驶航空器飞行管理暂行条例》第五十一条之规定,启用反制设备,由此造成的损失由行为人自行负责,有关部门将依法予以查处。对违反治安管理规定的,公安机关将依法给予治安处罚;情节严重构成犯罪的,依法追究刑事责任。
特此通告。
武穴市高等学校招生考试委员会
2026年6月1日

▍法律顾问:叶修奇 13034461598
▍图文编辑:水木年华
▍投稿邮箱:550895279@qq.com
▍素材来源:武穴发布
本文仅作分享之用,文章及插图版权属于原作者。如果分享内容侵犯您的版权或者所标来源非第一原创,请联系我们删除,谢谢。



关于2026年高考中考期间
对“低慢小”航空器临时禁飞的通告
为维护2026年高考中考期间我市各考点及周边区域安全,营造良好的考试环境,根据《中华人民共和国民用航空法》《通用航空飞行管制条例》《无人驾驶航空器飞行管理暂行条例》等相关法律法规,现决定在中高考期间对“低慢小”航空器实施临时禁飞,现就有关事项通告如下:
一、禁飞时间及区域
1、禁飞时间:2026年6月7日7时起至6月9日19时、2026年6月20日7时起至6月22日19时。
2、禁飞区域:武穴市各考点及周边500米范围内。
二、禁飞对象
无人机等“低慢小”航空器:轻型和超轻型飞机、轻型直升机、滑翔机、三角翼、动力三角翼、滑翔伞、动力伞、热气球、飞艇、无人机、航空模型、航天模型、风筝、气球等。
三、禁飞措施
禁飞期间,请广大市民及飞行爱好者主动配合,自觉遵守本通告规定。在禁飞期间,对于违反本通告飞行的行为,公安机关将依据《无人驾驶航空器飞行管理暂行条例》第五十一条之规定,启用反制设备,由此造成的损失由行为人自行负责,有关部门将依法予以查处。对违反治安管理规定的,公安机关将依法给予治安处罚;情节严重构成犯罪的,依法追究刑事责任。
特此通告。
武穴市高等学校招生考试委员会
2026年6月1日

▍法律顾问:叶修奇 13034461598
▍图文编辑:水木年华
▍投稿邮箱:550895279@qq.com
▍素材来源:武穴发布
本文仅作分享之用,文章及插图版权属于原作者。如果分享内容侵犯您的版权或者所标来源非第一原创,请联系我们删除,谢谢。

点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月图形化编程四级认证真题解析。
图形化编程 四级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | D | B | A | C | C | A | D | A | D | B | C | D | B | B |
1、在2026年春晚的《武BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果把机器人看成一台计算机,它的“输入设备”就像耳朵、眼睛,用来从外面接收信息。那么,下面哪一个选项不能当作机器人的“输入设备”?( )
A、检测身体是否歪斜的“平衡传感器”(像感觉站得稳不稳的小秤)
B、机器人内部安装好的“智能程序”(像它的大脑,用来思考和控制动作)
C、用来接收人类指令的“遥控器”
D、机器人的“摄像头眼睛”(用来拍下其他机器人的位置)
【答案】B
【考纲知识点】计算机基础知识
【解析】输入设备是指将外部世界的信息(如光、声音、位置、指令等)转换成计算机能理解信号的硬件设备。A选项平衡传感器用于检测身体姿态,是从外部获取信息;C选项遥控器用于接收人类操作指令;D选项摄像头用于获取视觉信息,三者均属于输入设备。B选项智能程序是存储在机器人内部的代码,用于处理和计算,相当于计算机的“软件”而非硬件,不能当作输入设备。
2、下列流程图的输出结果是?( )

A、50
B、55
C、60
D、65
【答案】D
【考纲知识点】流程图
【解析】它的执行过程就像是一个双层循环:
外层用i 从1 数到4
内层用j 从4 倒着数到当前的i
每次把i 乘以j 的结果累加起来
最终累加的和就是65。
3、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、16
B、18
C、15
D、14
【答案】B
【考纲知识点】循环结构
【解析】这段代码的作用是:计算从第一个数到最后一个数的最小“总步长”。
具体规则是:
如果相邻两数的实际间隔大于预设的步长d(3),则按d计一步;
如果实际间隔小于等于d,则按实际间隔计一步。
初始值result为3(代表起点到第一个数的距离)。
按此规则依次累加,最终算出从起点到最后一个数的总步长为18。
4、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、-37
B、-36
C、37
D、36
【答案】A
【考纲知识点】函数
【解析】初始a=0, b=0, i=1。
循环i=1到5:
若i是偶数,a加i;若i是奇数,a减i。
若i>3,b加2;否则b加1。
循环后a=-3,b=7,拼接成字符串"-37"。
5、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、2
B、3
C、4
D、5
【答案】C
【考纲知识点】复杂的嵌套结构、条件判断与循环的综合应用
【解析】这段代码的功能是:统计列表nums中有多少个完全平方数。
nums包含:81、64、27、16、1、6。
其中完全平方数有:81、64、16、1(共4个)。
因此最终输出ans = 4。
6、默认小猫角色,执行下列程序,第一个字符串输入abcabc,第二个字符串输入abcaaa小猫说出的内容是?( )


A、0
B、1
C、2
D、3
【答案】C
【考纲知识点】字符串处理、循环与字符比较
【解析】输入 A = abcabc,B = abcaaa
程序会从A的第1个字符到第4个字符(因为6−2=4),每次取连续3个字符,和B相同位置的3个字符比较
如果完全一样,就算一次
结果:
第1-3位:abc 对 abc 对
第2-4位:bca 对 bca 对
第3-5位:cab 对 caa 错
第4-6位:abc 对 aaa 错
答:小猫说2(有2处完全匹配)
7、默认小猫角色,执行下列程序,输入gesp.ccf.org.cn,小猫说出的内容是?( )


A、gesp ccf.org.cn
B、gesp ccf org.cn
C、gesp ccf org cn
D、gesp.ccf.org.cn
【答案】A
【考纲知识点】字符串处理、字符遍历与条件替换
【解析】输入gesp.ccf.org.cn程序找到第一个点.,把它分成两段:
前半段:gesp
后半段:ccf.org.cn
最后小猫说出这两段内容:gesp ccf.org.cn
8、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、YXYXYYXY
B、XYXYXXYX
C、XYYXYYXY
D、YXXYXXYX
【答案】D
【考纲知识点】列表操作、循环嵌套、奇偶性判断
【解析】i=0时 a = “YX”
i=1时 b = “XYX”
i=2时 a = “YXXYX”
result = “YXXYXXYX”
9、默认小猫角色,执行下列程序,小猫最后说出的内容是?( )


A、20 7 31 0 0
B、20 7 31 0 31
C、20 7 7 0 31
D、20 7 0 31 0
【答案】A
【考纲知识点】函数
【解析】程序把列表 [20, 0, 7, 0, 31] 里的所有非零数移到前面,所有零移到后面。结果变成:20 7 31 0 0
小猫说出的就是这5个数。
10、某小学男子篮球队招募新成员,要求加入球队的成员身高在135厘米以上(不含135厘米)。本次报名的人员有10人,他们的身高存储在列表nums中,默认小猫角色,运行下列程序,小猫说出的内容是?( )


A、4
B、7
C、6
D、5
【答案】D
【考纲知识点】列表遍历、条件筛选
【解析】程序统计身高大于135厘米的人数。
10个人的身高里,大于135的有:136、137、138、140、145,一共 5个人。
所以小猫说出的结果是:5。
11、默认小猫角色,运行下列程序,输入字符串ccfgesp,小猫输出的内容是?( )

A、cgs
B、cfep
C、ccf
D、gesp
【答案】B
【考纲知识点】字符串索引
【解析】输入字符串为"ccfgesp",字符位置依次为:1:c、2:c、3:f、4:g、5:e、6:s、7:p。答案"cfep"提取了位置1、3、5、7的字符。程序逻辑为:提取字符串中索引为奇数(第1、3、5、7……个)的字符并拼接输出。
12、默认小猫角色,执行下列程序,按下空格键0.5秒后,舞台中会出现几只小猫?( )

A、6
B、5
C、1
D、0
【答案】C
【考纲知识点】克隆的综合应用、程序执行时序
【解析】按下空格键后,5个克隆体同时显示,0.5秒后全部删除;本体在按下空格键时显示,且不会被删除。因此0.5秒后舞台中剩下1只小猫(本体)。
13、默认小猫角色,执行下列程序,输入哪组数字,可绘制如下的图形?( )


A、①6 ② 0
B、①6 ② 2
C、①9 ② 1
D、①9 ② 0
【答案】D
【考纲知识点】画笔拓展模块、正多边形绘制、循环与角度计算
【解析】小猫从(-100,0)的位置开始,先完成左边的第一个三角形,需要转向3次,当小猫回到x轴的时候,需要再向前走100步,走到(0,0)的位置。所以一共需要循环9次,在3,6,9次的时候多向前走100步,所以n=9,r=0
14、针对小球角色,执行下列程序,舞台中会出现小球的个数是?( )

A、9
B、8
C、7
D、6
【答案】B
【考纲知识点】克隆的综合应用、图章/克隆与移动的嵌套循环
【解析】双重for循环
外层循环i从1到5
内层循环i从1到3
如果i+j为偶数,就画出小球,i和j的组合有(1,1),(1,3),(2,2),(3,1),(3,3),(4,2),(5,1),(5,3)
15、在排序过程中,每一轮都从未排序的元素中找到最小(或最大)的元素,将其放在已排序序列的末尾,这种排序方法是?( )
A、插入排序
B、选择排序
C、冒泡排序
D、无正确选项
【答案】B(选择排序)
【考纲知识点】排序概念和稳定性、经典排序算法(冒泡排序、插入排序、选择排序)
【解析】
选择排序:每轮从未排序元素中选出最小(或最大)元素,放到已排序序列末尾——完全符合题目描述。
插入排序:将未排序元素插入到已排序序列的合适位置。
冒泡排序:相邻元素两两比较交换。
题目描述的是选择排序的核心特征。
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | × | × | × | √ | √ | × | × | √ | √ | √ |
1、默认小猫角色,执行下列程序,输入整数8,小猫说出的内容是12。

【答案】×
【考纲知识点】变量运算、循环逻辑
【解析】输入8,按规则循环:
1. n=8(偶)→ result=0+8=8,n=8÷2−1=3
2. n=3(奇)→ result=8+1=9,n=3−1=2
3. n=2(偶)→ result=9+2=11,n=2÷2−1=0
4. n=0(偶)→ result=11+0=11,n=0÷2−1=−1(结束)
输出结果:11
2、默认小猫角色,执行下列程序,输入正整数5,小猫说出的内容为120。

【答案】×
【考纲知识点】循环结构、累乘运算(阶乘)
【解析】输入5程序计算:1! + 2! + 3! + 4! + 5!= 1 + 2 + 6 + 24 + 120= 153
3、默认小猫角色,执行下列程序,输入正整数123,小猫说出的内容是123123。

【答案】×
【考纲知识点】字符串处理、字符串拼接
【解析】每次操作:当前字符+原字符串+序号
输入"123":
i=1 → "1" + "" + "1" = 11
i=2 → "2" + "11" + "2" = 2112
i=3 → "3" + "2112" + "3" = 321123
输出:321123
4
、默认小猫角色,执行下列程序,输入GESP,小猫说出的内容为138。
【答案】√
【考纲知识点】字符与数值转换
【解析】按规则:字母序号×位置,再求和
G(7)×1 = 7
E(5)×2 = 10
S(19)×3 = 57
P(16)×4 = 64
ans = 138
5、默认小猫角色,运行下列程序,小猫说出的内容为Butterfly。


【答案】√
【考纲知识点】字符串
【解析】从列表中找最长的单词,存到ans
6、默认小猫角色,执行下列程序,小猫说出的内容是apple grape orange banana cherry。

【答案】×
【考纲知识点】列表的添加操作
【解析】该题目主要考查列表的添加操作,最后的结果为:apple grape banana cherry orange,故判错。
7、默认小猫角色,下列函数可以在三位数的自然数中,找出至少有一位数字是5的所有整数并存储在列表list中。

【答案】×
【考纲知识点】数位分离、条件判断(逻辑运算)
【解析】十位的i/10 需要向下取整,百位的i/100 也需要向下取整
8、对一组数据 [5, 2, 6, 4, 8, 1, 7, 3]使用冒泡的方法按从大到小的顺序进行排序,则第2轮排序过后的结果是[6, 5, 8, 4, 7, 3, 2, 1]。
【答案】√
【考纲知识点】冒泡排序的执行过程模拟
【解析】从大到小排序,将较小的数向后“沉”:
第1轮:比较交换后得到[5,6,4,8,2,7,3,1],最小数1沉到最后
第2轮:对前7个元素继续操作:5和6交换→6和5保持→5和4保持→4和8交换→4和2保持→2和7交换→2和3交换
结果为[6,5,8,4,7,3,2,1],与题目给出的结果完全一致。
9、冒泡排序和插入排序都是稳定的排序算法而选择排序是不稳定的排序算法。
【答案】√
【考纲知识点】排序算法的稳定性概念
【解析】
稳定排序:相等元素的相对顺序在排序后保持不变
冒泡排序:相等时不交换,稳定
插入排序:相等时插入到后面,稳定
选择排序:如[5₁,8,5₂,2],第一轮选出2与5₁交换,5₁跑到5₂后面,相对顺序改变,不稳定
描述完全正确。
10、若一个数恰好等于其真因子(不包括自身)之和,则称这个数为完全数,例如6的真因子为1、2、3,且1+2+3=6。默认小猫角色,下列程序可以枚举1000以内的完全数。

【答案】√
【考纲知识点】枚举法
【解析】完全数定义:所有真因子之和等于自身。1000以内的完全数只有6(1+2+3)、28(1+2+4+7+14)、496三个。程序通过双层循环(外层遍历2-1000,内层找因子并求和)进行枚举判断。
题号 | 1 | 2 |
答案 |
1、二进制回文数


【题目描述】
小杨在数学课上学习了有趣的二进制数。十进制数是我们平时用的0-9数字,而二进制数只用0和1两个数字表示。每个十进制数都可以转换成二进制数。
十进制转二进制的方法(短除法):
把这个数不断除以2,记下每次的余数(0或1)
一直除到商为0为止
把得到的余数从下往上读出来,就是二进制数
举个例子:把数字9转换成二进制
9 ÷ 2 = 4 ... 余1
4 ÷ 2 = 2 ... 余0
2 ÷ 2 = 1 ... 余0
1 ÷ 2 = 0 ... 余1
从下往上读余数:1001,所以9的二进制是1001。
小杨发现有些数的二进制表示很特别:从左向右读和从右向左读是一样的!这样的数叫做"二进制回文数"。
例如:
数字9的二进制是1001,正着读和倒着读都是1001,所以9是二进制回文数
数字12的二进制是1100,倒着读是0011,去掉前面的0后是11,和原来的1100不一样,所以12不是二进制回文数
默认小猫角色和白色背景,请你帮助小杨编写一个程序,计算从1到n的所有数字中,有多少个是二进制回文数,并把结果存储在变量ans中。
【输入描述】
新建变量“n”,表示一个正整数(1 ≤ n ≤ 10000)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最后的结果,表示1到n之间二进制回文数的个数。
如下图所示:

在1到15之间,二进制回文数有:
1(二进制1)
3(二进制11)
5(二进制101)
7(二进制111)
9(二进制1001)
15(二进制1111)
共6个。
【输入样例】
n = 15
【输出样例】
ans = 6
【输入样例】
n = 25
【输出样例】
ans = 8
注意事项:
1.变量名的拼写(包括大小写)要和题目完全一致。输入变量2.直接赋值即可,无需使用“询问并等待”积木块。
3.输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】进制转换(十进制转二进制)、字符串处理、回文判断、循环嵌套、枚举法
【题目核心要求】
1.输入变量n,计算1到n之间所有“二进制回文数”的个数
2.结果存入变量ans
3.无需使用“询问”和“说”积木
【算法逻辑拆解】
1.初始化:ans = 0
2.外层循环:变量i从1到n
3.十进制转二进制(核心难点):
Scratch没有直接转二进制的积木,需手写算法
方法:对于数num,重复除以2,记录余数(0或1),直到商为0将余数从下往上拼接(注意拼接方向)
判断回文:
获取二进制字符串bin
比较bin是否等于其反转字符串
计数:若是回文数,ans增加1
【易错点提醒】
拼接余数时方向反了(正着拼是错的)
1的二进制是"1",也是回文数
每次处理新数前,bin变量必须清空
【参考程序】



2、凯撒密码


【题目描述】
小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码——凯撒密码。这种密码很简单:每个字母都按照字母表的顺序往后移动固定位数。比如移动3位,A就变成D,B变成E,C变成F……到了Z之后又回到A,Z就变成了C。
小杨现在得到了三行重要的信息:
1.第一行:已知的原始消息(明文)
2.第二行:已知的加密后的消息(密文),它是用凯撒密码对第一行加密得到的
3.第三行:需要解密的密文,它和前面使用了相同的移动位数
默认小猫角色和白色背景,请你帮助小杨,先根据前两行计算出字母移动了多少位,然后用这个规律破解第三行的密文,找到原始消息并把结果存储在变量ans中。
【输入描述】
新建变量“str1”,表示已知的明文(全大写字母)
新建变量“str2”,表示对应的密文(全大写字母)
新建变量“str”,表示需要破解的密文(全大写字母)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最终的结果,表示破解后的明文。
如下图所示:

从前两行可以看出:
A → D(向后移动3位)
B → E(向后移动3位)
以此类推
所以移动位数是3。对第三行密文,我们把每个字母向前移动3位:
W向前移动3位变成T
K向前移动3位变成H
以此类推
最终得到:"THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
【输入样例】
str1 = ABCDEFGVWXYZ
str2 = DEFGHIJYZABC
str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ
【输出样例】
ans = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
【输入样例】
str1 = ABC
str2 = DEF
str = JRRG
【输出样例】
ans = GOOD
注意事项:
1、变量名的拼写(包括大小写)要和题目完全一致。
2、输入变量直接赋值即可,无需使用“询问并等待”积木块。
3、输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】字符串处理、ASCII编码
【题目核心要求】
输入str1(明文)、str2(密文)、str(待解密密文)
根据前两行计算偏移量shift
用相同偏移量反向解密str,结果存入ans
【算法逻辑拆解】
计算偏移量:
建立字母表letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
取str1首字符在字母表中的位置pos1
取str2首字符的位置pos2
shift = pos2 - pos1(若为负则加26)
解密密文:
遍历str的每个字符c
找到c在字母表中的位置p
解密后位置newP = p - shift
循环处理:若newP < 1,则newP = newP + 26
取出对应字符拼接到ans
【参考程序】


策划:GESP技术委员会副主席 刘晓庆
技术支持:朱浩淼
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。


【联系我们】
1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。
2. GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。
3. GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30
扫描下方二维码关注GESP公众号,了解更多资讯


点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月图形化编程四级认证真题解析。
图形化编程 四级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | D | B | A | C | C | A | D | A | D | B | C | D | B | B |
1、在2026年春晚的《武BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果把机器人看成一台计算机,它的“输入设备”就像耳朵、眼睛,用来从外面接收信息。那么,下面哪一个选项不能当作机器人的“输入设备”?( )
A、检测身体是否歪斜的“平衡传感器”(像感觉站得稳不稳的小秤)
B、机器人内部安装好的“智能程序”(像它的大脑,用来思考和控制动作)
C、用来接收人类指令的“遥控器”
D、机器人的“摄像头眼睛”(用来拍下其他机器人的位置)
【答案】B
【考纲知识点】计算机基础知识
【解析】输入设备是指将外部世界的信息(如光、声音、位置、指令等)转换成计算机能理解信号的硬件设备。A选项平衡传感器用于检测身体姿态,是从外部获取信息;C选项遥控器用于接收人类操作指令;D选项摄像头用于获取视觉信息,三者均属于输入设备。B选项智能程序是存储在机器人内部的代码,用于处理和计算,相当于计算机的“软件”而非硬件,不能当作输入设备。
2、下列流程图的输出结果是?( )

A、50
B、55
C、60
D、65
【答案】D
【考纲知识点】流程图
【解析】它的执行过程就像是一个双层循环:
外层用i 从1 数到4
内层用j 从4 倒着数到当前的i
每次把i 乘以j 的结果累加起来
最终累加的和就是65。
3、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、16
B、18
C、15
D、14
【答案】B
【考纲知识点】循环结构
【解析】这段代码的作用是:计算从第一个数到最后一个数的最小“总步长”。
具体规则是:
如果相邻两数的实际间隔大于预设的步长d(3),则按d计一步;
如果实际间隔小于等于d,则按实际间隔计一步。
初始值result为3(代表起点到第一个数的距离)。
按此规则依次累加,最终算出从起点到最后一个数的总步长为18。
4、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、-37
B、-36
C、37
D、36
【答案】A
【考纲知识点】函数
【解析】初始a=0, b=0, i=1。
循环i=1到5:
若i是偶数,a加i;若i是奇数,a减i。
若i>3,b加2;否则b加1。
循环后a=-3,b=7,拼接成字符串"-37"。
5、默认小猫角色,执行下列程序,小猫说出的内容是?( )


A、2
B、3
C、4
D、5
【答案】C
【考纲知识点】复杂的嵌套结构、条件判断与循环的综合应用
【解析】这段代码的功能是:统计列表nums中有多少个完全平方数。
nums包含:81、64、27、16、1、6。
其中完全平方数有:81、64、16、1(共4个)。
因此最终输出ans = 4。
6、默认小猫角色,执行下列程序,第一个字符串输入abcabc,第二个字符串输入abcaaa小猫说出的内容是?( )


A、0
B、1
C、2
D、3
【答案】C
【考纲知识点】字符串处理、循环与字符比较
【解析】输入 A = abcabc,B = abcaaa
程序会从A的第1个字符到第4个字符(因为6−2=4),每次取连续3个字符,和B相同位置的3个字符比较
如果完全一样,就算一次
结果:
第1-3位:abc 对 abc 对
第2-4位:bca 对 bca 对
第3-5位:cab 对 caa 错
第4-6位:abc 对 aaa 错
答:小猫说2(有2处完全匹配)
7、默认小猫角色,执行下列程序,输入gesp.ccf.org.cn,小猫说出的内容是?( )


A、gesp ccf.org.cn
B、gesp ccf org.cn
C、gesp ccf org cn
D、gesp.ccf.org.cn
【答案】A
【考纲知识点】字符串处理、字符遍历与条件替换
【解析】输入gesp.ccf.org.cn程序找到第一个点.,把它分成两段:
前半段:gesp
后半段:ccf.org.cn
最后小猫说出这两段内容:gesp ccf.org.cn
8、默认小猫角色,执行下列程序,小猫说出的内容是?( )

A、YXYXYYXY
B、XYXYXXYX
C、XYYXYYXY
D、YXXYXXYX
【答案】D
【考纲知识点】列表操作、循环嵌套、奇偶性判断
【解析】i=0时 a = “YX”
i=1时 b = “XYX”
i=2时 a = “YXXYX”
result = “YXXYXXYX”
9、默认小猫角色,执行下列程序,小猫最后说出的内容是?( )


A、20 7 31 0 0
B、20 7 31 0 31
C、20 7 7 0 31
D、20 7 0 31 0
【答案】A
【考纲知识点】函数
【解析】程序把列表 [20, 0, 7, 0, 31] 里的所有非零数移到前面,所有零移到后面。结果变成:20 7 31 0 0
小猫说出的就是这5个数。
10、某小学男子篮球队招募新成员,要求加入球队的成员身高在135厘米以上(不含135厘米)。本次报名的人员有10人,他们的身高存储在列表nums中,默认小猫角色,运行下列程序,小猫说出的内容是?( )


A、4
B、7
C、6
D、5
【答案】D
【考纲知识点】列表遍历、条件筛选
【解析】程序统计身高大于135厘米的人数。
10个人的身高里,大于135的有:136、137、138、140、145,一共 5个人。
所以小猫说出的结果是:5。
11、默认小猫角色,运行下列程序,输入字符串ccfgesp,小猫输出的内容是?( )

A、cgs
B、cfep
C、ccf
D、gesp
【答案】B
【考纲知识点】字符串索引
【解析】输入字符串为"ccfgesp",字符位置依次为:1:c、2:c、3:f、4:g、5:e、6:s、7:p。答案"cfep"提取了位置1、3、5、7的字符。程序逻辑为:提取字符串中索引为奇数(第1、3、5、7……个)的字符并拼接输出。
12、默认小猫角色,执行下列程序,按下空格键0.5秒后,舞台中会出现几只小猫?( )

A、6
B、5
C、1
D、0
【答案】C
【考纲知识点】克隆的综合应用、程序执行时序
【解析】按下空格键后,5个克隆体同时显示,0.5秒后全部删除;本体在按下空格键时显示,且不会被删除。因此0.5秒后舞台中剩下1只小猫(本体)。
13、默认小猫角色,执行下列程序,输入哪组数字,可绘制如下的图形?( )


A、①6 ② 0
B、①6 ② 2
C、①9 ② 1
D、①9 ② 0
【答案】D
【考纲知识点】画笔拓展模块、正多边形绘制、循环与角度计算
【解析】小猫从(-100,0)的位置开始,先完成左边的第一个三角形,需要转向3次,当小猫回到x轴的时候,需要再向前走100步,走到(0,0)的位置。所以一共需要循环9次,在3,6,9次的时候多向前走100步,所以n=9,r=0
14、针对小球角色,执行下列程序,舞台中会出现小球的个数是?( )

A、9
B、8
C、7
D、6
【答案】B
【考纲知识点】克隆的综合应用、图章/克隆与移动的嵌套循环
【解析】双重for循环
外层循环i从1到5
内层循环i从1到3
如果i+j为偶数,就画出小球,i和j的组合有(1,1),(1,3),(2,2),(3,1),(3,3),(4,2),(5,1),(5,3)
15、在排序过程中,每一轮都从未排序的元素中找到最小(或最大)的元素,将其放在已排序序列的末尾,这种排序方法是?( )
A、插入排序
B、选择排序
C、冒泡排序
D、无正确选项
【答案】B(选择排序)
【考纲知识点】排序概念和稳定性、经典排序算法(冒泡排序、插入排序、选择排序)
【解析】
选择排序:每轮从未排序元素中选出最小(或最大)元素,放到已排序序列末尾——完全符合题目描述。
插入排序:将未排序元素插入到已排序序列的合适位置。
冒泡排序:相邻元素两两比较交换。
题目描述的是选择排序的核心特征。
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | × | × | × | √ | √ | × | × | √ | √ | √ |
1、默认小猫角色,执行下列程序,输入整数8,小猫说出的内容是12。

【答案】×
【考纲知识点】变量运算、循环逻辑
【解析】输入8,按规则循环:
1. n=8(偶)→ result=0+8=8,n=8÷2−1=3
2. n=3(奇)→ result=8+1=9,n=3−1=2
3. n=2(偶)→ result=9+2=11,n=2÷2−1=0
4. n=0(偶)→ result=11+0=11,n=0÷2−1=−1(结束)
输出结果:11
2、默认小猫角色,执行下列程序,输入正整数5,小猫说出的内容为120。

【答案】×
【考纲知识点】循环结构、累乘运算(阶乘)
【解析】输入5程序计算:1! + 2! + 3! + 4! + 5!= 1 + 2 + 6 + 24 + 120= 153
3、默认小猫角色,执行下列程序,输入正整数123,小猫说出的内容是123123。

【答案】×
【考纲知识点】字符串处理、字符串拼接
【解析】每次操作:当前字符+原字符串+序号
输入"123":
i=1 → "1" + "" + "1" = 11
i=2 → "2" + "11" + "2" = 2112
i=3 → "3" + "2112" + "3" = 321123
输出:321123
4
、默认小猫角色,执行下列程序,输入GESP,小猫说出的内容为138。
【答案】√
【考纲知识点】字符与数值转换
【解析】按规则:字母序号×位置,再求和
G(7)×1 = 7
E(5)×2 = 10
S(19)×3 = 57
P(16)×4 = 64
ans = 138
5、默认小猫角色,运行下列程序,小猫说出的内容为Butterfly。


【答案】√
【考纲知识点】字符串
【解析】从列表中找最长的单词,存到ans
6、默认小猫角色,执行下列程序,小猫说出的内容是apple grape orange banana cherry。

【答案】×
【考纲知识点】列表的添加操作
【解析】该题目主要考查列表的添加操作,最后的结果为:apple grape banana cherry orange,故判错。
7、默认小猫角色,下列函数可以在三位数的自然数中,找出至少有一位数字是5的所有整数并存储在列表list中。

【答案】×
【考纲知识点】数位分离、条件判断(逻辑运算)
【解析】十位的i/10 需要向下取整,百位的i/100 也需要向下取整
8、对一组数据 [5, 2, 6, 4, 8, 1, 7, 3]使用冒泡的方法按从大到小的顺序进行排序,则第2轮排序过后的结果是[6, 5, 8, 4, 7, 3, 2, 1]。
【答案】√
【考纲知识点】冒泡排序的执行过程模拟
【解析】从大到小排序,将较小的数向后“沉”:
第1轮:比较交换后得到[5,6,4,8,2,7,3,1],最小数1沉到最后
第2轮:对前7个元素继续操作:5和6交换→6和5保持→5和4保持→4和8交换→4和2保持→2和7交换→2和3交换
结果为[6,5,8,4,7,3,2,1],与题目给出的结果完全一致。
9、冒泡排序和插入排序都是稳定的排序算法而选择排序是不稳定的排序算法。
【答案】√
【考纲知识点】排序算法的稳定性概念
【解析】
稳定排序:相等元素的相对顺序在排序后保持不变
冒泡排序:相等时不交换,稳定
插入排序:相等时插入到后面,稳定
选择排序:如[5₁,8,5₂,2],第一轮选出2与5₁交换,5₁跑到5₂后面,相对顺序改变,不稳定
描述完全正确。
10、若一个数恰好等于其真因子(不包括自身)之和,则称这个数为完全数,例如6的真因子为1、2、3,且1+2+3=6。默认小猫角色,下列程序可以枚举1000以内的完全数。

【答案】√
【考纲知识点】枚举法
【解析】完全数定义:所有真因子之和等于自身。1000以内的完全数只有6(1+2+3)、28(1+2+4+7+14)、496三个。程序通过双层循环(外层遍历2-1000,内层找因子并求和)进行枚举判断。
题号 | 1 | 2 |
答案 |
1、二进制回文数


【题目描述】
小杨在数学课上学习了有趣的二进制数。十进制数是我们平时用的0-9数字,而二进制数只用0和1两个数字表示。每个十进制数都可以转换成二进制数。
十进制转二进制的方法(短除法):
把这个数不断除以2,记下每次的余数(0或1)
一直除到商为0为止
把得到的余数从下往上读出来,就是二进制数
举个例子:把数字9转换成二进制
9 ÷ 2 = 4 ... 余1
4 ÷ 2 = 2 ... 余0
2 ÷ 2 = 1 ... 余0
1 ÷ 2 = 0 ... 余1
从下往上读余数:1001,所以9的二进制是1001。
小杨发现有些数的二进制表示很特别:从左向右读和从右向左读是一样的!这样的数叫做"二进制回文数"。
例如:
数字9的二进制是1001,正着读和倒着读都是1001,所以9是二进制回文数
数字12的二进制是1100,倒着读是0011,去掉前面的0后是11,和原来的1100不一样,所以12不是二进制回文数
默认小猫角色和白色背景,请你帮助小杨编写一个程序,计算从1到n的所有数字中,有多少个是二进制回文数,并把结果存储在变量ans中。
【输入描述】
新建变量“n”,表示一个正整数(1 ≤ n ≤ 10000)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最后的结果,表示1到n之间二进制回文数的个数。
如下图所示:

在1到15之间,二进制回文数有:
1(二进制1)
3(二进制11)
5(二进制101)
7(二进制111)
9(二进制1001)
15(二进制1111)
共6个。
【输入样例】
n = 15
【输出样例】
ans = 6
【输入样例】
n = 25
【输出样例】
ans = 8
注意事项:
1.变量名的拼写(包括大小写)要和题目完全一致。输入变量2.直接赋值即可,无需使用“询问并等待”积木块。
3.输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】进制转换(十进制转二进制)、字符串处理、回文判断、循环嵌套、枚举法
【题目核心要求】
1.输入变量n,计算1到n之间所有“二进制回文数”的个数
2.结果存入变量ans
3.无需使用“询问”和“说”积木
【算法逻辑拆解】
1.初始化:ans = 0
2.外层循环:变量i从1到n
3.十进制转二进制(核心难点):
Scratch没有直接转二进制的积木,需手写算法
方法:对于数num,重复除以2,记录余数(0或1),直到商为0将余数从下往上拼接(注意拼接方向)
判断回文:
获取二进制字符串bin
比较bin是否等于其反转字符串
计数:若是回文数,ans增加1
【易错点提醒】
拼接余数时方向反了(正着拼是错的)
1的二进制是"1",也是回文数
每次处理新数前,bin变量必须清空
【参考程序】



2、凯撒密码


【题目描述】
小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码——凯撒密码。这种密码很简单:每个字母都按照字母表的顺序往后移动固定位数。比如移动3位,A就变成D,B变成E,C变成F……到了Z之后又回到A,Z就变成了C。
小杨现在得到了三行重要的信息:
1.第一行:已知的原始消息(明文)
2.第二行:已知的加密后的消息(密文),它是用凯撒密码对第一行加密得到的
3.第三行:需要解密的密文,它和前面使用了相同的移动位数
默认小猫角色和白色背景,请你帮助小杨,先根据前两行计算出字母移动了多少位,然后用这个规律破解第三行的密文,找到原始消息并把结果存储在变量ans中。
【输入描述】
新建变量“str1”,表示已知的明文(全大写字母)
新建变量“str2”,表示对应的密文(全大写字母)
新建变量“str”,表示需要破解的密文(全大写字母)。
如下图所示:

【输出描述】
新建变量“ans”,用于存储最终的结果,表示破解后的明文。
如下图所示:

从前两行可以看出:
A → D(向后移动3位)
B → E(向后移动3位)
以此类推
所以移动位数是3。对第三行密文,我们把每个字母向前移动3位:
W向前移动3位变成T
K向前移动3位变成H
以此类推
最终得到:"THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"
【输入样例】
str1 = ABCDEFGVWXYZ
str2 = DEFGHIJYZABC
str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ
【输出样例】
ans = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
【输入样例】
str1 = ABC
str2 = DEF
str = JRRG
【输出样例】
ans = GOOD
注意事项:
1、变量名的拼写(包括大小写)要和题目完全一致。
2、输入变量直接赋值即可,无需使用“询问并等待”积木块。
3、输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
【考纲知识点】字符串处理、ASCII编码
【题目核心要求】
输入str1(明文)、str2(密文)、str(待解密密文)
根据前两行计算偏移量shift
用相同偏移量反向解密str,结果存入ans
【算法逻辑拆解】
计算偏移量:
建立字母表letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
取str1首字符在字母表中的位置pos1
取str2首字符的位置pos2
shift = pos2 - pos1(若为负则加26)
解密密文:
遍历str的每个字符c
找到c在字母表中的位置p
解密后位置newP = p - shift
循环处理:若newP < 1,则newP = newP + 26
取出对应字符拼接到ans
【参考程序】


策划:GESP技术委员会副主席 刘晓庆
技术支持:朱浩淼
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF GESP”公众号底部菜单栏【GESP】→【报名认证】,同意授权,进行登录。登录后,其余报名步骤可参考“第一种方式”指引完成报名。


【联系我们】
1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。
2. GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证件号,以便及时有效处理。
3. GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外): 上午 8:30-12:00;下午 13:00-17:30
扫描下方二维码关注GESP公众号,了解更多资讯

