Logo

2024年6月 GESP C++ 2级

GESP · 2级 · 2024-06

60:00
满分 100
时长 60 分钟
27

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

答题卡 已答 0/27
已答 正确 错误 编程题

单选题(共 15 题,每题 2 分)

1

小杨⽗母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语⾔有几
种?( )

2

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出2月是29天,则图中菱形框中应该填入( )。

3

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

4

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

5

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

6

6.执行下面的C++代码时输入1,则输出是( )。

int month;
cin >> month;
switch(month){
    case 1:
    cout << "Jan ";
    case 3:
    cout << "Mar ";
    break;
    default:
    ;
}
7

执行下面C++代码后,有关说法错误的是( )。

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";
8

某货币由5元,2元和1元组成。输入金额(假设为正整数),计算出最少数量。为实现其功能,横线处应填
入代码是( )。

int N;
cin >>N;
int M5,M2,M1;
M5 = N / 5;
M2 = ______________;
M1 = ______________;
printf("5*%d+2*%d+1*%d", M5, M2, M1);
9

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

int loopCount = 0;
for (int i=0; i < 10; i++)
for (int j=1; j < i; j++)
loopCount += 1;
cout << loopCount;
10

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

int loopCount = 0;
for (int i=0; i < 10; i++){
    for (int j=0; j < i; j++)
    if (i * j % 2)
    break;
    loopCount += 1;
}
cout << loopCount;
11

假设下面C++代码执行过程中仅输入正负整数或0,有关说法错误的是( )。

int N,Sum = 0;
cin >> N;
while (N){
    Sum += N;
    cin >> N;
}
cout << Sum;
12

执行下面的C++代码,有关说法正确的是( )【质数是指仅能被1和它本身整除的正整数】。

int N;
cin >> N;
bool Flag = true;
for ( int i = 2; i < N; i++){
    if (i * i > N)
    break;
    if (N % i == 0){
        Flag = false;
        break;
    }
}
if (Flag)
cout << N << "是质数" << endl;
else
cout << N << "不是质数" << endl;
13

下面C++代码用于实现如下图所⽰的效果,其有关说法正确的是( )。

for (int i = 1; i < 6; i++){ // L1
    for (int j = 1; j < i+1; j++) //L2
    cout << i*j << " ";
    cout << endl;
}
14

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

int cnt1 = 0, cnt2 = 0;
for (int i = 0; i < 10; i++){
    if (i % 2 == 0)
    continue;
    if (i % 2)
    cnt1 += 1;
    else if (i % 3 == 0)
    cnt2 += 1;
}
cout << cnt1 << " " << cnt2;
15

在下面的C++代码中,N必须是小于10大于1的整数,M为正整数(大于0)。如果M被N整除则M为幸运
数,如果M中含有N且能被N整除,则为超级幸运数,否则不是幸运数。程序用于判断M是否为幸运数或超级幸运数
或非幸运数。阅读下面代码,有关说法正确的是( )。

int N, M;
cout << "请输入幸运数字:";
cin >> N;
cout << "请输入正整数:";
cin >> M;
bool Lucky;
if (M % N == 0)
Lucky = true;
else
Lucky = false;
while (M){
    if (M % 10 == N && Lucky){
        printf("%d是%d的超级幸运数!", M, N);
        break;
    }
    M /= 10;
}
if (M == 0)
if (Lucky)
printf("%d是%d的幸运数!", M, N);
else
printf("%d非%d的幸运数!", M, N);

判断题(共 10 题,每题 2 分)

16

执行C++代码cout << '9'+'1';的输出为10。( )

17

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

18

C++表达式int(12.56)的值为13。( )

19

C++的整型变量N被赋值为10,则语句cout << N / 3 << "-" << N % 3执行后输出是3-1。 ( )

20

在C++代码中,不可以将变量命名为scanf,因为scanf是C++语⾔的关键字。( )

21

下面C++代码执行后将导致死循环。( )

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

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

int cnt = 0;
for (int i = 0; i < 10; i++)
for (int j = 0; j < i; j++){
    cnt += 1;
    break;
}
cout << cnt;
23

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

int cnt = 0;
for (int i = 1; i < 5; i++)
for (int j = i; j < 5; j +=i)
if (i * j % 2 == 0)
cnt += 1;
cout << cnt;
24

下面C++代码能实现正整数各位数字之和。( )

int N,Sum = 0;
cin >> N;
while (N){
    Sum += N % 10;
    N /= 10;
}
cout << Sum;
25

GESP测试是对认证者的编程能⼒进行等级认证,同一级别的能⼒基本上与编程语⾔无关。( )

编程操作题(共 2 题,共 50 分)

26
编程操作题 25分

试题名称:平⽅之和

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

输入格式

第⼀⾏包含⼀个正整数 ,代表正整数数量。
之后 ⾏,每⾏包含⼀个正整数,代表 。

输出格式

对于每个正整数 ,如果存在两个正整数 和 满⾜ ,输出 Yes,否则输出 No。
3.1.4 样例1
1 2
2 5
3 4
1 Yes
2 No

样例解释

对于第⼀个正整数,存在 ,因此答案为 Yes。

数据范围

对于全部数据,保证有 。

27
编程操作题 25分

试题名称:计数

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

输入格式

第⼀⾏包含⼀个正整数 。
第⼆⾏包含⼀个正整数 。

输出格式

输出从 到 的所有正整数中, 出现的次数。
3.2.4 样例1
1 25
2 2
1 9

样例解释

从 到 中, 出现的正整数有 ,⼀共出现了 次。

数据范围

对于全部数据,保证有 。

已答 0/27