5.15模拟卷4
您的姓名:
1. 敌军发来一个三位数的数字密码 code(例如 846)。通讯员需要提取出这个密码的“十位数字”(即 4)进行核对。以下哪个 C++ 算术表达式能准确提取出十位数?()
A. code % 10
B. code / 100
C. (code / 10) % 10
D. (code % 10) / 10
2. 后勤部在记录 5 个连队的弹药储备。小兵写了代码 int ammo[5] = {100, 200};,请问没有被明确赋值的第 4 个连队 ammo[3] 的初始值会是多少?()
A. 200
B. 一个随机的垃圾数据
C. 0
D. 报错,因为没有写完
3. 侦察兵截获的电报中,数字全被写成了字符形式,比如字符 '8'。在 C++ 中,如果我们想把字符 '8' 转换成真正的整数 8 参与数学计算,最标准的做法是?()
A. int num = '8' - '0';
B. int num = '8' - 0;
C. int num = '8' - 32;
D. int num = "8";
4. 阅读以下红军弹药消耗的代码。请问最后主函数打印出来的 bullets 的值是多少?()
#include <iostream>
using namespace std;
int bullets = 50; // 全局变量,总弹药
void shoot() {
bullets = bullets - 5; // 消耗 5 发
}
int main() {
int bullets = 10; // 局部变量,战士个人弹药
shoot();
cout << bullets;
return 0;
}
A. 45
B. 50
C. 5
D. 10
5. 指挥部规定,如果敌军人数 enemy 大于 100,策略 action 就是 "撤退" (Retreat),否则就是 "进攻" (Attack)。下面哪行代码正确使用了 C++ 的三目运算符来实现这个逻辑?()
A. string action = (enemy > 100) ? "Retreat" : "Attack";
B. string action = (enemy > 100) : "Retreat" ? "Attack";
C. string action = (enemy > 100) ? "Attack" : "Retreat";
D. string action = (enemy > 100) -> "Retreat" : "Attack";
6. 红军按比例分配干粮,小兵写了如下计算公式求分配率(预期一半,即 0.5 或者 50%)。请问 rate 的最终结果是多少?()
double rate = 1 / 2 * 100.0;
A. 50.0
B. 0.0
C. 0.5
D. 报错
7. 红军需要统计战场上出现的 1号、2号、3号三种敌军坦克的数量。定义了数组 int count[4] = {0};,当侦察兵发现一辆 2号 坦克时,哪段代码能正确记录这一信息?()
A. count = count + 2;
B. count[2]++;
C. count[2] = 2;
D. count[i] == 2;
8. 过雪山时记录了 4 个时段的温度:int temp[4] = {-5, -15, -2, -10};。如果要用循环找出最低温度,min_t 变量的初始值设置最合理的是?()
A. int min_t = 0;
B. int min_t = 100;
C. int min_t = -1;
D. int min_t = temp[1];
9. 红军一排每 3 小时巡逻一次,二排每 4 小时巡逻一次。他们在第 0 小时一起出发。如果用循环从 i = 1 开始模拟时间,什么条件能代表“两个排同时回到营地”?()
A. if (i % 3 == 0 || i % 4 == 0)
B. if (i % 3 == 0 && i % 4 == 0)
C. if (i / 3 == 0 && i / 4 == 0)
D. if (i % (3 + 4) == 0)
10. 电台开机时,必须至少要求通讯员输入一次密码,如果密码不对就继续要求输入。最适合这种“先执行一次,再判断是否继续”的循环结构是?()
A. for 循环
B. while 循环
C. do-while 循环
D. if-else 分支
11.小通讯员定义了一个字符数组存储密码 "Spark"(5个字母)。为了让 C++ 正常识别它是一个字符串,数组的长度至少需要声明为多大?()
A. 4
B. 5
C. 6
D. 10
12. 阅读以下代码,布尔变量 ans 的最终结果是?()
bool ans = (5 > 3) && (2 == 2) || (4 < 1);
A. true (真)
B. false (假)
C. 编译报错
D. 0
13. 为了破解敌人的阵法,我们需要找出阵眼编号 N 的所有因数。以下哪个条件能准确判断 i 是 N 的因数?()
A. if (i % N == 0)
B. if (N % i == 0)
C. if (N / i == 0)
D. if (N * i == 0)
14. 红军要将行军路线记录数组 route[n] 倒序翻转。定义了 left = 0 和 right = n - 1。在 while 循环内部执行 swap(route[left], route[right]); left++; right--;。那么 while 的循环条件应该是?()
A. while (left >= right)
B. while (left != 0)
C. while (right < n)
D. while (left < right)
15. 阅读以下代码,程序的输出结果是?()
int x = 1;
switch(x) {
case 1: x++;
case 2: x += 2; break;
case 3: x--;
}
cout << x;
A. 1
B. 2
C. 4
D. 3
16. 在 C++ 中,如果我们尝试计算 5 % 2.0(求余数),编译器会非常智能地把 2.0 当作 2 来处理,并顺利输出余数 1。
对
错
17. 在一维数组中,所有的元素在计算机内存中都是“肩并肩”连续存放在一起的,这就是为什么我们可以通过下标(如 a[0], a[1])快速访问它们的原因。
对
错
18. 函数不仅可以被主函数 main() 调用,一个函数甚至可以在自己的函数体内部调用它自己,这种神奇的编程技巧被称为“递归”。
对
错
19. break 语句的作用是跳过当前这一轮循环剩余的代码,直接进入下一轮循环的判断;而 continue 语句才是用来彻底终止整个循环的。
对
错
20. 在 C++ 整数除法中,对于任意正整数 a 和 b,数学等式 (a / b) * b + (a % b) == a 永远成立。
对
错
关闭
更多问卷
复制此问卷