电子学会2024.03青少年软件编程(Python)等级考试试卷(四级)
一、单选题
1.运行如下代码,若输入整数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.运行下列程序,输出的结果是? ( )
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.运行下列程序,输出的结果是? ( )
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.运行下列程序,输出的结果是? ( )
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天共开了多少朵荷花。下面空白处的代码填写正确的是? ( )
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.子问题的解不能合并成原问题的解
================================================
答案和更多内容请查看网站:【试卷中心 -- Python 四级】
网站链接
青少年软件编程历年真题模拟题实时更新
================================================