#6106. GESP 2026年6月 C++一级认证真题

GESP 2026年6月 C++一级认证真题

GESP 2026年6月 C++ 一级认证真题(客观题)

本卷含单选题 15 道、判断题 10 道。单选题每题 4 分,判断题每题 4 分,共 100 分。

一、单选题(每题 4 分,共 60 分)

第 1 题 学校组织到未来农场参观,小明听讲解员介绍,在智能温室中,湿度传感器可以连续检测土壤的湿度变化,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这里的湿度传感器所发挥的作用,类似于计算机系统中的哪一类组件?

{{ select(1) }}

  • 处理器
  • 存储器
  • 输入设备
  • 输出设备

第 2 题 在使用某集成开发环境(比如 Dev-C++)来编辑源代码文件时,程序员经常需要在编辑区中对代码进行各种修改。以下关于在编辑区中执行的操作描述不正确的( )。

{{ select(2) }}

  • 可以将变量名 count 统一修改为 number
  • 可以连续撤销最近若干次输入的内容
  • 可以调整代码行的缩进(如按 Tab 键)
  • 在注释文本中间不能混用中英文

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

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

{{ select(3) }}

  • 代码执行将报错。如果将 a = 3 + 3.5 改为 a = 3 + 3 + 1 / 2 将能正常执行。
  • 代码执行将报错。如果将 a = 3 + 3.5 改为 a = 3.0 + 3.5 将能正常执行。
  • 代码能正常执行,将输出 6 。
  • 代码能正常执行,将输出 6.5 。

第 4 题 下列 C++ 表达式与 - 2 * 2 % 4 的值不同的是( )。

{{ select(4) }}

    • (2 * 2) % 4
  • (- 2 * 2) % 4
    • 2 * (2 % 4)
  • (2 * 2) % - 4

第 5 题 执行如下 C++ 代码片段,其输出是( )。

int a = 3;
int b = a;
a = 4;
printf("%d %d", a, b);

{{ select(5) }}

  • 3 3
  • 4 3
  • 4 4
  • 3 4

第 6 题 如下 C++ 代码执行时输入 2026-6-27 ,下列说法正确的是( )。

int N;
cin >> N;
cout << N;

{{ select(6) }}

  • 输入失败,不允许输入减号,没有输出
  • 允许输入,输出 1993
  • 允许输入并原样输出 2026-6-27
  • 允许输入并输出 2026

第 7 题 如下 C++ 代码执行时,其说法错误的是( )。

int N, M;
cin >> N >> M;
if (N > M)
    cout << "A " << (N - M);
else
    cout << "B " << (M - N);

{{ select(7) }}

  • 如果输入 4 3 ,将输出 A 1
  • 如果输入 3 4 ,将输出 B 1
  • 如果输入 3 3 ,将输出 A 0
  • 如果输入 4 4 ,将输出 B 0

第 8 题 阅读如下 C++ 代码,下列说法错误的是( )。

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

{{ select(8) }}

  • 将 cnt += 1 修改为 cnt = cnt + 1 ,执行效果相同
  • 将 cnt += 1 修改为 cnt = 1 + cnt ,执行效果相同
  • 将 cnt += 1 修改为 cnt =+ 1 ,执行效果相同
  • 将 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;
}

{{ select(9) }}

  • /= +=

  • = %= +=

  • %= +=

  • /= =+

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

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

{{ select(10) }}

  • 5END#
  • 5#END
  • 1#3#4#END
  • 1#3#4 END#

第 11 题 如下 C++ 代码执行时,下列说法正确的是( )。

int N, i;
cin >> N;
for (i = 2; i < N; i++)
    if (N % i == 0) {
        cout << "1#";
        break;
    } else
        cout << "0#";

{{ select(11) }}

  • 如果输入 2 ,将输出 1# 。
  • 如果输入 15 ,将输出 0#1# 。
  • 如果输入 1 ,将输出 0# 。
  • 如果输入 3 ,将输出 1# 。

第 12 题 有关如下 C++ 代码,下列说法中错误的是( )。

int i, tot;
i = 0, tot = 0;
while (0 <= i && i < 10) {
    tot += 1;
    i += 1;
}
cout << tot;

{{ select(12) }}

  • 如果调整 0 <= i && i < 10 为 1 <= i && i < 10 ,输出同样为 45 ,因为加上 0 不影响结果。
  • 如果将 i = 0 和 tot = 0 合并为 i = tot = 0 ,执行结果与修改前相同。
  • 将 tot += 1 与 i += 1 交换顺序,执行结果与修改前相同。
  • 将 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++;
    }
}

{{ select(13) }}

  • int c = (n / 10) / 10;
  • int c = (n / 10) % 10;
  • int c = (n % 10) / 10;
  • int c = (n % 10) % 10;

第 14 题 下面的 C++ 代码用于计算经过 n 秒后的秒针位置(秒针每 60 秒转一圈,0 秒时指向 12 点方向),两处横线处分别应填入的代码是( )。

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;

{{ select(14) }}

  • (start + n) / 60 和 pos == 0
  • (start + n) % 60 和 pos == 0
  • (start + n) / 60 和 pos <= 0
  • (start + n) % 60 和 pos = 0

第 15 题 如果正整数 N 只能被 1 和它本身整除,则它是一个质数(或素数)。下面的 C++ 代码用于判断正整数 N 是否为质数(素数)。若 N 是质数,输出 YES ,否则输出 NO 。横线处不应填入的代码是( )。

int N;
cin >> N;
if (N <= 1) {
    cout << "NO";
    return 0;
}
for (i = 2; ______; i++) {
    if (N % i == 0) {
        cout << "NO";
        return 0;
    }
}
cout << "YES";

{{ select(15) }}

  • i < N
  • i <= N
  • i <= N / 2
  • i * i <= N

二、判断题(每题 4 分,共 40 分)

第 16 题 又到期末考试周,小明发现这次许多闭卷考试不仅禁止携带手机、平板电脑,还有最近比较时髦的各类 AI 眼镜(也有叫智能眼镜)也同样不允许带入考场。这些 AI 眼镜应该也是内置了操作系统并可能支持 Wi-Fi 或蓝牙连接。

{{ select(16) }}

  • 正确
  • 错误

第 17 题 如果 n 为大于某整数的整数,则 C++ 表达式 (n / 10) % 10 与 (n % 100) / 10 的结果相同。

{{ select(17) }}

  • 正确
  • 错误

第 18 题 下面 C++ 代码执行后将输出 19 。

int i;
for (i = 0; i < 20; i += 3)
    if (i % 3 != 0)
        break;
cout << i;

{{ select(18) }}

  • 正确
  • 错误

第 19 题 在数学中,n! 称之为 n 的阶乘,其含义是 1 到 n 之积,包括 1 和 n 。如下 C++ 代码能输出 n! 的结果。

int N;
cout << "请输入正整数:";
cin >> N;
int rst = 0;
for (int i = 1; i < N + 1; i++)
    rst *= i;
cout << rst;

{{ select(19) }}

  • 正确
  • 错误

第 20 题 如下 C++ 代码能实现输出正整数 N 的各位数字。

int N;
cin >> N;
while (N > 0) {
    cout << (N % 10) << endl;
    N = N / 10;
}

{{ select(20) }}

  • 正确
  • 错误

第 21 题 将如下 C++ 代码中的 printf("\n") 更换为 printf("%c", '\n') ,输出效果相同。

for (int i = 0; i < 100; i++) {
    if (i % 5 == 0)
        printf("\n");
    printf("%2d ", i);
}

{{ select(21) }}

  • 正确
  • 错误

第 22 题 C++ 代码 cout << (2.5 % 2) 能够生成可执行代码,但执行时将报错,因为 % 只能适用于正整数。

cout << (2.5 % 2);

{{ select(22) }}

  • 正确
  • 错误

第 23 题 下面的 C++ 代码执行后将输出 24 。

int total;
for (int n = 1; n <= 4; n++) {
    total *= n;
}
cout << total;

{{ select(23) }}

  • 正确
  • 错误

第 24 题 如果 a 是 C++ 的整型变量,值为 4 ,则表达式 (a % 2 == 0) + (a / 2) 的值为 4 。

{{ select(24) }}

  • 正确
  • 错误

第 25 题 删除下面 C++ 代码中的 continue 后,其输出与原来相同。

int x = 0;
while (x < 4) {
    x++;
    if (x == 2) continue;
    cout << x << ",";
}

{{ select(25) }}

  • 正确
  • 错误