#386. 202312中国电子学会Python编程等级测试四级(客观题)
202312中国电子学会Python编程等级测试四级(客观题)
选择题
- 下列有关分治算法思想的描述不正确的是?( )
{{ select(1) }}
- 将问题分解成的子问题具有相同的模式。
- 将问题分解出的各个子问题相互之间有公共子问题。
- 当问题足够小时,可以直接求解。
- 可以将子问题的求解结果合并成原问题的解。
- 斐波那契数列前n项是1,1,2,3,5,8,13...... 补全下面程序代码,求第n项斐波那契数列的值。
def fib(n):
if ______:
return 1
else:
return fib(n-1) + fib(n-2)
{{ select(2) }}
- n == 2
- n < 2
- n == 3
- n < 3
- 用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码完成程序?( )
def fun(m, n):
if m % n == 0:
return n
else:
return __________
print(fun(98, 56))
程序运行结果如下:
14
{{ select(3) }}
- fun(n, m-n)
- fun(n, m%n)
- fun(m, m-n)
- fun(m, m%n)
- 列出第三方库的详细信息的pip指令是?( )
{{ select(4) }}
- pip install <第三方库名>
- pip download<第三方库名>
- pip show<第三方库名>
- pip list<第三方库名>
- 想要在Python中导入math模块中的sqrt(x)函数,下列程序段错误的是?( )
{{ select(5) }}
-
import math math.sqrt(x)
-
from math import sqrt as t t(x)
-
import math as m m.sqrt(x)
-
import math sqrt(x)
- 关于求解“找出所有满足各位数字之和等于8的三位数”时,在下列数值范围内,算法执行效率最高的是?( )
{{ select(6) }}
- 0—999
- 0—1000
- 100—800
- 107—800
- 已知,从1到n的连续自然数相乘的积叫做阶乘,用符号n!表示,比如3!=1×2×3,规定0!=1。那么用递归算法求n的阶乘,递归式正确的是?( )
{{ select(7) }}
- f(0)=1,n=n*(n-1)
- f(0)=1,f(n)=f(0)*f(n-1)
- f(0)=1,f(n)=f(n)*f(n-1)
- f(0)=1,f(n)=n*f(n-1)
- 当n为6时,运行下列Python程序后的结果是?( )
def f(n):
if n<=2:
return 1
else:
return f(n-1)+f(n-2)
n=int(input("请输入一个正整数:"))
print(f(n))
{{ select(8) }}
- 5
- 8
- 11
- 13
- 下列程序中,当n=4时,返回结果为?( )
def x(n):
if n==1:
return 1
else:
return n+x(n-1)
{{ select(9) }}
- 12
- 11
- 10
- 9
- 下列选项中,不属于递归特性的是?( )
{{ select(10) }}
- 递归函数一定包含条件控制语句
- 递归算法体现了大事化小的思想
- 递归效率不高,递归层次过多会导致栈溢出
- 递归算法代码简洁,效率较高
- 对于下列递归式子,当n=4时,F的值是?( )
F(n)=F(n-1)*2
F(1)=2
{{ select(11) }}
- 2
- 8
- 16
- 32
- 下面函数实现的功能是?( )
def mi(x, n):
if n == 0:
return 1
else:
return x*mi(x, n-1)
{{ select(12) }}
- 计算x的n次方
- 计算n的x次方
- 计算x!*n
- 计算x*n!
def afun(n):
s=1
for i in range(1,n+1):
s*=i
return s
对以上代码解释错误的是?( )
{{ select(13) }}
- 程序正常运行时,afun(n)函数的作用是求n的阶乘
- 程序正常运行时,afun(n)函数的作用是求n+1的阶乘
- s是局部变量
- range()函数是Python内置函数
- 关于下列代码解释错误的一项是?( )
def ZhongYao(a:str,b:int)->str:
word=a*b
print('重要的事情说{}遍:{}'.format(b,word))
return ZhongYao
ZhongYao('学习','3')
{{ select(14) }}
- 参数a的数据类型必须是字符串
- 参数b的数据类型必须是整型
- 函数指定了返回值的数据类型是字符串
- 程序正常运行,输出结果是: 重要的事情说3遍:学习学习学习
- 下列代码的运行结果是?( )
def exchange(a,b):
a,b=b,a
print(a,b)
a,b=3,5
exchange(a,b)
print(a,b)
{{ select(15) }}
- 5 3 5 3
- 3 5 3 5
- 5 3 3 5
- 5 3 3 5
- 下列代码的运行结果是?( )
def car_show(cars):
for car in cars:
print('good',car)
car_show(['BYD','Haval','Wuling'])
{{ select(16) }}
- good ['BYD','Haval','Wuling']
- 'good','BYD'
'good','Haval'
'good','Wuling' - good BYD Haval Wuling
- good BYD
good Haval
good Wuling
- 函数中定义了4个参数,其中2个参数都指定了默认值,见下面代码,那么在调用函数时参数个数最少是?( )
def SiBianXing(a,b,c=5,d=8):
ZhouChang=a+b+c+d
return ZhouChang
SiBianXing( ? )
{{ select(17) }}
- 0
- 2
- 1
- 3
- 执行如下程序,以下选项中哪一项是错误的?( )
def f(a,b):
c=a+b*2
b=a
return c
a=1
b=2
c=f(a,b)+b
{{ select(18) }}
- 该函数名称为f
- 执行该程序后,变量a的值为1
- 执行该程序后,变量b的值为2
- 执行该程序后,变量c的值为6
- 以下哪种情况下的代码块适合设计成函数?( )
{{ select(19) }}
- 复杂的功能块
- 难以看懂的功能块
- 有性能要求的功能块
- 会多次用到的功能块
- 使用位置实参的方式调用函数时,下列哪种情况下程序一定会出错?( )
{{ select(20) }}
- 传入的实参个数比形参个数多
- 部分形参赋以默认值
- 函数调用时,重新给赋予了默认值的形参传入新值
- 部分实参以关键字赋值的方式去调用函数
- 下列函数定义中,正确的是?( )
{{ select(21) }}
-
def myfunc(a,b,c) print(myfunc(a,b))
-
def myfunc(a=1,b,c): print(myfunc(a,b,c))
-
def myfunc(a,b=1,c): print(myfunc(a,b,c))
-
def myfunc(a,b,c=1): print(myfunc(a,b,c))
- 调用函数的时候,所使用的参数是?( )
{{ select(22) }}
- 实参
- 位置参数
- 关键字参数
- 不定长参数
-
对于如下自定义的函数:
def myfunc(a,b,c): return a+b+c
以下调用该函数的语句中,能正确执行的是?( )
{{ select(23) }}
- myfunc(1,2)
- myfunc(a=3,2,1)
- myfunc(3,b=2,1)
- myfunc(3,2,c=1)
- 使用*args和**kwargs形参来定义函数时,正确的说法是?( )
{{ select(24) }}
- 使用*args代表列表,使用**kwargs代表元组
- 可以在调用函数时传入多个实参
- 使用*args代表元组,使用**kwargs代表列表
- 使用*args代表字典,使用**kwargs代表列表
- 关于函数参数的默认值设置,描述不正确的是?( )
{{ select(25) }}
- 定义函数时,可以为某形参设定默认值
- 如果为某形参设定了默认值,则在调用函数时就不能再为该形参传入新值
- 如果为某形参设定了默认值,在调用函数时还可以为该形参再传入新值
- 关键字形参就是一种为参数设置默认值的方式
判断题
- 分治算法是把一个大问题分解为若干个规模较小、性质相同的子问题。最后子问题可以简单地直接求解,将所有子问题的解合并起来就是原问题的解。( )
{{ select(26) }}
- 正确
- 错误
- pip联网直接下载安装第三方库时,只能临时更换下载源,不能更改默认的下载源。( )
{{ select(27) }}
- 正确
- 错误
- 运行以下代码的时间复杂度为O(n2)。( )
k=0 n=11 for i in range(n): k=k+1 for j in range(n): k=k+2 print(k)
{{ select(28) }}
- 正确
- 错误
- 对于递归而言,递推与回归,二者缺一不可。( )
{{ select(29) }}
- 正确
- 错误
- 递归算法必须确保,需要解决的问题可以转化为一个或多个子问题来求解,这些子问题的求解方法与原问题相同,只是在数量和规模上不同,而且每次递归调用时,问题规模都能够缩小。( )
{{ select(30) }}
- 正确
- 错误
- 当函数运行结束后,局部变量的值依然存在,下次函数调用可以继续使用。( )
{{ select(31) }}
- 正确
- 错误
- 内置函数不需要使用关键字import导入就可以使用,自定义函数可以先调用后定义。( )
{{ select(32) }}
- 正确
- 错误
- 编程时,需要把实现复杂功能的代码封装起来,设计成函数。( )
{{ select(33) }}
- 正确
- 错误
- 将实现特定功能的代码块设计成函数,有助于提高整个程序的运行速度。( )
{{ select(34) }}
- 正确
- 错误
- 如果允许形参设置默认值,则函数定义时要先列出没有默认值的形参,再列出有默认值的形参。( )
{{ select(35) }}
- 正确
- 错误