2023 年 12 月电子学会 Python 四级考试真题(含答案)
分数:100 题数:38
一、单选题(共 25 题,共 50 分)
1.下列有关分治算法思想的描述不正确的是?( )
A.将问题分解成的子问题具有相同的模式。
B.将问题分解出的各个子问题相互之间有公共子问题。
C.当问题足够小时,可以直接求解。
D.可以将子问题的求解结果合并成原问题的解。
答案:B
2.斐波那契数列前 n 项是 1,1,2,3,5,8,13......
补全下面程序代码,求第 n 项斐波那契数列的值。
def fib(n):
if ______:
return 1
else:
return fib(n-1) + fib(n-2)
A.n == 2
B.n < 2
C.n == 3
D.n < 3
答案:D
3.用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码
完成程序?( )
def fun(m, n):
if m % n == 0:
return n
else:
return __________
print(fun(98, 56))
程序运行结果如下:
14
A.fun(n, m-n)
B.fun(n, m%n)
C.fun(m, m-n)
D.fun(m, m%n)
答案:B
4.列出第三方库的详细信息的 pip 指令是?( )
A.pip install <第三方库名>
B.pip download<第三方库名>
C.pip show<第三方库名>
D.pip list<第三方库名>
答案:C
5.想要在 Python 中导入 math 模块中的 sqrt(x)函数,下列程序段错误的是?(
)
A.import math
math.sqrt(x)
B.from math import sqrt as t
t(x)
C.import math as m
m.sqrt(x)
D.import math
sqrt(x)
答案:D
6.关于求解“找出所有满足各位数字之和等于 8 的三位数”时,在下列数值范
围内,算法执行效率最高的是?
A.0—999
B.0—1000
C.100—800
D.107—800
答案:D
7.已知,从 1 到 n 的连续自然数相乘的积叫做阶乘,用符号 n!表示,比如 3!
=1×2×3,规定 0!=1。那么用递归算法求 n 的阶乘,递归式正确的是?(
)
A.f(0)=1,n=n*(n-1)
B.f(0)=1,f(n)=f(0)*f(n-1)
C.f(0)=1,f(n)=f(n)*f(n-1)
D.f(0)=1,f(n)=n*f(n-1)
答案:D
8.当 n 为 6 时,运行下列 Python 程序后的结果是?( )
def f(n):
if n<=2:
return 1
else:
return f(n-1)+f(n-2)
n=int(input("请输入一个正整数:"))
print(f(n))
A.5
B.8
C.11
D.13
答案:B
9.下列程序中,当 n=4 时,返回结果为?( )
def x(n):
if n==1:
return 1
else:
return n+x(n-1)
A.12
B.11
C.10
D.9
答案:C
10.下列选项中,不属于递归特性的是?( )
A.递归函数一定包含条件控制语句
B.递归算法体现了大事化小的思想
C.递归效率不高,递归层次过多会导致栈溢出
D.递归算法代码简洁,效率较高
答案:D
11.对于下列递归式子,当 n=4 时,F 的值是?( )
F(n)=F(n-1)*2
F(1)=2
A.2
B.8
C.16
D.32
答案:C
12.下面函数实现的功能是?( )
def mi(x, n):
if n == 0:
return 1
else:
return x*mi(x, n-1)
A.计算 x 的 n 次方
B.计算 n 的 x 次方
C.计算 x!*n
D.计算 x*n!
答案:A