5617:[GESP202609二级] 客观题

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:0 解决:0

题目描述

## 一、单选题(每题 2 分,共 30 分) **第 1 题** 第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境($IDE$)编写并调试方阵的控制程序。下列关于 $IDE$ 功能的描述,错误的是(  ) - 可以提供代码自动补全,提高编程效率 - 可以提供辅助信息,帮助排查程序逻辑错误 - 可以直接控制机器人电机转动 - 支持语法高亮,使代码更易阅读 **第 2 题** 计算机 $CPU$ 中的高速缓冲存储器($Cache$)主要为提升系统性能而设计。下列关于 $Cache$ 的说法中正确的是(  ) - $Cache$ 的容量比主存大,速度比主存快 - $Cache$ 通常用于暂存 $CPU$ 频繁访问的数据 - $Cache$ 中的数据断电后不会丢失,属于非易失性存储器 - $Cache$ 的访问速度比 $CPU$ 寄存器还要快 **第 3 题** 执行如下 `C++` 代码,其输出是(  ) ```cpp 01 cout << (3 == 3.0); ``` - $1$ - $1.0$ - $0$ - $-1$ **第 4 题** 执行如下 `C++` 代码,其输出是(  ) ```cpp 01 cout << (bool(5) + bool(-5) + bool(5.0)); ``` - $0$ - $1$ - $2$ - $3$ **第 5 题** 判断年份 $N$ 是否为闰年的规则是:能被 $4$ 整除但不能被 $100$ 整除,或者能被 $400$ 整除。以下 `C++` 表达式中,能正确判断 $N$ 是否为闰年的是(  ) - `(N % 4 == 0 && N % 100 != 0) || (N % 400 == 0)` - `N % 4 == 0 && N % 100 == 0 || N % 400 == 0` - `(N / 4 == 0 && N / 100 != 0) || (N / 400 == 0)` - `(N % 4 == 0 && N % 100 != 0) && (N % 400 == 0)` **第 6 题** 执行如下 `C++` 代码,其输出是(  ) ```cpp 01 int tot, i; 02 tot = 0; 03 for (i = 0; i < 10; i++) 04    if (i) 05        tot += 1; 06 cout << tot; ``` - $0$ - $8$ - $9$ - $10$ **第 7 题** 执行如下 `C++` 代码,当输入 $4$ 时,其输出是(  ) ```cpp 01 int n, tot, i, j; 02 cin >> n; 03 tot = 0; 04 for (i = 1; i < n; i++) 05    for (j = 1; j < i; j++) 06        tot += 1; 07 cout << tot; ``` - $1$ - $3$ - $6$ - $10$ **第 8 题** 下面的 `C++` 代码执行后其输出是(  ) ```cpp 01 int tnt, i; 02 tnt = 0; 03 for (i = 0; i < 10; i++) 04    if (i % 3) 05        tnt += i; 06 cout << tnt; ``` - $12$ - $18$ - $22$ - $27$ **第 9 题** 下面的 `C++` 代码之后的输出是(  ) ```cpp 01 int tot = 0, i; 02 for (i = -5; i < 5; i++) 03    if (not(i % 3 != 0)) 04        tot += 1; 05 cout << tot; ``` - $2$ - $3$ - $7$ - $9$ **第 10 题** 有关如下 `C++` 代码描述,变量都是整型,错误的是(  ) ```cpp 01 int n, limit, i; 02 cout << "请输入一个正整数: "; 03 cin >> n; 04 if (n <= 1) 05    printf("%d非素数", n); 06 else if (n == 2) 07    printf("2是素数"); 08 else { 09    limit = sqrt(n) + 1; 10    for (i = 2; i < limit; i++) 11        if (n % i == 0) { 12            printf("%d非素数", n); 13            break; 14       } 15    if (i >= limit) 16        printf("%d是素数", n); 17 } ``` - `n <= 1` 条件用于判断输入 $0$ 、$1$ 以及负数时的情况,不能省略。 - `n == 2` 条件及其相关代码省略,程序的输出结果没有区别。 - `break` 语句不可以省略,否则非素数还将执行最后一行的语句。 - `limit = sqrt(n) + 1` 语句中的 $1$ 可以修改为其他大于等于 $1$ 的正整数,执行结果不会有错误,但循环次数增多,效率有所影响。 **第 11 题** 执行以下 `C++` 代码后,最终的输出结果是(  ) ```cpp 01 int total, i, j; 02 total = 0; 03 i = 1; 04 while (i <= 3) { 05    for (j = 1; j < i + 1; j++) 06        total += i * j; 07    i += 1; 08 } 09 cout << total; ``` - $9$ - $11$ - $23$ - $25$ **第 12 题** 下面 `C++` 代码执行后其输出是(  ) ```cpp 01 int count, i, j; 02 count = 0; 03 for (i = 1; i < 4; i++) 04    for (j = 0; j < i; j++) { 05        if (j % 3 == 0) 06            continue; 07        count += 1; 08        if (i * j >= 2) 09            break; 10   } 11 printf("%d %d %d", i, j, count); ``` - `2 3 2` - `3 0 2` - `4 1 2` - `4 2 3` **第 13 题** 如下的 `C++` 代码执行时输入 $12$ 将输出如下数字图形。注意:最后一行之前没有空格。横线处应填入的代码是(  ) ```text 0 12 345 6789 01234 567890 1234567 89012345 678901234 5678901234 56789012345 678901234567 ``` ```cpp 01 int line, i, j, k; 02 03 i = 0; 04 cout << "请输入行数:"; 05 cin >> line; 06 for (j = 0; j < line; j++) { 07 for (k = 0; k < ___________; k++) // L1 08 cout << " "; 09 for (k = 0; k < j + 1; k++) { 10 cout << i; 11 i += 1; 12 if (i >= 10) 13 i = 0; 14 } 15 cout << endl; 16 } ``` - `line - j - 1` - `line - j` - `line` - `line + 1` **第 14 题** 小北的身高是 $1.65$ 米。班上有 $n$ 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是(  ) ```cpp 01 int n, i; 02 float target, h, best_height, min_diff, diff; 03 04 cout << "请输入小朋友的人数: "; 05 cin >> n; 06 target = 1.65; 07 best_height = 0.0; 08 min_diff = 100.0; 09 10 for (i = 0; i < n; i++) { 11    cout << "请输入第 " << i << " 个小朋友的身高: "; 12    cin >> h; 13    diff = abs(h - target); 14 15 if (____________________) { // L1 16        min_diff = diff; 17        best_height = h; 18   } 19 } 20 cout << "小北的朋友身高为: " << best_height; ``` - `diff < min_diff || (diff == min_diff && h < best_height)` - `diff <= min_diff && h < best_height` - `diff < min_diff && h < best_height` - `diff < min_diff || h < best_height` **第 15 题** 小北的身高是 $1.65$ 米。班上有 $n$ 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是(  ) ```cpp 01 int n, i; 02 float target, h, best_height, min_diff, diff; 03 04 cout << "请输入小朋友的人数: "; 05 cin >> n; 06 target = 1.65; 07 best_height = 0.0; 08 min_diff = 100.0; 09 10 for (i = 0; i < n; i++) { 11 cout << "请输入第 " << (i + 1) << " 个小朋友的身高: "; 12 cin >> h; 13 14 if (h > target) 15 diff = h - target; 16 else 17 diff = target - h; 18 19 if (diff < min_diff) { 20 min_diff = diff; 21 best_height = h; 22 } else if (diff == min_diff) { 23 ---------------- 24 ---------------- 25 } 26 } 27 28 cout << "小北的朋友身高为:" << best_height; ``` - ```cpp 01 if (h < best_height) 02 best_height = h; ``` - ```cpp 01 if (h > best_height) 02 best_height = h; ``` - ```cpp 01 if (h > target) 02 best_height = h; ``` - ```cpp 01 if (h >= best_height) 02 best_height = h; ``` ## 二、判断题(每题 2 分,共 20 分) **第 1 题** `C++` 程序执行 `cin` 或 `scanf` 语句时通常是使用键盘等输入设备来输入某个变量的值。 - 正确 - 错误 **第 2 题** 执行 `C++` 语句 `cout << ( 5 && 2 )`; 将输出 $1$。 - 正确 - 错误 **第 3 题** `C++` 表达式 `2 * - '2' / 4` 的值是 $-1$。 - 正确 - 错误 **第 4 题** 如下 `C++` 代码执行后的输出是 $10$。 ```cpp 01 int a; 02 a = 5; 03 a == +5; 04 cout << a; ``` - 正确 - 错误 **第 5 题** 执行 `C++` 代码 `cout << (not not 5)` 将输出 $5$。 - 正确 - 错误 **第 6 题** 下面 `C++` 代码执行后将输出 $369$。 ```cpp 01 for (int i = 1; i < 10; i++) 02    if (not(i % 3)) 03        cout << i; ``` - 正确 - 错误 **第 7 题** $N$ 是整数,执行如下 `C++` 代码,将能输出 $0$ 到 $N$ 之间(包含 $N$)所有数之和。 ```cpp 01 int N, tot, i; 02 cin >> N; 03 tot = 0; 04 for (i = 0; i < N + 1; i++) 05    tot += i; 06 cout << tot; ``` - 正确 - 错误 **第 8 题** 如下 `C++` 代码执行后,输出值为 $0$。 ```cpp 01 int cnt, i, j; 02 cnt = 0; 03 for (i = 0; i < 10; i++) { 04    continue; 05    for (j = 0; j < i; j++) 06        cnt += 1; 07 } 08 cout << i * cnt; ``` - 正确 - 错误 **第 9 题** 求解鸡兔同笼。在如下 `C++` 代码中,`tou` 代表鸡和兔的头总数,`jiao` 代表鸡和兔的脚总数。先后两个输入均为正整数。该程序能求解鸡兔同笼。 ```cpp 01 int tou, jiao, tu_tou, ji_tou; 02 03 cout << "请输入鸡和兔的头总数:"; 04 cin >> tou; 05 cout << "请输入鸡和兔的脚总数:"; 06 cin >> jiao; 07 08 for (tu_tou = 0; tu_tou < tou + 1; tu_tou++) { 09    ji_tou = tou - tu_tou; 10    if (tu_tou * 4 + ji_tou * 2 == jiao) 11        printf("兔的数量=%d,鸡的数量=%d\n", tu_tou, ji_tou); 12 } 13 if (tu_tou == tou) 14    printf("无解\n"); ``` - 正确 - 错误 **第 10 题** 如果 $N$ 和 $M$ 均为整数,下列 `C++` 代码则可以判断正整数 $N$ 是 $M$ 的平方。比如 $9$ 是 $3$ 的平方。 ```cpp 01 int N, M; 02 03 cout << "请输入正整数N:"; 04 cin >> N; 05 cout << "请输入整数M:"; 06 cin >> M; 07 08 if (int(sqrt(N)) == abs(M)) 09    printf("%d是%d的平方\n", N, M); ``` - 正确 - 错误

来源/分类