#1404. GESP五级样题
GESP五级样题
GESP C++ 五级试卷(样题) (满分:100 分 考试时间:180 分钟)
一、单选题(每题 2 分,共 30 分)
1、以下不属于计算机输出设备的有( )。 {{ select(1) }}
- 麦克风
- 音箱
- 打印机
- 显示器
2、小明想了一个 1 到 100 之间的整数。你可以做多次猜测,每次猜测之后,如果你没有猜中,小明会告诉你,你猜的数比他想的数大还是小。你希望你在运气最坏的情况下花费最少的次数猜中,请问你运气最坏的情况下会猜( )次?(包括最后猜中的那次)。 {{ select(2) }}
- 5
- 6
- 7
- 100
3、关于分治算法,下列说法错误的是( )。 {{ select(3) }}
- 分治算法的核心思想是分而治之,即把问题转化为多个规模更小的子问题求解。
- 分治算法可以不使用递归实现。
- 分治算法的时间复杂度是 ,其中 表示问题的规模。
- 分治算法通常较容易在多核处理器上实现加速。
4、 有关下面 C++代码说法错误的是( )。
{{ select(4) }}
factA()
采用循环方式求 n 的阶乘,factB()
采用递归方式求n
的阶乘- 程序执行时如果输入
5
,能实现求其阶乘,程序输出结果为120 120
- 任何递归程序都可以使用循环改写
- 程序执行时如果输入
100
,不能正确求出100
的阶乘
5、下面 C++代码意在实现字符串反序的功能。关于这段代码,以下说法正确的是( )
{{ select(5) }}
- 这段代码可以正确实现字符串反序的功能,其输出为
olleH
- 这段代码不能正确实现字符串反序的功能,其输出为
Hello
- 这段代码不能正确实现字符串反序的功能,其输出为
HHHHH
- 这段代码不能正确实现字符串反序的功能,其输出为
ooooo
6、阅读下面 C++实现的二分查找代码,下列说法中错误的是( )。
{{ select(6) }}
- 上面代码实现的二分查找,最少只需查找一次即可得到结果
- 如果调用该函数在列表
{2, 3, 4, 10, 12}
中查找元素0
,则它实际被调用3
次 - 如果调用该函数在列表
{2, 3, 4, 10, 12}
中查找元素3
,则它实际被调用3
次 - 如果调用该函数在列表
{2, 3, 4, 10, 12}
中查找元素10
,则它实际被调用3
次
7、使用如下代码片段定义四个字符串(假设头文件已正确定义),以下说法错误的是( )。
{{ select(7) }}
- 对于四个字符串,都可以使用
std::cout
输出其中的内容(例如,cout << str3;
) str3
只占用4
字节内存,但str1
却要占用更多内存- 由于
str2
由str1
直接赋值得到,因此二者指向同一块内存,即修改str1
的内容后str2
的内容也会随之改变 - 由于
str4
由str3
直接赋值得到,因此二者指向同一块内存,即修改str3
的内容后str4
的内容也会随之改变
8、有关下面 C++代码正确的是( )。
{{ select(8) }}
- 该程序不能正常运行,因为
f1
函数被重复定义。 - 该程序可以正常运行,输出结果共
3
行,依次为f1()、f1()、f1()
- 该程序可以正常运行,输出结果共
3
行,依次为f1()、f1(0)、f1(0)
- 该程序可以正常运行,输出结果共
3
行,依次为f1()、f1(0)、f1(48)
9、关于 C++程序的异常处理,以下选项中描述错误的是( )。 {{ select(9) }}
- 编程语言中的异常和错误是不同的概念
- 异常一旦发生,程序便一定不能继续执行
- 通过
try、catch
等保留字提供异常处理功能 - 程序使用
throw
在任何地方抛出各种异常
10、下面代码执行后的输出是( )。
{{ select(10) }}
5,4,3,2,1,2,1,5
5,4,3,2,1,2,3,2,1,5
5,4,4,3,2,1,3,2,1,5
5,4,3,2,1,3,2,1,5
11、下列代码中,函数 f
的作用是( )。
{{ select(11) }}
- 求
a
和b
的最大公共质因子 - 求
a
和b
的最小公共质因子 - 求
a
和b
的最大公约数 - 求
a
和b
的最小公倍数
12、下面 C++代码用于排序,下列说法中错误的是( )。
{{ select(12) }}
- 两种排序算法的时间复杂度不同。
- 两种排序算法的空间复杂度一致。
sortA
的时间复杂度在最好和最坏情况下都是 。sortB
的平均时间复杂度、最好情况的时间复杂度都是 ,最坏情况的时间复杂度是 。
13、上一题中的sortB
函数,明显体现出的算法思想和编程方法包括( )。
{{ select(13) }}
- 递归
- 分治
- A、B 都正确
- A、B 都不正确
14、下列哪个算法并没有体现分治思想?( )。 {{ select(14) }}
- 二分查找
- 埃氏筛法。
- 归并排序。
- 快速排序。
15、下列关于链表说法,正确的是( )。 {{ select(15) }}
- 不能用数组来实现链表。
- 在链表头部插入元素的时间复杂度是。
- 循环链表使得任意一个结点都可以很方便地访问其前驱与后继。
- 从双向链表的任意一个节点出发,并不一定能够访问到所有其他节点。
二、判断题(每题 2 分,共 20 分)
1、计算机硬件主要包括运算器、控制器、存储器、输入设备和输出设备。 {{ select(16) }}
- 对
- 错
2、唯一分解定理指的是分解质因数只有唯一的一种算法。 {{ select(17) }}
- 对
- 错
3、埃氏筛法用于找出自然数 N
以内的所有质数,其时间复杂度为 ,因为判定一个数是否为质数的时间复杂度为 。
{{ select(18) }}
- 对
- 错
4、贪心法的每一步都采取局部最优策略,因此必然能实现全局最优。 {{ select(19) }}
- 对
- 错
5、在 C++语言中,函数的参数也可以是另一个函数。 {{ select(20) }}
- 对
- 错
6、在 C++语言中,内置的排序算法( algorithm
库中的 sort
函数)只能对 C++的基础类型(如 int、double
等)做排序,而不能对自定义类型做排序。
{{ select(21) }}
- 对
- 错
7、在任何场景下,链表都是比数组更优秀的数据结构。 {{ select(22) }}
- 对
- 错
8、在 C++语言中,可以使用 delete
来释放指针指向的内存空间。
{{ select(23) }}
- 对
- 错
9、选择排序和快速排序都是不稳定的。 {{ select(24) }}
- 对
- 错
10、二分查找法可以应用于有序序列(如升序排序的整数数组),也可以应用于无序序列(如乱序的整数数组)。 {{ select(25) }}
- 对
- 错