每周一套 GESP|C++ 一级真题精讲

四季读书网 1 0
每周一套 GESP|C++ 一级真题精讲

跟着真题学编程,稳步拿下考级

周更连载|系统攻克少儿 C++ 考级  

哈喽各位家长、小程序员,欢迎来到《每周一套 GESP》固定专栏!栏目每周更新 1 套完整 GESP 真题解析,从 C++ 一级循序渐进学到六级,原题 + 答案 + 细致讲解,零基础孩子也能看懂,系统备战编程考级。

本期:2026 年 3 月 GESP C++ 一级全卷

一、单选题(共 15 题,每题 2 分)

1~7 题

1.题干:机器人落地调整姿态,哪个不能作为计算机输入设备?

A. 重力传感器 B. 预装的 AI 算法程序 C. 遥控器 D. 摄像头

答案:B

解析:传感器、遥控器、摄像头都是硬件输入设备;AI 算法属于软件,无法作为输入设备。

2.题干:选中 txt 文件,哪种操作进入重命名输入状态?

A. 右键选择重命名 B. 双击左键 C.F1 D. 回车

答案:A

解析:右键重命名为标准改名操作,双击打开文件,F1 是帮助按键。

3.题干:double PI=3.1415926;cout<

A.PI 和 pi 等效,大小写不敏感 B. 改成 Pi 可运行 C.PI 不能用作变量名 D. 全部换成 Pai 代码正常执行

答案:D

解析:C++ 严格区分大小写,PI、Pi、pi 是三个不同变量,自定义合法变量名 Pai 无报错。

4.题干:C++ 表达式 3 * 3 % 2 的值是?A.81 B.27 C.4 D.1

答案:D

解析:优先级高于 %,先算 33=9,再 9%2=1。

5.题干:a、b 初值都是 4,执行 a,b=3,4;cout<

答案:C

解析:cout 连续输出直接拼接数值,无自动空格。

6.题干:int N=0;cin>>N;cout<

A. 输入 10 输出 10 B. 输入 3.14 报错 C. 输入 ABC 报错 D. 输入 - 10 报错

答案:A

解析:int 读取整型数据,输入整数正常输出,小数、字符不会造成程序崩溃。

7.题干:int M=0,N=0;cin>>M;cin>>N;if (N>M) else cout<

答案:B

解析:if 无内部语句,最终两段输出组合后结果恒大于等于 0。

8~15 题(循环 & 数位重点详解)

一级核心口诀:%10 取个位,/10 砍掉个位

8.题干:int i,tnt=1;for (i=0;i<5;i++) printf ("%2d%2d\n",tnt,i);tnt*=i; 输出结果?

答案:C

解析:for 循环从 i=0 开始第一轮,首次循环 i=0,tnt 初始值固定为 1。

9.题干:求数列 - 1+2+3-4+5+6-7… 前 N 项和,现有代码描述正确的是?

答案:B

解析:数列规律每 3 个数字一组:第 1 个负数、后两个正数,i%3==0 才符合取负规则,原条件需要修改。

10.题干:for (i=1;i<10;i++){if (i%2==0){continue} else cout<

答案:A

解析:遇到偶数执行 continue,跳过打印,仅奇数输出 #,循环结束 i=9,末尾输出 9END。

11.题干:补齐代码实现整数数位求和,空白代码是?

答案:B

解析:tnt+=N%10 提取个位累加,N/=10 剔除末尾数字,数位求和标准模板。

12.题干:统计数字里奇数数位个数,if 括号内填?

答案:B

解析:N%10 取出个位,N%10%2==1 代表该数位是奇数。

13.题干:两两位数大数在前拼成四位数,拼接数拼接余数变五位数,判断能否被 14 整除,代码描述?

答案:A

解析:原 if 条件写反,无法实现大数在前拼接,代码不能正确完成判断。

14.题干:六位数 N,判断高三位与低三位差值是 314 倍数,填空?

答案:B

解析:N/1000 取高三位,N%1000 取低三位,%314==0 用来判断是否为倍数。

15.题干:统计双螺旋数(奇偶数位和相等),补充循环内代码?

答案:A

解析:循环一次取个位存入奇数位和 N1,再次取个位存入偶数位和 N2,交替拆分所有数位。

二、判断题(10 题,每题 2 分)

1.题干:可通话电话手表内置专属操作系统。

答案:√

解析:智能穿戴设备搭载嵌入式操作系统。

2.题干:4%2 和 2*2%2 运算结果相同。

答案:√

解析:两个式子运算结果均为 0。

3.题干:for (i=1;i<10;i++) if (i%3==0) cout<

答案:×

解析:break 不在 if 代码块内,不属于循环内部,不会提前跳出循环。

4.题干:for 循环后带分号,可实现 1~N 累加。

答案:×

解析:for 后分号代表空循环,累加语句脱离循环体无法执行。

5.题干cin>>N;while (N) cout<<N;cout 执行 0 次或无限次。

题干:数字反转和原数对比,代码用来判断对称数。答案:√解析:经典回文数判断写法,逻辑无误。

6.题干:输入正整数 N,代码运行输出结果一定是 - N。

答案:×

解析:循环步长为 2,累加规律不满足结果等于 - N。

7.题干:printf ("% d\n",3.14); 代码运行报错。

答案:×

解析:浮点数据用 % d 输出不会报错,自动截取整数部分。

8.题干:int cnt=0;for (int i=1;i<100;i++) cnt+=i++; 输出 2500。

答案:×

解析:后置自增 i++,变量两次自增,计算结果不等于 2500。

9.题干:printf ("%-5d\n",314); 输出 - 5314。

答案:×

解析:%-5d 代表左对齐占 5 字符,负号是格式标识,不会打印 - 5。

三、编程题(每题 25 分,共 50 分)

编程 1:交朋友

题目:H1 为 Alice 身高,剩余 3 位小朋友身高 H2、H3、H4,找身高差距最小的,差距相同选更矮身高。

#include<iostream>#include<cmath>// 包含绝对值函数absusing namespace std;intmain(){    int H1,H2,H3,H4;          // 定义4个身高变量    cin>>H1>>H2>>H3>>H4;      // 输入4个人的身高    int ans = H2;             // 先假设H2是最优答案    int mind = abs(H1 - H2);  // 计算最小差值,初始为H1和H2的差    // 和H3比较    int d = abs(H1 - H3);    if(d < mind || (d == mind && H3 < ans)){        mind = d;             // 更新最小差值        ans = H3;             // 更新最优身高    }    // 和H4比较    d = abs(H1 - H4);    if(d < mind || (d == mind && H4 < ans)){        ans = H4;    }    cout<<ans;      // 输出最终答案    return 0;}

拓展思考:人数变多如何优化?后续学习数组(GESP 二级考点)。

编程 2:数字替换

题目:输入整数,所有数位数字 4 替换成 8,其余数字保持原样输出。

#include<iostream>using namespace std;intmain(){    int a, b = 0, t = 1;  // a=输入数字,b=结果数字,t=位数权重(1、10、100...)    cin >> a;              // 输入待处理数字    while(a > 0){          // 循环拆分每一位,直到数字为0        int num = a % 10;  // 取出最后一位数字        if(num == 4){      // 如果是数字4,替换成8            num = 8;        }        b += num * t;      // 把当前位拼接到新数字里        t *= 10;           // 权重×10,准备拼下一位        a /= 10;           // 去掉最后一位,继续循环    }    cout << b;    // 输出替换后的新数字    return 0;}

四、栏目长期学习规划

本专栏固定每周一期、一套真题,按 GESP1~6 级顺序连载:

✅短期(1~2 个月):刷完一级真题,吃透变量、运算符、if 分支、for 循环、数位拆分;

✅中期(3~6 个月):GESP 二级,数组、嵌套循环、枚举算法专项练习;

✅长期:循序渐进更新 3-6 级,字符串、函数、基础搜索算法全覆盖,搭建完整 C++ 学习体系。

福利 + 下期预告

🎁福利:私信关键词【GESP03】,免费领取整套 PDF 原版试卷 + 答案,可打印刷题。

📅下期预告:下周全新 GESP 一级真题完整精讲,准时更新!

抱歉,评论功能暂时关闭!