#p1002. gesp1级模拟第二套

gesp1级模拟第二套


C++ 一级模拟题(第三套 · 真题风格)

  1. 执行以下代码后,输出结果是( )
int a = 17, b = 4;
cout << a / b << a % b;

{{ select(1) }}

  • 选项 41
  • 选项 44
  • 选项 14
  • 选项 40
  1. 小明想计算 1 到 50 中所有奇数的和。以下哪种控制结构最不合适?( )

{{ select(2) }}

  • 选项 使用 for 循环
  • 选项 使用 while 循环加 if 判断
  • 选项 仅使用顺序结构(逐行写 1+3+5+...)
  • 选项 使用 for 循环加 continue
  1. 以下 C++ 代码中,合法的变量名是( )
// 假设其余代码正确
_______ = 100;

{{ select(3) }}

  • 选项 My#Score
  • 选项 2ndPlayer
  • 选项 total_score
  • 选项 int
  1. 执行以下代码后,输出结果是( )
int x = 5;
cout << 8 / x * x;

{{ select(4) }}

  • 选项 8
  • 选项 5
  • 选项 0
  • 选项 1
  1. C++ 表达式 12 - 5 * 2 % 3 的值是( )

{{ select(5) }}

  • 选项 14
  • 选项 11
  • 选项 10
  • 选项 9
  1. 执行以下代码,若先输入 15 回车,再输入 25 回车,输出是( )
int P, Q;
cin >> P;
cout << "{" << P + Q << "}";

{{ select(6) }}

  • 选项 {40}
  • 选项 {15}
  • 选项 编译错误
  • 选项 运行结果不确定(Q 未初始化)
  1. 当前是 11 月,求 N 个月后的月份(1~12)。横线处应填( )
int M = ___________;
if (M == 0) cout << "12月";
else cout << M << "月";

{{ select(7) }}

  • 选项 N % 12
  • 选项 (11 + N) % 12
  • 选项 (11 + N - 1) % 12 + 1
  • 选项 (11 + N) / 12
  1. 执行以下代码后,输出结果是( )
int s = 0;
for (int i = 1; i <= 100; i++)
    s += i % 3;
cout << s;

{{ select(8) }}

  • 选项 66
  • 选项 67
  • 选项 100
  • 选项 0
  1. 执行以下代码后,输出结果是( )
int k = 0;
for (int i = -50; i < 50; i++)
    k += i % 5;
cout << k;

{{ select(9) }}

  • 选项 0
  • 选项 50
  • 选项 -50
  • 选项 2500
  1. 执行以下代码后,输出结果是( )
int i;
for (i = 1; i < 6; i++) {
    if (i % 4 == 0) break;
    printf("%d#", i);
}
if (i >= 6) printf("END");

{{ select(10) }}

  • 选项 1#2#3#
  • 选项 1#2#3#END
  • 选项 1#2#3#4#
  • 选项 1#2#3#4#END
  1. 以下代码用于求正整数 N 的“去零反转数”(如 1020 → 201)。横线处条件错误的是( )
while (________) {
    rst = rst * 10 + N % 10;
    N /= 10;
}

{{ select(11) }}

  • 选项 N != 0
  • 选项 N > 0
  • 选项 !(N == 0)
  • 选项 N = 0
  1. 以下哪段代码不能正确交换两个正整数 a 和 b?( ){{ select(12) }}
  • temp = a; a = b; b = temp;
    
  • a = a + b; b = a - b; a = a - b;
    
  • b = a - b; a = a - b; b = a + b;
    
  • a, b = b, a;
    
  1. 以下代码用于获取正整数 N 的第 M 位数字(个位为第 1 位)。如 N=5678, M=3,应输出 6。横线处应填( )
int div = 1;
for (int i = 1; i < M; i++) div *= 10;
cout << _________;

{{ select(13) }}

  • 选项 N / div % 10
  • 选项 N % div / 10
  • 选项 N / (div * 10) % 10
  • 选项 N % (div * 10) / div
  1. 执行以下代码后,输出结果是( )
int num = 0;
while (num < 6) {
    num++;
    if (num == 4) continue;
    printf("%d#", num);
}

{{ select(14) }}

  • 选项 1#2#3#5#6#
  • 选项 1#2#3#5#6
  • 选项 1#2#3#4#5#6#
  • 选项 1#2#3#4#5#6
  1. 以下代码用于记录输入整数的最大最小值(输入 -888 结束)。说法错误的是( )
cin >> x;
minv = maxv = x;
while (x != -888) {
    if (x > maxv) maxv = x;
    if (x < minv) minv = x;
    cin >> x;
}
cout << minv << " " << maxv;

{{ select(15) }}

  • 选项 若第一个数就是 -888,会输出 -888 -888
  • 选项 若输入数据不含 -888,程序会陷入死循环
  • 选项 若用于成绩统计(成绩≥0),可正常工作
  • 选项 把 cin >> x; 移到 while 循环内部开头,结果不变
  1. 在 IDE 中调试时,修改源代码后必须重新编译才能使断点生效。( )

{{ select(16) }}

  • 选项 正确
  • 选项 错误
  1. 表达式 15 % 0.5 在 C++ 中会报错。( )

{{ select(17) }}

  • 选项 正确
  • 选项 错误
  1. 执行以下代码后输出为 10。( )
int i;
for (i = 0; i < 10; i++) break;
cout << i;

{{ select(18) }}

  • 选项 正确
  • 选项 错误
  1. 执行以下代码后输出为 45。( )
int n = 0;
for (int i = 0; i < 10; i++) n += i;
cout << n;

{{ select(19) }}

  • 选项 正确
  • 选项 错误
  1. for(int i=0; i<100; i++) cnt+=i; 中的 i<100 改为 i<=100,输出会改变。( )

{{ select(20) }}

  • 选项 正确
  • 选项 错误
  1. 执行 cout << (10 + 10.5); 会报错,因为 int 和 double 不能直接相加。( )

{{ select(21) }}

  • 选项 正确
  • 选项 错误
  1. 执行以下代码会导致死循环。( )
int count = 0;
while (count < 5) {
    count++;
    if (count == 3) continue;
}

{{ select(22) }}

  • 选项 正确
  • 选项 错误
  1. 以下斐波那契代码能正确输出前 n 项(首项为 0,次项为 1)。( )
cin >> n;
a = 0; b = 1;
for (int j = 0; j < n; j++) {
    cout << a << " ";
    b = b + a;
    a = b - a;
}

{{ select(23) }}

  • 选项 正确
  • 选项 错误
  1. C++ 中变量名可以使用中文拼音,如 XingMing。( )

{{ select(24) }}

  • 选项 正确
  • 选项 错误
  1. false 是 C++ 关键字,不能用作变量名。( )

{{ select(25) }}

  • 选项 正确
  • 选项 错误