202409 青少年软件编程等级考试Python四级真题 建议答题时长:60min
1. 编程题

数学游戏

校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑一个数字,第二个同学可以在对方的基础上选择加1或者加2,然后又轮到第一个同学,他也可以选择加1或者加2,之后再把选择权交给对方,就这样交替地选择加1或者加2,谁先加到20,谁就赢了。小智编写了以下程序,分析总共存在多少种可能出现的情形。请补充完成该程序。

def act(n):

   if n == 1 or        ①        :

       return 1

   sn =         ②        

   return         ③        

tn = act(        ④        )

查看答案
2. 编程题

日期问题

小明同学学习Python的函数后,想动手利用函数来解决生活中的问题。于是他突发奇想,输入日期,统计这一天是这一年的第几天。其中,闰年指年份能被4整除但不能被100整除,或者仅能够被400整除。编写的代码如下,请完善划线处的代码。

def isRn(year):           #判断year是否闰年

   if         ①        or year % 400 == 0:

       return 1

   return 0

def jsDays(data):         #计算日期data在这一年是第几天

   s = 0  

   year = int(data[:4])

   month = int(data[4:6])

   day = int(data[6:])

   for i in range(        ②        ):

       s += days[i]

   s += day

   if month > 2 and        ③        :

       s += 1

   return s

def checkRq(data):      #判断输入的日期是否正确

   month = int(data[4:6])

   day = int(data[6:])

   if month <1 or month >12:

       return 0

   if days[month-1]<day or day <1:

       return 0

   return 1

days = [31,28,31,30,31,30,31,31,30,31,30,31]    #定义每个月的天数  

rq = input('输入年月日,格式如:20240102\n')

if checkRq(rq):

   d =         ④        

   print(rq,'是这一年的第',d,'天')

else:

   print(rq,'输入的日期有错误')

查看答案
3. 单选题

实现递推算法的核心程序结构通常是使用?( )

A

顺序结构

B

自定义函数

C

循环结构

D

分支结构

4. 单选题

运行下列程序后,输出的结果是?( )

 

def f(n):

   if(n==1):

       return 1

   return n*f(n-1)

print(f(5))

A

24

B

120

C

15

D

5

 

5. 单选题

小陈编写了一段计算超市打折活动的程序,运行时报错,原因可能是下面哪项?( )

def discount(price,rate):

   final_price = price * rate

old_price = float ( input ('请输入原价:'))

rate = float (input ('请输入折扣率:'))

discount ( old_price , rate )

print ('打折后价格是:',final_price )

A

调用函数时参数传递错误,应该以参数名price传递

B

final_price是局部变量,只在函数体内生效

C

定义函数时,没有定义参数的类型

D

函数体没有return语句,函数执行完毕后返回结果为None

6. 单选题

Python中对已经安装的第三方库进行更新,使之升级到最新版本的pip指令是?( )

A

pip install <第三方库名>

B

pip install -U <第三方库名>

C

pip download <第三方库名>

D

pip search <第三方库名>

7. 单选题

请选择下面代码的输出结果是?( )

def f(n):

   n += 1

   return n

x = 10

y = f(x)

print(y)

A

10

B

11

C

12

D

13

8. 单选题

下列有关匿名函数lambda的描述,错误的是?( )

A

lambda表达式可以包含一个表达式

B

在匿名函数中需要使用return来返回值

C

lambda表达式可以调用其他函数

D

定义匿名函数时,要将它赋值给一个变量

9. 单选题

运行下列Python程序后的结果是?( )

def f(n):

 

       n=n*2

       return n

a=[7,1]

b=f(a)

print(a,b)

A

[7,1],[7,1,7,1]

B

[7,1],[14,2]

C

[7,1],[7,1],[7,1]

D

[7,1],[7,1]

10. 单选题

以下代码的时间复杂度是多少?( )

i = 1

n = 100

while i < n:

   i = i * 2

A

O(n)

B

O(log2N)

C

O(n*n)

D

O(n2)

11. 单选题

fun函数可以传入的参数a不确定有多少个,划线处的代码正确的是?( )

def fun(___):

   pass

A

a

B

a[]

C

a()

D

*a

12. 单选题

有如下Python程序,运行后fac(a)函数被调用了几次?( )

def fac(a):

   if a == 1:

       return 1

   else:

       return a + fac(a-1)

print(fac(6))

A

5

B

6

C

7

D

8

13. 单选题

小明设计了一个计算矩形体积的函数,以下调用函数的四个选项中,参数传递错误的是?( )

def vol(length,width,height):

 

   v = length * width * height

 

   return v

A

s = vol(3,4,7)

print(s)

B

s = vol(3, 7,width=4)

print(s)

C

s = vol(3,height=7,width=4)

print(s)

D

s = vol(3, width=4,height=7)

print(s)

14. 单选题

 

以下选项中关于递归算法的描述,错误的是?( )

A

代码简明

B

一定要有基例(指不需要递归就能求解得的解)

C

递归算法都可以用非递归的方法实现

D

自定义函数体通常使用循环程序结构

15. 单选题

二分查找法是利用了哪种算法思想?( )

A

动态规划

B

分治算法

C

递推算法

D

递归算法

16. 单选题

Python中可以通过import math 语句导入math函数库,下列选项中可以实现向下取整的是?( )

A

math.ceil()

B

math.sqrt()

C

math.round()

D

math.floor()

17. 单选题

陈丽把自己每天的学习时间情况记录在文本文件“record.txt”中,现在她想用Python程序打开并读取某天的学习时间情况,请问打开文件的正确操作的是?( )

A

open('record.txt','r')

B

close('record.txt','r')

C

write('record.txt')

D

readline('record.txt')

18. 单选题

实际应用中,一般不采用递归的方法来解决层次或序列规模较大的计算问题,其原因是?( )

A

递归结束条件不易满足

B

代码变得复杂

C

运行过程容易出错

D

算法运行所需的空间消耗增大,运行效率下降很快

19. 单选题

有如下Python程序段,在调用函数sjc时实参是?( )

def sjc(x):

   a,b=1,1

   print(a,b,x)

sjc(20)

A

20

B

1

C

a

D

b

20. 单选题

下列程序,运行的结果是?( )

def qh(a,b,c=5):

   return a+b+c

print(qh(5,10),qh(10,10,10))

A

15 25

B

20 25

C

20 30

D

15 30

21. 单选题

一款经典的猜数字游戏:甲先在50以内随意写一个数字,乙开始猜,如果乙猜的比甲写的数大了,甲就说大了,反之,则说小了。请问根据对分查找思想,乙最多用多少次能猜出甲写的正确数字?( )

A

10

B

8

C

6

D

4

22. 单选题

关于递归与递推算法,表述不准确的观点是?( )

A

递推算法在计算过程中利用已知条件,不断用变量的旧值递推出变量的新值,直至得到结果的算法

B

递推算法利用循环结构来实现

C

递归算法把问题转化为规模缩小了的同类问题的子问题,然后再递归调用函数或过程来求得问题的解

D

由于递归算法的实现代码简明精练,因此实际工作中要尽量采用递归算法解决问题,以提高工作效益

23. 单选题

有如下Python程序段,执行该程序后,输出的结果是?( )

def qh(n):

   s , f = 0,1

   for i in range(1,n+1):

       s += f * i

       f = -f

   return s

print(qh(4))

A

10

B

2

C

-2

D

-10

24. 单选题

执行如下Python程序,语句“s=s+i”被执行的次数是?( )

def f(n):

   s = 0

   for i in range(1,n):

       if i % 3 == 0 or i % 2 == 0:

           s = s+i

f(10)

A

5

B

6

C

7

D

8

25. 单选题

下列定义计算圆周长的匿名函数中,正确的是?( )

A

lambda r : 2r*3.14

B

lambda r,3,14*2*r

C

rst = lambda r,3.14*r*2

D

rst = lambda r : 3.14*2*r

26. 单选题

以下哪种函数一定是直接或间接调用函数本身的函数?( )

A

自定义函数

B

库函数

C

匿名函数

D

递归函数

27. 单选题

fun函数可以传入的参数a不确定有多少个,划线处的代码正确的是?( )

def fun(___):

A

a

B

a[]

C

a()

D

*a

28. 单选题

有如下Python程序段,执行该程序段后的结果是?( )

def area(r,pi=3.14):

   return r*r*pi

print(area(3,10))

A

90

B

28.86

C

314

D

None

29. 判断题

如果执行算法所需的临时空间不会随变量的变化而变化,那么该算法的空间复杂度为一个常量。( )

A

正确

B

错误

30. 判断题

Python自定义函数时,传递参数的数量必须是明确的。( )

A

正确

B

错误

31. 判断题

我们可以通过import模块的方法安装Python第三方库。 ( )

A

正确

B

错误

32. 判断题

 

调用函数时如果位置实参和关键字实参两种方式混用,位置实参必须要放在关键字实参之前。( )

A

正确

B

错误

33. 判断题

在Python语法中,全局变量只能在主程序中使用,局部变量只能在局部函数中可用。( )

A

正确

B

错误

34. 判断题

对数组进行快速排序是利用分治的思想,整个排序过程可以递归进行,算法效率高效,是一种稳定的排序算法,时间复杂度为O(nlogn)。( )

A

正确

B

错误

35. 判断题

递推算法设计时,首要任务是寻找规律,确定递推表达式,从而求解问题。( )

A

正确

B

错误

36. 判断题

把实现相同功能的代码作为一个代码块封装在一起,形成函数。( )

A

正确

B

错误

37. 判断题

有如下Python程序段,运行该程序段后,将提示错误。( )

 

def js(x=3,y):

     print(x,y)

js(10)

A

正确

B

错误

38. 判断题

 

递归函数中,一定要包含对自身的调用,而且一定要有终止条件。

A

正确

B

错误

试题目录
编程题
1 2
单选题
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
判断题
29 30 31 32 33 34 35 36 37 38
赣ICP备20007335号-2