刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

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

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
使用微信搜索喵呜刷题,轻松应对考试!

答案:

C

解析:

根据题目中的函数定义,当输入的数值大于3时,函数会进行递归调用。我们可以逐步分析如下:

首先,调用fun(6):

  • 由于6大于3,进入递归条件,此时返回值为6乘以fun(5)的结果。

接着,调用fun(5):

  • 同样,由于5大于3,进入递归条件,此时返回值为5乘以fun(4)的结果。

然后,调用fun(4):

  • 此时,由于4不大于3,所以执行else语句块,返回值为4。

回溯过程:

  • fun(4)的返回值为4。
  • fun(5)的返回值为5 * fun(4) = 5 * 4 = 20。
  • fun(6)的返回值为6 * fun(5) = 6 * 20 = 120。但由于递归的特性,这个值会被再次乘以fun(5)的结果(即再次乘以20),所以最终输出为120 * 20 = 2400。但这个结果并不是题目给出的选项之一。检查代码发现,原答案计算过程有误,正确结果应为:fun(6) = 6 * fun(5),即6 * (fun(4) + fun(3) + fun(2))。由于fun(3)、fun(2)、fun(1)和fun(0)均小于等于3,所以它们的返回值分别为其本身的值(即分别为3、2、1和0)。因此,最终结果为:6 * (4 + 3 + 2 + 1) = 6 * 10 = 60。所以正确答案为D 60。
创作类型:
原创

本文链接:运行下列程序,输出的结果是?( ) def fun(x):     if x > 3:      

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share