2024年3月青少年软件编程Python等级考试(四级)真题试卷
题目总数:38 总分数:100
选择题
第 1 题 单选题
运行如下Python代码,若输入整数3,则最终输出的结果为?( )
def f(x): if x==1: s=1 else: s=f(x-1)*x return s n=int(input("请输入一个大于1的整数:")) print(f(n)+f(n-1))
A.
2
B.
4
C.
8
D.
16
第 2 题 单选题
运行下列python程序,输出的结果是?( )
def fun(x): if x > 3: return x * fun(x-1) else: return x print(fun(6))
A.
120
B.
360
C.
720
D.
60
第 3 题 单选题
下列关于递归的描述不正确的是?( )
A.
递归函数一定包含if语句
B.
递归函数体内一定包含调用自身的语句
C.
在调用自身函数时需要明确的边界终止条件与边界值
D.
递归算法一般代码简洁,执行效率高,空间复杂度低
第 4 题 单选题
运行下列Python程序,输出的结果是?( )
def fun(a, n): s = 0 for i in range(1, n+1): temp = str(a)*i s += int(temp) return s print(fun(1, 3))
A.
3
B.
6
C.
12
D.
123
第 5 题 单选题
运行下列python程序,输出的结果是?( )
def fun(a, b): s = 0 a = a[::-1] for i in range(len(a)): s += int(a[i])*b**i return s print(fun('45', 16))
A.
69
B.
45
C.
64
D.
61
第 6 题 单选题
一个荷花池,第一天荷花开放得很少,第二天开放的数量是第一天的两倍,之后的每一天,荷花都会以前一天两倍的数量开放。如果到第30天,荷花就开满了整个池塘,设第一天开一朵,编程求第30天共开了多少朵荷花。下面空白处的python代码填写正确的是?( )
s = 0 t = 1 for i in range(1, ① ): s += t ② print(s)
A.
30, t = t*2
B.
31, t = t*2
C.
31, t+=2
D.
30, t*=2
第 7 题 单选题
解决下列问题时,时间复杂度最大的是?( )
A.
输入n个不同的包含两位小数的实数,计算这n个数的和
B.
在n个数据中,查找数据k
C.
将n个数据用冒泡排序实现排序
D.
计算算式1-2+3-4+...-n的结果,n为偶数
第 8 题 单选题
以下关于分治算法的描述正确的是?( )
A.
各个子问题既相互独立又相互联系
B.
问题可以分解成若干个规模较小的相同问题
C.
可以直接对问题进行求解
D.
子问题的解不能合并成原问题的解
第 9 题 单选题
下列选项中哪一项使用了分治算法?( )
A.
二分搜索
B.
选择搜索
C.
插入搜索
D.
顺序搜索
第 10 题 单选题
不超过20个元素的降序数列,使用对分查找能找到指定的元素,可能的查找次数不包括?( )
A.
3
B.
4
C.
5
D.
6
第 11 题 单选题
下面python程序段的输出结果是?( )
def add_Run(L=None): if L is None: L = ['Lying'] else: L.append('Run') return L add_Run() print(add_Run()) print(add_Run(['Lying']))
A.
['Lying']
['Run']
B.
['Lying']
['Lying']
['Lying', 'Run']
C.
['Lying']
['Lying', 'Run']
D.
[]
['Lying', 'Run']
第 12 题 单选题
下面关于计数器的python程序,输出结果正确的是?( )
count = 0 def increment(): global count count += 1 print("计数器的值:", count) increment() increment() increment()
A.
计数器的值: 1
计数器的值: 2
计数器的值: 3
B.
计数器的值:0
计数器的值:1
计数器的值:2
C.
计数器的值: 1
计数器的值: 1
计数器的值: 1
D.
计数器的值:3
第 13 题 单选题
下列Python程序段的输出结果是?( )
L = [] x = 3 def test(x): L.append(x) x = 5 test(x) print('L = {}, x = {}'.format(L, x))
A.
L = [3], x = 3
B.
L = [5], x = 5
C.
L = [3], x = 5
D.
L = 3, x = 5
第 14 题 单选题
以下Python程序,运行程序输出结果正确的是?( )
def demo(x): return x*2 print(demo(demo(1)))
A.
return None
B.
2
C.
4
D.
8
第 15 题 单选题
Python使用下列哪个函数接收用户输入的数据?( )
A.
accept()
B.
input()
C.
print()
D.
login()
第 16 题 单选题
下面Python程序段的输出结果正确的是?( )
def power(): x ='python' y = 'world' z = x + " " + y return z print(power())
A.
z
B.
x + " " + y
C.
python world
D.
python" "world
第 17 题 单选题
下列关于Python函数的描述中,不正确的是?( )
A.
自定义函数时用到的关键字是def
B.
在python函数中,至少有一条return语句
C.
函数print()可以一次输出多个参数,如print('1',"2",3,[4])
D.
用函数eval()可以用于求字符串里表达式的值,如eval('3+5-1')
第 18 题 单选题
关于以下Python代码的描述中,正确的是?( )
#求两个正方形的面积差 def MianJiCha(a,b): s=a**2-b**2 return s a=5 b=10 c=MianJiCha(b,a)+a
A.
代码运行后,变量c的值是80
B.
函数名是MianJiCha(a,b)
C.
可以用MianJiCha(100)的形式调用此函数
D.
代码运行时会报错
第 19 题 单选题
下列关于Python函数的说法中,错误的是?( )
A.
利用函数可以降低编程复杂度,增加代码可读性
B.
函数可以重复调用
C.
函数可以降低修改代码的工作量
D.
调用函数时,每次都必须输入相同的参数值
第 20 题 单选题
下列选项中,调用下列代码定义的函数时,程序会报错的是?( )
def ShuChu(a,b,c):
print(c,b,a)
A.
ShuChu('1','2','3')
B.
ShuChu('1','2','3,4')
C.
ShuChu(1,2,3)
D.
ShuChu(1,2,3,4)
第 21 题 单选题
下列选项中,调用以下代码定义的函数时,程序会报错的是?( )
def kp(a,b,c):
print(a,b,c)
A.
kp(1,b=2,3)
B.
kp(a=3,b=1,c=2)
C.
kp(1,2,3)
D.
kp(1,b=2,c=3)
第 22 题 单选题
下列Python代码的输出结果是?( )
>>>s=lambda m,n:m*n
>>>s(6,6)
A.
6
B.
6,6
C.
36
D.
12
第 23 题 单选题
以下函数定义错误的选项是?( )
A.
def aFunc(m,n):
print(m,n)
B.
def aFunc(m,n=2):
print(m,n)
C.
def aFunc(*m,n):
print(m,n)
D.
def aFunc(m,*n):
print(m,n)
第 24 题 单选题
用于安装Python第三方库的工具是?
A.
install
B.
pip
C.
Wheel
D.
setup
第 25 题 单选题
编程时,如果只需要导入某第三方库中的某个成员,需要使用到的关键字是?( )
A.
from
B.
as
C.
into
D.
inport
判断题
第 26 题 判断题
若某个问题既能用递归算法求解,又能用递推算法求解,则使用递归方法求解更容易,效率也高得多。( )
A.
正确
B.
错误
第 27 题 判断题
如下代码因为递归的边界条件设置错误,产生了无限递归程序报错。( )
def fun(n): if n > 10: return 0 else: return n + fun(n-1) print(fun(10))
A.
正确
B.
错误
第 28 题 判断题
算法的时间复杂度与空间复杂度没有必然关系。( )
A.
正确
B.
错误
第 29 题 判断题
已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多查找次数为4次,则n的值有可能为10。( )
A.
正确
B.
错误
第 30 题 判断题
函数定义语句def f(c=1,d=2,a,b):是正确的,因为默认值形参要放在前面。( )
A.
正确
B.
错误
第 31 题 判断题
return语句可以返回任何数据类型的值,包括整数、浮点数、字符串、列表、元组、字典等。( )
A.
正确
B.
错误
第 32 题 判断题
def ZiDian(**kwargs): print(kwargs) ZiDian(a=1)
运行上面的Python代码后,输出结果为{'a':1}。( )
A.
正确
B.
错误
第 33 题 判断题
以下Python代码可以正常运行,输出8。( )
def qh(a,b=3): print(a+b) qh(b=2,6)
A.
正确
B.
错误
第 34 题 判断题
python代码>>>lambda:x=2,y=3:x+y 的运行结果是5。( )
A.
正确
B.
错误
第 35 题 判断题
使用pip install --upgrade numpy命令能够升级numpy科学计算库。( )
A.
正确
B.
错误
编程题
第 36 题 问答题
数的分解
给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×an,并且1<a1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到a=a也是一种分解。
例如,8可以分解成8=2*2*2,8=2*4,8=8总共3种。
python代码如下,完善划线处的代码:
def fun(x, y=2): if x == 1: global ans ① for i in range(y, x+1): if ② : fun(x//i,i) lst = [2, 8, 9, 20] #测试数据 for i in lst: ans = 0 ③ print(ans)
程序运行结果如下:
1 3 2 4
第 37 题 问答题
购物组合
小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?
def gouwu(money): for i in range(0,money//15+1): for j in range(0,money//2+1): for k in range(0, ① ): if ② : print('可选择的购买组合:\t购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format( ③ )) gouwu(100)
第 38 题 问答题
回文素数
回文素数是指一个不小于11的自然数n从左向右和从右向左读,其结果值相同且是素数,即称n为回文素数。一种求解的方法是先判断一个自然数是否为回文数,再判断它是否为素数。如果两个判断都成立,则该自然数是回文素数。请补全python代码,找出自然数1000以内的所有回文素数。
#判断是否为素数 def ① (n): for i in range(2,n): if ② : break else: return True #判断是否为回文数 def HuiWenShu(n): n=str(n) if n== ③ : return True else: return False for i in range(11,1001): if ZhiShu(i)==True ④ : print('{}是回文素数!'.format(i))
少儿编程在线题库:http://www.6547.cn/paper/view/afgf9iv08x9ikvzs