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

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

def s(n):
   if n==3:
       return 4
   else:
       return n+s(n-1)
print(s(5))

A

1

B

12

C

13

D

15

2. 单选题

下列程序段的运行结果是16,则在处填写的代码是?( )

def s(n):
   s=1
   for a in range(1,5):
            ①      
   return s
print(s(4))

A

s=s*2

B

s=s+n

C

s=s+a

D

s=s+1

3. 单选题

下列程序功能是通过递归来实现将一个十进制数转换为八进制数,则在______处填写的代码是?( )

def s(n):
   if n < 8:
       return str(n)
   else:
       return _____________
m = s(int(input("输入十进制数字:")))
print("转换后八进制数是:",m)

A

s(n//8)+n

B

s(n//8)

C

s(n//8)+str(n%8)

D

str(n%8)

4. 单选题

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

A

递归算法一定存在递归出口

B

递归的特点就是反复调用自身,将大问题变为同类小问题

C

递归可以避免使用复杂的循环结构,从而有效降低代码的复杂程度

D

递归算法简洁,运行效率较高

5. 单选题

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

def nxs(n):

   s = 0

   while n >0:

       s = s * 10 + n % 10

       n //= 10

   return s

print(nxs(123))

A

123

B

6

C

231

D

321

6. 单选题

有如下Python程序,执行该程序后变量c的值是?( )

def prime(n):
   for i in range(2,n):
       if n % i == 0:
           return 0
   return 1
c = 0
for i in range(2,10):
   if prime(i):
       c += 1

A

3

B

4

C

5

D

6

7. 单选题

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

def zdz(s):
   m = s[0]
   for i in s[1:]:
       if i > m:
           m = i

   return m
print(zdz('abc789XYZ'))

A

c

B

9

C

Z

D

None

8. 单选题

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

n = 10
def fun():
   global n
   n = n ** 2
   print(n)
fun()
print(n)

A

100

100

B

20

20

C

100

10

D

10

100

9. 单选题

在Python中,可以通过什么语句导入现有的标准库或者其他人提供的第三方库来编程?( )

A

import

B

def

C

input

D

output

10. 单选题

Python程序中某函数使用了3个变量,其中2个变量都指定了默认值,调用该函数时,参数的个数最少为几个?( )

A

0

B

1

C

2

D

3

11. 单选题

递归算法的基本思想是把规模较大的问题变成规模较小的问题,下列选项中哪一项必须要有?( )

A

循环语句

B

数学知识

C

明确的结束递归的边界条件

D

明确的开始递归的边界条件

12. 单选题

图1是一个水平摆放的小正方体木块,图2,图3是由这样的小正方体木块叠放而成的,按照这样的规律放下去,第七个叠放的图形有多少个正方形木块?这个问题我们可以用以下什么算法解决?( )

A

查找

B

递推

C

排序

D

选择

13. 单选题

以下算法中,不可以按照分治的策略问题由大化小的是?( )

A

快速排序

B

冒泡排序

C

汉诺塔

D

二分查找

14. 单选题

以下函数的功能是求长方形面积,函数调用的正确方式是哪一项?( )
def fun(a, b):
   return a * b

A

fun(a = 1, 2)

B

fun(a = 1)

C

fun(2)

D

fun(1, b=2)

15. 单选题

以下函数求圆的面积,运行如下代码结果正确的是哪一项?( )
def fun(r, pi=3.14):

   return r * r * pi

print(fun(10, 3))

A

314

B

300

C

31.4

D

程序会报错

16. 单选题

以下函数用“分治算法”求列表元素之和,请补全代码?( )
def fun(arr):  
   if len(arr) == 1:
       return arr[0]
   mid = len(arr) // 2
   left = fun(arr[:mid])
   right = ____________
   return left + right
arr = [1,2,3,4,5,6,7,8,9,10]
print(fun(arr))

A

fun(arr[mid+1:])

B

sum([mid:])

C

fun(arr[mid:])

D

sum(arr[mid+1:])

17. 单选题

下列关于创建词云图的是哪个模块?( 

A

pyquery

B

wordcloud

C

xlrd

D

wheel

18. 单选题

下列正确导入海龟库的方式是?( )

A

import turtle as

B

from turtle as t

C

from turtle import t

D

import turtle

19. 单选题

以下哪一项不属于分治算法的特征?( )

A

一个复杂的问题可以划分成多个相同或相似的子问题

B

划分出的子问题容易找到简单的求解方法

C

将所有子问题的解合并起来可以得到原问题的解

D

分治算法的执行效率很低

20. 单选题

小明班上有50人,数学成绩已经由高到低排列,使用二分查找查找出小明的成绩,至多进行几次查找?( )

A

50次

B

8次

C

7次

D

6次

21. 单选题

对于Python语句f=lambda x,y:x**y+x//y,print(f(7,2))的输出结果是?( )

A

17

B

18

C

52

D

53

22. 单选题

运行下列程序,输出的结果是?( )
def  fn(x, y):
       if x >=y:
               return x-y
       else:
               return y
print(fn(4, 7),fn(8, 5))

A

7    3

B

7    5

C

-3    5

D

-3    3

23. 单选题

下列有关函数的说法,不正确的是?( )

A

使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100

B

如果Python程序包含一个函数main(),这个函数与其他函数地位相同

C

函数是代码复用的一种方式

D

已知 f = lambda x: 5,那么表达式 f(3)的值为3

24. 单选题

运行下列程序,输出的结果是?( )
def f(x=2,y=0):
       return x-y
y=f(y=f(),x=5)
print(y)

A

-3

B

3

C

2

D

5

25. 单选题

当n为10时,运行下列Python程序后的结果是?( )
def  fn(num):
   if num % 2 == 0:
       return False
   else:
       return True
n=int(input("请输入一个正整数:"))
print(fn(n))

A

True

B

False

C

出错不能运行

D

None

26. 判断题

递归算法需要设置递归终止条件,不然会进入无限递归的情况。( )

A

B

27. 判断题

递归算法的特点是调用自身,所以占用的存储空间较小。( )

A

B

28. 判断题

添加第三方库可以不用命令或集成开发工具,直接通过网络工具下载任意该库的.exe安装文件,运行安装即可。( )

A

B

29. 判断题

Python中return语句将函数值返回到调用函数的代码处。( )

A

B

30. 判断题

函数的返回值可以是整数型、字符串型、列表等,不能是字典类型。( )

A

B

31. 判断题

运行以下代码:
def fun(x, y, z):
   return x + y - z
print(fun(1, y=10, 3)
运行结果为:8。( )

A

B

32. 判断题

 

一个袋子里有128枚硬币,其中一枚是假币,并且假币和真币外观一模一样,仅凭肉眼无法区分,仅知道假币比真币轻一些,我们现在借助天平来查找假币,最多称9次可以找到假币。( )

A

B

33. 判断题

算法的空间复杂度越高,说明算法对应的程序代码量越多。( )

A

B

34. 判断题

在Python中自定义函数时,形参与返回值不是必需的( )

A

B

35. 判断题

在Python中,函数体return语句之后的代码行都不会被执行,return语句结束整个函数。( )

A

B

36. 编程题

米粒问题

阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米呢?根据题意,请完善划线处的代码。

def fun(n):
   x =                
   for i in range(n):
              ②        
   return x
s =       ③        
for i in range(64):
   s += fun(       ④        )
print(s)

查看答案
37. 编程题

查字典

假如字典为1000页,若用二分法来翻到具体指定的页码,则横线处能正确控制循环体运行的表达式是什么?请完善横线处的代码。x=int(input("请输入要查找的页码(小于1000):"))
flagleft=1
flagright=1000
n=0
while                :
       mid= (flagleft+flagright)//2
       n=n+1
       if  mid>x:
                  ②        
       elif mid<x:
                  ③        
       else:
               break
print('需要查找的次数为:',n)

查看答案
38. 编程题

蜗牛爬行

一只蜗牛在如下图所示的数字方格上移动,已知它只能从标号小的方格移动到标号大的相邻方格。现在请你计算:蜗牛从方格M开始爬到方格N,1<=M<N<=1000,有多少种移动路线?以下用Python编程实现,请你补全代码。

def woniu(m , n):

   k =                

   a = [0] * (k+1)

   a[1]= 1

   a[2]=       ②        

   for i in range(3,       ③        ):

       a[i]=       ④        

   return a[k]

m = int(input())

n = int(input())

print(woniu(m,n))

查看答案
试题目录
单选题
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