当前位置: 首页 > news >正文

2025年06月GESPC++三级真题解析(含视频)

  视频讲解:GESP2025年6月三级C++真题讲解

一、单选题

第1题

解析:

答案A原码最小的整数是1111 1111(-127),若是补码,则最小的整数是-128,因为1000 0000是-128的补码

第2题

解析:

答案B,反码0000 0000或1111 1111都表达0

第3题

解析:

答案A

补码 1011  1011,减一变反码

反码 1011 1010,除了符号位,其他取反变原码

原码 1100 0101,转二进制-(1*2^{6}+1*2^{2}+1*2^{0})= -(64+4+1)= -69

第4题

解析:

答案A

符号位为0,原码和补码相同,即原码为0000 1010

第5题

解析:

答案A

转十进制

=1*2^{3} + 1*2^{2} + 0*2^{1} + 1*2^{0} + 1*2^{-1} + 0*2^{-2} + 1*2^{-3}

=8+4+0+1+0.5+0+0.125

=13.625

第6题

解析:

答案B

   0 1 1 1 1 1 1 1  (+127,符号位是第7位:0)
+  0 0 0 0 0 0 0 1  (+1,符号位是第7位:0)
-----------------------------1 0 0 0 0 0 0 0
最高位第7位的进位为0,次高位第6位的进位为1,进位不同,发生了“上位溢出”

第7题

解析:

答案A

八进制转十进制

3*8^{1}+5*8^{0}+6*8^{-1}

=3*8+5+1+6*0.125

=29.75

第8题

解析:

答案B,|运算,只要其中一个为1,结果为1

 1010
|1100
-------1110

第9题

解析:

答案A

第10题

解析:

答案D

A写法有误,应为:int* array = new int[5];

B没有这种写法

C写法有误,应为:int[] array = {1,2,3,4,5};

D正确

第11题

解析:

答案B

假设i:123

i/10将十位变成个位   123/10=12

i%10获取当前个位     12%10=2

即(i/10)%10

第12题

解析:

答案B

_______________  // 累加当前落下高度   即 distance += height;height /= 2;  //跳跃高度减半
distance  += height; //累加 “减半跳跃高度”

第13题

解析:

答案D

GBK编码:中文占2字节,其他占1字节,也就是 (2中文)*2+(4字母)*1字节=8字节

UTF-8编码:中文占3字节,其他占1字节,也就是 (2中文)*3+(4字母)*1字节=10字节

第14题

解析:

答案C

s.rfind(“e”)表示在s字符串,反向寻找第一次出现字符串“e”的位置

G e s p   T e s t
0 1 2 3 4 5 6 7 8
反向寻找第一个e在位置6

第15题

解析:

答案C

4个英文字符+2个中文字符=6字符

二、判断题

第1题

解析:

答案×,比较的是内容,而不是地址

第2题

解析:

答案√,substr(起点,数量)

第3题

解析:

答案√×,浮点数不支持位运算  (>>,<<,^,&,|,~)

第4题

解析:

答案√,括号不影响字符串的判断

第5题

解析:

答案×,set内的元素不能通过地址修改,只能通过内置函数

#include <iostream>
#include <set>
using namespace std;int main() {set<int> s = {1, 2, 3};// 1. 找到并删除旧元素int old_val = 2;s.erase(old_val);  // 删除元素 2// 2. 插入新元素int new_val = 10;s.insert(new_val);  // 插入元素 10// 遍历结果:1 3 10(保持有序)for (int num : s) {cout << num << " ";}return 0;
}

第6题

解析:

答案√

假设x:111(十进制7)111
&001
---------001
通过例子可知,只要第1位二进制数是1,代表是奇数

第7题

解析:

答案×,长度不足会获取到最后一位就停下来

string s="123456789";
cout<<s.substr(2,10);  //结果为:3456789

第8题

解析:

答案√,以前我遇到过一道题“完美立方”,其中就会出现进度丢失的问题

cout<<pow(6,3)<<endl;   //216
cout<<pow(3,3)<<endl;   //27
cout<<pow(4,3)<<endl;   //64
cout<<pow(5,3)<<endl;   //125
cout<<pow(3,3)+pow(4,3)+pow(5,3)<<endl;  //216
cout<<(pow(6,3)==pow(3,3)+pow(4,3)+pow(5,3));  //0

第9题

解析:

答案×,可以从1枚举到10,但是不能从1.0001... 枚举到 10.000..,会造成枚举范围模糊

第10题

解析:

答案√

#include <bits/stdc++.h>
using namespace std;
double f(){return 1;
}
int main(){cout<<f()/2;//0.5   证明f()返回浮点型
}

三、编程题

第1题 [GESP202506 三级] 奇偶校验

题目描述

数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。

给定 n 个非负整数 c1​,c2​,…,cn​ 代表所传输的数据,它们的校验码取决于这些整数在二进制下 1 的数量之和的奇偶性。如果这些整数在二进制下共有奇数个 1,那么校验码为 1;否则校验码为 0。你能求出这些整数的校验码吗?

输入格式

第一行,一个正整数 n,表示所传输的数据量。

第二行,n 个非负整数 c1​,c2​,…,cn​,表示所传输的数据。

输出格式

输出一行,两个整数,以一个空格分隔:

第一个整数表示 c1​,c2​,…,cn​ 在二进制下 1 的总数量;

第二个整数表示校验码(0 或 1)。

输入输出样例

输入 #1

4
71 69 83 80

输出 #1

13 1

输入 #2

6
1 2 4 8 16 32

输出 #2

6 0

说明/提示

对于所有测试点,保证 1≤n≤100,0≤ci​≤255。

答案

#include <bits/stdc++.h>
using namespace std;
//函数实现“二进制下1的数量” 
int tenTotwo(int x){int sum_1=0;//1的数量 //转换二进制 while(x){if(x%2==1){sum_1++;//+1}x/=2;}return sum_1;//返回1的数量 
}
int main(){//1)确定数量量nint n;cin>>n;//2)填充n个数据int ans=0; for(int i=1;i<=n;i++){int temp;cin>>temp;//3)函数计算当前1数量ans+=tenTotwo(temp); } //4)输出1的数量,数量是否为奇数cout<<ans<<" "<<(ans%2==1); 
}

第2题 [GESP202506 三级] 分糖果

题目描述

有 n 位小朋友排成一队等待老师分糖果。第 i 位小朋友想要至少 ai​ 颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。

老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?

输入格式

第一行,一个正整数 n,表示小朋友的人数。

第二行,n 个正整数 a1​,a2​,…,an​,依次表示每位小朋友至少需要的糖果数量。

输出格式

输出一行,一个整数,表示最少需要准备的糖果数量。

输入输出样例

输入 #1

4
1 4 3 3

输出 #1

16

输入 #2

15
314 15926 53589793 238462643 383279502 8 8 4 1 9 7 1 6 9 3

输出 #2

4508143253

说明/提示

对于所有测试点,保证 1≤n≤1000,1≤ai​≤10^{9}

答案

#include <bits/stdc++.h>
using namespace std;
int main(){//1)确定小朋友数量nint n;cin>>n;//2)填充每个小朋友需求long long after_max=0,ans=0;for(int i=1;i<=n;i++){long long temp;cin>>temp;//3)计算真正的需求if(temp<after_max) temp=after_max+1;after_max=temp;//更新最大值 //4)累加“真需求”ans+=temp;}//5)输出结果cout<<ans; 
}

http://www.dtcms.com/a/359193.html

相关文章:

  • 【小宁学习日记5 PCB】电路定理
  • Unity游戏打包——GooglePlay自动传包
  • DFS 回溯 【各种题型+对应LeetCode习题练习】
  • 【多项式】快速莫比乌斯变换(FMT)
  • CCS自定义函数.h与.c问题解决办法
  • Android15适配16kb
  • 计算机毕设项目 基于Python与机器学习的B站视频热度分析与预测系统 基于随机森林算法的B站视频内容热度预测系统
  • Robolectric拿到当前的Activity
  • 轻量化模型-知识蒸馏1
  • Wheat Gene ID Convert Tool 小麦中国春不同参考基因组GeneID转换在线工具
  • 2025年外贸服装跟单管理软件TOP3推荐榜单
  • 手动安装的node到nvm吧版本管理的过程。
  • 基于Docker部署的Teable应用
  • [特殊字符]️ STL 容器快速参考手册
  • 海盗王64位dx9客户端修改篇之三
  • 【有序集合 有序映射 懒删除堆】 3510. 移除最小数对使数组有序 II|2608
  • 9. 函数和匿名函数(一)
  • enumerate 和for in搭配使用
  • 接雨水,leetCode热题100,C++实现
  • 【随笔】【Debian】【ArchLinux】基于Debian和ArchLinux的ISO镜像和虚拟机VM的系统镜像获取安装
  • C++的迭代器和指针的区别
  • 「日拱一码」066 深度学习——Transformer
  • Flutter MVVM+provider的基本示例
  • Qt中的锁和条件变量和信号量
  • Science:机器学习模型进行遗传变异外显率预测
  • 线段树相关算法题(5)
  • 【大语言模型 30】指令微调数据工程:高质量数据集构建
  • audioLDM模型代码阅读(二)——HiFi-GAN模型代码分析
  • 【光照】[光照模型]发展里程碑时间线
  • C++ 高并发内存池项目——无锁化设计、TLS 线程隔离与内存碎片优化