2024年3月 GESP C++ 3级
2024年3月 GESP C++ 3级认证考试真题(含编程操作题部分)
// questions
题目预览
整数 −5-5−5 的 16 位补码表示是( )。
1005
1006
FFFA
FFFB
如果 161616 位短整数 −2-2−2 的二进制是 "FFFE",则短整数 −4-4−4 的十六进制是( )。
FF04
FFFA
FFFC
FFFH
下面 C++ 代码执行后的输出是( )。
int main()
{
cout << (3|16) << endl;
cout << endl;
return 0;
}
333
161616
191919
484848
定义整数 int x = -5,则执行 C++ 代码 cout << (x == (x << 1 >> 1)) 输出是( )。
000
111
−5-5−5
555
已知字符 '0' 的 ASCII 编码的十进制表示为 484848,则执行下面 C++ 代码后,输出是( )。
int main()
{
string s="316";
int n=s.length();
int x=0;
for(int i = 0; i < n; i++)
x += s[i];
cout << x << endl;
cout << endl;
return 0;
}
101010
585858
154154154
316316316
下面 C++ 代码执行后数组中大于 000 的数的特征是( )。
int main()
{
int a[20], i;
for (i = 0; i < 20; i++)
a[i] = i + 1;
for (int i = 0; i < 20; i++)
if ((a[i] % 2) && (a[i] % 3))
a[i] = 0;
for (i = 0; i < 20; i++)
if (a[i])
cout << a[i] << " ";
cout << endl;
return 0;
}
222 的倍数
333 的倍数
能被 222 或 333 整除的数
能被 222 和 333 同时整除的数
执行下面 C++ 代码后输出的第一个数是( )。
int main()
{
int a[20], i;
for(i = 0; i < 20; i++)
a[i] = i+1;
for( ; i > 0; i--)
cout << a[i-1] << " ";
cout << endl;
return 0;
}
202020
191919
111
不确定
在下列代码的横线处填写( ),可以使得输出是 GESP IS INTERESTING。
int main()
{
string str="gEsP is Interesting";
int x = str.length();
for(int i = 0; i < x; i++)
if ((str[i]>='a') && (str[i]<='z'))
________________________;
cout << str << endl;
cout << endl;
return 0;
}
str[i] += 'a' - 'A'
str[i] += 20
str[i] += 'A' - 'a'
无法实现
假设英文句子由若干词构成。下面 C++ 代码统计输出的词数是( )。
int main()
{
string str="gEsP is Interesting !";
int x = str.length();
int nwords = 0;
for(int i = 0; i < x; i++)
if (str[i]==' '){
nwords++;
while(str[++i]==' ') ;
}
cout << nwords << endl;
cout << endl;
return 0;
}
111
222
333
444
C++ 的字符变量的码值是整数,下面字面量形式的字符码值最大的是( )。
100100100
075075075
0x700x700x70
0x600x600x60
下面 C++ 程序执行的结果是( )。
int main()
{
int a[20], i;
int cnt = 0;
for (i = 0; i < 20; i++)
a[i] = i + 1;
for ( ; i > 1; i--)
if ((a[i - 1] + a[i - 2]) % 3)
cnt++;
cout << cnt << endl;
cout << endl;
return 0;
}
555
666
101010
121212
定义字符数组 char str[20] = {'G', 'E', 'S', 'P'};,则 str 的字符串长度为( )。
444
555
191919
202020
定义整型变量 int a = 3, b = 16,则 a | b 的值和 a + b 的关系是( )。
大于
等于
小于
等于或小于
小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是( )。
小程序
计时器
操作系统
神话人物
中国计算机学会(CCF)在 2024 年 1 月 27 日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。
制造自动驾驶汽车
创立培训学校
发明汉字激光照排系统
成立方正公司
任意整数 aaa 的二进制反码与补码都有 111 位不同。 ( )
对整型变量 int a = 3,执行 C++ 代码 a << 2 将把 222 输出到 aaa 中。( )
下面 C++ 代码可以计算 111 到 100100100 的累加和,采用的是穷举法。
int main()
{
int i, sum = 0;
for (int i = 1; i <= 100; i++)
sum += i;
cout << sum << endl;
cout << endl;
return 0;
}
一个 int 类型变量 aaa,执行操作 (a << 2 >> 2) 后的值一定是 aaa。( )
在 C++ 语言中,(010 << 1) 执行结果是 100。( )
执行下面 C++ 代码后将输出 222。( )
int main()
{
string str="gEsP is Interesting";
int x = str.find("s");
cout << x << endl;
cout << endl;
return 0;
}
在 C++ 语言中,字符数组被定义时,它的大小可以调整。( )
对定义的数组 int a[7] = {2, 0, 2, 4, 3, 1, 6},可以用简单循环就找到其中最小的整数。( )
小杨今年春节回奶奶家了,奶奶家的数字电视要设置 ip 地址并接入到 WIFI 盒子才能收看节目,那这个 WIFI 盒子具有路由器的功能。( )
任何一个 for 循环都可以转化为等价的 while 循环( )。
试题名称:字母求和
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨同学发明了一种新型密码,对于每一个小写英文字母,该小写字母代表了一个正整数,即该字母在字母顺序中的位置,例如字母 a 代表了正整数 111,字母 b 代表了正整数 222;对于每一个大写英文字母,该大写字母代表了一个负整数,即该字母的 ASCII 码的相反数,例如字母 A 代表了负整数 −65-65−65。小杨同学利用这种放缩对一个整数进行了加密并得到了一个由大写字母和小写字母组成的字符串,该字符串中每个字母所代表数字的总和即为加密前的整数,例如 aAc 对应的加密前的整数为 1+(−65)+3=−611+(-65)+3=-611+(−65)+3=−61。
对于给定的字符串,请你计算出它对应的加密前的整数是多少。
输入格式
第一行一个正整数 nnn,表示字符串中字母的个数。
第二行一个由大写字母和小写字母的字符串 T,代表加密后得到的字符串。
输出格式
输出一行一个整数,代表加密前的整数。
样例输入 #1
3
aAc
样例输出 #1
-61
说明/提示
对全部的测试数据,保证 1≤n≤1051 \leq n \leq 10^51≤n≤105。
试题名称:完全平方数
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨同学有一个包含 nnn 个非负整数的序列 AAA,他想要知道其中有多少对下标组合 ⟨i,j⟩\langle i,j\rangle⟨i,j⟩(1≤i<j≤n1 \leq i < j \leq n1≤i<j≤n),使得 Ai+AjA_i + A_jAi+Aj 是完全平方数。
如果 xxx 是完全平方数,则存在非负整数 yyy 使得 y×y=xy \times y = xy×y=x。
输入格式
第一行一个非负整数 nnn,表示非负整数个数。
第二入行包含 nnn 个非负整数 A1,A2,…AnA_1, A_2, \dots A_nA1,A2,…An,表示序列 AAA 包含的非负整数。
输出格式
输出一行一个整数表示答案。
样例输入 #1
5
1 4 3 3 5
样例输出 #1
3
说明/提示
对全部的测试数据,保证 1≤n≤10001 \leq n \leq 10001≤n≤1000,0≤Ai≤1050 \leq A_i \leq 10^50≤Ai≤105。