CCF GESP 2023年12月认证 C++ 2级

单选题
共 15 道 每题 2 分 共计 30 分
第 1 题

以下不可以作为 C++ 变量的是( )。

A

FiveStar

B

fiveStar

C

5Star

D

Star5

第 2 题

在 C++ 中,与 for(int i = 10; i < 20; i += 2) cout << i; 输出结果相同的是 ( )。

A

for(int i = 10; i < 19; i += 2) cout << i;

B

for(int i = 11; i < 19; i += 2) cout << i;

C

for(int i = 10; i < 21; i += 2) cout << i;

D

以上均不对

第 3 题

以下 C++ 代码实现从小到大的顺序输出能整除 $N$ 的数($N$ 的因子),例如 $N=18$ 时输出 1 2 3 6 9 18,横线处应填入 ( )。

cin >> N;
for(__________)
    if(N % i == 0)
        cout << i << " ";
A

int i = 0; i < N; i++

B

int i = 1; i < N; i++

C

int i = 0; i < N+1; i++

D

int i = 1; i < N+1; i++

第 4 题

下面 C++ 代码用于判断输入的整数是否为对称数,如 1221、12321 是对称数,但 123、972 不是对称数。下面对该题对应代码的说法,正确的是 ( )。

cin >> N;
newNum = 0;
while(N) {
    newNum = newNum * 10 + N % 10;
    N = N / 10;
}
if(newNum == N)
    cout << N << "为对称数";
A

代码没有语法错误,如果 N 为对称数,第 8 行将能正确输出。

B

代码没有语法错误,但如果 N 为负数,将导致死循环。

C

代码存在语法错误,程序不能被执行。

D

代码没有语法错误,但不能达到预期目标,因为循环结束 N 总为 0。

第 5 题

下面 C++ 代码用于判断 $N$(大于等于 $2$ 的正整数)是否为质数(素数)。下面对如下代码的说法,正确的是 ( )。

cin >> N;
for(i = 2; i < N/2; i++)
    if(N % i == 0) {
        cout << N << " 不是质数";
        break;
    }
if(i >= N/2)
    cout << N << " 是质数";
A

代码能正确判断 N 是否为质数。

B

代码总是不能判断 N 是否质数。

C

删除第 5 行 break,将能正确判断 N 是否质数。

D

代码存在漏洞,边界存在问题,应将第 2 行和第 7 行的 N / 2 改为 N / 2 + 1

第 6 题
下面 C++ 代码执行后的输出是 ( )。
N = 4;
for(int i = 0; i < N; i++) {
    for(int j = 1; j < i; j++)
        if (i * j % 2 == 0)
            cout << i << "#";
    continue;
}
cout << "0";
A
2#3#0
B
1#2#0
C
1#0#
D
2#3#
第 7 题

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

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

0

B

8#8

C

4

D

4#4

第 8 题

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

N = 100;
while (N > 0)
    if (N % 2)
        break;
    else if (N % 3 == 0)
        N -= 5;
    else
        N -= 20;
cout << N;
A

100

B

95

C

55

D

0

第 9 题

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

x = 1;
while (x < 100) {
    if (x % 3 != 0)
        cout << x << ",";
    else if (x / 10)
        break;
    else
        x += 5;
    x += 2;
}
cout << x;
A

1

B

1,3

C

15,17

D

1,10,12

第 10 题

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

cnt = 0;
for (i = 0; i < 5; i++)
    for (j = 0; j < i; j++)
        cnt += 1;
cout << cnt;
A

5

B

10

C

20

D

30

第 11 题

以下 C++ 代码用于输出 $1\sim 100$(含)的整数平方数(完全平方数),如 $16$ 是 $4$ 的平方,横线处应填写( )。

for (i = 1; i < 100 + 1; i++)
    if (__________________)
        cout << i << " ";
A

int(sqrt(i)) * int(sqrt(i)) = i

B

int(sqrt(i)) == sqrt(i)

C

int(sqrt(i)) * int(sqrt(i)) == i

D

int(sqrt(i)) = sqrt(i)

第 12 题

下面的 C++ 代码用于实现如下图所示的效果,应在以下 C++ 代码中填入( )。

cin >> N;
for (i = 0; i < N; i++) {
    nowNum = 0;
    for (j = 0; j < i + 1; j++) {
        cout << nowNum << " ";
        nowNum += 1;
        if (nowNum == 10)
            nowNum = 0;
    }
}
A

于第 8 行下面填入一行:cout << nowNum;

B

于第 2 行下面填入一行:cout << endl;

C

于第 7 行下面填入一行:cout << nowNum;

D

于第 9 行下面填入一行:cout << endl;

第 13 题

某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。( )

A

麦克风

B

扬声器

C

油量表

D

传感器

第 14 题

现代计算机是指电子计算机,它所基于的是( )体系结构。

A

艾伦·图灵

B

冯·诺依曼

C

阿塔纳索夫

D

埃克特-莫克利

第 15 题

输入一个正整数 $N$,想找出它所有相邻的因数对,比如,输入 $12$,因数对有 $(1,2)$、$(2,3)$、$(3,4)$。下面哪段代码找不到所有的因数对?( )

A

for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

B

for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

C

for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);

D

for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

单选题部分已到底了。