青少年软件编程(
Python
)等级考试试卷(四级)
分数:
100
题数:
38
一、单选题
(
共
25
题,共
50
分
)
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
试题编号:202306-zj-014
试题类型:单选题
标准答案:C
试题难度:一般
试题解析:由于f(3)=f(2)*3,f(2)=f(1)*2,f(1)=1,所以f(3)+f(2)=6+2=8。
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
试题编号:202306-zj-015
试题类型:单选题
标准答案:B
试题难度:一般
试题解析:递归函数求解,根据递归函数6*5*4*3=360
3.
下列关于递归的描述不正确的是?( )
A.
递归函数一定包含if语句
B.
递归函数体内一定包含调用自身的语句
C.
在调用自身函数时需要明确的边界终止条件与边界值
D.
递归算法一般代码简洁,执行效率高,空间复杂度低
试题编号:202306-zj-016
试题类型:单选题
标准答案: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
试题编号:202306-zj-017
试题类型:单选题
标准答案:D
试题难度:较难
试题解析:递推函数求解,本题是求1+11+111之和。
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
试题编号:202306-zj-018
试题类型:单选题
标准答案:A
试题难度:一般
试题解析:递推函数求解,本题是根据一个字符串和进制,转换成对应的十进制。
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
试题编号:202306-zj-019
试题类型:单选题
标准答案:B
试题难度:一般
试题解析:递推函数求解,本题递推关系是t = t*2, 循环次数是30次。
7.
解决下列问题时,时间复杂度最大的是?( )
A.
输入n个不同的包含两位小数的实数,计算这n个数的和
B.
在n个数据中,查找数据k
C.
将n个数据用冒泡排序实现排序
D.
计算算式1-2+3-4+...-n的结果,n为偶数
试题编号:20230616-fcl-035
试题类型:单选题
标准答案:C
试题难度:一般
试题解析:算法优化。
8.
以下关于分治算法的描述正确的是?( )
A.
各个子问题既相互独立又相互联系
B.
问题可以分解成若干个规模较小的相同问题
C.
可以直接对问题进行求解
D.
子问题的解不能合并成原问题的解
试题编号:20230702-xyr-020
试题类型:单选题
标准答案:B
试题难度:容易
试题解析:分治算法的特征,各个子问题相互独立,子问题的求解可以合并成原问题的解。
9.
下列选项中哪一项使用了分治算法?( )
A.
二分搜索
B.
选择搜索
C.
插入搜索
D.
顺序搜索
试题编号:20230702-xyr-021
试题类型:单选题
标准答案:A
试题难度:容易
试题解析:二分查找体现了分治算法。
10.
不超过20个元素的降序数列,使用对分查找能找到指定的元素,可能的查找次数不包括?( )
A.
3
B.
4
C.
5
D.
6
试题编号:20230702-xyr-022
试题类型:单选题
标准答案:D
试题难度:较难
试题解析:int(log
2
20)+1=5。
11.
下面程序段的输出结果是?( )
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']
试题编号:20230704-TR-011
试题类型:单选题
标准答案:C
试题难度:较难
试题解析:if分支定义列表,else分支添加列表元素。
12.
下面关于计数器的程序,输出结果正确的是?( )
count = 0
def increment():
global count
count += 1
print("计数器的值:", count)
increment()
increment()
increment()
A.
计数器的值: 1
计数器的值: 2
计数器的值: 3
Python四级真题,2024年3月电子学会Python编程等级考试四级真题及答案