以下有关位置实参和关键字实参的表述中,错误的选项是?( )
位置实参和关键字实参可以混用
形参不占用内存地址
调用函数时,如给函数提供了实参,则优先使用实参,同时更改形参的默认值,便于下次调用
形参设定默认值,是为了简化函数的调用
Python中,无需导入math库,可以直接使用的函数是?( )
ceil()
floor()
round()
sqrt()
如下代码,运行之后,最终打印结果是?( )
def P(a,b=3):
a=2
return a*b
print(P(3,4))
6
8
4
12
调用以下自定义函数时,将实参与形参进行关联,方式错误的是?( )
def f(a,b,c):
print(a,b,c)
f(1,2,3)
f(b=2,a=1,c=3)
f(1,b=2,3)
f(1,2,c=3)
以下选项中,关于python函数参数的说法正确的是?( )
定义函数时不能省略参数
在调用函数之前,需对函数进行定义
可以给函数形参设置默认值,当函数调用时给定实参新的数值时,函数将使用默认值
函数中允许位置实参和关键字实参混用,没有先后顺序
关于计算圆锥体积的匿名函数的定义和使用,以下哪一个语法格式是正确的?( )
lambda r,h:3.14*r*r*h/3
print(lambda(5,10))
lambda r,h=9,3.14*r*r*h/3
print(lambda(5))
V=lambda r,h=9:3.14*r*r*h/3
print(V(5,10))
V=lambda r,h=9,3.14*r*r*h/3
print(V(5))
以下关于列表p内元素排序程序的时间复杂度为?( )
for a in range(n-1):
for b in range(n-1-i):
if(p[b]<p[b+1]):
tmp=p[b]
p[b]=p[b+1]
p[b+1]=tmp
O(n)
O(nlogn)
O(n^2)
O(n^3)
下列哪个命令能显示电脑上已安装的Python库?( )
pip list
pip dir
pip print
pip config
Python中导入math模块中的sqrt(x)函数,下列程序段错误的是?( )
import math
math.sqrt(x)
from math import sqrt as sq
sq(x)
import math as m
m.sqrt(x)
import math
sqrt(x)
有如下Python程序,执行该程序后输出的结果是?( )
def jc(a):
if a ==1 :
return 1
else:
return a * jc(a-1)
print(jc(jc(3)))
3
6
120
720
下列程序用递推的方法求数列的值,执行该程序后输出结果是?( )
def fib(n):
a=b=1
for i in range(3,n+1):
c=a+b
a=b
b=c
print(c)
fib(7)
21
13
8
5
阅读下列程序,运行结果正确的是?( )
def f(x):
if x==1:
return 0
else:
return (x*x-1)+f(x-1)
print(f(3))
10
11
12
13
下列关于递推算法思想的描述正确的是?( )
将一个大问题分解为若干子问题,且子问题与大问题是相同的问题,构成递推算法思想
递推算法思想需要有明确的终止条件
递推算法思想需要有明确的递推公式
任何问题都可以用递推算法解决
某农户养了若干只鸡。第一天卖掉其中一半加一只,以后每天都卖掉剩下的一半加一只。到第8天的时候发现只剩一只鸡了。请问该农户一开始有多少只鸡? 这个问题用下列什么算法解决?( )
递推
解析
枚举
分治
以下关于global关键字表述正确的是?( )
global关键字只能在程序最开始初定义
global关键字只能在变量使用前定义
global关键字通过局部变量修改全局变量的值
global关键字通过全局变量修改局部变量的值
运行下列代码,输出结果为?( )
def fun(x, y, z):
print(z, x)
fun(1, 2, 3)
1 2
2 3
3 1
1 3
以下是比较两个数的大小的函数,输出结果为?( )
def fun(a, b, c):
if a > b:
c = a
else:
c = b
print(fun(1, 2, 3))
1
2
3
None
小明的妈妈在超市里买了一些商品,商品的价格放在列表里,现在超市对商品进行打折处理,请运行如下代码输出结果?( )
def fun(lst):
total = 0
for x in lst:
if x >= 100:
total += x * 0.5
else:
total += x
return total
goods = [140, 90, 120, 60]
print(fun(goods))
390.0
280.0
260.0
150.0
运行以下代码,请输出结果?( )
def fun(n):
s = 0
for i in range(n):
s += i
return s
print(fun(10)
55
45
50
60
运行以下代码,请输出结果?( )
def fun(x):
return x * x
print(fun(fun(fun(2))))
16
32
128
256
运行以下代码,请输出结果?( )
x = 0
def fun():
global x
x += 10
print(x)
fun()
print(x)
0
0
0
10
10
10
10
0
小明喜欢画画,他有一张大画布,画布上有一个大正方形。他想知道如果把这个大正方形分成4个小正方形,然后再把这4个小正方形各自再分成4个更小的正方形,这样一直分下去,最后会得到多少个正方形?根据解题思路请在下面横线上填上正确代码?( )
def fun(n):
if n == 0:
return 1
else:
return _________
print(fun(4))
fun(n-4) * 4
fun(n-1) * 4
fun(n-1) * 2
fun(n-2) * 2
下面关于递归函数的说法,正确的是?( )
一般来说,递归函数的执行效率高于非递归函数
递归算法一般代码简洁,执行效率高,空间复杂度低
递归函数必须明确嵌套调用的次数
递归函数必须有明确的边界终止条件
现有24颗药丸,重量都是0.1g,其中一颗药丸不小心被污染了,外观没有变化,但是重量变重了。如果有一架天平,最多只能称重四次,要把这个被污染的药丸找出来。这个问题可以用下列哪种算法思想解决?( )
枚举
分治
递归
递推
物理实验课的电路故障分析,有一块电路板的AB两点间串联线路不通,是由于其中一处焊口脱落造成的。假设AB线路间有100个焊接点,现用二分法检测,找出焊口脱落点,至多需要检测多少次?( )
7
8
9
10
在混合使用位置实参、关键字实参时,对应函数中有默认值的形参与没有默认值的形参位置没有要求,都可以通过关键字实参传值。( )
对
错
时间复杂度是用来衡量算法效率的重要指标,可以反应数据规模和代码执行时间之间关系。( )
对
错
定义函数或过程时,如果函数在内部调用函数本身,这个函数就是递归函数。( )
对
错
求斐波那契数列第n项可以用递归思想解决,也可以用递推思想解决。( )
对
错
安装Python第三方库只能使用pip命令。( )
对
错
运行如下代码:
fun = lambda x, y = 10 : y - x
print(fun(5, 8))
运行结果为:5。( )
对
错
Python3.5之后的版本新增了对函数参数和返回值的类型指定和检查,新建变量时也可以指定类型。以下代码,只能接受str类型的参数,否则就会报错。( )
def say(name:str, greet:str)->str:
return name + greet
print(say("小明", "你好!"))
对
错
运行如下代码,输出结果为5。( )
x = 1
y = 5
def fun():
global x
x = 4
y = 3
if y > x:
return y
else:
return x
print(fun())
对
错
将一个难以直接解决的大问题,分类整理成几种规模较小的不同类问题,再分别击破的方法,就是分治算法。( )
对
错
函数中return语句可以有任意个,但是在函数运行过程中只会执行其中一个。( )
对
错
时钟问题
小明上学时间是8:00,放学时间不固定,他很想知道从上学到放学,时钟的时针、分针和秒针一共有多少次指向了3点钟的位置。他尝试编写了如下程序,请你完善划线处的代码,计算出在h点s分放学时,三个时针分别经过3点位置的次数,用一个元组表示各指针经过3点位置的次数 (时针次数,分针次数,秒针次数) ,并输出。
def fn(h1, m1 ,h2 ,m2 ):
if(h2<15):
①
else:
hc=1
th= ②
if( ③ ):
mc= th+1
else:
mc=th
sc= ④
return (hc,mc,sc)
h=int(input("h="))
s=int(input("s="))
print(fn(8,0,h,s))
对称字符串
对称字符串是指从左往右读和从右往左读是一样的字符串。小方同学学习了递归思想后,利用递归思想来解决对称问题。在一串包含大小写字符和数字等字符组成的字符串中,他首先筛选出只包含大小写字符组成的字符串,然后判断该字符串是否是对称字符串。他编写的代码如下,请完善划线处的代码。
def getzf(yw): #筛选出原始字符串yw中大写小写字符组成的字符串
rst = ''
for i in yw:
if 'z'>=i >='a' or 'Z'>=i >='A':
①
return rst
def nxzf(data): #生成字符串data的逆序字符串
if len(data) == 1:
return data[0]
return ②
yw =input('请输入字符串')
yw = getzf(yw)
nxzfc = nxzf(yw)
if ③ :
print('原字符串中存在对称字符串',yw)
else:
print('不存在对称字符串')
角谷猜想
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,求经过多少次可得到自然数1。 根据题意,请完善划线处的代码。
def fun(n, cnt):
if ① :
print(cnt)
return
else:
if n % 2 == 0:
n //=2
②
else:
③
fun(n, cnt+1)
fun(5, ④ )