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

2024年9月GESPC++三级真题解析(含视频)

  视频讲解:GESP2024年9月三级C++真题讲解

一、单选题

第1题

解析:

答案B,会有精度缺失

double a=0.9;
double b=1.0;
//输出为0.09999999999999997780
cout<<fixed<<setprecision(20)<<b-a<<endl;

第2题

解析:

答案C

A选项:负数的原码、反码、补码形式就不一样
B选项:符号位+  绝对值(真值)才对
D选项:-1的反码 应该是 [1111 1110]

第3题

解析:

答案A

第1步:
3703(8进制) 转2进制:
3   7   0   3
011 111 000 011
即二进制为:011111000011
第2步:
转16进制
0111 1100 0011
7    C    3

第4题

解析:

答案D

0.8125*2=1.625  取整数1
0.625*2=1.250  取整数1
0.250*2=0.5  取整数0
0.5*2=1.0 取整数1
二进制位0.1101

第5题

解析:

答案C

C选项:
23(十进制)=10111(二进制)
10(十进制)=1010(二进制)
进行 | 运算10111
| 1010
-------11111
即31(十进制)

第6题

解析:

答案B

2>>2为:10(二进制)右1位,结果为0

1>>1为:1(二进制)右1位,结果为0

所以 (2>>2)==(1>>1)

第7题

解析:

答案C

a^=b; 找出二进制差异

b^=a;根据差异计算出原a的值

a^=b; 根据差异计算出原b的值

第8题

解析:

答案C

~1 对应二进制  1111 1110

最低位做“&”运算 必为0

第9题

解析:

答案A

第10题

解析:

答案D

1)计算result
1.1)a、b转为二进制
a的123,转二进制为:0111 1011
b的1,转二进制为:0000 0001
1.2)a&b运算0111 1011
& 0000 0001
---------------0000 0001
所以result输出为1
2)计算result2
2.1)a2、b2转为二进制
a2的-123,转二进制为:0111 1011
b2的1,转二进制为:1111 1111,1111 1111,11111 1111,1111 1111   因为unsigned,以补码形式存储
2.2)a2&b2运算(只算前8位,后面都为0不用管)0111 1011
& 1111 1111
---------------0111 1011
所以result2输出为-123

第11题

解析:

答案D

1)计算什么时候到达100,发现累加到13,为91,还需+9才能到100

1+2+3+4+5+6+7+8+9+10+11+12+13+9=100

2)计算总浇水次数

1*1+2*2+3*3+4*4+5*5+6*6+7*7+8*8+9*9*+11*11+12*12+13*13+9*14

=1+4+9+16+25+36+49+64+81+121+144+169+126

=945

第12题

解析:

答案C

A选项:a数组内没存放数据,且i为10时,a[10]越界

B选项:i为10时,a[10]越界

D选项:i为10时,a[10]越界

第13题

解析:

答案D,a[10]没有存放数据,数据是随机的

第14题

解析:

答案C

枚举解决

假设A是小偷,和B说C是小偷冲突

假设B是小偷,和C说D是小偷冲突

假设C是小偷,没有冲突

假设D是小偷,因D小偷,所以是D说假话,即D说C是小偷,有冲突

第15题

解析:

答案B

字符:H e l l o , C H A D
下标:0 1 2 3 4 5 6 7 8 9字符‘A’下标为8

二、判断题

第1题

解析:

答案√

  0000 0001
+ 1000 0001
----------------1000 0010
对应十进制就是-2

第2题

解析:

答案√

1的补码:0000 0001
~1的结果:1111 1110
补码:1111 1110  进行-1,转换反码
反码:1111 1101 进行取反,转换原码
原码:1000 0010  就是-2

第3题

解析:

答案√

1的补码:0000 0001
~1的结果:1111 1110

第4题

解析:

答案√

Y的低4位都为1,与X进行&运算,只要X低4为有1,就会被获取到

第5题

解析:

答案×

char x=65;  //x为字符 ‘A’
x++;//x为字符 ‘B’
cout<<x++<<endl; //先输出字符‘B’,x再进行++

第6题

解析:

答案√

字符:C H A D a i
下标:0 1 2 3 4 5 
‘D’的下标为4
size_t的意思只能保存0或正整数,即长度

第7题

解析:

答案×

a[10]={1} 是给a[0]赋值为1

a[1]里面没有赋值

第8题

解析:

答案√

ASCII 65对应的 就是 字符‘A’

第9题

解析:

答案√

A(16)=1010(2)

B(16)=1011(2)

第10题

解析:

答案×

def 转十进制
=d*16^2 + e*16^1 + f*16^0
=13*16*16 + 14*16 + 15*1
=3328 + 224 + 15
=3567103231 转五进制
=1*5^5 + 0*5^4 + 3*5^3 + 2*5^2 + 3*5^1 + 1*5^0
=5*5*5*5*5 + 0 + 3*5*5*5 + 2*5*5 + 3*5 + 1
=3125 + 375 + 50 + 15 +1
=3566

三、编程题

第1题 [GESP202409 三级] 平衡序列

题目描述

小杨有一个包含 n 个正整数的序列 a。他认为一个序列是平衡的当且仅当存在一个正整数 i(1≤i<n)使得序列第 1 到第 i 个数字的总和等于第 i+1 到第 n 个数字的总和。

小杨想请你判断序列 a 是否是平衡的。

输入格式

本题单个测试点内包含多组测试数据。第一行是一个正整数 t,表示测试用例组数。

接下来是 t 组测试用例。对每组测试用例,一共两行。

第一行包含一个正整数 n,表示序列长度。
第二行包含 n 个正整数,代表序列 a。

输出格式

对每组测试用例输出一行一个字符串。如果 a 是平衡的,输出 Yes,否则输出 No。

输入输出样例

输入 #1

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

输出 #1

Yes
Yes
No

说明/提示

样例 1 解释

  • 对第一组测试用例,令 i=2,有 1+2=3,因此序列是平衡的。
  • 对第二组测试用例,令 i=2,有 2+3=1+4,因此序列是平衡的。
  • 对第三组测试用例,不存在满足要求的 i。

数据规模与约定

对全部的测试数据,保证 1≤t≤100,1≤n,ai​≤10000。

答案

#include<bits/stdc++.h>
using namespace std;
int main(){//1)确定多少组数据tint t;cin>>t; //2)填充t组数据for(int i=1;i<=t;i++){//2.1)确定长度nint n;cin>>n;//2.2)填充每个aint prefix_sum[10010]={};map<int,bool> flag; for(int j=1;j<=n;j++){int a;cin>>a;//3)填充同时,计算前缀和prefix_sum[j]=prefix_sum[j-1]+a;//4.1)标记当前 “ 前缀和”出现flag[  prefix_sum[j] ] =true;}//4)根据“前缀和”判断(众多“前缀和”中,有没有一半)if(   prefix_sum[n]%2==0 &&  flag[ prefix_sum[n]/2 ]  ){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}	
}

第2题 [GESP202409 三级] 回文拼接

题目描述

一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如,aabaa 和 ccddcc都是回文串,但 abcd 不是。

小杨有 n 个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为 2 的回文串前后拼接而成。

输入格式

第一行包含一个正整数 n,代表字符串数量。
接下来 n 行,每行一个仅包含小写字母的字符串。

输出格式

对于每个字符串输出一行,如果该字符串由两个长度至少为 2 的回文串前后拼接而成则输出 Yes,否则输出 No。

输入输出样例

输入 #1

4
abcd
aabbb
aaac
abcdd

输出 #1

No
Yes
No
No

说明/提示

样例 1 解释

对于第 1,3,4 个字符串,都不是由两个长度至少为 2 的回文串前后拼接而成。 第 2 个字符串由回文串 aa 和 bbb 前后拼接而成,并且两个回文串长度都至少为 2。

数据规模与约定

对全部的测试数据,保证 1≤n≤10,且每个字符串的长度均不超过 100。

答案

#include<bits/stdc++.h>
using namespace std;
bool isHui(string s){string r_s="";int len=s.size();for(int i=len-1;i>=0;i--){r_s+=s[i];}return r_s==s;
}
int main(){//1)确定字符串数量nint n;cin>>n;//2)填充每个字符串for(int i=1;i<=n;i++){string s;cin>>s;//3)划分所有情况bool flag=false;//假设不行 int len= s.size();for(int j=2;j<=len-2;j++){string left=s.substr(0,j);string right=s.substr(j);//4)判断 左右两边是否为 “回文”if( isHui(left) && isHui(right) ){flag=true;break; }}//5)根据flag判断if(flag) cout<<"Yes"<<endl;else  cout<<"No"<<endl;}
}

http://www.xdnf.cn/news/20296.html

相关文章:

  • 核心高并发复杂接口重构方案
  • 9.5 IO-线程day5
  • SQL Sever2022安装教程
  • LKT4202UGM重新定义物联网设备安全标准
  • python 自动化在web领域应用
  • Karmada v1.15 版本发布
  • 如何选择文件夹然后用vscode直接打开
  • 23种设计模式——装饰器模式(Decorator Pattern)详解
  • Meta AI眼镜Hypernova量产临近,微美全息构筑护城河引领人机交互变革浪潮
  • Ubuntu 22.0安装中文输入法
  • 分布式事务的Java实践
  • 面试官问:你如何提高工作效率?
  • 专项智能练习(计算机动画基础)
  • java log相关:Log4J、Log4J2、LogBack,SLF4J
  • 安防芯片ISP白平衡统计数据如何提升场景适应性?
  • 微信小程序如何进行分包处理?
  • 源雀SCRM开源:企微文件防泄密
  • 2025职教技能大赛汽车制造与维修赛道速递-产教融合实战亮剑​
  • 【详细指导】多文档界面(MDI)的应用程序-图像处理
  • 第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
  • Unity3D URP线性空间UI透明度混合解决方案
  • linux离线安装elasticsearch8.19.3
  • 3.4_第二行之_ipipe_init_early()
  • 通用虚拟示教器:让机器人教学像玩游戏一样简单
  • 从音频到文本实现高精度离线语音识别
  • 【FastDDS】概述 Library Overview
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • finalize() 方法介绍
  • unity 接入火山引擎API,包括即梦AI
  • flutter-使用fluttertoast制作丰富的高颜值toast