2025年03月GESPC++三级真题解析(含视频)
“只有”太绝对了,例如条件 a<=b&&b<=c&& a + b >c ,也可以判断三角形。maxIndex初始值为0,表示“假设索引0是最大值”,所以需要和后面一一比较,找出最大值索引。,(2025)10 转为二进制(111 1110 1001),共有8个1,确实偶数。对于所有测试点,1≤n≤100,每个单词的长度不超过 30,且仅由大小写字母组成。,oct(八进制输出),dec(十进制输出),
视频讲解:GESP2025年3月三级C++真题讲解
一、单选题
第1题

解析:
答案D,
string s="012345679"
10字符以长度3分开
012 345 678 9
长度不足,用"="补充
012 345 678 9==
每个3字节变4字节,4*4=16字节
第2题

解析:
答案B,
A选项:0xC0 0x80
转为二进制 1100 0000 ,1000 0000
符合UTF-8“二字节规则”110x xxxx 10xx xxxx,但是动态位都为0,不符合UTF-8压缩初衷
B选项:0xF0 0x90 0x80 0x80
转为二进制 1111 0000 ,1001 0000 ,1000 0000,1000 0000
符合UTF-8“四字节规则”1111 0xxx,10xx xxxx,10xx xxxx,10xx xxxx,且动态位不都为0
C选项:0x80 0x80 0x80
转为二进制 1000 0000 ,1000 0000 ,1000 0000
不符合UTF-8“三字节规则”1110 xxxx,10xx xxxx,10xx xxxx
C选项:0xFF 0xFE 0xFD
转为二进制 1111 1111 ,1111 1110 ,1111 1101
不符合UTF-8“三字节规则”1110 xxxx,10xx xxxx,10xx xxxx
第3题

解析:
答案A,
-5(八进制) = -5(十进制) = 1000 0101(二进制)
第4题

解析:
答案A,
第1步)111转二进制
111%2=1
55%2=1
27%2=1
13%2=1
6%2=0
3%2=1
1%2=1
整数二进制为:110 1111
第2步)0.111转二进制
0.111*2=0.222 获取整数0
0.222*2=0.444 获取整数0
0.444*2=0.888 获取整数0
0.888*2=1.776 获取整数1
0.776*2=1.552 获取整数1
0.552*2=1.104 获取整数1
...
小数二进制位:0001 11???
第5题

解析:
答案B,二进制只能进行加法运算,有了补码可实现加法 模拟 “减法”
第6题

解析:
答案A,1000 0000 表示-128补码,0111 1111表示127补码
第7题

解析:
答案C,
5的原码
0000 0000,0000 0000,0000 0000,0000 0101
int 存储-5,以32位补码的形式
1111 1111,1111 1111,1111 1111,1111 1011
unsigned无符号存储-5
2^(32)-5=4294967296−5=4294967291
第8题

解析:
答案A,oct(八进制输出),dec(十进制输出),hex(十六进制输出)
第9题

解析:
答案C,hex代表输出十六进制
第10题

解析:
答案D,
进制的前缀表达方式:
0b(二进制),0(八进制),0x(十六进制)
^表示按位异或运算
第11题

解析:
答案D,
maxIndex初始值为0,表示“假设索引0是最大值”,所以需要和后面一一比较,找出最大值索引
即 arr[i] > arr[maxIndex]
第12题

解析:
答案D,
横行处想表达:偶数时,right就后移,且不和left冲突
第13题

解析:
答案B,replace(起点,数量,替换的字符串)
第14题

解析:
答案D,
str.insert(5,"World"); //字符串改变str="HelloWorldc++"
str.substr(5,5); //从下标5开始,获取5个字符,即 "World"
第15题

解析:
答案C,a%9==0 表达“9的倍数” , a%8!=0 表达 “不是8的倍数”
二、判断题
第1题

解析:
答案×,“只有”太绝对了,例如条件 a<=b&&b<=c && a + b >c ,也可以判断三角形
第2题

解析:
答案√,x为奇数时,x&1的结果为1;x为偶数时,x&1的结果为0
第3题

解析:
答案√,记住口诀“ 4闰 100不闰 400再闰 ”
第4题

解析:
答案√,最小公倍数即可判断同时整除
第5题

解析:
答案√,
就是二进制表达的原理
例如4为同学
a b c d
1 1 0 1
----------
1表示参加,0表示不参加,即能表达16种
第6题

解析:
答案√,(2025)10 转为二进制 (111 1110 1001),共有8个1,确实偶数
第7题

解析:
答案√,n/2求商 , n%2求余数,n/=2不停地除以2
第8题

解析:
答案√,验算结果如下
10(10)+11(10)=21(10)
21转13进制
21/13=1...8
8/13=0..1
即18
第9题

解析:
答案×,表述有错,k进制不再有百位的概念,应“第3权位值为k²”
第10题

解析:
答案×,计算结果不同
C×+C×
+F×
=12×361+12×19+15×1=4332+228+15=4575
2×+1×
+A×
+C×
=2×2197+1×169+10×13+12×1=4394+169+130+12=4705
三、编程题
第1题 [GESP202503 三级] 2025
题目描述
小 A 有一个整数 x,他想找到最小的正整数 y 使得下式成立:
(x and y)+(x or y)=2025
其中 and 表示二进制按位与运算,or 表示二进制按位或运算。如果不存在满足条件的 y,则输出 −1。
输入格式
一行,一个整数 x。
输出格式
一行,一个整数,若满足条件的 y 存在则输出 y,否则输出 −1。
输入输出样例
输入 #1
1025
输出 #1
1000
说明/提示
对于所有测试点,保证 0≤x<2025。
(x and y)+(x or y)=2025
其中:
- and 表示按位与运算,运算符为 &。
- or 表示按位或运算,运算符为 ∣。
答案
#include<iostream>
using namespace std;
int main(){
//1)确定x
int x;
cin>>x;
// (x&y)+(x|y) 等价于 x+y
//2)得出y
cout<<2025-x;
}
第2题 [GESP202503 三级] 词频统计
题目描述
在文本处理中,统计单词出现的频率是一个常见的任务。现在,给定 n 个单词,你需要找出其中出现次数最多的单词。在本题中,忽略单词中字母的大小写(即 Apple、apple、APPLE、aPPle 等均视为同一个单词)。
请你编写一个程序,输入 n 个单词,输出其中出现次数最多的单词。
输入格式
第一行,一个整数 n,表示单词的个数;
接下来 n 行,每行包含一个单词,单词由大小写英文字母组成。
输入保证,出现次数最多的单词只会有一个。
输出格式
输出一行,包含出现次数最多的单词(输出单词为小写形式)。
输入输出样例
输入 #1
6
Apple
banana
apple
Orange
banana
apple
输出 #1
apple
说明/提示
对于所有测试点,1≤n≤100,每个单词的长度不超过 30,且仅由大小写字母组成。
答案
#include<iostream>
#include<map>
using namespace std;
int main(){
//1)确定单词数量n
int n;
cin>>n;
//2)填充每个单词s
map<string,int> dict;
int maxx=0;
string ans_s="";
for(int i=1;i<=n;i++){
string s;
cin>>s;
//3)当前s单词全部转为小写
for(int j=0;j<s.size();j++){
if(s[j]>='A'&&s[j]<='Z'){
s[j]+=32;
}
}
//4) s单词出现次数+1
dict[s]++;
//5)比较找出最大值
if(dict[s]>maxx){
maxx= dict[s];
ans_s=s;
}
}
//6)输出结果
cout<<ans_s;
}
更多推荐



所有评论(0)