真题解析/GESP9月认证C++六级真题回顾

四季读书网 1 0
真题解析/GESP9月认证C++六级真题回顾
真题解析/GESP9月认证C++六级真题回顾-第1张图片-四季读书网

点击上方蓝字·关注我们

真题解析/GESP9月认证C++六级真题回顾-第2张图片-四季读书网
CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。

本次为大家带来的是20239月份C++六级认证真题解析。

2023GESP9月认证C++六级试卷解析

一、单选题(每题2分,共30分)

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

A

D

D

D

A

D

D

B

B

B

B

C

C

B

B/D

1、近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流⾏,其中包括⽐较常用的手写板,那么它属于哪类设备?( )。

A.输⼊

B.输出

C.控制

D.记录

【答案】A

【考纲知识点】 计算机基础

【解析】本题属于考察计算机基础知识。手写板是输入设备。

2、如果ab均为int类型的变量,且b的值不为0,那么下列能正确判断“ab3倍”的表达式是( )。

A. (a >> 3 == b)

B. (a - b) % 3 == 0

C. (a / b == 3)

D. (a == 3 * b)

【答案D

【考纲知识点】 运算表达式和位运算

【解析】本题属于考察运算表达式和位运算知识。b不等于0ab3倍。A选项中,a右移3位,相当于除以8B是取余运算;如果a=7,b=2,a/b的结果也等于3,因为是整型,C选项也不正确;选D

3、以下不属于面向对象程序设计语言的是( )。

A. C++

B. Python

C. Java

D. C

【答案】D

【考纲知识点】 计算机语言知识

【解析】本题属于考察计算机语言知识。C是面向过程的设计语言。

4、下⾯有关C++类定义的说法,错误的是( )。

A. C++类实例化时,会执行构造函数。

B. C++自定义类可以通过定义构造函数实现自动类型转换。

C. C++自定义类可以通过重载><等运算符实现⼤⼩比较。

D. C++自定义类可以包含任意类型的成员。

【答案D

【考纲知识点】 类的定义

【解析】本题属于考察C++类的知识。类中的数据成员的类型可以包含整型、浮点型、字符型、数组、指针和引用等,但不能是抽象类、自身等,故选DABC都是基本知识。

5、有关下⾯C++代码的说法,错误的是( )。

真题解析/GESP9月认证C++六级真题回顾-第3张图片-四季读书网

A. 代码cout << st << endl; 不会报错,将正常输出ABC

B. 6⾏代码的dataMyStr类的成员变量。

C. 代码MyStr st("ABC"); 不会报错,将执⾏构造函数。

D.以上说法均没有错误。

【答案A

【考纲知识点】 类与对象

【解析】本题属于考察C++类的知识。属于应该输出对象的成员,不能直接输出对象名。

6、下列关于命名空间的说法错误的是( )。

A.命名空间可以嵌套,例如namespace A { namespace B { int i;}}

B.命名空间只可以在全局定义。

C.命名空间中可以存放变量和函数。

D. 如果程序中使⽤了using命令同时引用了多个命名空间,并且命名空间中存在相同的函数,会出现程序运行错误。

【答案D

【考纲知识点】C++类的知识

【解析】本题属于考察C++类的知识。不同命名空间里可以存在相同函数。

7、有关下⾯C++代码的说法,正确的是( )。

真题解析/GESP9月认证C++六级真题回顾-第4张图片-四季读书网

A.这段代码不能正常运行。

B. ManyData类可⽤于构造队列(Queue)数据结构。

C.在上⾯代码环境,代码cout<< myData.__data[0] << endl; 可以增加到代码main函数末尾(return 0; 之前),且不会导致报错。

D.可以为ManyData类的push()pop()函数增加异常处理代码,否则在使用ManyData类时可能导致运⾏时错误或逻辑错误(不⼀定局限于上述代码中的main函数)。

【答案】D

【考纲知识点】C++类的知识

【解析】本题属于考察C++类的知识。Pushpop函数没有对数组范围做是否越界判断,因此需要增加异常处理。

8、有关下⾯C++代码的说法,错误的是( )。

真题解析/GESP9月认证C++六级真题回顾-第5张图片-四季读书网

A. MoreData 类可⽤于构造队列(Queue)数据结构。

B. 代码第29⾏,连续push()的⽤法将导致编译错误。

C.  __dataMoreData类的私有成员,只能在类内访问。

D. 以上说法均没有错误。

【答案B

【考纲知识点】C++类的知识

【解析】本题属于考察C++类的知识。对象指向的数组大小是100,程序中push的元素小于100,因此不会错误。

9、某内容仅会出现ABCDEFG,其对应的出现概率为0.400.300.150.050.040.030.03,如下图所⽰。按照哈夫曼编码规则,假设B的编码为11,则D的编码为( )。

真题解析/GESP9月认证C++六级真题回顾-第6张图片-四季读书网

A.  10010

B.  10011

C.  10111

D.  10001

【答案】B

【考纲知识点】 数据结构中的哈夫曼树

【解析】本题考察的知识点是数据结构中的哈夫曼,哈夫曼树左边的边权是用0来表示,右边的边权值是1,通常是左01。走到D是右左左右右,也就是10011,因此选项是B

10、下⾯有关格雷码的说法,错误的是( )。

A.在格雷码中,任意两个相邻的代码只有⼀位二进制数不同。

B.格雷码是⼀种唯⼀性编码。

C.在格雷码中,最⼤数和最⼩数只有⼀位二进制数不同。

D.格雷码是⼀种可靠性编码。

【答案B

【考纲知识点】 计算机编码的知识

【解析】本题属于考察计算机编码的知识。格雷码的编码不是唯一的编码。任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码。所以不是唯一性编码。

11、有关下图的二叉树,说法正确的是( )。

真题解析/GESP9月认证C++六级真题回顾-第7张图片-四季读书网

A. 既是完全二叉树也是满二叉树。

B. 既是二叉搜索树也是平衡二叉树。

C. ⾮平衡二叉树。

D. 以上说法都不正确。

答案】B

【考纲知识点】 数据结构中树的知识

【解析】本题属于考察数据结构中树的知识。是二叉树,左子树都小于根节点,右子树都大于根节点,是二叉搜索树。左右子树的层差小于等于1,是平衡二叉树。

12、个节点的二叉搜索树,其查找的平均时间复杂度为( )。

A. 0(1)

B. 0(N)

C. 0(log N)

D. 0(N2)

答案】C

【考纲知识点】 数据结构中树的知识

【解析】本题属于考察数据结构中树的知识。二叉搜索树每次查找,数据规模平均会减半。

13、青蛙每次能跳12步。下⾯是青蛙跳到第N步台阶C++实现代码。该段代码采⽤的算法是( )。

真题解析/GESP9月认证C++六级真题回顾-第8张图片-四季读书网

A. 递推算法

B. 贪⼼算法

C. 动态规划算法

D. 分治算法

【答案C

【考纲知识点】 算法的知识

【解析】本题属于考察算法的知识。可以通过动态规划来完成求解完成跳台阶方法,故参考答案是C

14N个节点的双向循环链,在其中查找某个节点的平均时间复杂度是( )。

A. 0(1)

B. 0(N)

C. 0(log N)

D. 0(N2)

【答案】B

【考纲知识点】 数据结构中链表的知识

【解析】本题属于考察数据结构中链表的知识。链表查找数据需要遍历整个链表,平均时间复杂度是B选项。

15、关于C++语⾔,以下说法不正确的是( )。

A.若对象被定义为常量,则它只能调⽤以const修饰的成员函数。

B.所有的常量静态变量都只能在类外进⾏初始化。

C. 若类A的对象a是类B的静态成员变量,则amain()函数调⽤之前应被初始化。

D.静态全局对象、常量全局对象都是在main函数调用之前完成初始化,执⾏完main函数后被析构。

【答案DB

【考纲知识点】C++中类的知识

【解析】本题属于考察C++中类的知识。主要考察常量静态变量和全局变量的初始化。AC是基本要求。D选项关注动态初始化时机,但基本类型的全局常量可以在编译时完成初始化设定,说法不准确,是可选答案。但B的说法可以有如下特例。

class A{

const static int b=1;

};

 考虑到考试情况,DB都算对。

二、判断题(每题2分,共20分)

题号

1

2

3

4

5

6

7

8

9

10

答案

×

×

×

×

1TCP/IP的传输层的两个不同的协议分别是UDPTCP

【答案】正确

【考纲知识点】 计算机网络的知识

【解析】本题是计算机网络的知识,传输层是这2个协议。

25G⽹络中,5G中的G表⽰Gigabytes/s,其中1 GB = 1024 MB

【答案】错误

【考纲知识点】 计算机网络的知识

【解析】本题是计算机网络的知识,Ggeneration的简写。

3、在面向对象中,类是对象的实例。

【答案】错误

【考纲知识点】C++的知识

【解析】本题是C++的知识,对象是类的实例。

4、在C++类的定义中,使⽤static修饰符定义的静态成员被该类的所有对象共享。

【答案】正确

【考纲知识点】C++类的知识

【解析】本题是C++类的知识,静态成员可以被该类所有对象访问。

5、在C++类的定义中,可以定义初始化函数或运算符函数等。

【答案】正确

【考纲知识点】C++类的知识

【解析】本题是C++类的知识,定义的内容可以是函数和运算符。

6DFS是深度优先算法的英⽂简写。

【答案】正确

【考纲知识点】C++算法的知识

【解析】本题是C++算法的知识,dfs是深度优先搜索的简写。

7、哈夫曼编码是⼀种有损压缩算法。

【答案】错误

【考纲知识点】C++数据结构的知识

【解析】本题是C++数据结构的知识,有损压缩算法是一种用于压缩数字媒体数据的算法。

8、有些算法或数据结构在C/C++语⾔中使⽤指针实现,⼀个典型的例⼦就是链表。因此,链表这⼀数据结构在C/C++语⾔中只能使⽤指针来实现。

【答案】错误

【考纲知识点】C++数据结构的知识

【解析】本题是C++数据结构的知识,链表可以用数组实现。

9、如果节点数为N,⼴度搜索算法的最差时间复杂度为O(N)

【答案】正确

【考纲知识点】C++数据结构的知识

【解析】本题是C++数据结构的知识,广搜最差情况最后一个搜到目标。

10二叉搜索树的左右⼦树也是二叉搜索树。

【答案】正确

【考纲知识点】C++数据结构的知识

【解析】本题是C++数据结构的知识,二叉搜索树的定义,左右子树必须也是符合二叉搜索树的特点。

三、编程题(每题25分,共50分)

题号

1

2

答案




1、小杨买饮料

问题描述

⼩杨来到了⼀家商店,打算购买⼀些饮料。这家商店总共出售N种饮料,编号从0N-1,其中编号为i的饮料售价ci元,容量li毫升。

⼩杨的需求有如下⼏点:

1.⼩杨想要尽可能尝试不同种类的饮料,因此他希望每种饮料至多购买1瓶;

2.⼩杨很渴,所以他想要购买总容量不低于L的饮料;

3.⼩杨勤俭节约,所以在12的前提下,他希望使用尽可能少的费用。

⽅便起见,你只需要输出最少花费的费用即可。特别地,如果不能满⾜⼩杨的要求,则输出no solution.

输入描述

第⼀⾏两个整数N, L

接下来N⾏,依次描述第i= 0,1,...,N-1种饮料:每⾏两个整数ci, li

输出描述

输出⼀⾏⼀个整数,表⽰最少需要花费多少钱,才能满足⼩杨的要求。特别地,如果不能满足要求,则输出no solution

特别提醒

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

样例输入1

真题解析/GESP9月认证C++六级真题回顾-第9张图片-四季读书网

样例输出1

真题解析/GESP9月认证C++六级真题回顾-第10张图片-四季读书网

样例解释1

小杨可以购买124号饮料,总计获得50+40+20=110毫升饮料,花费2+4+3=9元。

如果只考虑前两项需求,小杨也可以购买134号饮料,它们的容量总和为 50+30+20=100毫升,恰好可以满足需求。但遗憾的是,这个方案需要花费2+5+3=10元。

样例输入2

真题解析/GESP9月认证C++六级真题回顾-第11张图片-四季读书网

样例输出2

真题解析/GESP9月认证C++六级真题回顾-第12张图片-四季读书网

样例解释2

1234号饮料总计140毫升,如每种饮料至多购买1瓶,则恰好无法满足需求,因此只能花费100元购买0号饮料。

样例输入3

真题解析/GESP9月认证C++六级真题回顾-第13张图片-四季读书网

样例输出3

真题解析/GESP9月认证C++六级真题回顾-第14张图片-四季读书网

数据规模

对于40%的测试点,保证N201≤ L ≤100li≤ 100

对于70%的测试点,保证li≤ 100

对于所有测试点,保证1N 5001≤ L ≤ 20001≤ ci,li≤ 106

【题目大意】

n种饮料,每种饮料只能选1瓶,相当于有n瓶饮料,每种饮料只有两种状态:选或者不选,即01。选择饮料的升数最高是L升,表示有上限。希望尽可能的少花钱,就是求满足条件的最小值。符合01背包的问题。

【考纲知识点】

基本运算、输入输出语句、循环、动态规划的知识。

【解题思路】

按题目要求定义好需要的变量,并实现输入;

输入n行,每行2个整数,分别表示饮料的零售价和升数;

初始化边界,买0升饮料的费用肯定是0,其他初始化为最大值;

每种饮料都要参与判断,选还是不选,更新L~0需要的费用;

最终求出L升饮料需要的费用。

【参考程序】

真题解析/GESP9月认证C++六级真题回顾-第15张图片-四季读书网


2、小杨的握手问题

问题描述

小杨的班级里共有N名同学,学号从0N-1

某节课上,老师安排全班同学进行一次握手游戏,具体规则如下:老师安排了一个顺序,让全班N名同学依次进入教室。每位同学进入教室时,需要和已经在教室内且学号小于自己的同学握手。

现在,小杨想知道,整个班级总共会进行多少次握手。

提示

可以考虑使用归并排序进行降序排序,并在此过程中求解。

输入描述

输入包含2行。第一行一个整数N,表示同学的个数;第二行N个用单个空格隔开的整数,依次描述同学们进入教室的顺序,每个整数在0N-1之间,表示该同学的学号。

保证每位同学会且只会进入教室一次。

输出描述

输出一行一个整数,表示全班握手的总次数。

特别提醒

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

样例输入1

真题解析/GESP9月认证C++六级真题回顾-第16张图片-四季读书网

样例输出1

真题解析/GESP9月认证C++六级真题回顾-第17张图片-四季读书网

样例解释1

2号同学进入教室,此时教室里没有其他同学。

1号同学进入教室,此时教室里有2号同学。1号同学的学号小于2号同学,因此他们之间不需要握手。

3号同学进入教室,此时教室里有12号同学。3号同学的学号比他们都大,因此3号同学需要分别和另外两位同学握手。

0号同学进入教室,此时教室里有123号同学。0号同学的学号比他们都小,因此0号同学不需要与其他同学握手。

综上所述全班一共握手0+0+2+0=2次。

样例输入2

真题解析/GESP9月认证C++六级真题回顾-第18张图片-四季读书网

样例输出2

真题解析/GESP9月认证C++六级真题回顾-第19张图片-四季读书网

样例解释2

全班所有同学之间都会进行握手,因为每位同学来到教室时,都会发现他的学号是当前教室里最大的,所以他需要和教室里的每位其他同学进行握手。

数据规模

对于30%的测试点,保证N100

对于所有测试点,保证2 ≤ N ≤ 3 × 105

【题目大意】

n个学生,假设第i个学生进入教师,找出前1~i-1个学生,哪些人的学号比自己小,小的需要握手,贡献值加1

【考纲知识点】

基本运算、输入输出语句、循环、归并排序的知识。   

【解题思路】

按题目要求定义好需要的变量,并实现输入;

输入n个整数,每个数字分别和前面的数字进行比较,如果大于,贡献值加1

可以用双重循环模拟,找到答案;

因为数据范围是300000,双重循环会超时。

归并排序可以求逆序对,逆序对是指:i<j,a[i]>a[j];本题相当于“顺序对”,i>j,a[i]>a[j],同样可以用归并排序求得,时间复杂度是O(Nlogn)

写归并排序,在排序的过程中,统计数量,求和可得结果。

【参考程序】

真题解析/GESP9月认证C++六级真题回顾-第20张图片-四季读书网

真题解析/GESP9月认证C++六级真题回顾-第21张图片-四季读书网

END

真题解析/GESP9月认证C++六级真题回顾-第22张图片-四季读书网

GESP 12月认证 

01
认证语言
C++/Python/图形化编程
02
报名及缴费时间
2023年10月19日至11月30日24点截止
03
认证时间

1-4级   2023年12月9日   上午9:30-11:30

5-8级   2023年12月9日   下午13:30-16:30

04
认证方式
全国统一线下机考
05
报名方式

登录GESP官网(https://gesp.ccf.org.cn/)进行报名

联系方式

1. GESP微信:关注“CCF GESP公众号,将问题以文字方式留言即可得到回复。

2. GESP邮箱:gesp@ccf.org.cn

注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证号,以便及时有效处理。

3. GESP电话:0512-67656856

咨询时间:周一至周五(法定节假日除外)

                上午 8:30-12:00;下午 13:00-17:30

扫码关注GESP公众号,了解更多咨询

真题解析/GESP9月认证C++六级真题回顾-第23张图片-四季读书网

直播合作媒体:蔻享学术

抱歉,评论功能暂时关闭!