2025年12月 GESP CCF编程能力等级认证C++五级真题

========================================================================

答案和更多内容请查看网站:【试卷中心 -----> CCF GESP ----> C/C++ ----> 五级】

网站链接

青少年软件编程历年真题模拟题实时更新

========================================================================

2025年12月 GESP CCF编程能力等级认证C++五级真题
一、单选题(每题 2 分,共 30 分)
第 1 题 对如下定义的循环单链表,横线处填写( )。

// 循环单链表的结点 struct Node { int data; // 数据域 Node* next; // 指针域 Node(int d) : data(d), next(nullptr) { } } ; // 创建一个只有一个结点的循环单链表 Node* createList(int value) { Node* head = new Node(value); head->next = head; return head; } // 在循环单链表尾部插入新结点 void insertTail(Node* head, int value) { Node* p = head; while (p->next != head) { p = p->next; } Node* node = new Node(value); node->next = head; p->next = node; } // 遍历并输出循环单链表 void printList(Node* head) { if (head == nullptr) return; Node* p = head; _______________________ //在此处填入代码 cout << endl; }

A.while (p != nullptr){
cout << p->data << " ";
p = p->next;
}

B.while (p->next != nullptr){
cout << p->data << " ";
p = p->next;
}


C.do {
cout << p->data << " ";
p = p->next;
} while (p != head);


D.for(; p; p=p->next){
cout << p->data << " ";
}

第 2 题 区块链技术是比特币的基础。在区块链中,每个区块指向前一个区块,构成链式列表,新区块只能接在链尾,不允许在中间插入或删除。下面代码实现插入区块添加函数,则横线处填写( )。

//区块(节点) struct Block { int index; // 区块编号(高度) string data; // 区块里保存的数据 Block* prev; // 指向前一个区块 Block(int idx, const string& d, Block* p) : index(idx), data(d), prev(p) { } } ; // 区块链 struct Blockchain { Block* tail; // 初始化 void init() { tail = new Block(0, "Genesis Block", nullptr); } // 插入新区块 void addBlock(const string& data) { _______________________ //在此处填入代码 } // 释放内存 void clear() { Block* cur = tail; while (cur != nullptr) { Block* p = cur->prev; delete cur; cur = p; } tail = nullptr; } } ;

A.
Block* newBlock = new Block(tail->index + 1, data, tail);
tail = newBlock->prev;

B.
Block* newBlock = new Block(tail->index + 1, data, tail);
tail = newBlock;
C.
Block* newBlock = new Block(tail->index + 1, data, tail->prev);
tail = newBlock;
D.
Block* newBlock = new Block(tail->index + 1, data, tail->prev);
tail = newBlock->prev;


第 3 题 下面关于单链表和双链表的描述中,正确的是( )。
A. 双链表删除指定节点是 ,单链表是
B. 双链表删除指定节点是 ,单链表是
C. 双链表删除指定节点是 ,单链表是
D. 双链表删除指定节点是 ,单链表是

第 4 题 假设我们有两个数 和 ,它们对模 同余,即 。以下哪个值不可能是 ?

struct DNode { int data; DNode* prev; DNode* next; } ; // 在双链表中删除指定节点 void deleteNode(DNode* node) { if (node->prev) { node->prev->next = node->next; } if (node->next) { node->next->prev = node->prev; } delete node; } struct SNode { int data; SNode* next; } ; // 在单链表中删除指定节点 void deleteSNode(SNode* head, SNode* node) { SNode* prev = head; while (prev->next != node) { prev = prev->next; } prev->next = node->next; delete node; }

A. 3
B. 4
C. 6
D. 9

第 5 题 下面代码实现了欧几里得算法。下面有关说法,错误的是( )。

int gcd1(int a, int b) { return b == 0 ? a : gcd1(b, a % b); } int gcd2(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; }

A. gcd1() 实现为递归方式。
B. gcd2() 实现为迭代方式。
C. 当 较大时, gcd1() 实现会多次调用自身,需要较多额外的辅助空间。
D. 当 较大时, gcd1() 的实现比 gcd2() 执行效率更高。


第 6 题 唯一分解定理描述的内容是( )。

A. 任何正整数都可以表示为两个素数的和。
B. 任何大于1的合数都可以唯一分解为有限个质数的乘积。
C. 两个正整数的最大公约数总是等于它们的最小公倍数除以它们的乘积。
D. 所有素数都是奇数。

第 7 题 下述代码实现素数表的线性筛法,筛选出所有小于等于 的素数,则横线上应填的代码是( )。

vector<int> linear_sieve(int n) { vector<bool> is_prime(n +1, true); vector<int> primes; is_prime[0] = is_prime[1] = 0; //0和1两个数特殊处理 for (int i = 2; i <= n; ++i) { if (is_prime[i]) { primes.push_back(i); } ________________________________ { // 在此处填入代码 is_prime[ i * primes[j] ] = 0; if (i % primes[j] == 0) break; } } return primes; }

A. for (int j = 0; j < primes.size() && i * primes[j] <= n; j++)
B. for(int j = sqrt(n); j <= n && i * primes[j] <= n; j++)
C. for (int j = 1; j <= sqrt(n); j++)
D. for(int j = 1; j < n && i * primes[j] <= n; j++)


第 8 题 下列关于排序的说法,正确的是( )。
A. 快速排序是稳定排序
B. 归并排序通常是稳定的
C. 插入排序是不稳定排序
D. 冒泡排序不是原地排序


第 9 题 下面代码实现了归并排序。下述关于归并排序的说法中,不正确的是( )。

void merge(vector<int>& arr, vector<int>& temp, int l, int mid, int r) { int i = l, j = mid + 1, k = l; while (i <= mid && j <= r) { if (arr[i] <= arr[j]) temp[k++] = arr[i++]; else temp[k++] = arr[j++]; } while (i <= mid) temp[k++] = arr[i++]; while (j <= r) temp[k++] = arr[j++]; for (int p = l; p <= r; p++) arr[p] = temp[p]; } void mergeSort(vector<int>& arr, vector<int>& temp, int l, int r) { if (l >= r) return; int mid = l + (r - l) / 2; mergeSort(arr, temp, l, mid); mergeSort(arr, temp, mid + 1, r); merge(arr, temp, l, mid, r); }

A. 归并排序的平均复杂度是 。
B. 归并排序需要 的额外空间。
C. 归并排序在最坏情况的时间复杂度是 。
D. 归并排序适合大规模数据。


第 10 题 下述C++代码实现了快速排序算法,最坏情况的时间复杂度是( )。

int partition(vector<int>& arr, int low, int high) { int i = low, j = high; int pivot = arr[low]; // 以首元素为基准 while (i < j) { while (i < j && arr[j] >= pivot) j--; while (i < j && arr[i] <= pivot) i++; if (i < j) swap(arr[i], arr[j]); } swap(arr[i], arr[low]); return i; } void quickSort(vector<int>& arr, int low, int high) { if (low >= high) return; int p = partition(arr, low, high); quickSort(arr, low, p - 1); quickSort(arr, p + 1, high); }


A.O(n)
B.O(log n)
C.O(n^2)
D.O(n log n)

========================================================================

答案和更多内容请查看网站:【试卷中心 -----> CCF GESP ----> C/C++ ----> 五级】

网站链接

青少年软件编程历年真题模拟题实时更新

========================================================================

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

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

相关文章

Orange3数据挖掘实战手册:从入门到精通的应用宝典

Orange3数据挖掘实战手册&#xff1a;从入门到精通的应用宝典 【免费下载链接】orange3 &#x1f34a; :bar_chart: :bulb: Orange: Interactive data analysis 项目地址: https://gitcode.com/gh_mirrors/or/orange3 想要快速掌握数据可视化与机器学习的实战技巧吗&…

DocuSeal电子签名平台完整实战手册:从入门到精通部署

DocuSeal电子签名平台完整实战手册&#xff1a;从入门到精通部署 【免费下载链接】docuseal docusealco/docuseal: DocuSeal 可能是一个文档安全或数字签名解决方案的软件项目&#xff0c;但根据GitHub上信息不足无法确定具体细节。它可能用于保护文档的安全性、提供电子签名功…

Vibe Kanban架构解析:构建下一代AI编程代理管理平台的核心原理与深度优化

Vibe Kanban架构解析&#xff1a;构建下一代AI编程代理管理平台的核心原理与深度优化 【免费下载链接】vibe-kanban Kanban board to manage your AI coding agents 项目地址: https://gitcode.com/GitHub_Trending/vi/vibe-kanban Vibe Kanban是一款专为AI编程代理设计…

WorldGuard插件完整教程:构建安全的Minecraft服务器环境

WorldGuard插件完整教程&#xff1a;构建安全的Minecraft服务器环境 【免费下载链接】WorldGuard &#x1f6e1;️ Protect your Minecraft server and lets players claim areas 项目地址: https://gitcode.com/gh_mirrors/wo/WorldGuard WorldGuard插件是Minecraft服务…

2025垃圾分类数据集实战:如何解决模型部署中的三大技术难题

2025垃圾分类数据集实战&#xff1a;如何解决模型部署中的三大技术难题 【免费下载链接】垃圾分类数据集 项目地址: https://ai.gitcode.com/ai53_19/garbage_datasets 在智能垃圾分类系统开发过程中&#xff0c;你是否遇到过这样的困境&#xff1a;精心训练的模型在实…

如何高效使用Java JWT:面向开发者的完整实战指南

如何高效使用Java JWT&#xff1a;面向开发者的完整实战指南 【免费下载链接】java-jwt Java implementation of JSON Web Token (JWT) 项目地址: https://gitcode.com/gh_mirrors/ja/java-jwt Java JWT是一个功能强大的JSON Web Token实现库&#xff0c;专为Java开发者…

深度学习模型安全:M2FP防御对抗攻击策略

深度学习模型安全&#xff1a;M2FP防御对抗攻击策略 &#x1f4cc; 引言&#xff1a;从人体解析到模型安全的演进 随着深度学习在计算机视觉领域的广泛应用&#xff0c;多人人体解析&#xff08;Multi-person Human Parsing&#xff09;已成为智能安防、虚拟试衣、人机交互等场…

Zotero DEB包完全攻略:告别传统安装痛点的终极解决方案

Zotero DEB包完全攻略&#xff1a;告别传统安装痛点的终极解决方案 【免费下载链接】zotero-deb Packaged versions of Zotero and Juris-M for Debian-based systems 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-deb 还在为文献管理软件的复杂安装而烦恼吗&am…

终极重排序突破:Qwen3-Reranker-0.6B重塑企业级智能检索新标准

终极重排序突破&#xff1a;Qwen3-Reranker-0.6B重塑企业级智能检索新标准 【免费下载链接】Qwen3-Reranker-0.6B 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Reranker-0.6B 据2025年行业调研数据显示&#xff0c;超过68%的企业在部署RAG系统时面临检索精…

MegaBasterd实战指南:解锁MEGA云存储的终极下载上传方案

MegaBasterd实战指南&#xff1a;解锁MEGA云存储的终极下载上传方案 【免费下载链接】megabasterd Yet another unofficial (and ugly) cross-platform MEGA downloader/uploader/streaming suite. 项目地址: https://gitcode.com/gh_mirrors/me/megabasterd 还在为MEGA…

智能视频画质革命:免费AI技术让老旧影像重获新生

智能视频画质革命&#xff1a;免费AI技术让老旧影像重获新生 【免费下载链接】SeedVR-7B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/SeedVR-7B 还记得那些模糊的家庭录像吗&#xff1f;那些珍贵的婚礼瞬间、孩子的成长记录&#xff0c;却因为年代久…

M2FP模型内存泄漏排查

M2FP模型内存泄漏排查&#xff1a;从现象定位到工程化修复 &#x1f9e9; 问题背景&#xff1a;稳定服务为何突然“失速”&#xff1f; 在部署 M2FP 多人人体解析服务后&#xff0c;系统初期运行表现极为稳定。该服务基于 ModelScope 的 Mask2Former-Parsing (M2FP) 模型构建&a…

M2FP模型数据增强技巧:提升泛化能力

M2FP模型数据增强技巧&#xff1a;提升泛化能力 &#x1f4d6; 项目背景与技术痛点 在计算机视觉领域&#xff0c;多人人体解析&#xff08;Multi-person Human Parsing&#xff09;是实现精细化图像理解的关键技术之一。它不仅服务于虚拟试衣、智能健身指导、AR/VR交互等消费级…

游戏资源提取实用指南:安全高效获取3D模型与纹理

游戏资源提取实用指南&#xff1a;安全高效获取3D模型与纹理 【免费下载链接】game-hacking 项目地址: https://gitcode.com/gh_mirrors/ga/game-hacking 想要从游戏中提取精美的3D模型、纹理和音效资源吗&#xff1f;&#x1f3ae; 游戏资源提取是游戏开发者和mod制作…

M2FP模型更新日志:版本迭代与性能提升

M2FP模型更新日志&#xff1a;版本迭代与性能提升 &#x1f4d6; 项目简介&#xff1a;M2FP 多人人体解析服务 在计算机视觉领域&#xff0c;人体解析&#xff08;Human Parsing&#xff09; 是一项关键的细粒度语义分割任务&#xff0c;旨在将人体分解为多个语义明确的身体部位…

HOScrcpy完全指南:鸿蒙设备远程投屏从入门到精通

HOScrcpy完全指南&#xff1a;鸿蒙设备远程投屏从入门到精通 【免费下载链接】鸿蒙远程真机工具 该工具主要提供鸿蒙系统下基于视频流的投屏功能&#xff0c;帧率基本持平真机帧率&#xff0c;达到远程真机的效果。 项目地址: https://gitcode.com/OpenHarmonyToolkitsPlaza/…

M2FP模型源码解读:理解Mask2Former-Parsing设计

M2FP模型源码解读&#xff1a;理解Mask2Former-Parsing设计 &#x1f4cc; 引言&#xff1a;为何需要M2FP进行多人人体解析&#xff1f; 在计算机视觉领域&#xff0c;语义分割是实现精细化图像理解的核心技术之一。而当任务聚焦于“人”这一复杂对象时&#xff0c;传统分割方…

M2FP在广告行业的应用:精准人物定位

M2FP在广告行业的应用&#xff1a;精准人物定位 &#x1f4cc; 引言&#xff1a;从视觉理解到用户洞察的跃迁 在数字广告高度竞争的今天&#xff0c;精准投放已成为品牌营销的核心诉求。传统基于用户行为、兴趣标签的定向方式已趋于饱和&#xff0c;而视觉内容中的用户特征挖…

从零开始:Xbox手柄Linux驱动xpadneo完整配置教程

从零开始&#xff1a;Xbox手柄Linux驱动xpadneo完整配置教程 【免费下载链接】xpadneo Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S) 项目地址: https://gitcode.com/gh_mirrors/xp/xpadneo 还在为Linux系统无法识别Xbox手柄而苦…

NeverSink过滤器完整配置手册:3步打造POE2高效刷图体验

NeverSink过滤器完整配置手册&#xff1a;3步打造POE2高效刷图体验 【免费下载链接】NeverSink-Filter-for-PoE2 This is a lootfilter for the game "Path of Exile 2". It adds colors, sounds, map icons, beams to highlight remarkable gear and inform the use…