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

运行如下代码,若输入整数3,则最终输出的结果为?( )

def f(x):

  if x==1:

    s=1

  else:

    s=f(x-1)*x

  return s

n=int(input("请输入一个大于1的整数:"))

print(f(n)+f(n-1))

A

2

B

4

C

8

D

16

2. 单选题

 

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

def fun(x):

  if x > 3:

    return x * fun(x-1)

  else:

    return x

print(fun(6))

A

120

B

360

C

720

D

60

3. 单选题

下列关于递归的描述不正确的是?( )

A

递归函数一定包含if语句

B

递归函数体内一定包含调用自身的语句

C

在调用自身函数时需要明确的边界终止条件与边界值

D

递归算法一般代码简洁,执行效率高,空间复杂度低

4. 单选题

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

def fun(a, n):

  s = 0

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

    temp = str(a)*i

    s += int(temp)

  return s

print(fun(1, 3))

A

3

B

6

C

12

D

123

5. 单选题

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

def fun(a, b):

  s = 0

  a = a[::-1]

  for i in range(len(a)):

    s += int(a[i])*b**i

  return s

print(fun('45', 16))

A

69

B

45

C

64

D

61

6. 单选题

一个荷花池,第一天荷花开放得很少,第二天开放的数量是第一天的两倍,之后的每一天,荷花都会以前一天两倍的数量开放。如果到第30天,荷花就开满了整个池塘,设第一天开一朵,编程求第30天共开了多少朵荷花。下面空白处的代码填写正确的是?( )

s = 0

t = 1

for i in range(1, ① ):

  s += t

          ②

print(s)

A

30, t = t*2

B

31, t = t*2

C

31, t+=2

D

30, t*=2

7. 单选题

解决下列问题时,时间复杂度最大的是?( )

A

输入n个不同的包含两位小数的实数,计算这n个数的和

B

在n个数据中,查找数据k

C

将n个数据用冒泡排序实现排序

D

计算算式1-2+3-4+...-n的结果,n为偶数

8. 单选题

以下关于分治算法的描述正确的是?( )

A

各个子问题既相互独立又相互联系

B

问题可以分解成若干个规模较小的相同问题

C

可以直接对问题进行求解

D

子问题的解不能合并成原问题的解

9. 单选题

下列选项中哪一项使用了分治算法?( )

A

二分搜索

B

选择搜索

C

插入搜索

D

顺序搜索

10. 单选题

不超过20个元素的降序数列,使用对分查找能找到指定的元素,可能的查找次数不包括?( )

A

3

B

4

C

5

D

6

11. 单选题

下面程序段的输出结果是?( )

def add_Run(L=None):

  if L is None:

    L = ['Lying']

  else:

    L.append('Run')

  return L

add_Run()

print(add_Run())

print(add_Run(['Lying']))

A

'Lying']

['Run']

B

['Lying']

['Lying']

['Lying', 'Run']

C

['Lying']

['Lying', 'Run']

D

[]

['Lying', 'Run']

12. 单选题

下面关于计数器的程序,输出结果正确的是?( )

count = 0

def increment():

    global count

    count += 1

    print("计数器的值:", count)

increment()

increment()

increment()

A

计数器的值:1

计数器的值:2

计数器的值:3

B

计数器的值:0

计数器的值:1

计数器的值:2

C

计数器的值:1

计数器的值:1

计数器的值:1

D

计数器的值:3

13. 单选题

下列程序段的输出结果是?( )

L = []

x = 3

def test(x):

    L.append(x)

    x = 5

test(x)

print('L = {}, x = {}'.format(L, x))

A

L = [3], x = 3

B

L = [5], x = 5

C

L = [3], x = 5

D

L = 3, x = 5

14. 单选题

以下程序,运行程序输出结果正确的是?( )

def demo(x):

  return x*2

print(demo(demo(1)))

A

return None

B

2

C

4

D

8

15. 单选题

Python使用下列哪个函数接收用户输入的数据?( )

A

accept()

B

input()

C

print()

D

login()

16. 单选题

下面程序段的输出结果正确的是?( )

def power():

  x ='python'

  y = 'world'

  z = x + " " + y

  return z

print(power())

A

z

B

x + " " + y

C

python world

D

python" "world

17. 单选题

下列关于Python函数的描述中,不正确的是?( )

A

自定义函数时用到的关键字是def

B

在python函数中,至少有一条return语句

C

函数print()可以一次输出多个参数,如print('1',"2",3,[4])

D

用函数eval()可以用于求字符串里表达式的值,如eval('3+5-1')

18. 单选题

关于以下代码的描述中,正确的是?( )

#求两个正方形的面积差

def MianJiCha(a,b):

  s=a**2-b**2

  return s

 

a=5

b=10

c=MianJiCha(b,a)+a

A

代码运行后,变量c的值是80

B

函数名是MianJiCha(a,b)

C

可以用MianJiCha(100)的形式调用此函数

D

代码运行时会报错

19. 单选题

下列关于Python函数的说法中,错误的是?( )

A

利用函数可以降低编程复杂度,增加代码可读性

B

函数可以重复调用

C

函数可以降低修改代码的工作量

D

调用函数时,每次都必须输入相同的参数值

20. 单选题

下列选项中,调用下列代码定义的函数时,程序会报错的是?( )

def ShuChu(a,b,c):

print(c,b,a)

A

ShuChu('1','2','3')

B

ShuChu('1','2','3,4')

C

ShuChu(1,2,3)

D

ShuChu(1,2,3,4)

21. 单选题

下列选项中,调用以下代码定义的函数时,程序会报错的是?( )

def kp(a,b,c):

  print(a,b,c)

A

kp(1,b=2,3)

B

kp(a=3,b=1,c=2)

C

kp(1,2,3)

D

kp(1,b=2,c=3)

22. 单选题

下列代码的输出结果是?( )

>>>s=lambda m,n:m*n

>>>s(6,6)

A

6

B

6,6

C

36

D

12

23. 单选题

以下函数定义错误的选项是?( )

A

def aFunc(m,n):

print(m,n)

B

def aFunc(m,n=2):

print(m,n)

C

def aFunc(*m,n):

print(m,n)

D

def aFunc(m,*n):

print(m,n)

24. 单选题

用于安装Python第三方库的工具是?( )

A

install

B

pip

C

Wheel

D

setup

25. 单选题

编程时,如果只需要导入某第三方库中的某个成员,需要使用到的关键字是?( )

A

from

B

as

C

into

D

inport

26. 判断题

若某个问题既能用递归算法求解,又能用递推算法求解,则使用递归方法求解更容易,效率也高得多。( )

A

正确

B

错误

27. 判断题

如下代码因为递归的边界条件设置错误,产生了无限递归程序报错。( )

def fun(n):

  if n > 10:

    return 0

  else:

    return n + fun(n-1)

print(fun(10))

A

正确

B

错误

28. 判断题

算法的时间复杂度与空间复杂度没有必然关系。( )

A

正确

B

错误

29. 判断题

已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多查找次数为4次,则n的值有可能为10。( )

A

正确

B

错误

30. 判断题

函数定义语句def f(c=1,d=2,a,b):是正确的,因为默认值形参要放在前面。( )

A

正确

B

错误

31. 判断题

return语句可以返回任何数据类型的值,包括整数、浮点数、字符串、列表、元组、字典等。( )

A

正确

B

错误

32. 判断题

def ZiDian(**kwargs):

  print(kwargs)

ZiDian(a=1)

运行上面的代码后,输出结果为{'a':1}。( )

A

正确

B

错误

33. 判断题

以下代码可以正常运行,输出8。( )

def qh(a,b=3):

  print(a+b)

qh(b=2,6)

A

正确

B

错误

34. 判断题

代码>>>lambda:x=2,y=3:x+y 的运行结果是5。( )

A

正确

B

错误

35. 判断题

使用pip install --upgrade numpy命令能够升级numpy科学计算库。( )

A

正确

B

错误

36. 编程题

数的分解

给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×an,并且1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到a=a也是一种分解。

例如,8可以分解成8=2*2*2,8=2*4,8=8总共3种。

代码如下,完善划线处的代码:

def fun(x, y=2):

  if x == 1:

    global ans

         ①

  for i in range(y, x+1):

    if   ② :

      fun(x//i,i)

lst = [2, 8, 9, 20] #测试数据

for i in lst:

  ans = 0

        ③

  print(ans)

程序运行结果如下:

1

3

2

4

查看答案
37. 编程题

购物组合

小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?

def gouwu(money):

  for i in range(0,money//15+1):

    for j in range(0,money//2+1):

      for k in range(0, ① ):

        if ② :

          print('可选择的购买组合:\t购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format( ③ ))

gouwu(100)

查看答案
38. 编程题

回文素数

回文素数是指一个不小于11的自然数n从左向右和从右向左读,其结果值相同且是素数,即称n为回文素数。一种求解的方法是先判断一个自然数是否为回文数,再判断它是否为素数。如果两个判断都成立,则该自然数是回文素数。请补全代码,找出自然数1000以内的所有回文素数。

#判断是否为素数

def ① (n):

  for i in range(2,n):

    if ② :

      break

  else:

    return True

 

#判断是否为回文数

def HuiWenShu(n):

  n=str(n)

  if n== ③ :

    return True

  else:

    return False

for i in range(11,1001):

  if ZhiShu(i)==True ④ :

    print('{}是回文素数!'.format(i))

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