2025-2026学年CCF GESP认证 C 五级信息技术试卷(图片版,含答案)

资源下载
  1. 二一教育资源

2025-2026学年CCF GESP认证 C 五级信息技术试卷(图片版,含答案)

资源简介

GESP
CCF编程能力等级认证
Grade Examination of Software Programming
C++
五级
2025年12月
1单选题(每题2分,共30分)
题号123456789101112131415
答案CB CDD BA B CC AAAA B
第1题对如下定义的循环单链表,横线处填写()。
1//循环单链表的结点
2
struct Node
3
int data;
//数据域
Node*next;
//指针域
5
Node(int d):data(d),next(nullptr){}
8
9
//创建一个只有一个结点的循环单链表
10
Node*createList(int value){
11
Node*head new Node(value);
12
head->next head;
13
return head;
14
15
16
/在循环单链表尾部插入新结点
17
void insertTail(Node*head,int valve){
18
Node*p head;
19
while (p->next !head){
20
p p->next;
21
22
Node*node new Node(value);
23
node->next head;
24
p->next node;
25
26
27
//遍历并输出循环单链表
28
void printList(Node*head){
29
if (head =nullptr)return;
30
31
Node*p head;
32
/在此处填入代码
cout 34
A
while (p !nullptr){
2
cout data <<""
p p->next;
4
第1页/共13页
B.
while (p->next !nullptr){
2
cout data <<""
p p->next;
c
do{
2
cout data <<""
3
p p->next;
4
}while(p!=head):
D.
1
for(;p;p=p->next){
2
cout data<<"";
第2题区块链技术是比特币的基础。在区块链中,每个区块指向前一个区块,构成徒式列表,新区块只能接在链
尾,不允许在中间插入或刷除。下面代码实现插入区块添加函数,则横线处填写()。
1/区块(节点)
struct Block
3
int index;
//区块编号(高度)
4
string data;
//区块里保存的数据
BLock*prev;
//指向前一个区块
6
7
BLock(int idx,const string&d,Block*p):index(idx),data(d),prev(p){
}
9
10
/区块链
11
struct Blockchain
12
Block*tail;
14
//初始化
15
void init(){
16
tail new Block(0,"Genesis Block",nullptr);
17
18
19
//插入新区块
20
void addBlock(const string&data){
21
/1在此处填入代码
22
23
24
/1释放内存
25
void clear(){
26
BLock*cur tail;
27
while (cur !nullptr){
28
BLock*p cur->prev
29
delete cur;
30
cur p;
31
32
tail nullptr;
33
34
A.
Block*newBlock new Block(tail->index 1,data,tail);
tail newBlock->prev;
第2页/共13页

展开更多......

收起↑

资源预览