青少年软件编程(Python)等级考试试卷(四级)
一、单选题(共25题,共50分)
1.有n个按名称排序的商品,使用对分查找法搜索任何一商品,
最多查找次数为5次,则n的值可能为?( )
A. 5
B. 15
C. 30
D. 35
2.下列有关分治算法思想的描述不正确的是?( )
A. 将问题分解成的子问题具有相同的模式
B. 当问题足够小时,可以直接求解
C. 可以将子问题的结果合并成原问题的解
D. 将问题分解出的各个子问题相互包含,相互之间可以有公共子问题
3.下列问题使用分治算法思想的是?( )
A. 求100以内的素数
B. 求100个整数之和
C. 求斐波那契数列第n项
D. 快速排序算法对n个数排序
4.李宇同学利用Python语言编写了一段“根据出生年月判断生肖属相”的程序,调试运行时,
程序没有报错且顺利运行,但未能正确输出对应属相,造成这个结果的原因可能是?( )
A. 程序语句语法错误
B. 时间复杂度太高
C. 求解算法逻辑错误
D. Python环境配置不对
5.一般来说,递归需要有边界条件、递归前进段和递归返回段。当不满足边界条件时,( );
当满足边界条件时,( )。
A. 返回,前进
B. 中断,前进
C. 前进,返回
D. 中断,返回
6.以下哪一项不是递归算法的特征?( )
A. 要实现递归必须有一个函数,并且在这个函数体内要自己调用自己。
B. 递归必须要有判断条件,这个判断条件可以是判断次数。
C. 到达判断的条件后必须有返回,目的是结束递归。
D. 未到达判断条件时,不可以返回该函数。
7.关于斐波那契数列,下列空白处的代码填写正确的是?( )
def func(num):
if num==1:
return 1
elif num==2:
return 1
else:
lst=[]
b=input('请输入选择的数字:')
b1=int(b)
for a in range(1,b1+1):
print(func(a))
lst.append(func(a))
a+=1
print(lst)
A. return func(num+1)+func(num-2)
B. return func(num-1)+func(num)
C. return func(num-1)+func(num-2)