信奥刷题站
GESP 认证 3级2024-03

2024年3月 GESP C++ 3级

题量
27 题
客观题
25 题
建议时长
60 分钟
卷面总分
100 分

2024年3月 GESP C++ 3级认证考试真题(含编程操作题部分)

开始整卷模拟计时作答 · 交卷即时判分 · 错题自动进错题本(需登录)2 道编程大题:在线只判客观题,编程题请自行前往洛谷等 OJ 提交验证

// questions

题目预览

1
单选题2

整数 −5-55 的 16 位补码表示是( )。

A

1005

B

1006

C

FFFA

D

FFFB

2
单选题2

如果 161616 位短整数 −2-22 的二进制是 "FFFE",则短整数 −4-44 的十六进制是( )。

A

FF04

B

FFFA

C

FFFC

D

FFFH

3
单选题2

下面 C++ 代码执行后的输出是( )。

int main()
{
    cout << (3|16) << endl;
    cout << endl;
    return 0;
}
A

333

B

161616

C

191919

D

484848

4
单选题2

定义整数 int x = -5,则执行 C++ 代码 cout << (x == (x << 1 >> 1)) 输出是( )。

A

000

B

111

C

−5-55

D

555

5
单选题2

已知字符 '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;
}
A

101010

B

585858

C

154154154

D

316316316

6
单选题2

下面 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;
}
A

222 的倍数

B

333 的倍数

C

能被 222333 整除的数

D

能被 222333 同时整除的数

7
单选题2

执行下面 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;
}
A

202020

B

191919

C

111

D

不确定

8
单选题2

在下列代码的横线处填写( ),可以使得输出是 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;
}
A

str[i] += 'a' - 'A'

B

str[i] += 20

C

str[i] += 'A' - 'a'

D

无法实现

9
单选题2

假设英文句子由若干词构成。下面 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;
}
A

111

B

222

C

333

D

444

10
单选题2

C++ 的字符变量的码值是整数,下面字面量形式的字符码值最大的是( )。

A

100100100

B

075075075

C

0x700x700x70

D

0x600x600x60

11
单选题2

下面 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;
}
A

555

B

666

C

101010

D

121212

12
单选题2

定义字符数组 char str[20] = {'G', 'E', 'S', 'P'};,则 str 的字符串长度为( )。

A

444

B

555

C

191919

D

202020

13
单选题2

定义整型变量 int a = 3, b = 16,则 a | b 的值和 a + b 的关系是( )。

A

大于

B

等于

C

小于

D

等于或小于

14
单选题2

小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是( )。

A

小程序

B

计时器

C

操作系统

D

神话人物

15
单选题2

中国计算机学会(CCF)在 2024 年 1 月 27 日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。

A

制造自动驾驶汽车

B

创立培训学校

C

发明汉字激光照排系统

D

成立方正公司

16
判断题2

任意整数 aaa 的二进制反码与补码都有 111 位不同。 ( )

17
判断题2

对整型变量 int a = 3,执行 C++ 代码 a << 2 将把 222 输出到 aaa 中。( )

18
判断题2

下面 C++ 代码可以计算 111100100100 的累加和,采用的是穷举法。

int main()
{
    int i, sum = 0;
    for (int i = 1; i <= 100; i++)
        sum += i;
    cout << sum << endl;
    cout << endl;
    return 0;
}
19
判断题2

一个 int 类型变量 aaa,执行操作 (a << 2 >> 2) 后的值一定是 aaa。( )

20
判断题2

在 C++ 语言中,(010 << 1) 执行结果是 100。( )

21
判断题2

执行下面 C++ 代码后将输出 222。( )

int main()
{
    string str="gEsP is Interesting";
    int x = str.find("s");
    cout << x << endl;
    cout << endl;
    return 0;
}
22
判断题2

在 C++ 语言中,字符数组被定义时,它的大小可以调整。( )

23
判断题2

对定义的数组 int a[7] = {2, 0, 2, 4, 3, 1, 6},可以用简单循环就找到其中最小的整数。( )

24
判断题2

小杨今年春节回奶奶家了,奶奶家的数字电视要设置 ip 地址并接入到 WIFI 盒子才能收看节目,那这个 WIFI 盒子具有路由器的功能。( )

25
判断题2

任何一个 for 循环都可以转化为等价的 while 循环( )。

GESP 编程操作题
26
编程题25

试题名称:字母求和

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

小杨同学发明了一种新型密码,对于每一个小写英文字母,该小写字母代表了一个正整数,即该字母在字母顺序中的位置,例如字母 a 代表了正整数 111,字母 b 代表了正整数 222;对于每一个大写英文字母,该大写字母代表了一个负整数,即该字母的 ASCII 码的相反数,例如字母 A 代表了负整数 −65-6565。小杨同学利用这种放缩对一个整数进行了加密并得到了一个由大写字母和小写字母组成的字符串,该字符串中每个字母所代表数字的总和即为加密前的整数,例如 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^51n105

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)
27
编程题25

试题名称:完全平方数

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

小杨同学有一个包含 nnn 个非负整数的序列 AAA,他想要知道其中有多少对下标组合 ⟨i,j⟩\langle i,j\ranglei,j1≤i<j≤n1 \leq i < j \leq n1i<jn),使得 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 10001n10000≤Ai≤1050 \leq A_i \leq 10^50Ai105

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)