青少年软件编程(Python)等级考试试卷(四级)
分数:100.00 题数:38
一、单选题
(共25题,每题2分,共50分)
1.
对自然数1至n求和,如果将递推式f(n)=f(n-1)+n(n>1)转化成递归函数,则递归出口是?( )
A、
f(1)=1
B、
f(1)=0
C、
f(0)=1
D、
f(0)=0
答案:
A
试题解析:
2.
对比两个求等差数列1+2+…+n的和的程序,其算法效率?( )
程序1:
n=int(input())
s=(1+n)*n/2
print(s)
程序2:
n=int(input())
s=0
for i in range(n+1):
s=s+i
print(s)
A、
程序1比程序2高
B、
程序2比程序1高
C、
一样高
D、
不能判断
答案:
A
试题解析:
理解算法性能、算法效率概念
3.
若以下程序段的运行结果为“*#*#*”,则空格
(1)
、
(2)
处填写结果不可能为?( )
def f(n):
s=""
for i in range(
(1)
,n):
if i % 2==1:
s=s+"*"
else:
s=s+"#"
return s
print(f(
(2)
))
A、
3,8
B、
3,7
C、
9,14
D、
1,6
答案:
B
试题解析:
当变量i为奇数时,s累计符号“*”,所以range函数的初始值为奇数,又因为总共输出了5个符号,所以range函数的终值为初始值+5。
4.
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,要求输出一年内兔子的数量是多少。如果采用递归算法来编程,则核心的递归逻辑应该是?( )
A、
f(n) =n*f(n-1)
B、
f(n) = f(n-1)+n
C、
f(n) = f(n-1)+f(n-2)
D、
f(n) = f(n-1)+ (n-1)f(n-2)
答案:
C
试题解析:
只有C是符合题意的递推式。
5.
下列程序使用了哪种算法?( )
def fact(n):
if n==0:
return 1
else:
return n*fact(n-1)
A、
递推
B、
递归
C、
排序
D、
分治
答案:
B
试题解析:
6.
以下几项关于函数的说法,错误的是?( )
A、
函数是一段具有特定功能的语句组
B、
调用函数时,参数传入的顺序必须与定义时保持一致
C、
在一个程序中,函数的定义可以放在函数
202106Python编程真题——(4级)