#GESPK202603C2. 二级理论
二级理论
一.单选题(每题 2 分,共 30 分)
- 以下不属于计算机输入设备的有( )。 {{ select(1) }}
- 检测重心的重力传感器
- 预装的AI算法程序
- 接收动作指令的遥控器
- 拍摄其他机器人的摄像头
- 下面代码用来找出输入的 N 个正整数中最大的一个。如果将代码段用流程图表示,则 L1 标记的代码行应该使用的图形是( )。
int N, max=0, val;
cin >> N;
while(N){
cin >> val;
if(val > max) // L1
max = val;
N--;
}
cout << max;
{{ select(2) }}
- 圆形框
- 椭圆形框
- 平行四边形框
- 菱形框
- 下面 C++ 代码可以执行,有关说法正确的是( )。
double PI = 3.1415926;
cout << (PI);
{{ select(3) }}
- 为了方便初学者,cout << (PI) 和 cout << (pi) 效果相同
- cout << (PI) 修改为 cout << (Pi) 能正常执行 -不能用 PI 做变量名
- 将程序中全部 PI 改写为 Pai 能正常执行
- 下面选择项中,与 C++ 表达式!(x > 5 && y <= 10) 等价的是( )。
{{ select(4) }}
- x <= 5 && y > 10
- x > 5 || y <= 10
- x <= 5 || y > 10
- !x > 5 && !y <= 10
- 某同学执行C++代码 cout << ((0.1 + 0.2) == 0.3) 时输出 0 ,下面最可能的原因是( )。
{{ select(5) }}
- C++ 的 + 运算符在处理小数时存在 bug
- 浮点数在二进制中无法精确表示
- == 不能比较浮点数
- 0.1 + 0.2 的数学结果不等于 0.3
- 下面代码执行后的输出是( )。
tnt = 0;
for (int i = 0; i < 5; i++){
for (int j = 0; j < i; j++)
tnt += 1;
cout << tnt << "#";
}
cout << tnt;
{{ select(6) }}
- 0#1#3#6#10#10
- 1#2#3#4#5#6#7#8#9#10#10
- 10#10
- 10
- 下面代码执行后的输出是( )。
for ( int i = -2; i < 2; i++)
if (not i % 3)
cout << i << "#";
{{ select(7) }}
-
0#
-
-2#-1#1#
-
-1#0#
-
-2#0#1#
8.下面代码执行后的输出是( )。
int cnt = 0, i, j;
for (i =1; i < 5; i++){
for (j =0; j < i; j++)
cout << j << "#";
break;
}
if(i >= 5)
cout << (i*j);
{{ select(8) }}
-
0#0#1#0#1#2#0#1#2#3#12
-
0#0#1#0#1#2#0#1#2#3#
-
0#
-
1#
- 下面 C++ 代码执行后输出是( )。
int count = 0;
for (int i = 1; i < 4; i++)
for (int j = 1; j < 5; j++){
if (j == 3)
continue;
if (i == 2)
break;
count += 1;
}
cout << (count);
{{ select(9) }}
- 2
- 4
- 6
- 8
- 下面 4 个选项中,与下面代码具有相同效果的是( )。
i = 0;
while (i < 5){
cout << i;
i += 1;
}
{{ select(10) }}
-
for (i = 0; i < 5; i++) cout << i; -
for (i = 1; i < 5; i++) cout << i; -
for (i = 0; i < 6; i++) cout << i; -
for (i = 1; i < 6; i++) cout << i;
- 下面代码执行后输出是( )。
int n = 10;
while (n > 0){
n -= 1;
if (n % 3 == 0)
continue;
if (n == 5)
break;
}
cout << n;
{{ select(11) }}
- 0
- 5
- 6
- 7
12.下面代码执行后的输出是( )。
int i, j, cnt;
cnt = 0;
for (i = 0; i < 5; i++){
i = -i;
for (j = i; j < -i; j++)
cnt += 1;
i = -i;
}
cout << cnt;
{{ select(12) }}
- 5
- 15
- 20
- 30
- 某学校图书馆的借阅卡号由6位整数组成。前5位是顺序编号,第6位是校验码,用于防止输错。校验码规则如下:将前5位数字相加,然后除以10的余数,就是第6位数字。如卡号 123455 的前5位之和为 15 ,除以 10 的余数是5,故第6位为5。下面的C++代码段用于判断卡号是否正确,横线处应填入的代码是( )。
cout << "请输入卡号:";
cin >> N;
order_num = N / 10; // 获得前5位顺序号,假设录入一定为6位正整数
check_num = N % 10; // 获得最后一位
tnt = 0; // 保存前5位之和
for (i = 0; i < 5; i++){
________________;
order_num /= 10;
}
if (__________________)
cout << "符合校验规则";
else
cout << "不符合校验规则";
{{ select(13) }}
-
tnt += order_num / 10 tnt / 10 == check_num -
tnt += order_num % 10 tnt % 10 == check_num -
tnt = order_num / 10 + tnt tnt % 10 == check_num -
tnt = order_num % 10 tnt / 10 == check_num
- 下面代码输出的图形是( )。
for (i = 1; i < 5; i++){
for (j = 1; j < i+1; j++)
cout << j;
cout << endl;
}
{{ select(14) }}
-
1 12 123 1234 -
1 22 333 4444 -
1 21 321 4321 -
4 34 234 1234
- 某学校举办“校园演讲比赛”,每位选手由8位评委打分(分数为 0~10 的整数),且每位评委必须打分。计 分规则:若至少有5位评委给出大于等于6分,则成绩有效,最终得分为所有8位评委的总分;如给出低于6分的评委 数量超过5位,则记为0分。以下核心程序段依次输入8个分数,并计算最终得分。横线处应填入( )。
total_score = 0; // 所有分数之和
high_count = 0; // ≥6分的评委数量
for (i = 0; i < 8; i++){
cout << "请输入评委分数: ";
cin >> score;
____________________;
if (score >= 6)
________________;
}
if (high_count >= 5)
cout << total_score;
else
cout << 0;
{{ select(15) }}
-
total_score += score; high_count += 1 -
total_score += score; high_count += score -
high_count += 1; total_score += score -
total_score *= score; high_count *= 1
二.判断题(每题 2 分,共 20 分)
- 电话手表能够打电话和发信息,可以推测内部装有操作系统。
{{ select(16) }}
- 正确
- 错误
- cout << ('4' % '2' == '2' * '2' % 2);输出为 1。
{{ select(17) }}
- 正确
- 错误
- 下面的 C++ 代码段执行时将报错,因为10是整数类型, a 是布尔类型。由于类型不同,不能进行加法运算。( )
bool a = true;
cout << (10 + a);
{{ select(18) }}
- 正确
- 错误
- 下面C++代码段执行后将输出 0-3-6-9- 。 ( )
for (int i = 0; i < 10; i++){
if (i % 3)
continue;
cout << i << "-";
}
{{ select(19) }}
- 正确
- 错误
- 执行下面的 C++ 代码段,如果N是基本数据类型,则语句 cout << (N); 将被执行 0 次或无数次(即死循环)。( )
cin >> N;
while (N)
cout << N;
{{ select(20) }}
- 正确
- 错误
- 下面的 C++ 代码段可正常执行,删除 continue 不影响执行效果。( )
for (i = 0; i < 10; i++){
i += 1;
continue;
}
cout << (i);
{{ select(21) }}
- 正确
- 错误
- 下面的 C++ 代码段用于计算1到N之间且包含N的所有数字中含有的3的个数,如1到40含有14个3, 而1到20则 只含有2个3。如果将 while (i != 0) 改为 while (abs(i)) ,则执行结果相同。( )
cout << "请输入正整数N:";
cin >> N;
cnt = 0; // 保存3的个数
for (k = 1; k < N + 1; k++){
i = k;
while (i != 0){
if (i % 10 == 3)
cnt += 1;
i /= 10;
}
}
cout << cnt;
{{ select(22) }}
- 正确
- 错误
- 下面的 C++ 代码段执行将不会有输出,因为内层循环 j 总是 0 开始, i * j % 10 == 0 将会被满足,执行 break ,故而 i 小于 10 ,不会满足 if 判断条件。( )
for (i = 1; i < 10; i++)
for (j = 0; j < i; j++)
if (i * j % 10 == 0)
break;
if(i >= 10)
cout << (i*j);
{{ select(23) }}
- 正确
- 错误
- 下列 C++ 代码执行后将输出 1#4#9#16#16 。( )
cnt = 0;
for (i = 1; i < 5; i++){
for (j = 1; j < i + 1; j++)
if (i * j % 10 == 0)
break;
if (j >= i + 1)
cout << (i * j) << "#";
}
if(i >= 5)
cout << (i * j);
{{ select(24) }}
- 正确
- 错误
- 将 printf("%d") 改为 printf("%3d") 可以实现对齐输出。

for (i = 1; i < 10; i++){
for (j = 1; j < 10; j++)
printf(" %d", i*j);
printf("\n");
}
{{ select(25) }}
- 正确
- 错误