202309青少年软件编程(Python)等级考试试卷(四级)
第 1 题 【单选题】
采用枚举法来解决"满足同时能被3和4整除的所有小于等于100的数字"的问题时,在给定的数值区间中,最优解是在哪个数值范围内?
A :1~101
B :4~100
C :12~100
D :12~96
**正确答案:D
试题解析:
当选择循环控制变量时, 枚举范围应当尽可能地缩小,并且必须确保不被遗漏。
第 2 题 【单选题】
下列有关函数的描述中, 正确的是? ( )
A :函数中必须有 return 语句
B :在函数内部不能使用全局变量
C :函数能提高应用的模块化程度和代码的重复利用率
D :函数内容以大括号起始, 并且缩进
功能模块有助于提升应用结构化程度与代码复用率
第 3 题 【单选题】
下列哪个语句能够定义参数个数不确定的函数? ( )
A :hs(parameters)
B :hs(parameters[])
C :hs(parameters{})
D :hs(*parameters)
**正确答案:D
试题解析:
当参数数量未确定时,在定义形参的过程中, 可采用...的形式进行表示.
第 4 题 【单选题】
执行如下 Python 代码的结果是? ( )
def area(r,pi=3.14):
return r*r*pi
print(area(2,10))
A :40
B :200
C :400
D :20
正确答案:A
试题解析:
函数运行结果, 2 2 10, 结果是 40。
第 5 题 【单选题】
执行如下 Python 代码, 输出结果是? ( )
def hs(num):
num += 1
return num
n=10
s=hs(n)
print(s)
A :11
B :10
C :运行错误
D :1
正确答案:A
试题解析:
函数的返回值, 赋值给变量 s, 输出 11。
第 6 题 【单选题】
有如下 Python 程序, 输出的结果是? ( )
def whao(year = '2023'):
print('你好' + year)
whao()
A :你好
B :你好 2023
C :你好 year
D :没有输出
正确答案:B
试题解析:
调用函数 whao, 输出: 你好 2023
第 7 题 【单选题】
编写计算正方体体积的匿名函数, 下列哪一个语句是正确的? ( )
A :rst = lambda a : a
B :lambda a : a
C :rst = lambda a : a *
D :lambda a : a *
**正确答案:C
试题解析:
lambda标识符标识匿名函数;冒号前的部分代表该函数所需的输入参数;冒号之后部分代表该函数返回的结果;在创建匿名函数的过程中,默认情况下需要将其结果赋给某个变量。
第 8 题 【单选题】
执行如下 Python 程序, 运行的结果是? ( )
def zfzh(s):
c = ''
for ch in s:
if "9">=ch>= "0":
c+=str(int(ch)+1)
elif "z">=ch>= "a":
c+= chr(ord(ch)- ord("a")+ord("A"))
return c
s = 'hzag-21-8'
print(zfzh(s))
A :HZAG329
B :923HZAG
C :GAZH329
D :923GAZH
正确答案:A
试题解析:
调用函数 zfzh, 注意字符串累加方式。
第 9 题 【单选题】
在 Python 中, 以下哪个代码是安装 numpy 模块的方法? ( )
A :pip install numpy
B :pip uninstall numpy
C :install numpy
D :setup numpy
正确答案:A
试题解析:
可以安装 numpy 模块的命令: pip install numpy
第 10 题 【单选题】
在 Python 中导入第三方库的主要关键字是? ( )
A :from
B :import
C :pip
D :install
正确答案:B
试题解析:
在 Python 中导入第三方库的关键字是 import。
第 11 题 【单选题】
《阅微草堂笔记》一书中记载有槐树果实'响豆'特性,在夜间会发出声响。这种豆子每个树上仅有一粒不易分辨。因此古人等到槐花开放结成果实后便采用多层布囊分别储藏每颗豆荚作为枕头使用:夜间听不到声响便丢弃不用;若有声响发生则接着将这一个囊里的豆荚再细分包装反复分拆筛选最终定位到那个发声响的豆荚。
A :顺序查找
B :枚举算法
C :解析算法
D :分治算法
其主要特征之一是分治算法能够通过将复杂的问题分解为若干个较小且相似或相同的子
问题是分治算法的重要能力,并且这种技术还可以进一步分解这些较小子
第 12 题 【单选题】
下列哪项不是分治算法所具有的特征? ( )
A :求解问题的规模缩小到一定的程度就能够容易地解决
B :求解题可以分解为若干个规模较小的不同问题
C :利用求解问题分解出的子问题的解可以合并为该问题的解
D :求解问题所分解出的各个子问题是相互独立的
正确答案:B
试题解析:
求解问题可以分解为若干个规模较小的相同问题。
第 13 题 【单选题】
两名学生进行猜数字游戏。具体规则如下:其中一人 mentally selects a number within the range of 1 to 100.若一人所报digit值大于 mentally selected number,则回答‘大了’;若所报digit值小于 mentally selected number,则回答‘小了’;直至正确guess实现。运用二分查找法解决这一问题所需的最大guess次数是多少?(此处数学公式:O(\log_2 n))
A :10
B :8
C :7
D :6
正确答案:C
试题解析:
相当于用二分法在 1-100 之间查找某个数字。
第 14 题 【单选题】
通过递推法计算n个自然数相乘的结果,请在代码空缺处填写正确的计算公式。
def fact(n):
s=1
for i in range(1,n+1):
s=s*i
return ________
a=fact(5)
print(a)
A 😒
B :i
C :fact(n-1)
D :fact(n)
正确答案:A
试题解析:
第 15 题 【单选题】
一个球从100米的高度自由下落,在每次着地后弹起至前一次高度的一半后再落下;接着再落下,请计算该球在第十次着地时总共经过的距离是多少?第十次反弹的高度是多少?这段代码旨在用来解决上述问题,请问它是基于哪种算法实现的?
high=100
s=0
sum=0
for i in range(10):
s,high=high+high/2,high/2
sum=sum+s
sum=sum-high
print(sum)
print(high)
A :递归
B :枚举
C :递推
D :二分
**正确答案:C
试题解析:
递推遵循特定的规则来运算序列中的首项。 题目属于等比数列类型。 代码不自调用而因此可以确定它不是递归。
第 16 题 【单选题】
采用递归方法计算从1到n的所有自然数的乘积,请从下面选项中选择合适的补充程序?
def Chengji(n):
if n <=1:
return 1
else:
return _____?______
print(Chengji(3))
A :n*Chengji(n)
B :n*Chengji(n-1)
C :n*Chengji(n+1)
D :n×Chengji(n-1)
正确答案:B
试题解析:
第 17 题 【单选题】
一根长度待求的绳子,在被连续五次操作后剩余两米。每一次操作均是从当前剩余长度中先减去一半后再切除两米。请问原始绳索的具体长度是多少?
A :排序
B :递推
C :解析
D :枚举
**正确答案:B
试题解析:
题目中的绳子长度被一致地剪掉, 因此从后向前, 可以遵循这个规律逐步推导出绳子的长度.
第 18 题 【单选题】
某天早晨,一只小猴采摘了若干个桃子.随后立即吃了原有数量的一半,接着又多吃了1个.次日清晨,它又将剩余的桃子吃了剩下的一半,并多吃了1个.之后每天早晨都是如此操作.到了第五天早上,猴子打算再次食用时却发现树上仅剩下1个桃子了.问第一天猴子一共采摘了多少个桃子?
这个问题可以用递归来解决, 代码如下:
def peach(day):
if day==1:
return 1
return (peach(day-1) + 1)*2
s=peach(5)
print('一共有%d 只桃子'%(s))
请问第 2 行的“if day == 1” 代码起到的作用是? ( )
A :结束递归的边界条件
B :开始递归的边界条件
C :调用自身
D :递归过程中的变化
试题解析:递归算法清晰地设定了一种明确界定调用结束的方式(即终止条件),并规定了在完成特定操作后的终始状态(即终始值)。这种结构可以通过if语句来达成。
第 19 题 【单选题】
这段代码能够计算出两个数的最小公倍数。 请仔细分析这段代码所采用的算法类型? 即采用了哪种算法?
def lcm(s,m,n):
if s%n==0:
return s
else:
return lcm(s+m,m,n)
a=int(input('请输入第 1 个数: '))
b=int(input('请输入第 2 个数: '))
c=lcm(a,a,b)
print('{}和{}的最小公倍数是{}'.format(a,b,c))
A :枚举
B :解析
C :递归
D :二分
**正确答案:C
试题解析:
在构建一个函数或过程时, 若出现自身调用的情况, 则被视为递归.
第 20 题 【单选题】
关于函数, 正确的描述是? ( )
A :规范的函数设计都应该带有返回值
B :函数体中, 只要遇到 break 关键字,函数就结束
C :函数体中, 只要遇到 return 关键字,函数就结束
D :函数的返回值只能是整型、 浮点型、 布尔型和字符串
在Python函数中,在遇到关键字返回时(或每当遇到关键字返回时),该函数就会终止执行。
第 21 题 【单选题】
关于全局变量和局部变量, 正确的描述是? ( )
A :通俗来说, 无缩进的变量都是全局变量
B :函数体中, 只能使用局部变量
C :Python 程序中, 全局变量与局部变量不允许重名
D :函数体中, 只能通过实参传递的方式实现对全局变量数值的使用
正确答案:A
试题解析:
无缩进的变量都在最上层, 是全局变量。
第 22 题 【单选题】
定义以下函数:
def func(x,y,z=2):
print(x+y+z)
分别以 func(1,2,3)和 func(1,2)语句调用该函数, 运行后的结果分别是? ( )
A :6;出错
B :5;出错
C :5;5
D :6;5
在Python中,默认参数设置完成后,在调用函数时也可以向该参数提供新增的数值。例如:func(1,2,3)返回的结果为6,在这种情况下;而当仅传递两个参数时(如func(1,2)),结果则为5。
第 23 题 【单选题】
在嵌调用场景下,请具体说明实现细节。
A :只能通过不定长参数传递来实现
B :使用 local 关键字
C :使用 nonlocal 关键字
D :使用 global 关键字
标准答案为:D
试题解析:
在Python嵌入式函数中若内层函数欲修改外层变量则必须使用global关键字
第 24 题 【单选题】
在自定义函数中, 如果发现局部变量与全局变量同名, 则? ( )
A :程序会出现语法错, 不能运行
B :程序可以运行, 局部变量与全局变量互不干扰
C :可能存在局部变量对全局变量值产生影响的情况,在进行程序设计时应当特别注意这种潜在的问题是否存在
D :不允许出现这种情况, 应该采用参数传递的方法去解决问题
**标准答案为C选项
此题解析如下:
于Python函数环境中,当局部变量与全局变量名称一致时,则该局部变量将覆盖其对应的全局变量。
第 25 题 【单选题】
考察以下函数定义代码:
def func(x:int,y:str)->str:
z=x*y
return z
以下陈述正确的是? ( )
Python属于一种基于动态类型的编程语言,在函数或方法中不需要预先指定参数的数据类型;该段代码不符合Python语法规范
B :为了增强程序的可靠性,在函数定义时程序支持形参和返回值的数据类型说明
因为函数被指定返回特定数据类型,则变量z必须完成相应的类型转换才能够应用于后续return语句中
D :因形参被指定为不同数据类型,变量 x 和 y 需预先执行类型转换操作方能完成上述运算
Python 不强求形参必须指定数据类型,在函数定义时可选配输入参数的数据格式;同时可以在函数定义中给形参设定数据类型,并可在函数定义中设定返回值的数据格式以增强程序的安全性
第 1 题 【判断题】
函数的定义代码不需要在主程序调用函数之前。( )
A :正确
B :错误
正确答案:B
试题解析:
函数必须先定义才能调用。
第 2 题 【判断题】
关键字实参以"关键字=值"的形式传递数值,在所有函数参数均采用此方式进行传递的情况下,则无需关注函数调用过程中形参的具体排列顺序。
A :正确
B :错误
正确答案:A
试题解析:
函数的概念。
第 3 题 【判断题】
递归算法并不需要具备深厚的数学知识基础,并且能够有效地简化许多看似复杂的计算问题。通过使用简洁明了的代码结构即可实现这些功能,并且这种解决方案通常具有较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运行效率相对较高的运算速度相比而言相比而言相比而言相比而言相比而言相比而言相比而言相比而言相比而言比其他方案更加高效因此,在存在其他解决方案的情况下优先选择使用递归算法来解决这些问题。
A :正确
B :错误
在执行递归算法的过程中会产生一系列的函数调用,在这些过程中存在大量的重复计算;该算法的执行效率较低。
第 4 题 【判断题】
函数是将实现相同功能的代码封装在一起, 实现代码复用。( )
A :正确
B :错误
试题解析:
功能模块可用于打包相同功能的代码块, 从而促进代码复用。
第 5 题 【判断题】
命令 pip download <第三方库>表示下载并安装指定的第三方库。( )
A :正确
B :错误
正确答案:B
试题解析:
该命令为下载但不安装。
第 6 题 【判断题】
二分查找又称对折半查找, 例如: 在数列 34、 17、 25、 9、 10、 3 中查找 3, 适合采用二分查找法。( )
A :正确
B :错误
正确答案:B
试题解析:
二分查找是一种应用于有序数列的高效查找算法。
第 7 题 【判断题】
在递归算法中,必定包含内部自身被引用的情况,并可在其间被使用。
A :正确
B :错误
**正确答案:A
试题解析:
在建立一个函数或过程时,在其中包含自调用的元素则被称作递归。 其位置由具体情况决定,并非必须规定必须到最后才允许自调用行为发生。
第 8 题 【判断题】
通过把某些特定功能语句设计成自定义函数, 可以简化主程序的编写。( )
A :正确
B :错误
正确答案:A
试题解析:
通过函数调用, 可以简化主程序的编写。
第 9 题 【判断题】
下面代码的时间复杂度为 O(n*n)。( )
arr = [ 2, 3, 4, 10, 40 ]
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
A :正确
B :错误
正确答案:A
试题解析:
双重循环, 时间复杂度为 O(n*n)。
第 10 题 【判断题】
在Python编程中,在任何位置都可以编写个人定制的函数,并且还可以放置在代码块后面的位置上。这种安排具有较大的灵活性。
A :正确
B :错误
正确答案:B
试题解析:
Python 程序中, 自定义函数要放在主程序之前。
