GESP认证C++编程真题解析 | 202406 三级

news/2026/1/18 8:51:32/文章来源:https://www.cnblogs.com/guolianggsta/p/19497767

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


单选题

第1题

小杨父母带他到某培训机构给他报名参加CCF组织的G ESP认证考试的第1级,那他可以选择的认证语言有( )种。

A.1

B.2

C.3

D.4

【答案】:C

【解析】

GESP考察语言为图形化(Scratch)编程、Python编程及C++编程。

第2题

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出出2月是29天,则图中菱形框中应该填入( )。

image

A.(yr % 400 == 0) || (yr % 4 == 0)

B.(yr % 400 == 0) || (yr % 4 ==0 && yr % 100 !=0)

C.(yr % 400 == 0) && (yr % 4 == 0)

D.(yr % 400 == 0) && (yr % 4 == 0 && yr % 100 != 0)

【答案】:B

【解析】

考察判断闰年的条件,非整百年份:能被4整除的是闰年(如2004年就是闰年,2001年不是闰年)。整百年份:能被400整除的是闰年(如2000年是闰年,1900年不是闰年)。

&&“条件与”, x&&y:x和y均为true, 取值是true, 否则取值是false。

|| 逻辑“或”,x || y:x和y均为false, 取值是false, 否则取值是true。

第3题

一般默认64位计算机系统中整型变量(int)还是32位, 则整数能够表示的数据范围是( )。

A.\(0\sim 2^{32}\)

B.\(0\sim 2^{64}\)

C.\(-2^{31}\sim (2^{31})-1\)

D.\(-2^{63}\sim (2^{63})-1\)

【答案】:C

【解析】

考察int类型的取值范围, int存储时占32位, 其中一位是符号位, 所以取值范围为-2147483648~2147483647,即选项C。

第4题

下列代码将十进制转化成八进制,则横线上应填入( )。

#include <iostream>using namespace std;void decimal2octal(int decimal) {int oct_number[100];int i = 0;while (decimal > 0) {____  // 在此处填入代码}for (int j=i-1; j>=0; j--) {cout << oct_number[j];}cout << endl;
}

A.oct_number[i] = decimal % 8; decimal /= 8;

B.oct_number[i] = decimal / 8; decimal %/= 8;

C.oct_number[i++] = decimal % 8; decimal /= 8;

D.oct_number[i++] = decimal / 8; decimal %= 8;

【答案】:C

【解析】

【解析】考察进制转换,除8取余法:将十进制数连续除以8,每次的余数就是八进制数的一位,而商继续除以8,直到商为0为止。将余数从下往上排列,得到的数字就是十进制数的八进制表示。

第5题

二进制数101.11对应的十进制数是( )。

A.6.5

B.5.5

C.5.75

D.5.25

【答案】:C

【解析】

二进制整数转化十进制:从二进制数的右边第一位起,从右往左,先用二制位置上的数乘以2的相应位数的幂,然后把每一位的乘积相加即可得到二进制数对应的十进制数。

小数的二进制数转化为十进制数的方法,从左往右,用二进制位数上的数字乘以2的负位数次幂,然后把所有乘积相加即可得。

第6题

下列流程图的输出结果是( )。

image

A.5

B.10

C.20

D.30

【答案】:B

【解析】

嵌套循环的流程图,外层循环遍历i:04,内层循环j:0i-1,每循环一次sum加1, 内外层循环执行次数为:0+1+2+3+4=10, 所以sum值最终为10。

第7题

下列代码的输出结果是( )。

#include <iostream>
using namespace std;int main() {int a = 12;int result = a >> 2;cout << result << endl;return 0;
}

A.12

B.6

C.3

D.1

【答案】:C

【解析】

右移运算符,12的二进制位为1100,右移两位后为11,二进制11转化为十进制是3。

第8题

下列代码的输出结果是( )。

#include <iostream>
using namespace std;int main() {int a = 5;int b = 10;a = a ^ b;b = a ^ b;a = a ^ b;cout << "a = " << a << ", b = " << b << endl;return 0;
}

A.a = 5, b = 10

B.a = 5, b = 5

C.a = 10, b = 5

D.a = 10, b = 10

【答案】:C

【解析】

^是异或运算符,用于两个操作数的二进制位的异或运算。当两个操作数的某一位相同(同为0或同为1)时,结果为0,不同时结果为1。这段代码是通过异或运算交换两个变量的值。

第9题

如果字符串定义为char str[]="GESP"; , 则字符数组str的长度为( ) 。

A.0

B.4

C.5

D.6

【答案】:C

【解析】

字符数组里每一个字符都占据一个存储单元,且以'\0'作为结尾,'\0'用于标记字符串的结束位置。\'0'虽然是一个特殊的字符,但在字符数组中,它也是一个实实在在的字符,占用一个存储单元。

第10题

在下列代码的横线处填写( ),可以使得输出是“7”。

#include <iostream>
using namespace std;int main() {int array[5] = {3, 7, 5, 2, 4};int max = 0;for (int i=0; i<5; i++)if (____)  // 在此处填入代码max = array[i];cout << max << endl;return 0;
}

A.max > array[i]

B.max < array[i]

C.max = array[i]

D.以上均不对

【答案】:B

【解析】

本题代码用一维数组存储数据, 然后for循环遍历找最大值。判断条件为如果array[i]比原来存储的最大值max还要大, 就更新最大值。

第11题

小杨在做数学题,题目要求找出从1到35中能被7整除的数字,即[7,14,21,28,35],则横线处应填入哪个代码?( )

#include <iostream>
using namespace std;int main() {int arr[35];int count = 0;for (int i=1; i<=35; i++) {if (i%7==0)____  // 在此处填入代码}for (int i=0; i<count; i++)cout << arr[i] << endl;return 0;
}

A.arr[count++]=i;

B.arr[i] = count++;

C.arr[i] = count;

D.arr[count] = count++;

【答案】:A

【解析】

循环遍历i:1~35找能被7整除的数字,如果i满足条件,i存储到数组里,数组下标用count控制, arr[count++] =i; 是把i值放入arr[count] , 然后count自增。

第12题

已知字符'0'的ASCII编码的十进制表示为48,则执行下面C++代码后,,输出是( )。

#include <iostream>
using namespace std;int main() {string s = "0629";int n = s.length();int x = 0;for (int i=0; i<n; i++)x += s[i]cout << x << endl;return 0;
}

A.17

B.158

C.209

D.316

【答案】:C

【解析】

字符串里的字符是用ASCII码存储, x累加的是字符的ASCII码值, 字符'0'的ASCII码值是48, 字符'2'的ASCII码值是50, 字符'6'的ASCII码值是54, 字符'9'的ASCII码值是57,48+50+54+57=209。

第13题

某小学男子篮球队招募新成员员,要求加入球队的成员身高在135厘米以上(不含135厘米)。本次报名的人员有10人,他们的身高分别是125、127、136、134、137、138、126、135、140、145。完善以下代码,求出本次球队能够招募到新成员的人数?( )

#include <iostream>
using namespace std;int main() {int arr[10] = {125, 127, 136, 134, 137, 138, 126, 135, 140, 145};int count = 0;for (int i=0; i<10; i++)____  // 在此处填入代码cout << count << endl;return 0;
}

A.count = arr[i]>135 ? 1 : 0;

B.count += arr[i]>135 ? 1 : 0;

C.count++;

D.以上都不对

【答案】:B

【解析】

循环遍历所有身高,统计135以上的个数。?:是三目运算符。

表达式1 ? 表达式2 : 表达式3。先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。B选项的功能是如果arr[i] >135, count加1否则加0。

第14题

下面可以正确输出They're planning a party for their friend's birthday.的C++语句是?( )

A.cout << 'They\'re planning a party for their friend'\s birthday." << endl;

B.cout << "They\'re planning a party for their friend's birthday." << endl;

C.cout << 'They're planning a party for their friend's birthday.' << endl;

D.cout << "They\'re planning a party for their friend\'s birthday." << endl;

【答案】:D

【解析】

字符串需要用双引号""括起来。

第15题

如果执行下面C++代码后, 输出的结果是“gesp ccf org cn" ,则横线上应填入哪个代码?( )

#include <iostream>
using namespace std;int main() {string str = "gesp.ccf.org.cn";string delimiter = ".";string result = "";string token;size_t found = str.find(delimiter);while (found != string::npos) {token = str.substr(0, found);result += token;result += " ";____  // 在此处填入代码found = str.find(delimiter);}//最后一部分result += str;result += " ";cout << result << endl;return 0;
}

A.str = str.substr(found + delimiter.length(), str.length()-1);

B.str = str.substr(found, str.length());

C.str = str.substr(found, str.length()-1);

D.以上都不对

【答案】:A

【解析】

观察原字符串和输出结果可知,程序的目的是找到所有的点".",换成空格" ",横线处需要填写的语句功能为将截取str第一个"."后的部分重新赋给str。

判断题

第16题

GESP测试是对认证者的编程能力进行等级认证, 同一级别的能力基本上与编程语言无关。

A.正确

B.错误

【答案】:A

【解析】

GESP赛事规则

第17题

整数-6的16位补码可用十六进制表示为FFFA。

A.正确

B.错误

【答案】:A

【解析】

考察数据编码中的反码,负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1, -6的16位补码用十六进制表示为FFFA。

第18题

补码的优点是可以将减法运算转化为加法运算,从而简化计算机的硬件设计。

A.正确

B.错误

【答案】:A

【解析】

考察数据编码知识,补码的优点是:可以将减法运算转化为加法运算,简化了运算过程。

第19题

字符常量'\0'常用来表示字符串结束,和字符常量'0'相同。

A.正确

B.错误

【答案】:B

【解析】

字符常量'\0'是字符串的结束标记, 它的ASCII码为0, 字符常量'0'的ASCII码为48,与'\0'是不同的字符常量。

第20题

数组的所有元素在内存中可以不连续存放。

A.正确

B.错误

【答案】:B

【解析】

数组元素在内存中是连续存放的。

第21题

C++中可以对数组和数组的每个基础类型的元素赋值。

A.正确

B.错误

【答案】:B

【解析】

不能对数组赋值,但可以对数组的每个基础类型的元素赋值。

第22题

如果a为int类型的变量, 且表达式((a|3) ==3) 的值为true, 则说明a在从0到3之间(可能为0、可能为3)。

A.正确

B.错误

【答案】:A

【解析】

((a|3)==3)说明a只在二进制的最低位和第二低位可能为1,所以0≤a≤3。

第23题

执行下面C++代码后,输出的结果是8。

int a = 0b1010;
int b = 01100;
int c = a & b;
cout << c << endl;

A.正确

B.错误

【答案】:A

【解析】

0b是二进制表示,b是八进制,&:按位与,输出结果为0。

第24题

执行下面C++代码后,输出的结果不可能是89781。( )

#include <iostream>
#include <cstdlib>  // 为了使用rand()和srand()
#include <ctime>  // 为了使用time()using namespace std;int main() {// 设置随机种子srand(time(NULL));int i = 1;it s[5];while (i<=5) {int a = rand() % 10;if (a % 3 == (i+1) %3)s[i++] = a;}for (int i=1; i<=5; i++)cout << s[i];cout << endl;return 0;
}

A.正确

B.错误

【答案】:A

【解析】

第14行a的取值范围是0~9,15行通过比较赋值,第一位可能为2,5,8,第二位可能为0,3,6,9,第三位可能为1,4,7,第四位可能为2,5,8,第五位第一位可能为0,3,6,9。最后一位不可能输出1。

第25题

把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,计算结果又等于原数。(30+25)×(30+25)=55×55=3025,这样的数叫“雷劈数”。可以使用枚举的方法求出所有符合这样条件的四位数。( )

A.正确

B.错误

【答案】:A

【解析】

枚举法:逐一列举问题所涉及的所有情形,并根据问题提出的条件检验哪些是问题的解,哪些应予排除。

编程题

B4003 移位

【题目来源】

洛谷:[B4003 GESP202406 三级] 移位 - 洛谷

【题目描述】

小杨学习了加密技术移位,所有大写字母都向后按照一个固定数目进行偏移。偏移过程会将字母表视作首尾相接的环,例如当偏移量是3的时候,大写字母A会替换成D,大写字母Z会替换成C,总体来看大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ会被替换成DEFGHIJKLMNOPQRSTUVWXYZABC。

注:当偏移量是26的倍数时,每个大写字母经过偏移后会恰好回到原来的位置,即大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ经过偏移后会保持不变。

【输入】

第一行包含一个正整数n。

【输出】

输出在偏移量为n的情况下,大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ移位替换后的结果。

【输入样例】

3

【输出样例】

DEFGHIJKLMNOPQRSTUVWXYZABC

【算法标签】

《洛谷 B4003 移位》 #字符串(入门)# #GESP# #2024#

【代码详解】

#include <bits/stdc++.h>
using namespace std;int main()
{int n;cin >> n;for (int i=0; i<26; i++) {int j = (i+n) % 26;  // j:字符偏移后离'A'的距离char ch = 'A' + j;  // ch:距离'A'为j的字符cout << ch;  //输出偏移后的字符}  return 0;
}

【运行结果】

3
DEFGHIJKLMNOPQRSTUVWXYZABC

B4004 寻找倍数

【题目来源】

洛谷:[B4004 GESP202406 三级] 寻找倍数 - 洛谷

【题目描述】

小杨有一个包含n个正整数的序列\(A=[a_1, a_2, \dots, a_n]\),他想知道是否存在\(i(1\le i\le n)\)使得\(a_i\)是序列A中所有数的倍数。

【输入】

第一行包含一个正整数t,代表测试用例组数。

接下来是t组测试用例。

对于每组测试用例,一共两行。其中,第一行包含一个正整数n;第二行包含n个正整数,代表序列A。

【输出】

对于每组测试用例,如果存在\(i(1\le i\le n)\)满足对于所有在\(k(1\le k\le n)\) \(a_i\)\(a_k\)的倍数,输出Yes,否则输出No。

【输入样例】

2
3
1 2 4
5
1 2 3 4 5

【输出样例】

Yes
No

【算法标签】

《洛谷 B4004 寻找倍数》 #数学# #枚举# #数组# #GESP# #2024#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N];
int main()
{int t;cin >> t;while (t--) {  //t组测试数据int n;cin >> n;  //每组n个数int x = 0;  //x存该组数中的最大值for (int i=1; i<=n; i++) {  //输入数据,找最大值cin >> a[i];x = max(x, a[i]);}int fl = 0;  //标志变量for (int i=1; i<=n; i++) {  //遍历数组元素if (x % a[i])  // 如果x不是a[i]的倍数fl = 1;  //改变标志变量的值}if (fl) cout << "No" << endl;else cout << "Yes" << endl;}  return 0;
}

【运行结果】

2 
3
1 2 4
Yes
5
1 2 3 4 5 
No

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1177516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试开机启动脚本镜像优化指南,让服务更快响应

测试开机启动脚本镜像优化指南&#xff0c;让服务更快响应 在部署基于 Linux 的定制化系统或容器镜像时&#xff0c;确保关键服务能够快速、可靠地随系统启动是提升整体可用性和用户体验的核心环节。本文围绕“测试开机启动脚本”这一镜像场景&#xff0c;深入解析现代 Linux …

MinerU2.5-1.2B环境部署:极低资源占用的配置指南

MinerU2.5-1.2B环境部署&#xff1a;极低资源占用的配置指南 1. 技术背景与应用场景 随着企业数字化转型的加速&#xff0c;非结构化文档&#xff08;如PDF、扫描件、PPT&#xff09;中的信息提取需求日益增长。传统OCR工具虽能识别文字&#xff0c;但在理解上下文、解析图表…

输入某餐厅的桌号,就餐人数,消费金额,计算人均消费,输出消费最高的桌号

1. 实际应用场景描述场景某连锁餐厅在高峰时段需要快速统计各桌的消费情况&#xff0c;并找出人均消费最高的桌号&#xff0c;以便&#xff1a;- 优化菜品推荐策略- 识别高价值客户群体- 进行精准营销痛点- 人工计算耗时且易出错- 高峰期数据量大&#xff0c;Excel处理效率低- …

Flutter 与开源鸿蒙(OpenHarmony)离线能力与数据同步架构设计:打造高可用跨端应用 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

通义千问3-4B模型解析:40亿参数如何实现30B级性能

通义千问3-4B模型解析&#xff1a;40亿参数如何实现30B级性能 1. 引言&#xff1a;小模型时代的性能跃迁 近年来&#xff0c;大模型的发展逐渐从“堆参数”转向“提效率”&#xff0c;在端侧部署、低延迟响应和长上下文理解等场景中&#xff0c;轻量级模型的价值日益凸显。20…

GESP认证C++编程真题解析 | 202406 四级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

一行命令实现脚本自启,@reboot用法详解

一行命令实现脚本自启&#xff0c;reboot用法详解 1. 引言&#xff1a;为什么需要开机自动运行脚本&#xff1f; 在实际的Linux系统运维和开发场景中&#xff0c;经常需要某些服务或脚本在系统启动时自动运行。例如&#xff1a; 启动一个后台监控程序自动加载AI模型进行推理…

能否修改默认参数?config文件位置与编辑方法指引

能否修改默认参数&#xff1f;config文件位置与编辑方法指引 1. 功能概述 本工具基于阿里达摩院 ModelScope 的 DCT-Net 模型&#xff0c;支持将真人照片转换为卡通风格。系统提供图形化界面&#xff08;WebUI&#xff09;进行操作&#xff0c;同时也支持通过配置文件自定义高…

IndexTTS-2-LLM应用实战:电话机器人语音系统

IndexTTS-2-LLM应用实战&#xff1a;电话机器人语音系统 1. 引言 随着人工智能技术的不断演进&#xff0c;语音合成&#xff08;Text-to-Speech, TTS&#xff09;在智能客服、虚拟助手、有声内容生成等场景中扮演着越来越重要的角色。传统的TTS系统虽然能够实现基本的文本转语…

Sambert与FastSpeech2对比:架构差异与部署成本分析教程

Sambert与FastSpeech2对比&#xff1a;架构差异与部署成本分析教程 1. 引言&#xff1a;语音合成技术选型的现实挑战 在当前AI语音应用快速发展的背景下&#xff0c;文本转语音&#xff08;TTS&#xff09;系统已成为智能客服、有声读物、虚拟助手等场景的核心组件。Sambert …

GRBL坐标系管理机制:多轴定位系统深度剖析

GRBL坐标系管理机制&#xff1a;多轴定位系统深度剖析在数控加工的世界里&#xff0c;“走刀准不准”往往不取决于电机有多猛&#xff0c;而在于——坐标系有没有对。你写了一段G代码&#xff0c;G0 X10 Y10&#xff0c;按下回车&#xff0c;主轴真的会精准地移动到你想要的位置…

DeepSeek-R1-Distill-Qwen-1.5B镜像部署测评:开箱即用体验报告

DeepSeek-R1-Distill-Qwen-1.5B镜像部署测评&#xff1a;开箱即用体验报告 1. 引言 随着大模型在边缘计算和轻量化部署场景中的需求日益增长&#xff0c;如何在有限算力条件下实现高性能推理成为工程落地的关键挑战。DeepSeek-R1-Distill-Qwen-1.5B作为一款基于知识蒸馏技术优…

为什么选Qwen2.5-0.5B做终端?轻量全功能部署解析

为什么选Qwen2.5-0.5B做终端&#xff1f;轻量全功能部署解析 1. 引言&#xff1a;边缘智能时代的小模型需求 随着AI应用从云端向终端设备迁移&#xff0c;对轻量化、低延迟、高能效的本地化推理需求日益增长。智能手机、树莓派、嵌入式设备等资源受限平台亟需一个既能运行复杂…

LCD1602显示模块工作原理解析:数据传输全过程

从零搞懂LCD1602&#xff1a;一次完整的字符显示是如何发生的&#xff1f;你有没有想过&#xff0c;当你在单片机上写下一行LCD_Display_String("Hello World");的时候&#xff0c;这块小小的蓝屏是怎么“听话”地把字母一个一个亮出来的&#xff1f;看似简单的操作背…

Qwen3-14B成本核算:GPU使用量精确计算方法

Qwen3-14B成本核算&#xff1a;GPU使用量精确计算方法 1. 引言&#xff1a;为何需要精准核算Qwen3-14B的GPU资源消耗 随着大模型在企业级应用和边缘部署中的普及&#xff0c;推理成本已成为决定技术选型的关键因素。通义千问3-14B&#xff08;Qwen3-14B&#xff09;作为2025年…

《了凡四训》与系统思考的框架

今日与上海明德学习型组织研究所的研究员胡老师学术交流中&#xff0c;提到了《了凡四训》。如果把这本书放进系统思考框架里看&#xff0c;它更像一套长期战略自我治理模型。 立命&#xff0c;是把未来的决定权从外部权威收回&#xff1b; 改过&#xff0c;是建立真实有效的负…

Qwen2.5-0.5B-Instruct部署手册:低成本AI解决方案

Qwen2.5-0.5B-Instruct部署手册&#xff1a;低成本AI解决方案 1. 引言 随着大模型技术的快速发展&#xff0c;轻量级模型在边缘计算和本地部署场景中的价值日益凸显。通义千问Qwen2.5-0.5B-Instruct作为阿里Qwen2.5系列中参数量最小的指令微调模型&#xff0c;凭借其仅约5亿参…

YOLOv9镜像使用避坑指南,少走弯路快上手

YOLOv9镜像使用避坑指南&#xff0c;少走弯路快上手 在深度学习目标检测领域&#xff0c;YOLO系列始终是工程落地的首选方案。随着YOLOv9的发布&#xff0c;其凭借“可编程梯度信息”&#xff08;Programmable Gradient Information&#xff09;机制&#xff0c;在保持高精度的…

NewBie-image-Exp0.1部署疑问:为何必须16GB以上显存?详解

NewBie-image-Exp0.1部署疑问&#xff1a;为何必须16GB以上显存&#xff1f;详解 1. 引言&#xff1a;从“开箱即用”到显存瓶颈的思考 NewBie-image-Exp0.1 是一个专为高质量动漫图像生成设计的预置镜像&#xff0c;集成了完整的环境依赖、修复后的源码以及3.5B参数量级的大…

详细介绍:Scikit-Learn 1.8引入 Array API,支持 PyTorch 与 CuPy 张量的原生 GPU 加速

详细介绍:Scikit-Learn 1.8引入 Array API,支持 PyTorch 与 CuPy 张量的原生 GPU 加速2026-01-18 08:38 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important;…