GESP C++ 5级 2023.09
近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?
输入
输出
控制
记录
如果 和 均为 类型的变量,且 的值不为 ,那么下列能正确判断“ a 是 b 的3倍”的表达式是
(a >> 3 == b)
(a - b) % 3 == 0
(a / b == 3)
(a == 3 * b)
如果变量 和 分别为 类型和 类型,则表达式 (a = 6, b = 3 * (7 + 8) / 2, b += a) 的计算结果为
6
21
28
不确定
有关下面C++代码说法错误的是

sumA() 用循环方式求从 1 到 N 之和, sumB() 用递归方式求从 1 到 N 之和。
默认情况下,如果输入正整数 1000 ,能实现求从 1 到 1000 之和。
默认情况下,如果输入正整数 100000 ,能实现求从 1 到 100000 之和。
一般说来, sumA() 的效率高于 sumB() 。
下面 C++ 代码以递归方式实现字符串反序,横线处应填上代码是
// 字符串反序
#include <iostream>
#include <string>
using namespace std;
string sReverse(string sIn) {
if (sIn.length() <= 1) {
return sIn;
} else {
return __________; // 此处填写代码
}
}
int main() {
string sIn;
cin >> sIn;
cout << sReverse(sIn) << endl;
return 0;
}
sIn[sIn.length() - 1] + sReverse(sIn.substr(0, sIn.length() - 1));
sIn[0] + sReverse(sIn.substr(1, sIn.length() - 1));
sReverse(sIn.substr(0, sIn.length() - 1)) + sIn[sIn.length() - 1];
sReverse(sIn.substr(1, sIn.length() - 1)) + sIn[sIn.length() - 1];
印度古老的汉诺塔传说:创世时有三根金刚柱,其中一柱从下往上按照大小顺序摞着 片黄金圆盘,当圆盘逐一从一柱借助另外一柱全部移动到另外一柱时,宇宙毁灭。
移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
下面的 C++ 代码以递归方式实现汉诺塔,横线处应填入代码是
#include <iostream>
using namespace std;
// 递归实现汉诺塔,将N个圆盘从A通过B移动C
// 圆盘从底到顶,半径必须从大到小
void Hanoi(string A, string B, string C, int N) {
if (N == 1) {
cout << A << " -> " << C << endl;
} else {
Hanoi(A, C, B, N - 1);
cout << A << " -> " << C << endl;
______________;// 此处填写代码
}
}
int main() {
Hanoi("甲", "乙", "丙", 3);
return 0;
}
Hanoi(B, C, A, N - 2)
Hanoi(B, A, C, N - 1)
Hanoi(A, B, C, N - 2)
Hanoi(C, B, A, N - 1)
根据下面C++代码的注释,两个横线处应分别填入

compare 和 isOdd(lstA[i])
compare(x1,y1) 和 isOdd
compare 和 isOdd
compare(x1,y1) 和 isOdd(lstA[i])
有关下面代码正确的是

checkNum() 函数定义错误。
将 isEven 作为 checkNum() 参数将导致错误。
执行后将输出 1 。
运行时触发异常。
有关下面C++代码正确的是

checkNum() 函数定义错误。
输出行 A 的语句将导致编译错误。
输出行 B 的语句将导致编译错误。
该代码没有编译错误。
归并排序算法的基本思想是
将数组分成两个子数组,分别排序后再合并。
随机选择一个元素作为枢轴,将数组划分为两个部分。
比较相邻的两个元素,如果顺序错误就交换位置。
递推算法
