2023年GESP12月认证C++五级试卷解析
一、单选题(每题2分,共30分)
题号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
答案 |
C |
C |
D |
A |
B |
A |
C |
B |
D |
B |
D |
B |
B |
C |
B |
1、下面C++代码用于求斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。下面有关说法错误的是( )。
A. fiboA( ) ⽤递归⽅式,fiboB()循环⽅式
B. fiboA( ) 更加符合斐波那契数列的数学定义,直观易于理解,⽽fiboB()需要将数学定义转换为计算机程序实现
C. fiboA( ) 不仅仅更加符合数学定义,直观易于理解,且因代码量较少执⾏效率更⾼
D. fiboB( ) 虽然代码量有所增加,但其执⾏效率更⾼
【答案】C
【考纲知识点】算法知识点
【解析】fiboA是很好理解的,但是执行效率不高,有的计算是重复的,导致效率低。
2、下⾯C++代码以递归⽅式实现合并排序 ,并假设 merge (int T[], int R[], int s, int m, int t) 函数将有序(同样排序规则) 的T[s..m]和T[m+1..t]归并到R[s..t]中 。横线处应填上代码是( )。
A. mergeSort(SList, T2, s, m,len), mergeSort(SList, T2, m,t,len)
B. mergeSort(SList, T2, s, m-1,len), mergeSort(SList, T2, m+1,t,len)
C. mergeSort(SList, T2, s, m,len), mergeSort(SList, T2, m+1,t,len)
D. mergeSort(SList, T2, s, m-1,len), mergeSort(SList, T2, m-1,t,len)
【答案】C
【考纲知识点】算法知识点
【解析】本题考察归并排序。归并排序需要先将排序序列一分为二,左边的元素的区间是[s,m],右边元素区间是[m+1,t],然后递归排序两个子序列后,将有序的子序列合并。
3、阅读下⾯的C++代码 ,执⾏后其输出是( )。
A. 1->120<===>2->120
B. 1->120<===>1->120
C. 1->120<===>1->2->3->4->5->120
D. 1->120<===>2->3->4->5->6->120
【答案】D<