2023年12月CCF-GESP编程能力等级认证Python编程六级真题

2024年03月06日

一、单选题(共15题,共30分)

第1题 通讯卫星在通信网络系统中主要起到( )的作用。

A:信息过滤
B:信号中继
C:避免攻击
D:数据加密

答案:B

第2题 小杨想编写一个判断任意输入的整数N是否为素数的程序,下面哪个方法不合适?( )

A:埃氏筛法
B:线性筛法
C:二分答案
D:枚举法

答案:C

第3题 内排序有不同的类别,下面哪种排序算法和冒泡排序是同一类?( )

A:希尔排序
B:快速排序
C:堆排序
D:插入排序

答案:B

第4题 关于Python类和对象的说法,错误的是( )。

A:在Python中,一切皆对象,即便是字面量如整数5等也是对象
B:在Python中,可以自定义新的类,并实例化为新的对象
C:在Python中,内置函数和自定义函数,都是类或者对象
D:在Python中,不可以在自定义函数中嵌套定义新的函数

答案:D

第5题 有关下面Python代码的说法,正确的是( )。

A:第17行代码执行后将报错,因为 Rect 类没有定义 in 运算符
B:第16行代码将 Point 对象作为参数,将导致错误
C:in是成员运算符,不适用于 Rect 类
D:由于 Rect 类定义了 contains 魔术方法,因此第17行代码能正确执行

答案:D

第6题 有关下面Python代码的说法,正确的是( )。

A:第8行代码错误,第9行正确
B:第9行代码错误,第8行代码正确
C:第8、9两行代码都正确
D:第4行代码可修改为 objCounter += 1

答案:C

第7题 有关下面Python代码的说法,错误的是( )。

A:上列Python代码适用于构造各种二叉树
B:代码 Root = biTree(biTreeNode(5)) 构造二叉树的根节点
C:代码 Root = biTree( ) 可以构造空二叉树,此时 Root 对象的 root 属性值为 None
D:代码 Root = biTree(biTreeNode( )) 可以构造空二叉树,此时 Root 对象的 root 属性为 Node

答案:D

第8题 基于上题类的定义,有关下面Python代码的说法错误的是( )。

A:代码中 Search( ) 函数如果查找到查找值的节点,则返回该节点的对象
B:代码中 Search( ) 函数先搜索左子树,如果搜索不到指定值,则搜索右子树
C:代码中 Search( ) 函数采用递归方式实现二叉树节点的搜索
D:代码中 Search( ) 函数采用动态规划方法实现二叉树节点的搜索

答案:D

第9题 有关下面Python代码的说法正确的是( )。

A:上述代码构成单向链表
B:上述代码构成双向链表
C:上述代码构成循环链表
D:上述代码构成指针链表

答案:B

第10题 对 hello world 使用霍夫曼编码(Huffman Coding),最少 bit(比特)为( )。

A:4
B:32
C:64
D:88

答案:B

第11题 下面的 fiboA( ) 和 fiboB( ) 两个函数分别实现斐波那契数列,该数列第1、第2项值为1,其余各项分别为前两项之和。下面有关说法错误的是( )。

A:fiboA( ) 采用递归方式实现斐波那契数列
B:fiboB( ) 采用动态规划算法实现斐波那契数列
C:当N值较大时, fiboA( ) 存在大量重复计算
D:由于 fiboA( ) 代码较短,其执行效率较高

答案:D

第12题 有关下面Python代码不正确的说法是( )。

A:该代码可用于求解二叉树的深度
B:代码中函数 getDepth( ) 的参数 root 表示根节点,非根节点不可以作为参数
C:代码中函数 getDepth( ) 采用了递归方法
D:代码中函数 getDepth( ) 可用于求解各种形式的二叉树深度,要求该二叉树节点至少有 left 和 right 属性

答案:B

第13题 下面有关树的存储,错误的是( )。

A:完全二叉树可以用 list 存储
B:一般二叉树都可以用 list 存储,空子树位置可以用 None 表示
C:满二叉树可以用 list 存储
D:树数据结构,都可以用 list 存储

答案:D

第14题 下面有关Python中 in 运算符的时间复杂度的说法,错误的是( )。

A:当 in 运算符作用于 dict 时,其时间复杂度为O(1)
B:当 in 运算符作用于 set 时,其时间复杂度为O(1)
C:当 in 运算符作用于 list 时,其时间复杂度为O(N)
D:当 in 运算符作用于 str 时,其时间复杂度为O(N)

答案:D

第15题 下面有关 bool() 函数的说法,正确的是( )。

A:如果自定义类中没有定义魔术方法 __bool__( ) ,将不能对该类的对象使用 bool( ) 函数。
B:如果自定义类中没有定义魔术方法 __bool__( ) ,将查找有无魔术方法 __len__( ) 函数,如果有__len__( ) 则按 __len__( ) 的值进行处理,如果该值为0则返回 False ,否则 True ,如果没有 __len__() ,则返回值为 True。
C:bool( ) 函数如果没有参数,返回值为 False。
D:表达式 bool(int) 的值为 False。

答案:B

二、判断题(共10题,共20分)

第16题 小杨想写一个程序来算出正整数N有多少个因数,经过思考他写出了一个重复没有超过N/2次的循环就能够算出来了。( )

答案:正确

第17题 同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。( )

答案:正确

第18题 在面向对象中,方法(Event)在Python的class中表现为class内定义的函数。( )

答案:正确

第19题 在下面的Python代码被执行将报错,因为newClass没有 init( ) 魔术方法。( )

答案:错误

第20题 如果某个Python对象(object)支持下标运算符(方括号运算符),则该对象在所对应class中定义了名为__getitem__ 的魔术方法。( )

答案:正确

第21题 深度优先搜索(DFS,Depth First Search的简写)属于图算法,其过程是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。( )

答案:正确

第22题 哈夫曼编码(Huffman Coding)具有唯一性,因此有确定的压缩率。 ( )

答案:错误

第23题 Python虽然不支持指针和引用语法,但变量的本质是数据的引用(reference),因此可以实现各种C/C++数据结构。在下面Python代码中,由于删除了变量a,因此a所对应的数据也随之删除,故第4行代码被执行时,将报错。( )

答案:错误

第24题 二叉搜索树查找的平均时间复杂度为 。( )

答案:正确

第25题 二叉搜索树可以是空树(没有任何节点)或者单节点树(只有一个节点),或者多节点。如果是多节点,则左节点的值小于父节点的值,右节点的值大于父节点的值,由此推理,右节点树的值都大于根节点的值,左节点树的值都小于根节点的值。( )

答案:正确

三、编程题(共2题,共50分)

第26题 闯关游戏

第27题 工作沟通