2024年3月GESP等级认证C++编程五级真题

2024年3月GESP认证C++编程五级真题试卷

题目总数:27    总分数:100

选择题

第 1 题    单选题

唯⼀分解定理描述的内容是  (  )  ?

A.任意整数都可以分解为素数的乘积

B.每个合数都可以唯⼀分解为⼀系列素数的乘积

C.两个不同的整数可以分解为相同的素数乘积

D.以上都不对

第 2 题    单选题

贪⼼算法的核⼼思想是  (  )  ?

A.

在每⼀步选择中都做当前状态下的最优选择

B.

在每⼀步选择中都选择局部最优解

C.

在每⼀步选择中都选择全局最优解

D.

以上都对

第 3 题    单选题

下⾯的 C++代码⽚段⽤于计算阶乘 。请在横线处填⼊(  )  ,实现正确的阶乘计算。

1 int factorial(int n) {
2 if (n == 0 || n == 1) {
3  return 1;
4 } else {
5          // 在此处填入代码
6 }
7 }

A.

return n * factorial(n - 1);

B.

return factorial(n - 1) / n;

C.

return n * factorial(n);

D.

return factorial(n / 2) * factorial(n / 2);

第 4 题    单选题

下⾯的代码⽚段⽤于在双向链表中删除⼀个节点 。请在横线处填⼊(  )  ,使其能正确实现相应功能。

1 void deleteNode(DoublyListNode*& head, int value) {
2  DoublyListNode* current = head;
3  while (current != nullptr && current->val != value) {
4   current = current->next;
5  }
6  if (current != nullptr) {
7   if (current->prev != nullptr) {
8     ____________________________________ // 在此处填入代码
9   } else {
10    head = current->next;
11  }
12  if (current->next != nullptr) {
13   current->next->prev = current->prev;
14  }
15  delete current;
16  }
17 }

A.

if (current->next != nullptr) current->next>prev = current->prev;

B.

current->prev->next = current->next;

C.

delete current->next;

D.

current->prev = current->next;

第 5 题    单选题

辗转相除法也被称为  (  )

A.

⾼斯消元法

B.

费马定理

C.

欧⼏⾥德算法

D.

⽜顿迭代法

第 6 题    单选题

下⾯的代码⽚段⽤于计算斐波那契数列 。该代码的时间复杂度是  (  )  ?

1 Int fibonacci(int n) {
2  if (n <= 1) {
3   return n;
4  } else {
5   return fibonacci(n - 1) + fibonacci(n - 2);
6  }
7 }

A.

0(1)

B.

 0(n)

C.

0(2n )

D.

o(1og n)

第 7 题    单选题

下⾯的代码⽚段⽤于将两个⾼精度整数进⾏相加 。请在横线处填⼊(  )  ,使其能正确实现相应功能。

1 string add(string num1, string num2) {
2  string result;
3  int carry = 0;
4  int i = num1.size() - 1, j = num2.size() - 1;
5  while (i >= 0 || j >= 0 || carry) {
6   int x = (i >= 0) ? num1[i--] - '0 ' : 0;
7   int y = (j >= 0) ? num2[j--] - '0 ' : 0;
8   int sum = x + y + carry;
9   carry = sum / 10;
10                             
11 }
12  return result;
13 }

A.

 result = to_string(sum % 10) + result;

B.

 result = to_string(carry % 10) + result;

C.

result = to_string(sum / 10) + result;

D.

 result = to_string(sum % 10 + carry) + result;

第 8 题    单选题

给定序列:1 ,3 ,6 ,9, 17 ,31 ,39 ,52 ,61 ,79 ,81 ,90 ,96 。使⽤以下代码进⾏⼆分查找查找元素82时 ,需要循环多少次, 即最后输出的times值为(  ) 。

1 int binarySearch(const std::vector<int>& arr, int target) {
2  int left = 0;
3  int right = arr.size() - 1;
4  int times = 0;
5  while (left <= right) {
6   times ++;
7   int mid = left + (right - left) / 2;
8   if (arr[mid] == target) {
9    cout << times << endl;
10   return mid;
11   } else if (arr[mid] < target) {
12    left = mid + 1;
13   } else {
14    right = mid - 1;
15   }
16  }
17  cout << times << endl;
18  return -1;
19 }

A.

2

B.

5

C.

3

D.

4

第 9 题    单选题

下⾯的代码⽚段⽤于判断⼀个正整数是否为素数 。请对以下代码进⾏修改 ,使其能正确实现相应功能 。  (  )

1 bool isPrime(int num) {
2  if (num < 2) {
3   return false;
4  }
5  for (int i = 2; i * i < num; ++i) {
6   if (num % i == 0) {
7    return false;
8   }
9  }
10  return true;
11 }

A.

 num < 2 应该改为  num <= 2

B.

循环条件  i * i < num 应该改为  i * i <= num

C.

循环条件应该是  i <= num

D.

循环体中应该是  if (num % i != 0)

第 10 题    单选题

在埃拉托斯特尼筛法中 ,要筛选出不⼤于n的所有素数 ,最外层循环应该遍历什么范围  (  )   ?

1 vector<int> sieveOf Eratosthenes(int n) {
2  std::vector<bool> isPrime(n + 1, true);
3  std::vector<int> primes;
4                      {
5   if (isPrime[i]) {
6    primes.push_back(i);
7    for (int j = i * i; j <= n; j += i) {
8     isPrime[j] = false;
9     }
10   }
11  }
12  for (int i = sqrt(n) + 1; i <= n; ++i) {
13   if (isPrime[i]) {
14    primes.push_back(i);
15   }
16  }
17  return primes;
18 }

A.

for (int i = 2; i <= n; ++i)

B.

for (int i = 1; i < n; ++i)

C.

for (int i = 2; i <= sqrt(n); ++i)

D.

for (int i = 1; i <= sqrt(n); ++i)

第 11 题    单选题

素数的线性筛法时间复杂度为( ) 。

A.

O(n)

B.

O(nloglogn)

C.

O(nlogn)

D.

O(n2)

第 12 题    单选题

归并排序的基本思想是(  ) 。

A.

动态规划

B.

 分治

C.

 贪⼼算法

D.

回溯算法

第 13 题    单选题

在快速排序中 ,选择的主元素(pivot)会影响算法的( ) 。

A.

不影响

B.

时间复杂度

C.

空间复杂度

D.

时间复杂度和空间复杂度

第 14 题    单选题

递归函数在调⽤⾃⾝时 ,必须满⾜(  ) , 以避免⽆限递归?

A.

有终⽌条件

B.

函数参数递减(或递增)

C.

函数返回值固定

D.

以上都对

第 15 题    单选题

假设给定链表为: 1→3→5→7→nullptr  ,若调⽤searchValue(head, 5) ,函数返回值为(  ) 。

1 int searchValue(ListNode* head, int target) {
2  while (head != nullptr) {
3   if (head->val == target) {
4    return 1;
5   }
6   head = head->next;
7  }
8  return 0;
9 }

A.

返回1

B.

返回0

C.

死循环 ,⽆法返回

D.

返回 - 1

判断题

第 16 题    判断题

辗转相除法⽤于求两个整数的最⼤公约数。

A.

正确

B.

错误

第 17 题    判断题

插⼊排序的时间复杂度是O(NlogN) 。

A.

正确

B.

错误

第 18 题    判断题

⼆分查找要求被搜索的序列是有序的 ,否则⽆法保证正确性。

A.

正确

B.

错误

第 19 题    判断题

使⽤贪⼼算法解决问题时 ,每⼀步的局部最优解⼀定会导致全局最优解。

A.

正确

B.

错误

第 20 题    判断题

分治算法的核⼼思想是将⼀个⼤问题分解成多个相同或相似的⼦问题进⾏解决 ,最后合并得到原问题的解。

A.

正确

B.

错误

第 21 题    判断题

分治算法的典型应⽤之⼀是归并排序 ,其时间复杂度为O(NlogN) 。

A.

正确

B.

错误

第 22 题    判断题

素数表的埃⽒筛法和线性筛法的时间复杂度都是O(NloglogN) 。

A.

正确

B.

错误

第 23 题    判断题

贪⼼算法是⼀种可以应⽤于所有问题的通⽤解决⽅案。

A.

正确

B.

错误

第 24 题    判断题

单链表和双链表都可以在常数时间内实现在链表头部插⼊或删除节点的操作。

A.

正确

B.

错误

第 25 题    判断题

在C语⾔中 ,递归的实现⽅式通常会占⽤更多的栈空间 ,可能导致栈溢出。

A.

正确

B.

错误

编程题

第 26 题    问答题

试题名称:成绩排序

3.1.1 问题描述

有N名同学,每名同学有语文、数学、英语三科成绩。你需要按如下规则对所有同学的成绩从高到低排序:

1. 比较总分,高者靠前;

2. 如果总分相同,则比较语文和数学两科总分,高者靠前;

3. 如果仍相同,则比较语文和数学两科的最高分,高者靠前;

4. 如果仍相同,则二人并列。

你需要输出每位同学的排名,如遇x人并列,则他们排名相同,并留空后面的x-1个名次。例如,有3名同学并列第1,则后一名同学自动成为第4名。

3.1.2 输入描述

第一行一个整数N,表示同学的人数。

接下来N行,每行三个非负整数ci,mi,ei分别表示该名同学的语文、数学、英语成绩。

保证o≤ci,mi,ei≤150 。

3.1.3 输出描述

输出N行,按输入同学的顺序,输出他们的排名。

注意:请不要按排名输出同学的序号,而是按同学的顺序输出他们各自的排名

3.1.4 特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

3.1.5 样例输入 1

3.1.6 样例输出 1

3.1.7 数据规模

对于30的测试点,保证N≤100 ,且所有同学的总分各不相同。

对于所有测试点,保证2≤N≤104 。

第 27 题    问答题

试题名称: B-smooth 数

3.2.1 题面描述

小杨同学想寻找一种名为 B-smooth 数的正整数。

如果一个正整数的最大质因子不超过B,则该正整数为 B-smooth 数。

小杨同学想知道,对于给定的n和B,有多少个不超过n的B-smooth 数。

3.2.2 输入格式

第一行包含两个正整数n, B,含义如题面所示。

3.2.3 输出格式

输出一个非负整数,表示不超过n的B-smooth 数的数量。

3.2.4 样例1

3.2.5 样例解释

在不超过10的正整数中,3-smooth 数有{1,2,3,4,6,8,9} ,共7个。

3.2.6 数据范围

对于全部数据,保证有1≤n≤106 ,1≤B≤106 。

来源:6547网题库 http://www.6547.cn/doc/nwkwrzgwse

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初步接触C++

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习C&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 文章目录 初步区别C语言和C命名空间1.命名空间的定义2.命名空间的使用 C的输入输出缺省参数1.缺省参数…

机器学习——神经网络简单了解

一、神经网络基本概念 神经网络可以分为生物神经网络和人工神经网络 (1)生物神经网络,指的是生物脑内的神经元、突触等构成的神经网络&#xff0c;可以使生物体产生意识&#xff0c;并协助生物体思考、行动和管理各机体活动。 (2)人工神经网络,是目前热门的深度学习的研究…

计算坤是如何工作的

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:&#x1f649; &#x1f439;今日诗词:&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac…

进程、线程、协程与虚拟线程(进程相关)

进程、线程、协程与虚拟线程 这一次我们从头&#xff0c;从最大的先开始说&#xff0c;我们从进程开始&#xff0c;因为内容比较多&#xff0c;所以我们分为几个不同的文章来介绍。先从进程&#xff0c;再从线程&#xff0c;最后介绍协程与虚拟线程。 简介 我们以一张操作系…

ehters.js:provider

ethers.jsV5.4文档 安装ethers npm install ethers5.4.0// 引入 import { ethers } from ethersProviders /** Provider类* Provider类是对以太坊网络连接的抽象&#xff0c;为标准以太坊节点功能提供简洁、一致的接口。 */ const provider new ethers.providers.Web3Provider…

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日&#xff0c;2024年第16届大广赛发布了新的命题&#xff0c;爱华仕箱包命题&#xff0c;自2017年起&#xff0c;爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…

左值引用、右值引用及移动语义

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 左值 概念 可以取到地址的值就是左值&#xff0c;并且一般情况下可以修改&#xff08;const类型左值不可修改&#xff09;。 左值举例&#xff1a; //左值 int a 0; const int b 1; int* p &a; 右值 概念 不能…

三相四线智能电表直接接入式接线图

大家好&#xff0c;今天我们要聊的是三相四线智能电表的直接接入式接线方式。别担心&#xff0c;我会用简单易懂的语言来解释这个看似复杂的主题。 首先&#xff0c;我们得知道什么是三相四线电表。在我们的生活中&#xff0c;电力供应通常分为单相和三相。三相电&#xff0c;就…

vue 下载图片/视频到浏览器

方法1&#xff1a;直接在当前页面打开图片或者视频 window.location.href url;//借用a标签实现同样效果 const link document.createElement(a) link.href url // 文件地址 link.click(); 方法2&#xff1a;新开一个窗口打开图片或视频 window.open(url); 方法3&#xf…

分页-PageHelper原理以及实时分页-键集分页

一.PageHelper原理 1.使用 PageHelper 是国内非常优秀的一款开源 mybatis 分页插件&#xff0c;它支持常用的主流数据库&#xff0c;例如 Oracle、Mysql、MariaDB、SQLite、Hsqldb 等。 PageHelper 的安装很简单&#xff0c;只需要在 pom.xml 中加入以下依赖即可&#xff1a…

网络类型及数据链路层协议

目录 一、网络的分类 二、数据链路层协议 1、MA网络以太网协议 2、P2P网络 3、HDLC ---高级数据链路控制协议 HDLC地址借用 三、PPP协议 1、PPP协议的优点 2、PPP数据帧封装结构 3、PPP会话的搭建 4、LCP建立——链路建立阶段 4.1协商阶段 4.2认证阶段 4.3 PAP---密…

深入聊聊企业数字化转型这个事儿

01 什么是数字化&#xff1f; 聊数字化&#xff0c;就不得不聊聊信息化、智能化。佛性的说&#xff1a;信息化是数字化的前世&#xff0c;智能化是数字化的来生&#xff01;我习惯用一个结构化的图形来表示事物之间的关系&#xff0c;信息化、数字化、智能化的关系如下&#…

尤大大正式官宣推出VitePress 1.0

VitePress 在现代Web开发领域&#xff0c;构建快速、响应式的文档网站是开发者经常面临的任务之一。VitePress应运而生&#xff0c;它结合了Vue.js和Vite的强大功能&#xff0c;为开发者提供了一个简单易用的静态站点生成器。Vue.js作为一种流行的前端框架&#xff0c;以其简洁…

网络安全:Kali Linux 进行SQL注入与XSS漏洞利用

目录 一、实验 1.环境 2.Kali Linux 进行SQL注入 3.Kali Linux 进行XSS漏洞利用 二、问题 1.XSS分类 2.如何修改beef-xss的密码 3.beef-xss 服务如何管理 4.运行beef报错 5.beef 命令的颜色有哪些区别 6.owasp-top-10 有哪些变化 一、实验 1.环境 &#xff08;1&a…

30---SDRAM电路设计

视频链接 SDRAM电路设计01_哔哩哔哩_bilibili SDRAM电路设计 1、SDRAM简介 SDRAM&#xff1a;Synchronous Dynamic Random Access Memory&#xff0c;同步动态随机存储器。 同步是指其时钟频率和CPU前端总线的系统时钟相同&#xff0c;并且内部命令的发送与数据的传输都以…

如何避免SQL注入攻击?

&#x1f413;序言 当涉及到数据库操作时&#xff0c;防止SQL注入攻击至关重要。SQL注入是一种常见的网络安全威胁&#xff0c;攻击者通过在用户输入中插入恶意的SQL代码&#xff0c;从而可以执行未经授权的数据库操作。 &#x1f413;避免方式 使用参数化查询 使用参数化查询…

【漏洞复现】用友U8 login2.RegisterServlet接口处存在SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

MyBatis3源码深度解析(二十五)级联映射与关联查询(二)级联映射的实现原理

文章目录 前言10.2 MyBatis级联映射的实现原理10.2.1 ResultMap详解10.2.2 ResultMap解析过程10.2.3 级联映射的实现原理10.2.3.1 handleRowValuesForSimpleResultMap()10.2.3.2 handleRowValuesForNestedResultMap() 前言 上一节【MyBatis3源码深度解析(二十四)级联映射与关联…

为什么Solana在区块链生态系统中脱颖而出

当我们在不断发展的区块链技术世界中航行时&#xff0c;认识到平台不仅要跟上创新的步伐&#xff0c;还要突破可能的界限&#xff0c;这一点至关重要。#Solana 已成为领先的竞争者&#xff0c;这就是为什么这个高性能区块链的未来看起来很光明。 &#x1f31f; 可扩展性和速度&…

单臂路由和三层交换机

目录 一.单臂路由 1.单臂路由的工作原理 2.单臂路由的配置 2.1画出拓扑图 2.2配置PC 2.3配置交换机 2.4配置路由器 2.5测试 二.三层交换机 1.三层交换机的概述 2.三层交换机的配置 2.1画出拓扑图 2.2配置PC 2.3配置二层交换机 2.4配置三层交换机 2.5测试 3.拓展 三.总结 一.…