信奥刷题站
GESP 认证 2级2024-09

2024年9月 GESP C++ 2级

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

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

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

// questions

题目预览

1
单选题2

据有关资料,山东大学于 197219721972 年研制成功 DJL-1 计算机,并于 197319731973 年投入运行,其综合性能居当时全国第三位。DJL-1 计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为 2μs2 \mu s2μs(微秒)。那么该磁心存储元件相当于现代计算机的( )。

A

内存

B

磁盘

C

CPU

D

显示器

2
单选题2

IPv4 版本的因特网总共有( )个 A 类地址网络。

A

650006500065000

B

200200200

C

126126126

D

128128128

3
单选题2

在 C++ 中,下列不可做变量的是( )。

A

ccf-gesp

B

ccf_gesp

C

ccfGesp

D

_ccfGesp

4
单选题2

在 C++ 中,与 for (int i = 1; i < 10; i++) 效果相同的是( )。

A

for (int i = 0; i < 10; i++)

B

for (int i = 0; i < 11; i++)

C

for (int i = 1; i < 10; ++i)

D

for (int i = 0; i < 11; ++i)

5
单选题2

在 C++ 中,cout << (5 / 2 + 5 % 3) 的输出是( )。

A

111

B

222

C

444

D

555

6
单选题2

假定变量 aaabbb 可能是整型、字符型或浮点型,则下面 C++ 代码执行时先后输入 −2-223.143.143.14 后,其输出不可能是( )。[已知字符 '+'、'-'、'=' 的 ASCII 码值分别是 434343454545616161]

cin >> a;
cin >> b;
cout << (a + b);
A

111

B

1.141.141.14

C

474747

D

将触发异常

7
单选题2

在 C++ 代码中假设 NNN 为正整数,则下面代码能获得个位数的是( )。

A

N % 10

B

N / 10

C

N && 10

D

以上选项均不正确

8
单选题2

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

int i;
for (i = 0; i < 10; i++){
    if (i % 2)
        break;
    cout << "0#";
}
if(i==10) cout << "1#";
A

0#

B

1#

C

0#0#1

D

没有输出

9
单选题2

执行下面 C++ 代码并输入 111000,有关说法正确的是( )。

int a,b;
cin >> a >> b;
if(a&&b)
    cout << ("1");
else if(!(a||b))
    cout << ("2");
else if(a || b)
    cout << ("3");
else
    cout << ("4");
A

111

B

222

C

333

D

444

10
单选题2

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

int loopCount = 0;
for (int i = 1; i < 5; i += 2)
    loopCount += 1;
cout << (loopCount);
A

111

B

222

C

333

D

555

11
单选题2

下图是 C++ 程序执行后的输出。为实现其功能,横线处应填入代码是( )。

7
1
2 3
3 4 5
4 5 6 7
5 6 7 8 9
6 7 8 9 10 11
7 8 9 10 11 12 13
//////////////////////////////
int lineNum;
cin >> lineNum;
for (int i = 1; i < lineNum + 1; i++) {
    for (int __________________)
        cout << j << " ";
    cout << endl;
}
A

j = i; j < i; j++

B

j = 1; j < i; j++

C

j = i; j < i * 2; j++

D

j = i + 1; j < i + i; j++

12
单选题2

下面 C++ 代码执行后输出逆序数,如输入 123123123 则输出 321321321。如输入 120120120 则输出 212121。横线处先后应填入的代码是( )。

int N;
cin >> N;
int rst = 0;
while (N){
    ____________________;
    ____________________;
}
cout << (rst);
A

rst = rst * 10 + N % 10 N = N / 10

B

rst += N % 10 N = N / 10

C

rst = rst * 10 + N / 10 N = N % 10

D

rst += N / 10 N = N % 10

13
单选题2

下面的 C++ 代码用于输入学生成绩,并根据人数计算出平均成绩,有关说法错误的是( )。

float Sum = 0; // 保存总成绩
int cnt = 0; // 保存学生人数
while (1){
    int score;
    cin >> score;
    if (score < 0)
        break;
    cnt += 1;
    Sum += score;
}
cout << "总学生数:" << cnt << "平均分:" << Sum/cnt;
A

代码 while (1) 写法错误

B

如果输入负数,将结束输入,并正确输出

C

如果输入的学生成绩含有小数,程序将无法正常执行

D

变量 int score 初始值不确定,但不影响程序执行

14
单选题2

以下 C++ 代码判断输入的正整数是否为质数,如果该数字是质数,则输出 YES,否则输出 NO。质数是指仅能被 111 和它本身整除的正整数。请在横线上填写代码。( )

int num, i;
cin >> num;
for(i = 2; i < num; i++)
    if (__________){
        cout << ("NO");
        break;
    }
if(i == num)
    cout << ("YES");
A

num % i

B

num % i == 0

C

num / i

D

num / i == 0

15
单选题2

一个数如果能被某个数(比如 777)整除,或者含有该数,则说该数是某个数的相关数。下面 C++ 代码用于判定输入的数与 777 是否有关。下列说法错误的是( )。

int N, M;
bool Flag = false;
cin >> N;
M = N;
if (M % 7 == 0)
    Flag = true;
while (!Flag && M){
    if (M % 10 == 7){
        Flag = true;
        break;
    }
    M /= 10;
}
if (Flag)
    cout << N << "与7有关";
else
    cout << N << "与7无关";
A

删除 break 语句不会导致死循环,但有时会导致结果错误

B

删除 M /= 10 将可能导致死循环

C

删除 M = N 并将其后代码中的 M 变量改为 N,并调整输出同样能完成相关功能

D

删除 break 语句不会导致死循环,但有时会影响效率

16
判断题2

小杨最近开始学习 C++ 编程,老师说 C++ 是一门面向对象的编程语言,也是一门高级语言。( )

17
判断题2

在 C++ 中,cout << (3, 4, 5) 可以输出 3 4 5,且每个输出项之间用空格分开。( )

18
判断题2

C++ 表达式 12 % 10 % 10 的值为 222。( )

19
判断题2

C++ 语句 cout << rand() << ' ' << rand(); 的第二个输出值较大。( )

20
判断题2

定义 C++ 的 int 类型的变量 chchch ,而且值为 '1' ,则语句 cout << int(ch); 的输出为 111 。( )

21
判断题2

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

int i;
for (i = 0; i < 10; i++)
    continue;
if(i == 10)
    cout << i;
22
判断题2

下面 C++ 代码能求整数 NNNMMM 之间所有整数之和,包含 NNNMMM。( )

int N, M, Sum;
cin >> N >> M;
if (N > M){
    int tmp = N;
    N = M, M = tmp;
}
for (int i = N; i < M+1; i++)
    Sum += i;
cout << Sum;
23
判断题2

将下面 C++ 代码中的 L3 标记的代码行调整为 for (int i = 0; i < 5; i++) 后输出结果相同。( )

int loopCount = 0;
for (int i = 1; i < 5; i++) // L3
    for (int j = 0; j < i; j++)
        loopCount += 1;
cout << loopCount;
24
判断题2

某一系列数据的规律是从第 333 个数值开始是前两个数之和。下面的代码求第 NNN 个数的值,NNN 限定为大于 222。( )

int start1; // 第1个数
int start2; // 第2个数
int N; //求N个数的值
int tmp;
cin >> start1 >> start2 >> N;
for (int i = 2; i < N; i++){
    tmp = start1 + start2;
    start1 = start2;
    start2 = tmp;
}
cout << start2;
25
判断题2

下面 C++ 代码执行时如果输入 202420242024,则输出是 420242024202。( )

int N, flag=0;
cin >> N;
while (N){
    if(!flag) cout << N % 10;
    N /= 10;
    flag = (flag + 1)%2;
}
GESP 编程操作题
26
编程题25

试题名称:数位之和

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

题目描述

小杨有 nnn 个正整数,他认为一个正整数是美丽数字当且仅当该正整数每一位数字的总和是 777 的倍数。

小杨想请你编写一个程序判断 nnn 个正整数哪些是美丽数字。

输入格式

第一行包含一个正整数 nnn,表示正整数个数。
之后 nnn 行,每行一个包含一个正整数 aia_iai

输出格式

对于每个正整数输出一行一个字符串,如果是美丽数字则输出 Yes,否则输出 No

样例输入 #1

3
7
52
103

样例输出 #1

Yes
Yes
No

说明/提示

数据规模与约定

对全部的测试数据,保证 1≤n≤1051 \leq n \leq 10^51n1051≤ai≤1051 \leq a_i \leq 10^51ai105

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

试题名称:小杨的 N 字矩阵

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

题目描述

小杨想要构造一个 m×mm \times mm×mNNN 字矩阵(mmm 为奇数),这个矩阵的从左上角到右下角的对角线、第 111 列和第 mmm 列都是半角加号 + ,其余都是半角减号 - 。例如,一个 5×55 \times 55×5 的 N 字矩阵如下:

+---+
++--+
+-+-+
+--++
+---+

请你帮小杨根据给定的 mmm 打印出对应的 N 字矩阵。

输入格式

输入只有一行包含一个正整数 mmm

输出格式

输出对应的 NNN 字矩阵。

样例输入 #1

5

样例输出 #1

+---+
++--+
+-+-+
+--++
+---+

说明/提示

数据规模与约定

对全部的测试数据,保证 3≤m≤493 \leq m \leq 493m49mmm 是奇数。

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