青少年软件编程(Python)等级考试试卷(四级)
一、单选题(共25题,每题2分,共50分)
1.
不超过100个元素的有序数列,使用二分查找能找到指定的元素,可能的查找次数不
包括?( )
A.
1次
B.
6次
C.
7次
D.
8次
试题编号:20210129-TR-028
试题类型:单选题
标准答案:D
试题难度:一般
试题解析:按照二分查找法的规律,100个元素的有序列表,不管是否找到,至多查找7次。
2.
运行以下代码,正确的打印结果是?( )
def f():
c=0
for i in range(4,51,4):
if i%6==0:
c=c+1
return c
print(f())
A.
1
B.
2
C.
4
D.
8
试题编号:20210206-lfy-006
试题类型:单选题
标准答案:C
试题难度:一般
试题解析:函数f()的作用是求4-50间4和6的公倍数个数,即12的倍数个数。
3.
10个人站一列,分苹果,问第10个人分到多少个苹果,他说比前面一个人多分到2个
,依次往前,都说比前面一个人多分到2个,最后问第一个人,他说分到10个苹果。
用以下函数求第10个人分到的苹果数,则应补充选项为?( )
def apple(n):
if n == 1:
return 10
else:
return
print(apple(10))
A.
apple(n)+2
B.
n+2
C.
apple(n-1)+2
D.
apple(n+1)-2
试题编号:20210131-TR-023
试题类型:单选题
标准答案:C
试题难度:一般
试题解析:def apple(n):
if n == 1:
return 10
else:
return apple(n-1)+2
print(apple(10))
4.
观察程序段,以下说法错误的是?( )
def fib(n):
if n==1 or n==2:
s=1
else:
s=fib(n-1)+fib(n-2)
return s
m=int(input("请输入m的值(m>2):"))
print(fib(m))
A.
如果输入m的值为8,打印的结果为20
B.
该程序段用了递归来实现
C.
如果缺少语句“return s”,程序会报错
D.
语句“def fib(n):”中的n为形参
试题编号:20210129-lfy-019
试题类型:单选题
标准答案:A
试题难度:较难
试题解析:定义函数时的语法如下:
def 函数名(参数集合):
<函数体>
[return 函数值]
本题中的自定义函数fib(m)需要返回值,所以“return 函数值”语句不能少,定义
时“函数名<参数集合>”中的参数为形参,调用时“函数名<参数集合>” 中的参数为实参。如果输入m的值为8,打印的结果为21。
评价描述:
5.
关于python函数参数的说法正确的是?( )
A.
函数一定要有参数和返回值
B.
在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也
被修改
C.
参数的值是否会改变,与函数中对变量的操作有关,与参数类型无关
D.
函数的形参在函数被调用时获得初始值
试题编号:20210129-TR-004
试题类型:单选题
标准答案:D
试题难度:一般
试题解析:函数的形参作用域为本函数,在函数被调用时获得初始值。
6.
关于递归与递推方法的比较,错误的观点是?( )
A.
递归是将复杂问题降解成若干个子问题,依次降解,求出低阶规模的解,代入
高阶问题中,直至求出原问题的解;
B.
递推是构造低阶的问题,并求出解,依次推导出高阶的问题以及解,直至求出
问题的解;
C.
数学上的递推关系可以通过递归的方法来实现;
D.
递归算法代码简洁,运行速度比递推快,因此应该尽量采用递归的方法;
试题编号:20210206-xm-024
试题类型:单选题
标准答案:D
试题难度:一般
试题解析:D.递归的运行开销大。
7.
运行以下代码,输出结果正确的是?( )
a=1
b=c=[]
def fun(a,c):
a=2
c.append(a)
fun(a,c)
print(a,b,c)
A.
2 [2] [2]
B.
1 [] [2]
C.
1 [2] [2]
D.
2 [] [2]
试题编号:20210129-TR-011
试题类型:单选题
标准答案:C
试题难度:较难
试题解析:函数体内变量a的值为2,添加到了列表c中,b和c指向同一个列表地址
,因此列表b也随之改变
8.
关于Turtle库的表述中,错误的是?( )
A.
Turtle库是Python语言中一个很流行的绘制图像的函数库。
B.
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。
C.
turtle.circle( )是只能画一个指定半径为r的圆。
D.
turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,
数字越大越快。
试题编号:20210128-ph-018
试题类型:单选题
标准答案:C
试题难度:一般
试题解析:turtle.circle( )是turtle中的常用命令,基本语法是circle(radius,e)
,即画一个指定半径为r,角度e的圆或弧
9.
有100枚金币,其中有1枚轻1克的假金币,现在要找出这枚假金币,但身边只有1个
没有刻度的天秤。小明先是将金币分成50枚一堆,共两堆称重,在轻的那一堆中又分
成两堆,接着在轻的25枚中分成12,12,1三堆称重,若两堆12枚的重量相同,则假币
为单独剩下的那一枚,否则在轻的那一堆中继续按照之前的办法称下去,直到找到假金
币。请问小明采用的办法与哪个算法有着相似之处?( )
A.
递归
B.
分治
C.
枚举
D.
贪心
试题编号:20210130-lfy-029
试题类型:单选题
标准答案:B
试题难度:容易
试题解析:分治算法就是对一个问题采取各个击破的方法,将一个规模为N的问题分
解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。只要求出子问
题的解,就可得到原问题的解。
10.
运行以下代码,正确的打印结果是?( )
def f(s):
t=0
max=0
for i in s:
if i>="0" and i<="9":
t=t+1
else:
if t>max:
max=t
t=0
print(max)
list="123ab45cd6d"
f(list)
A.
0
B.
1
C.
2
D.
3
试题编号:20210206-lfy-007
试题类型:单选题
标准答案:D
试题难度:一般
试题解析:本段代码中,函数f()的作用是求最长的连续数字字符串的长度。
11.
下列关于函数的描述正确的是?( )
A.
函数是可重复使用的,用来实现单一,或相关联功能的代码段
B.
函数中必须return语句
C.
函数好处是模块性,但不能提高代码的利用率
D.
函数内容以冒号起始,可以不缩进
试题编号:20210203-fcl-02
试题类型:单选题
标准答案:A
试题难度:一般
试题解析:
12.
调用以下函数时,语句“s=s+i”被执行的次数是?( )
def f():
s=0
i=1
while i<10:
if i%3==0 or s%2==1:
s=s+i
i=i+1
print(s)
A.
3
B.
4
C.
5
D.
6
试题编号:20210206-lfy-015
试题类型:单选题
标准答案:C
试题难度:一般
试题解析:
13.
已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多
查找次数为6次,则n的值可能为?( )
A.
20
B.
50
C.
80
D.
110
试题编号:20210129-lfy-027
试题类型:单选题
标准答案:B
试题难度:一般
试题解析:对规模为n的数据进行对分查找时,无论是否查找到,至多进
行 |log2n|+1次(|log2n|表示小于等于log2n的最大整数),因此25≤n<26,
即32≤n<64。
14.
某程序代码设计如下,若输入整数5,则最终输出的结果为?( )
def fact(x):
if x==1:
s=1
else:
s=fact(x-1)*x
return s
n=int(input("请输入一个大于1的整数:"))
print(fact(n)+fact(n-1))
A.
120
B.
24120
C.
144
D.
12024
试题编号:20210205-lfy-023
试题类型:单选题
标准答案:C
试题难度:容易
试题解析:由于fact(5)=fact(4)*5, fact(4)=fact(3)*4, fact(3)=fact(2)*3,
fact(2)=fact(1)*2, fact(1)=1,所以fact(5)+fact(4)=120+24=144。
15.
用匿名函数方式求两个数中较大的数,下列定义语句格式正确的是?( )
A.
result = lambda 'x,y': y if x> y else x
B.
result= lambda x,y: y if x> y else x
C.
result= lambda 'x,y': x if x> y else y
D.
result= lam