文库 真题 GESP真题

2023年12月GESP认证C++五级真题试卷答案解析

gesp真题答案 gesp认证5级真题 DOCX   18页   下载9   2024-02-06   浏览229   收藏9   点赞6   评分-   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
2023年12月GESP认证C++五级真题试卷答案解析 第1页
2023年12月GESP认证C++五级真题试卷答案解析 第2页
剩余16页未读, 下载浏览全部
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 【考纲知识点】算法知识点 【解析】本题考察递归算法。输出 fracA 函数,是先输出 1 ,再输出 5 的阶乘, 120 ; 23 行代码,执行 fracB 函数,此时 stepCount 从 2 开始计数,依次输出 2/3/4/5/6 ,再输出 5 的阶乘 120 。 4 、下 ⾯ 的 C++ ⽤ 于对 lstA 排序,使得偶数在前奇数在后,横线处应填 ⼊ (    ) 。 A. isEven ( lstA [j]) && ! isEven ( lstA [j+1]) B. ! isEven ( lstA [j]) && isEven ( lstA [j+1]) C. lstA [j] > lstA [j+1] D. lstA [j] < lstA [j+1] 【答案】 A 【考纲知识点】排序算法知识点 【解析】本题考察排序算法。前一个数字,下标是 j 的数字是偶数,后面的数字下标是 j+1 的是奇数,按照要求,偶数在奇数的后面,要交换。 A 符合题意条件。 5 、下 ⾯ 的 C++ 代码用于将字符串保存到带头节点的双向链表中,并对重复的串计数,然后将最新访问的串的节点放在链头便于查找。横线处应填 ⼊ 代码是( )。 A.  if( pHead ) {p->next = pHead ->next, pHead ->next-> prev = p;} B. if( pHead ->next){p->next = pHead ->next, pHead ->next-> prev = p;} C.  p->next = pHead ->next, pHead ->next-> prev = p; D.   触发异常 ,不能对空指针进 ⾏ 操作。 【答案】 B 【考纲知识点】指针知识点 【解析】本题考察双链表知识点。每个节点需要 2 个指针,指向前驱节点和后继节点。按照要求,新的节点要求插入到链表头部。头节点和新插入的节点都需要修改。 B 选项能够完成新节点的插入。 6 、有关下 ⾯ C++ 代码说法正确的是(   )。 A.  如果 x  ⼩ 于 10 ,  rc   值也不会超过 20 B.  foo  可能 ⽆ 限递归 C.  foo  可以求出  x  和  y  的最 ⼤ 公共质因 ⼦ D. foo  能够求出  x  和  y  的最 ⼩ 公倍数 【答案】 A 【考纲知识点】数学知识点 【解析】本题考察数学算法,求最大公约数。这是典型的最大公约数写法的变形。排除法选 A 。 7 、下 ⾯ 的 C++ 代码实现对 list 的快速排序,有关说法,错误的是(  )。 A. qSort (less) + qSort (greater) +  (vector<int>)pivot B. (vector<int>)pivot + ( qSort (less) + qSort (greater)) C.  ( qSort (less) + (vector<int>)pivot + qSort (greater)) D. qSort (less) + pivot + qSort (greater) 【答案】 C 【考纲知识点】排序算法知识点 【解析】本题考察快速排序。 Less 数组保存的是小于等于 pivot ,然后加上 pivot 元素,再加上大于等于 pivot 的数组。 8 、下面 C++ 代码中的 isPrimeA ( )  和 isPrimeB ( )  都 ⽤ 于判断参数 N 是否素数,有关其时间复杂度的正确说 法是(    )。 A. isPrimeA ( )  的最坏时间复杂度是 0 ( ), isPrimeB ( )  的最坏时间复杂度是 0( logN ) , isPrimeA () 优于 isPrimeB () B. isPrimeA ()  的最坏时间复杂度是 0 ( ), isPrimeB ( )  的最坏时间复杂度是 0 ( N ), isPrimeB () 绝 ⼤ 多数情况下优于 isPrimeA () C. isPrimeA ()  的最坏时间复杂度是 0(N ) , isPrimeB
2023年GESP12月认证C++五级试卷解析,2023年12月GESP认证C++五级真题试卷答案解析
下载提示

下载及版权说明:6547网文库内容来自网络及各平台公开内容(属于用户上传,不保证正确性,只做参考),旨在帮助同学们学习少儿编程相关知识及内容,仅限内部学习及使用,以分享为主,下载本文档之后请合法使用相关、真题、素材、课件、教程等内容,若内容存在侵权,请进行 举报 及查看 免责声明