2024年9月 GESP C++ 3级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
下列代码中,输出结果是( )
#include<iostream>
using namespace std;
int main()
{
double a=0.9;
double b=1.0;
if(((b-a)==0.1))
{
cout<<"Equal"<<endl;
}
else
{
cout<<"Not equal"<<endl;
}
}
关于计算机中的编码,下列说法中正确的是()
$8$ 进制数 $3703$ 转换成 $16$ 进制数是()
$0.8125$ 变成二进制是( )。
下面说法正确的是( )
下列说法正确的是()
下列代码实现的是( )
void Swap(int &a, int &b) {
if (a != b) {
a ^= b;
b ^= a;
a ^= b;
}
}
$a$ & ~$1$ 运算实现的是( )。
$a = 1010\ 1110$,a << 2,下面关于这个说法正确的是( )。
下列程序中,result 和 result2 输出分别是( )
long a = 123;
int b = 1;
long result = a & b;
cout << result << endl;
long a2 = -123;
unsigned int b2 = -1;
long result2 = a2 & b2;
cout << result2 << endl;
陈 A 歹种植一批农作物,第一天需要浇水一次,随后的两天(第 2、第 3 天),每天需要浇水 2 次,再随后的 3 天(第 4、第 5、第 6 天),需要每天浇水 3 次,这样持续下去,随后的 $n$ 天,每天需要浇水 $n$ 次。请问在 100 天里,总共浇了多少次水( )
关于一维数组,下列程序能够正确执行的是( )。
下面的程序中,会输出( )。
int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<a[10]<<endl;
有 $A$ $B$ $C$ $D$ $4$ 个人,其中一个是小偷,每个人说一句话,只有小偷说的是假话,其中 $A$ 说:不是我。$B$ 说:是 $C$ 。$C$ 说:是 $D$ 。$D$ 说:$C$ 瞎说,请问谁是小偷( )。
下列程序输出的是()
string str = "Hello,CHAD";
cout << str.find("A") << '\n';
判 判断题(共 10 题,每题 2 分)
$+1$ 和 $-1$ 的原码进行 $1 + (-1)$ 计算的结果是 $-2$。( )
~1 的输出值是 $-2$。( )
~1 = 1111 1110。( )
取 $X$ 的低四位,可以用 $Y = 0000\ 1111$,用 X & Y 获取 $X$ 的低四位。( )
下列程序输出的是 A。( )
char x=65;
x++;
cout<<x++<<endl;
下列程序输出的是 $3$。( )
string str="CHADai";
size_t pos = str.find('D');
cout<<pos<<endl;
下列程序将输出 $1$。( )
int a[10]={1};
cout<<a[1]<<endl;
下列程序将输出 A。( )
int a=65;
cout<<(char)a<<endl;
16 进制数 AB,表示成 2 进制数是 10101011。( )
def(十六进制) = 103231(五进制)。( )
编 编程操作题(共 2 题,共 50 分)
试题名称:平衡序列
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨有一个包含 $n$ 个正整数的序列 $a$。他认为一个序列是平衡的当且仅当存在一个正整数 $i$($1 \leq i < n$)使得序列第 $1$ 到第 $i$ 个数字的总和等于第 $i + 1$ 到第 $n$ 个数字的总和。
小杨想请你判断序列 $a$ 是否是平衡的。
输入格式
本题单个测试点内包含多组测试数据。第一行是一个正整数 $t$,表示测试用例组数。
接下来是 $t$ 组测试用例。对每组测试用例,一共两行。
第一行包含一个正整数 $n$,表示序列长度。
第二行包含 $n$ 个正整数,代表序列 $a$。
输出格式
对每组测试用例输出一行一个字符串。如果 $a$ 是平衡的,输出 $\texttt{Yes}$,否则输出 $\texttt{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 \leq t \leq 100$,$1 \leq n, a_i \leq 10000$。
试题名称:回文拼接
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如,$\texttt{aabaa}$ 和 $\texttt{ccddcc}$ 都是回文串,但 $\texttt{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$ 个字符串由回文串 $\texttt{aa}$ 和 $\texttt{bbb}$ 前后拼接而成,并且两个回文串长度都至少为 $2$。
数据规模与约定
对全部的测试数据,保证 $1 \leq n \leq 10$,且每个字符串的长度均不超过 $100$。