2025年12月GESPC++四级真题解析(含视频)

2025年12月GESPC++四级真题解析(含视频)

  视频讲解:GESP2025年12月四级C++真题讲解

一、单选题

第1题

解析:

答案C,创建指针 " int *p "。获取x变量的地址  " &x "

第2题

解析:

答案C,

int a = 5; //a变量存储5 int* p1 = &a; //创建指针p1 存储 变量a地址 int* p2 = p1; //创建指针p2 存储 指针p1的地址 (即p2的地址也是a变量的地址) *p2 = 10; //指针p2的地址存储 10 (即修改a变量为10)

第3题

解析:

答案B,下标从0开始,即2行3列 为 a[2-1][3-1] ,也就是a[1][2]

第4题

解析:

答案D,*(p+5) 就是a[0][0]往移动5个位置,即a[1][1]

第5题

解析:

答案B,

i循环为0 1;j循环为0 1 2;k循环为:0 1 i+j+k为偶数的情况有 i j k 0 0 0:a[0][0][0]=1 0 1 1:a[0][1][1]=4 0 2 0:a[0][2][0]=5 1 1 0:a[1][1][0]=9 1 0 1:a[1][0][1]=8 1 2 1:a[1][2][1]=12 累加和为:1+4+5+9+8+12=39

第6题

解析:

答案A,

第7题

解析:

答案C,

第8题

解析:

答案A,

第9题

解析:

答案B,

第10题

解析:

答案B,

A:不稳定,{3,‘D’}  和 {3,‘B’}的相对位置变了 C:可以判断,{3,‘D’}  和 {3,‘B’}相对位置已经改变了 D:不稳定,{3,‘D’}  和 {3,‘B’}的相对位置变了

第11题

解析:

答案B,

第12题

解析:

答案A,

第13题

解析:

答案B,嵌套循环都为n

第14题

解析:

答案D,

第15题

解析:

答案B,

二、判断题

第1题

解析:

答案√,

int x = 5; //x变量存储5 int *p = &x; //指针p指向x变量的地址 *p = *p + 3; //p指针地址的值= p指针地址的值+3=5+3=8

第2题

解析:

答案×,

struct name_struct{ string first_name;//姓氏 string last_name;//名字 }; struct student{ name_struct name;//性名 int age; };

第3题

解析:

答案√,

多维数组都是按照最高维度的顺序存储,例如a[5][5][5]: a[0][0][0] → a[0][0][1] → a[0][0][2] → a[0][0][3] → a[0][0][4] a[0][1][0] → a[0][1][1] → a[0][1][2] → a[0][1][3] → a[0][1][4] ... a[1][0][0] → a[1][0][1] → ... → a[1][4][4] 

第4题

解析:

答案√,引用传递会改变实参a的值

第5题

解析:

答案×,

int arr[5] = {1,2,3,4,5}; int* p1 =arr;//p1指向arr[0]的地址 int* p2 =arr+2;//p2指向arr[2]的地址 cout<<p2<<endl;//0x62fefc cout<<p1<<endl;//0x62fef4 //输出了2 //地址差: 0x62fefc - 0x62fef4 =8 //指针差:(地址数值差) / 单个元素的字节数 =8/4=2 cout<<p2-p1;

第6题

解析:

答案√,时间复杂度描述的是算法执行时间随输入规模增长的量级,而非精确的执行次数,所以循环n-1次的时间复杂度是O(n)

第7题

解析:

答案√,选择、希尔、快速、堆排序不稳定,其他都是稳定

第8题

解析:

答案×,是插入排序的思想

第9题

解析:

答案×,会调用“ return x*y ”的函数,只传递5,y就为默认值10,即5*10=50

第10题

解析:

答案√,fin会根据空格和换行分别给a b c d变量赋值,即a=10  b=20  c=30  d=40

三、编程题

第1题 [GESP202512 四级] 建造

题目描述

小 A 有一张 M 行 N 列的地形图,其中第 i 行第 j 列的数字 aij​ 代表坐标 (i,j) 的海拔高度。

停机坪为一个 3×3 的区域,且内部所有 9 个点的最大高度和最小高度之差不超过 H。

小 A 想请你计算出,在所有适合建造停机坪的区域中,区域内部 9 个点海拔之和最大是多少。

输入格式

第一行三个正整数 M,N,H,含义如题面所示。

之后 M 行,第 i 行包含 N 个整数 ai1​,ai2​,…,aiN​,代表坐标 (i,j) 的高度。

数据保证总存在一个适合建造停机坪的区域。

输出格式

输出一行,代表最大的海拔之和。

输入输出样例

输入 #1

5 5 3 5 5 5 5 5 5 1 5 1 5 5 5 5 5 5 5 2 5 2 5 3 5 5 5 2

输出 #1

40

说明/提示

数据范围

对于所有测试点,保证 1 ≤ M,N ≤

10^{3}

,1 ≤ H, aij ​≤

10^{5}

答案

#include <bits/stdc++.h> using namespace std; int a[1010][1010]; int main() { //1)填充数据 //1.1)确定矩阵大小m*n ,条件h int m,n,h; cin>>m>>n>>h; //1.2)填充二维数组 for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; } } //2)枚举 //2.1)枚举出所有右顶点坐标 int ans=0; for(int r_i=3;r_i<=m;r_i++){ for(int r_j=3;r_j<=n;r_j++){ //2.2)将3*3内的最大 最小找出来 ,计算总和 int maxx=INT_MIN,minn=INT_MAX,sum=0; for(int i=r_i-2;i<=r_i;i++){ for(int j=r_j-2;j<=r_j;j++){ maxx = max(maxx,a[i][j]); minn = min(minn,a[i][j]); sum+=a[i][j]; } } //2.3)判断最大-最小<=条件 if( maxx-minn<=h ){ //2.4)满足:找最大“总和” if( sum>ans ) ans=sum; } } } cout<<ans; } 

第2题 [GESP202512 四级] 优先购买

题目描述

小 A 有 M 元预算。商店有 N 个商品,每个商品有商品名 S、价格 P 和优先级 V 三种属性,其中 V 为正整数,且 V 越小代表商品的优先级越高。

小 A 的购物策略为:

  • 总是优先买优先级最高的东西;
  • 如果有多个最高优先级商品,购买价格最低的;
  • 如果有多个优先级最高且价格最低的商品,购买商品名字典序最小的。

小 A 想知道能购买哪些商品。

输入格式

第一行两个正整数 M,N,代表预算和商品数。

之后 N 行,每行一个商品,依次为 Si​ Pi​ Vi​,代表第 i 个商品的商品名、价格、优先级。

数据保证不存在两个名字相同的商品。

输出格式

按照字典序从小到大的顺序,输出所有购买商品的商品名。

输入输出样例

输入 #1

20 4 apple 6 8 bus 15 1 cab 1 10 water 4 8

输出 #1

bus cab water

说明/提示

数据范围

对于所有测试点,保证 1 ≤ ∣Si​∣ ≤ 10,1 ≤ M,Pi ​≤

10^{5}

,1 ≤ N ≤

10^{3}

,1 ≤ Vi ​≤ 10。商品名仅由小写字母组成且不存在两个相同的商品名。

答案

#include <bits/stdc++.h> using namespace std; struct goods{ string s; int p,v; }a[1010]; bool cmp(goods a,goods b){ if(a.v!=b.v) return a.v<b.v; if(a.p!=b.p) return a.p<b.p; return a.s<b.s; } bool cmp2(string a,string b){ return a<b; } int main() { //1)填充数据 //1.1)确定预算m 商品数量n int m,n; cin>>m>>n; //1.2)填充n个商品的信息 for(int i=1;i<=n;i++){ cin>>a[i].s>>a[i].p>>a[i].v; } //2)根据3规则排序 sort(a+1,a+n+1,cmp); //3)模拟购买过程 string ans[1010]; int ans_size=0; for(int i=1;i<=n;i++){ if(m>=a[i].p){ m-=a[i].p; ans_size++; ans[ans_size]=a[i].s; if(m==0) break; } } //4)根据购买好的商品排序 sort(ans+1,ans+ans_size+1,cmp2); //5)输出结果 for(int i=1;i<=ans_size;i++) cout<<ans[i]<<endl; } 

Read more

OpenClaw 完全指南:部署你的 7×24 小时开源 AI 助手

OpenClaw 完全指南:部署你的 7×24 小时开源 AI 助手

【个人主页:玄同765】 大语言模型(LLM)开发工程师|中国传媒大学·数字媒体技术(智能交互与游戏设计) 深耕领域:大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调 技术栈:Python / LangChain/RAG(Dify+Redis+Milvus)| SQL/NumPy | FastAPI+Docker ️ 工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案        「让AI交互更智能,让技术落地更高效」 欢迎技术探讨/项目合作! 关注我,解锁大模型与智能交互的无限可能! 📌 摘要:OpenClaw(原名 Clawdbot/Moltbot)是 2026 年 1 月爆火的开源 AI 助手项目,由 PSPDFKit 创始人

By Ne0inhk
Linux 系统下 Git 的详细安装步骤和基础设置指南

Linux 系统下 Git 的详细安装步骤和基础设置指南

Linux 系统下 Git 的详细安装步骤和基础设置指南—目录 * 一、安装 Git * 1. Debian/Ubuntu 系统 * 2. CentOS/RHEL 系统 * 3. Fedora 系统 * 4. Arch/Manjaro 系统 * 5. 其他方式:源码编译安装(适用于所有发行版) * 二、基础配置 * 1. 设置全局用户名和邮箱 * 2. 配置 SSH 密钥(用于 GitHub/GitLab 等) * 3. 配置 Git 别名(简化命令) * 4. 启用自动换行符转换(解决跨平台换行符问题) * 三、高级设置 * 1.

By Ne0inhk

OpenClaw 最新功能大揭秘!2026年最火开源AI Agent迎来史诗级升级,手机变身AI终端不是梦

OpenClaw 最新功能大揭秘!2026年最火开源AI Agent迎来史诗级升级,手机变身AI终端不是梦 大家好,我是Maynor。最近开源社区彻底炸锅了——OpenClaw(前身Clawdbot/Moltbot)又一次刷屏!这个能真正“干活”的本地AI助手,在3月2日刚刚发布v2026.3.1版本,紧接着2月底的v2026.2.26也是里程碑式更新。 从外部密钥管理、线程绑定Agent,到Android深度集成、WebSocket优先传输……OpenClaw正在把“AI常驻员工”从概念变成现实。 今天这篇图文并茂的干货,带你一口气看懂最新功能、安装上手和实战价值!

By Ne0inhk
DevOps、Git 和 GitLab

DevOps、Git 和 GitLab

一、DevOps  DevOps 流水线模型 DevOps 涉及的四大相关平台 项目管理:如:Jira,禅道 代码托管:如:Gitlab,SVN 持续交付:如:Jenkins,Gitlab 运维平台:如:腾讯蓝鲸,Spug等 二、持续集成、持续交付和持续部署 CICD 持续交付:目标是拥有一个可随时部署到生产环境的代码库。 持续部署:可以自动将应用发布到生产环境。 (一)CICD 流程过程和架构 开发人员自行手动上传构建并部署代码 早期项目,没有专业的运维人员,运维的工作由开发兼职完成,项目发布很不专业,很容易出错,也是最原始的方式 开发人员先将代码发给运维,再由运维人员手动上传至生产环境 专业的运维人员完成应用的部署,每次项目发布都由运维人员一步一步手动实现,效率低下且容易出错 运维利用脚本和自动化运维工具实现部署 由运维人员编写Shell,Python等脚本或利用自动化运维工具,如Ansible等实现半自动化应用部署,效率很高,

By Ne0inhk