CCF GESP 2026年6月认证 C++ 1级

单选题
共 15 道 每题 2 分 共计 30 分
第 1 题
学校组织到未来农场参观,小明听讲解员介绍,在智能温室中,湿度传感器可以连续检测土壤的湿度变化,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这里的湿度传感器所发挥的作用,类似于计算机系统中的哪一类组件?( )
A
处理器
B
存储器
C
输入设备
D
输出设备
第 2 题
在使用某集成开发环境(比如 Dev-C++)来编辑源代码文件时,程序员经常需要在编辑区中对代码进行各种修改。以下关于在编辑区中执行的操作描述不正确的是( )。
A
可以将变量名 count 统一修改为 number
B
可以连续撤销最近 2 次输入的内容
C
可以调整代码行的缩进(如按 Tab 键)
D
在注释文本中间不能混用中英文
第 3 题

有关如下 C++ 代码的说法,正确的是( )。

float a = 3 + 3.5;
cout << a;
A

代码执行将报错。如果将 a = 3 + 3.5 改为 a = 3 + 3 + 1/2 将能正常执行。

B

代码执行将报错。如果将 a = 3 + 3.5 改为 a = 3.0 + 3.5 将能正常执行。

C

代码能正常执行,将输出 6

D

代码能正常执行,将输出 6.5

第 4 题
下列 C++ 表达式与 - 2 * 2 % 4 的值不同的是( )。
A
- (2 * 2) % 4
B
(- 2 * 2) % 4
C
- 2 * (2 % 4)
D
(2 * 2) % - 4
第 5 题
执行如下 C++ 代码片段,其输出是( )。
int a = 3;
int b = a;
a = 4;
printf("%d %d", a, b);
A
3 3
B
4 3
C
4 4
D
3 4
第 6 题
如下 C++ 代码执行时输入 2026-6-27,下列说法正确的是( )。
int N;
cin >> N;
cout << N;
A
输入失败,不允许输入减号,没有输出
B
允许输入,输出 1993
C
允许输入并原样输出 2026-6-27
D
允许输入并输出 2026
第 7 题
如下 C++ 代码执行时,其说法错误的是( )。
int N, M;
cin >> N >> M;

if (N > M)
    cout << "A" << (N - M);
else
    cout << "B" << (M - N);
A
如果输入 4 3,将输出 A 1
B
如果输入 3 4,将输出 B 1
C
如果输入 3 3,将输出 A 0
D
如果输入 4 4,将输出 B 0
第 8 题
阅读如下 C++ 代码,下列说法错误的是( )。
int cnt = 0;
for (int i = 0; i < 5; i++)
    cnt += 1;
cout << cnt;
A
cnt += 1 修改为 cnt = cnt + 1,执行效果相同
B
cnt += 1 修改为 cnt = 1 + cnt,执行效果相同
C
cnt += 1 修改为 cnt =+ 1,执行效果相同
D
cnt += 1 修改为 cnt = + 1 + cnt,执行效果相同
第 9 题
如下 C++ 代码执行后输出是 1 2 3 4 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7。横线处应该先后依次填入的运算符是( )。
int num = 1;
for (int i = 0; i < 35; i++) {
    printf("%d ", num);
    if (num _____ 10)
        num _____ 2;
    else
        num _____ 1;
}
A
> /= +=
B
>= %= +=
C
> %= +=
D
> /= =+
第 10 题

如下 C++ 代码可以执行,其输出是( )。

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

5END#

B

5#END

C

1#3#4#END

D

1#3#4 END#

第 11 题
如下 C++ 代码执行时,下列说法正确的是( )。
1    int N, i;
2    cin >> N;
3    for (i = 2; i < N; i++)
4        if (N % i == 0) {
5            cout << "1#";
6            break;
7    } else
8    cout << "0#";
A
如果输入 2,将输出 1#。
B
如果输入 15,将输出 0#1#。
C
如果输入 1,将输出 0#。
D
如果输入 3,将输出 1#。
第 12 题
有关如下 C++ 代码,下列说法中错误的是( )。
int i, tot;
i = 0, tot = 0;
while (0 <= i && i < 10) {
    tot += 1;
    i += 1;
}
cout << tot;
A
如果调整 0 <= i && i < 10 为 1 <= i && i < 10,输出同样为 45,因为加上 0 不影响结果。
B
如果将 i = 0 和 tot = 0 合并为 i = tot = 0,执行结果与修改前相同。
C
将 tot += 1 与 i += 1 交换顺序,执行结果与修改前相同。
D
将 i = 0 与 tot = 0 交换顺序,执行结果与修改前相同。
第 13 题
以下 C++ 代码可以找出千位、百位、十位和个位满足特定条件的四位数(例如各位数字的四次方和等于原数,即“四叶玫瑰数”),横线处应该填入的是( )。
int count = 0;
for (int n = 1000; n <= 9999; n++) {
    int a = n / 1000;
    int b = (n / 100) % 10;
    ___________________________________      // L1
    int d = n % 10;
    if (a * a * a * a + b * b * b * b + c * c * c * c + d * d * d * d == n) {
        count++;
    }
}
A
int c = (n / 10) / 10;
B
int c = (n / 10) % 10;
C
int c = (n % 10) / 10;
D
int c = (n % 10) % 10;
第 14 题
下面的 C++ 代码用于计算经过 n 秒后的秒针位置(0 ~ 59),两处横线处分别应填入的代码是( )。
int start, n, pos;
cout << "当前秒数 (0-59) : ";
cin >> start;
cout << "经过多少秒: ";
cin >> n;

pos = ______; // L1
if (______) // L2
    cout << n << "秒后回到12点方向" << endl;
else
    cout << n << "秒后指向" << pos << "秒刻度" << endl;
A
(start + n) / 60 和 pos == 0
B
(start + n) % 60 和 pos == 0
C
(start + n) / 60 和 pos <= 0
D
(start + n) % 60 和 pos = 0
第 15 题
如果正整数 N 只能被 1 和它本身整除,则它是一个质数(或素数)。下面的 C++ 代码用于判断正整数 N 是否为质数(素数)。若 N 是质数,输出 YES,否则输出 NO。横线处不应填入的代码是( )。
int N, i;
cin >> N;
if (N <= 1) {
    cout << "NO";
    return 0;
}
for (i = 2; ______; i++) {
    if (N % i == 0) {
        cout << "NO";
        return 0;
    }
}
cout << "YES";
A
i < N
B
i <= N
C
i <= N / 2
D
i * i <= N
单选题部分已到底了。