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

2024年12月 GESP C++ 3级

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

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

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

// questions

题目预览

1
单选题2

下列二进制表示的十进制数值分别是( )

[10000011]原=( )
[10000011]补=( )
A

−125-125125−3-33

B

−3-33−125-125125

C

−3-33−3-33

D

−125-125125−125-125125

2
单选题2

关于计算机中的编码,下列说法中错误的是()

A

对于无符号数,原码就是真值

B

正数的反码是其本身

C

负数的反码和补码是不一样的

D

负数的反码,在其原码的基础上,各个位取反

3
单选题2

16 进制数 B2025 转换成 8 进制数是( )

A

2620045

B

2004526

C

729125

D

2420045

4
单选题2

625.625625.625625.625 变成二进制是( )。

A

1001110001.1011001110001.1011001110001.101

B

101.101101.101101.101

C

101.1001110001101.1001110001101.1001110001

D

1001110001.11011001110001.11011001110001.1101

5
单选题2

下面逻辑运算中,正确的是( )

A

5 && 3 == 0

B

5 | 3 == 8

C

5 || 3 == 11

D

5 & 3 == 0001

6
单选题2

补码 1111 1101 进行运算 1111 1101 >> 1 以后得到的结果是( )

A

1111 1100

B

−2-22

C

1111 1101

D

1111 1010

7
单选题2

下列代码输出的是

string s="1234@@chenadai";
string str="12345";
s.replace(1,5,str);
cout<<s<<endl;
A

12345

B

2345@

C

112345chenadai

D

12345chenadai

8
单选题2

a | 10aaa101010 都是十进制,且二进制表示最高位为 111)运算的结果是( )。

A

使 aaa 的二进制表示从右往左的第二位为 111

B

使 aaa 的二进制表示从右往左的第一位为 000

C

使 aaa 的二进制表示从右往左第二位为 000

D

使 aaa 的二进制表示最高位为 000

9
单选题2

下列程序输出的是( )

string ch="hello";
if(ch[5]==NULL)
{
    cout<<"right"<<endl;
}
else if (ch[5]=='\0')
{
    cout<<"wrong"<<endl;
}
else
{
    cout<<"hello"<<endl;
}
A

right

B

wrong

C

hello

D

不能正确执行

10
单选题2

下列程序中,假设一个字符占用的内存空间是 111 ,下列程序中,ch 占用的内存空间是( )

char ch[] = "hello world";
size_t ret = strlen(ch);
cout << ret << endl;
A

111111

B

101010

C

131313

D

121212

11
单选题2

下列程序最后输出的是()

int a=65;
cout<<tolower(a)<<endl;
A

656565

B

A

C

a

D

979797

12
单选题2

想要计算从数字 nnn 到数字 mmm 之间(包含 nnnmmm)有多少个数字 ddd 出现,下列程序哪个能够实现( )。

A
int n,m,res,d;
cin >> n >> m>>d;
for(int i = n+1; i <= m; i++){
    int temp = i;
    while(temp){
        if(temp % 10 == d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;
B
int n,m,res,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
    int temp = i;
    while(temp){
        if(temp % 10 = d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;
C
int n,m,res=0,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
    int temp = i;
    while(temp){
        if(temp % 10 == d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;
D
int n,m,res=0,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
    while(temp){
        if(temp % 10 == d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;
13
单选题2

兔子五元一只,鸡三元一只,小鸭子一元三只,现在你有一百元要买一百只,兔子、鸡、鸭子,问兔子、鸡、鸭子各买多少只,每种必须至少一只,下列哪个程序能实现。( )。

A
for(int i = 0; i <= 100; i++){
    for(int j = 0; j <= 100; j++){
        for(int k = 0; k <= 100; k++){
            if(i + j + k == 100 && 25 * i + 10 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}
B
for(int i = 0; i <= 100; i++){
    for(int j = 0; j <= 100; j++){
        for(int k = 0; k <= 100; k++){
            if(i + j + k == 100 && 20 * i + 10 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}
C
for(int i = 0; i <= 20; i++){
    for(int j = 0; j <= 34; j++){
        for(int k = 0; k <= 20; k++){
            if(i + j + k == 100 && 15 * i + 9 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}
D
for(int i = 0; i <= 100; i++){
    for(int j = 0; j <= 100; j++){
        for(int k = 0; k <= 100; k++){
            if(i + j + k == 100 && 15 * i + 9 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}
14
单选题2

求小于等于 NNN 的素数的方法中,有一种方法是将所有从 222 到它本身减 111 的数都除一遍,如果不能整除,就是素数。下列哪个程序,体现了这种方法()

A
if(N >= 3){
    cout<<2<<endl;
    for(int i = 2;i <= N;i ++){
        for(int j = 2;j < i;j ++){
            if(i % j != 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
        flag = 0;
    }
}
B
if(N >= 2){
    for(int i = 3;i <= N;i ++){
        for(int j = 2;j < i;j ++){
            if(i % j == 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
        flag = 0;
    }
}
C
if(N >= 2){
    cout<<2<<endl;
    for(int i = 3;i <= N;i ++){
        for(int j = 2;j < i;j ++){
            if(i % j == 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
        flag = 0;
    }
}
D
if(N >= 2){
    cout<<2<<endl;
    for(int i = 3;i <= N;i ++){
        for(int j = 2;j < i;j ++){
            if(i % j == 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
    }
}
15
单选题2

工人工作一天,会得到一个金环作为工资报酬,某个工作需要 151515 天完成,一条 151515 个环的金环项链,为了严格执行每天工作结束时,完成对工人工资的结算,最少需要将金环项链剪裁成几段,每段几个金环( )

A

444 段,分别是 111222444888

B

151515 段,每段 111

C

666 段,分别是 333333333333222111

D

999 段,分别是 222222222222222222111111111

16
判断题2

为了简化计算机基本运算电路,使加减法都只需要通过加法电路实现,也就是让减去一个正数或加上一个负数这样的运算可以用加上一个正数来代替。于是改变负数存储的形式,存储成一种可以直接当成正数来相加的形式,这种形式就是补码。

17
判断题2

使用原码进行的计算,2+(−1)2 + (-1)2+(1) 的结果是 −3-33

18
判断题2

反码计算加减法:加法与减法结果都是正确的,只是解决不了 −0-00 的问题

19
判断题2
阅读程序代码(共 19-21 题共用)
进制数 63,在转换成二进制的计算过程中,产生了如下的式⼦:
63/2=31 余 1
31/2=15 余 1
15/2=7 余 1
7/2=3 余 1
3/2=1 余 1
1/2=0 余 1

按照从前往后的顺序,获得 636363 的二进制值是 111111111111111111

20
判断题2

下列程序输出的是 AAA

char x=65;
x=x&00001111;
cout<<x<<endl;
21
判断题2

下列可执行程序段中,最后 pospospos 的值是 444

string str="chenADai";
int pos = str.find('D');
--pos&11;
22
判断题2
阅读程序代码(共 22-22 题共用)
string ch="chen";
cout<<ch[4]<<endl;

该段程序将不能正确执行

23
判断题2
阅读程序代码(共 23-27 题共用)
char a='A';
a=a+32;
cout<<(int)a<<endl;

将输出 979797

24
判断题2

自然界中,最小的素数是 222

25
判断题2

CCF(十六进制) = 12363(七进制)

GESP 编程操作题
26
编程题25

试题名称:数字替换

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

题目描述

小杨有一个包含 nnn 个数字的序列 AAA,即 A=[a1,a2,…,an]A=[a_1,a_2,\ldots,a_n]A=[a1,a2,,an],他想将其中大于 kkk 的数字都替换为序列的最大值,将其中小于 kkk 的数字都替换为序列的最小值,请你帮他计算出替换后的序列。

输入格式

第一行包含两个正整数 n,kn,kn,k,含义如题面所示。

第二行包含 nnn 个数字,代表序列 AAA

输出格式

输出 nnn 个整数,代表替换后的结果。

样例输入 #1

5 0
-2 -1 0 1 2

样例输出 #1

-2 -2 0 2 2

说明/提示

对于全部数据,保证有 1≤n≤1051\le n\le 10^51n105∣k∣,∣ai∣≤105|k|,|a_i|\le 10^5k,ai105

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

试题名称:打印数字

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

题目描述

小杨为数字 0,1,20,1,20,1,2333 设计了一款表示形式,每个数字占用了 5×55\times 55×5 的网格。数字 0,1,20,1,20,1,2333 的表示形式如下:

..... ****. ..... .....
.***. ****. ****. ****.
.***. ****. ..... .....
.***. ****. .**** ****.
..... ****. ..... .....

小杨想请你将给定的数字 nnn 转换为对应的表示形式。

输入格式

第一行包含一个非负整数代表 nnn

输出格式

输出对应的表示形式。

样例输入 #1

12230

样例输出 #1

****.....................
****.****.****.****..***.
****.................***.
****..****.********..***.
****.....................

说明/提示

对于全部数据,保证有 0≤n≤1060\le n\le 10^60n106,且 nnn 仅由数字 0,1,2,30,1,2,30,1,2,3 组成。

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