#G2312C5A. [GESP202312 五级] 客观题
[GESP202312 五级] 客观题
一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)
第 1 题 下面C++代码用于求斐波那契数列,该数列第 1、2 项为 1,以后各项均是前两项之和。下面有关说法错误的是( )。
{{ select(1) }}
fiboA( )
用递归方式,fiboB()
循环方式fiboA( )
更加符合斐波那契数列的数学定义,直观易于理解,而fiboB()
需要将数学定义转换为计算机程序实现fiboA( )
不仅仅更加符合数学定义,直观易于理解,且因代码量较少执行效率更高fiboB( )
虽然代码量有所增加,但其执行效率更高
第 2 题 下面C++代码以递归方式实现合并排序,并假设 merge (int T[], int R[], int s, int m, int t)
函数将有序(同样排序规则)的T[s..m]
和T[m+1..t]
归并到R[s..t]
中。横线处应填上代码是( )。
{{ select(2) }}
mergeSort(SList, T2, s, m,len), mergeSort(SList, T2, m,t,len)
mergeSort(SList, T2, s, m-1,len), mergeSort(SList, T2, m+1,t,len)
mergeSort(SList, T2, s, m,len), mergeSort(SList, T2, m+1,t,len)
mergeSort(SList, T2, s, m-1,len), mergeSort(SList, T2, m-1,t,len)
第 3 题 阅读下面的C++代码,执行后其输出是( )。
{{ select(3) }}
1->120<===>2->120
1->120<===>1->120
1->120<===>1->2->3->4->5->120
1->120<===>2->3->4->5->6->120
第 4 题 下面的C++用于对 lstA
排序,使得偶数在奇数后面,横线处应填入( )。
{{ select(4) }}
isEven(lstA[j]) && !isEven(lstA[j+1])
!isEven(lstA[j]) && isEven(lstA[j+1])
lstA[j] > lstA[j+1]
lstA[j] < lstA[j+1]
第 5 题 下面的C++代码用于将字符串保存到带头节点的双向链表中,并对重复的串计数,然后将最新访问的串的节点放在链头便于查找。横线处应填入代码是( )。
{{ select(5) }}
if(pHead) {p->next = pHead->next, pHead->next->prev = p;}
if(pHead->next) {p->next = pHead->next, pHead->next->prev = p;}
p->next = pHead->next, pHead->next->prev = p;
- 触发异常,不能对空指针进行操作。
第 6 题 有关下面C++代码说法正确的是( )。
{{ select(6) }}
- 如果
x
小于10
,rc
值也不会超过20
foo
可能无限递归foo
可以求出x
和y
的最大公共质因子foo
能够求出x
和y
的最小公倍数
第 7 题 下面的C++代码实现对list
的快速排序,有关说法,错误的是( )。
{{ select(7) }}
qSort(less) + qSort(greater) + (vector<int>)pivot
(vector<int>)pivot + (qSort(less) + qSort(greater))
(qSort(less) + (vector<int>)pivot + qSort(greater))
qSort(less) + pivot + qSort(greater)
第 8 题 下面C++代码中的 isPrimeA()
和 isPrimeB()
都用于判断参数N
是否素数,有关其时间复杂度的正确说法是( )。
{{ select(8) }}
isPrimeA()
的最坏时间复杂度是 ,isPrimeB( )
的最坏时间复杂度是 ,isPrimeA()
优于isPrimeB()
isPrimeA()
的最坏时间复杂度是 ,isPrimeB( )
的最坏时间复杂度是 ,isPrimeB()
绝大多数情况下优于isPrimeA()
isPrimeA()
的最坏时间复杂度是 ,isPrimeB( )
的最坏时间复杂度是 ,isPrimeA( )
优于isPrimeB( )
isPrimeA()
的最坏时间复杂度是 ,isPrimeB( )
的最坏时间复杂度是 ,isPrimeA()
优于isPrimeB( )
第 9 题 下面C++代码用于有序 list
的二分查找,有关说法错误的是( )。
{{ select(9) }}
- 代码采用二分法实现有序
list
的查找 - 代码采用分治算法实现有序
list
的查找 - 代码采用递归方式实现有序
list
的查找 - 代码采用动态规划算法实现有序
list
的查找
第 10 题 在上题的 _binarySearch
算法中,如果 lst
中有 N
个元素,其时间复杂度是( )。
{{ select(10) }}
第 11 题 下面的C++代码使用数组模拟整数加法,可以处理超出大整数范围的加法运算。横线处应填入代码是( )。
{{ select(11) }}
push_back(t % 10), t = t % 10;
push_back(t / 10), t = t % 10;
push_back(t / 10), t = t / 10;
push_back(t % 10), t = t / 10;
第 12 题 有关下面C++代码的说法正确的是( )。
{{ select(12) }}
- 上述代码构成单向链表
- 上述代码构成双向链表
- 上述代码构成循环链表
- 上述代码构成指针链表
第 13 题 通讯卫星在通信网络系统中主要起到( )的作用。 {{ select(13) }}
- 信息过滤
- 信号中继
- 避免攻击
- 数据加密
第 14 题 小杨想编写一个判断任意输入的整数N是否为素数的程序,下面哪个方法不合适?( ) {{ select(14) }}
- 埃氏筛法
- 线性筛法
- 二分答案
- 枚举法
第 15 题 下面的排序算法都要处理多趟数据,哪种排序算法不能保证在下一趟处理时从待处理数据中选出最大或最小的数据?( ) {{ select(15) }}
- 选择排序
- 快速排序
- 堆排序
- 冒泡排序
二、判断题(共 10 题,每题 2 分,共计 20 分)
第 1 题 归并排序的时间复杂度是 。( ) {{ select(16) }}
- 对
- 错
第 2 题 小杨在生日聚会时拿一块H*W
的巧克力招待来的K
个小朋友,保证每位小朋友至少能获得一块相同大小的巧克力。那么小杨想分出来最大边长的巧克力可以使用二分法。( )
{{ select(17) }}
- 对
- 错
第 3 题 以下C++代码能以递归方式实现斐波那契数列,该数列第1、2
项为1
,以后各项均是前两项之和。( )
{{ select(18) }}
- 对
- 错
第 4 题 贪心算法可以达到局部最优,但可能不是全局最优解。( ) {{ select(19) }}
- 对
- 错
第 5 题 小杨设计了一个拆数程序,它能够将任意的非质数自然数N
转换成若干个质数的乘积,这个程序是可以设计出来的。( )
{{ select(20) }}
- 对
- 错
第 6 题 插入排序有时比快速排序时间复杂度更低。( ) {{ select(21) }}
- 对
- 错
第 7 题 下面的C++代码能实现十进制正整数N
转换为八进制并输出。( )
{{ select(22) }}
- 对
- 错
第 8 题 对数组 int arr[] = {2, 6, 3, 5, 4, 8, 1, 0, 9, 10}
执行 sort(arr, arr+10)
,则执行后 arr中的数据调整为 {0, 1, 2, 3, 4, 5, 6, 8, 9, 10}
。( )
{{ select(23) }}
- 对
- 错
第 9 题 小杨想写一个程序来算出正整数N
有多少个因数,经过思考他写出了一个重复没有超过N/2
次的循环就能够算出来了。( )
{{ select(24) }}
- 对
- 错
第 10 题 同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。( ) {{ select(25) }}
- 对
- 错
Statistics
Related
In following contests: