以下代码的输出结果是( )。 def fibRate(n): if n<=0: return-1 elif n==1: return-1 elif n==2:

admin2021-03-16  30

问题 以下代码的输出结果是(    )。
def fibRate(n):
    if n<=0:
           return-1
    elif n==1:
           return-1
    elif n==2:
           return 1
    else:
           L=[1,5]
           for i in range(2,n):
                 L.append(L[-1]+L[-2])
           return L[-2]%L[-1]
print(fibRate(7))

选项 A、0.6
B、28
C、-1
D、1

答案B

解析 将实参7传递给函数形参变量n,之后进入多分支结构,依次判断后,执行else后面的语句。for语句为for i in range(2,7),i从2依次变化到6,循环5次,将L[-1]+L[-2]的值通过append()方法加入列表L中。
当i=2时,L[-1]+L[-2]=5+1=6,将6添加到列表L中,此时L=[1,5,6];
当i=3时,L[-1]+L[-2]=6+5=11,将11添加到列表L中,此时L= [1,5,6,11];
当i=4时,L[-1]+L[-2]=11+6=17,将17添加到列表L中,此时L=[1,5,6,11,17];
当i=5时,L[-1]+L[-2]==17+11=28,将28添加到列表L中,此时L=[1,5,6,11,17,28];
当i=6时,L[-1]+L[-2]=28+17=45,将45添加到列表L中,此时L=[1,5,6,11,17,28,45]。
最后L[-2]%L[-1]=28%45=28,故程序输出28。本题选择B选项。
转载请注明原文地址:https://jikaoti.com/ti/q950FFFM
0

最新回复(0)