#G2691. [GESP一级2609] 一级理论
一、单选题(每题 2 分,共 30 分)
第 1 题 第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境(IDE)编写并调试方阵的控制程序。下列关于 IDE 功能的描述,错误的是()。
{{ select(1) }}
- 可以提供代码自动补全,提高编程效率
- 可以提供辅助信息,帮助排查程序逻辑错误
- 可以直接控制机器人电机转动
- 支持语法高亮,使代码更易阅读
第 2 题 现代计算机自问世至今,已经经历了四个时代,即:电子管计算机(1946—1958 年)、晶体管计算机(1958—1964 年)、中小规模集成电路计算机(1965—1970 年)以及大规模和超大规模集成电路计算机(1971年至今)。那么这里划分计算机时代所采用的主要依据是()。
{{ select(2) }}
- 运算速度
- 存储容量
- 体积大小
- 核心元器件
第 3 题 下列C++代码执行的输出是()。
1 int a = 4 + -2 * 3 ;
2 cout << a ;
{{ select(3) }}
-2618- 输出错误提示信息
第 4 题 下列 C++ 表达式与 2 * - 2 % 3 的值相同的是()。
{{ select(4) }}
(2 * - 2) % 32 * (- 2 % 3)2 * - (2 % 3)2 % - 2 * 3
第 5 题 如下C++代码执行后,其输出是()。
1 int a = 3 ;
2 int b = 4 ;
3 printf("%d#%d\n", a , b);
{{ select(5) }}
3 43#43 # 4-
3 4
第 6 题 下列C++代码执行后的输出是()。
1 int a = 8;
2 int b = 10;
3 cout << (a % b) << " " << (a * 1 / b) << " " << (a * 1.0 / b);
{{ select(6) }}
8 0.8 00 0.8 08 0 0.80 0 0.8
第 7 题 执行下面代码后,b 的值会是()。
1 int b = 8;
2 ++b *= 2 + 1;
{{ select(7) }}
18171927
第 8 题 执行如下C++ 代码,其输出是()。
1 int i, cnt = 0;
2 for (i = 0; i < 10; i++)
3 cnt += 1;
4 cout << i << ' ' << cnt;
{{ select(8) }}
10 109 910 99 10
第 9 题 执行如下C++代码,变量都是整型,则其输出是()。
1 int cnt, i;
2 cnt = 0;
3 for (i = -10; i < 0; i++)
4 cnt += 1;
5 cout << (i * cnt);
{{ select(9) }}
-10-909
第 10 题 如下C++代码执行输出是()。
1 int i;
2 for (i = 1; i < 5; i++) {
3 if (i % 3 == 0) {
4 printf("%d+", i);
5 continue ;
6 } else {
7 printf("%d-", i);
8 break;
9 }
10 }
11 printf("%dEND*", i);
{{ select(10) }}
1-11 - 1 END*1+1-2-2END*1-1END*
第 11 题 如下C++代码执行时,下列说法错误的是()。
1 int N , tot;
2 cin >> N;
3 tot = 0;
4
5 while (N > 0) {
6 cout << N << "#";
7 tot += 1;
8 N -= 1;
9 }
10
11 cout << tot << "-END ";
{{ select(11) }}
- 如果输入 3,输出是:3#2#1#3-END
- 如果输入 -10,输出是:0-END
- 如果输入 0,输出是:0-END
- 如果输入 1,输出是:1#0-END
第 12 题 下列C++代码执行时如输入 35,输出如下图所示。横线处应填入的代码是()。
1 35 34 33 32 31 30 29 28 27 26
2 25 24 23 22 21 20 19 18 17 16
3 15 14 13 12 11 10 9 8 7 6
4 5 4 3 2 1
1 int N, tot, i;
2 cin >> N ;
3
4 tot = 0 ;
5 for (i = 0; i < N; i++) {
6 printf( );
7 tot = tot + 1;
8 if (tot % 10 == 0)
9 printf("\n");
10 }
{{ select(12) }}
"%3d", N"%3d", N - iN - iN
第 13 题 下面C++代码执行后输出是()。
1 int k = 0 ;
2 while (k < 8) {
3 k += 2;
4 continue ;
5 if (k > 5)
6 break;
7 cout << k << "#";
8 }
9 if (k >= 8)
10 cout << "FINISH";
{{ select(13) }}
FINISH2#4#6#FINISH2#4#FINISH2#4#6#8#FINISH
第 14 题 在下列C++代码中,如果 N 和 M 均输入大于 0 的整数,则可以取得正整数N 的从右到左第M 位置的数。个位数为第1 位置。则横线处应填入()。
1 int N, M, M10;
2
3 cout << "请输入正整数:";
4 cin >> N;
5 cout << "从右到左第几位?";
6 cin >> M;
7
8 M10 = 1;
9 for (; M > 1; M--)
10 M10 *= 10 ;
11 cout << ________; // L1
{{ select(14) }}
N / M10 % 10N / M10 / 10N % M10 % 10N % M10 / 10
第 15 题 求解鸡兔同笼。在如下C++代码中,tou 代表鸡和兔的头总数,jiao 代表鸡和兔的脚总数。先后两个输入均为正整数。关于该程序下面说法准确的是()
1 int tou, jiao, tu_tou, ji_tou;
2
3 cout << "请输入鸡和兔的头总数:";
4 cin >> tou;
5 cout << "请输入鸡和兔的脚总数:";
6 cin >> jiao;
7
8 for (tu_tou = 0; tu_tou < tou + 1; tu_tou++) { // L1
9 ji_tou = tou - tu_tou ;
10 if (tu_tou * 4 + ji_tou * 2 == jiao) {
11 printf("兔的数量=%d,鸡的数量=%d\n", tu_tou, ji_tou);
12 break;
13 }
14 }
15 if (tu_tou == tou) // L2
16 printf("无解\n");
{{ select(15) }}
- 能求解鸡兔同笼。
- ji_tou 没有初始化,在 L1 行代码前增加 ji_tou = 0; 即可求解鸡兔同笼。
- 将 L1 行的 tu_tou < tou + 1 改为 tu_tou < tou 即可求解鸡兔同笼。
- 将 L2 行的 tu_tou == tou 改为 tu_tou == tou + 1 即可求解鸡兔同笼。
二、判断题(每题 2 分,共 20 分)
第 16 题 C++ 程序执行 cin 或 scanf 语句时通常是使用键盘等输入设备来输入某个变量的值。
{{ select(16) }}
- 对
- 错
第 17 题 如果 n 为 3 位数的正整数,则C++表达式 n % 100 将能得到最高位。如 n 为 123,则该表达式的值为 1。
{{ select(17) }}
- 对
- 错
第 18 题 下面C++代码执行后将输出 20。
1 int i;
2 for (i = 0; i < 20; i += 3)
3 if (i % 3 != 0)
4 continue;
5 cout << i;
{{ select(18) }}
- 对
- 错
第 19 题 下列C++代码执行时如果先后输入 10 和 10 ,则将输出 10小于10。
1 int N, M;
2
3 cin >> N >> M;
4
5 if (N > M)
6 printf("%d大于%d", N , M);
7 else
8 printf("%d小于%d", N , M);
{{ select(19) }}
- 对
- 错
第 20 题 如下C++代码如果输入大于 0 的整数,则可以求 1 到 N 之和。
1 int N , tot;
2
3 cout << "请输入正整数:";
4 cin >> N ;
5 tot = 0 ;
6
7 while (N > 0) {
8 tot += N;
9 N += -1;
10 }
11 cout << tot;
{{ select(20) }}
- 对
- 错
第 21 题 在C++ 中,表达式 2 % 2 与 (-2) % 2 的值相同。
{{ select(21) }}
- 对
- 错
第 22 题 试图编译并执行下面C++代码,会输出 2。
1 float z = 12.0;
2 z = z / 4;
3 z--;
4 cout << z++;
{{ select(22) }}
- 对
- 错
第 23 题 在 C++ 代码中,如果两个变量 __ 和 ____都只包含下划线(_),但数目不同,则可能导致编译器无法识别,而报告变量重复定义。
{{ select(23) }}
- 对
- 错
第 24 题 C++ 的变量 X 是 double 型,则表达式 X = 27 % 12 的结果不可预测。
{{ select(24) }}
- 对
- 错
第 25 题 下面C++代码执行后输出的是 3。
1 int ans = 0;
2 for (int idx = 1; idx <= 7; idx += 2) {
3 if (idx == 5)
4 continue;
5 if (idx * idx > 30)
6 break;
7 ans += idx;
8 }
9 cout << ans;
{{ select(25) }}
- 对
- 错