#GESP202409C2. 2024年9月 GESP 2级客观题真题

2024年9月 GESP 2级客观题真题

一、单项选择题(共 15 题,每题 2 分,共 30 分)

  1. 据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为2μs(微秒)。那么该磁心存储元件相当于现代计算机的( )。

{{ select(1) }}

  • 内存
  • 磁盘
  • CPU
  • 显示器

  1. IPv4版本的因特网总共有( )个A类地址网络。

{{ select(2) }}

  • 65000
  • 200万
  • 126
  • 128

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

{{ select(3) }}

  • ccf-gesp
  • ccf_gesp
  • ccfGesp
  • _ccfGesp

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

{{ select(4) }}

  • for (int i = 0; i < 10; i++)
  • for (int i = 0; i < 11; i++)
  • for (int i = 1; i < 10; ++i)
  • for (int i = 0; i < 11; ++i)

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

{{ select(5) }}

  • 1
  • 2
  • 4
  • 5

  1. 假定变量a和b可能是整型、字符型或浮点型,则下面C++代码执行时先后输入 -23.14 后,其输出不可能是( )。[已知字符 '+'、'-'、'=' 的ASCII码值分别是43、45和61]
1 cin >> a;
2 cin >> b;
3 cout << (a + b);

{{ select(6) }}

  • 1
  • 1.14
  • 47
  • 将触发异常

  1. 在C++代码中假设N为正整数,则下面代码能获得个位数的是( )。

{{ select(7) }}

  • N % 10
  • N / 10
  • N && 10
  • 以上选项均不正确

  1. 下面C++代码执行后的输出是( )。
1 int i;
2 for (i = 0; i < 10; i++) {
3     if (i % 2)
4         break;
5     cout << "0#";
6 }
7 if(i==10) cout << "1#";

{{ select(8) }}

  • 0#
  • 1#
  • 0#0#1
  • 没有输出

  1. 执行下面C++代码并输入1和0,有关说法正确的是( )。
1 int a, b;
2 cin >> a >> b;
3 if(a && b)
4     cout << ("1");
5 else if(!(a||b))
6     cout << ("2");
7 else if(a || b)
8     cout << ("3");
9 else
10    cout << ("4");

{{ select(9) }}

  • 1
  • 2
  • 3
  • 4

  1. 下面C++代码执行后的输出是( )。
1 int loopCount = 0;
2 for(int i = 1; i < 5; i += 2)
3     loopCount += 1;
4 cout << (loopCount);

{{ select(10) }}

  • 1
  • 2
  • 3
  • 5

  1. 下图是C++程序执行后的输出。为实现其功能,横线处应填入代码是( )。
 1   7
 2   1
 3   2 3
 4   3 4 5
 5   4 5 6 7
 6   5 6 7 8 9
 7   6 7 8 9 10 11
 8   7 8 9 10 11 12 13
 9
10   //////////////////////////////
11
12   int lineNum;
13   cin >> lineNum;
14   for (int i= 1; i < lineNum+1; i++) {
15       for(int __________________)
16           cout << j << " ";
17       cout << endl;
18   }

{{ select(11) }}

  • j = i; j < i; j++
  • j = 1; j < i; j++
  • j = i; j < i*2; j++
  • j = i+1; j < i+i; j++

  1. 下面C++代码执行后输出逆序数,如输入 123 则输出 321。如输入 120 则输出 21。横线处先后应填入的代码是( )。
 1 int N;
 2 cin >> N;
 3 int rst = 0;
 4 while (N) {
 5     ____________________;
 6     ____________________;
 7 }
 8 cout << (rst);

{{ select(12) }}

  • rst = rst * 10 + N % 10 N = N / 10
  • rst += N % 10 N = N / 10
  • rst = rst * 10 + N / 10 N = N % 10
  • rst += N / 10 N = N % 10

  1. 下面的C++代码用于输入学生成绩,并根据人数计算出平均成绩,有关说法错误的是( )。
 1 float Sum = 0; // 保存总成绩
 2 int cnt = 0; // 保存学生人数
 3 while (1) {
 4     int score;
 5     cin >> score;
 6     if (score < 0)
 7         break;
 8     cnt += 1;
 9     Sum += score;
10 }
11 cout << "总学生数:" << cnt << "平均分:" <<
12 Sum/cnt;

{{ select(13) }}

  • 代码 while(1) 写法错误
  • 如果输入负数,将结束输入,并正确输出
  • 如果输入的学生成绩含有小数,程序将无法正常执行
  • 变量 int score 初始值不确定,但不影响程序执行

  1. 以下C++代码判断输入的正整数是否为质数,如果该数字是质数,则输出 YES,否则输出 NO。质数是指仅能被1和它本身整除的正整数。请在横线上填写代码。( )
1 int num, i;
2 cin >> num;
3 for(i = 2; i < num; i++) {
4     if(__________){
5         cout << ("NO");
6         break;
7     }
8 if(i == num)
9     cout << ("YES");

{{ select(14) }}

  • num % i
  • num % i == 0
  • num / i
  • num / i == 0

  1. 一个数如果能被某个数(比如7)整除,或者含有该数,则说该数是某个数的相关数。下面C++代码用于判定输入的数与7是否有关。下列说法错误的是( )。
 1 int N, M;
 2 bool Flag = false;
 3 cin >> N;
 4 M = N;
 5 if (M % 7 == 0)
 6     Flag = true;
 7 while (!Flag && M) {
 8     if (M % 10 == 7) {
 9         Flag = true;
10         break;
11     }
12     M /= 10;
13 }
14 if (Flag)
15     cout << N << "与7有关";
16 else
17     cout << N << "与7无关";

{{ select(15) }}

  • 删除 break 语句不会导致死循环,但有时会导致结果错误
  • 删除 M /= 10 将可能导致死循环
  • 删除 M = N 并将其后代码中的 M 变量改为 N,并调整输出同样能完成相关功能
  • 删除 break 语句不会导致死循环,但有时会影响效率

二、判断题(共 10 题,每题 2 分,共 20 分)

  1. 小杨最近开始学习C++编程,老师说C++是一门面向对象的编程语言,也是一门高级语言。

{{ select(16) }}

  • 正确
  • 错误

  1. 在C++中,cout<<(3, 4, 5) 可以输出 3 4 5,且每个输出项之间用空格分开。

{{ select(17) }}

  • 正确
  • 错误

  1. C++表达式 12 % 10 % 10 的值为2。

{{ select(18) }}

  • 正确
  • 错误

  1. C++语句 cout<< rand() << ' ' << rand(); 的第二个输出值较大。

{{ select(19) }}

  • 正确
  • 错误

  1. 定义C++的 int 类型的变量 ch,而且值为 '1',则语句 cout<< int(ch); 的输出为 1

{{ select(20) }}

  • 正确
  • 错误

  1. 下面C++代码执行后将输出10。
1 int i;
2 for(i = 0; i < 10; i++)
3     continue;
4 if(i == 10)
5     cout << i;

{{ select(21) }}

  • 正确
  • 错误

  1. 下面C++代码能求整数N和M之间所有整数之和,包含N和M。
 1 int N, M, Sum;
 2
 3 cin >> N >> M;
 4
 5 if (N > M) {
 6     int tmp = N;
 7     N = M, M = tmp;
 8 }
 9
10 for (int i = N; i < M+1; i++)
11     Sum += i;
12
13 cout << Sum;

{{ select(22) }}

  • 正确
  • 错误

  1. 将下面C++代码中的L3标记的代码行调整为 for (int i = 0; i < 5; i++) 后输出结果相同。
1 int loopCount = 0;
2 for(int i = 1; i < 5; i++) // L3
3     for(int j = 0; j < i; j++)
4         loopCount += 1;
5 cout << loopCount;

{{ select(23) }}

  • 正确
  • 错误

  1. 某一系列数据的规律是从第3个数值开始是前两个数之和。下面的代码求第N个数的值,N限定为大于2。
1 int start1; // 第1个数
2 int start2; // 第2个数
3 int N; // 求N个数的值
4 int tmp;
5 cin >> start1 >> start2 >> N;
6
7 for(int i = 2; i < N; i++) {
8     tmp = start1 + start2;
9     start1 = start2;
10     start2 = tmp;
11 }
12 cout << start2;

{{ select(24) }}

  • 正确
  • 错误

  1. 下面C++代码执行时如果输入 2024,则输出是 4202
1 int N, flag = 0;
2 cin >> N;
3 while (N) {
4     if(!flag) cout << N % 10;
5     N /= 10;
6     flag = (flag + 1)%2;
7 }

{{ select(25) }}

  • 正确
  • 错误

来源

GESP 2024 年 09 月 C++ 二级