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

单选题

小明正在学习辗转相除法求两数的最大公约数,他用Python语言编写了如下程序,请问第二次调用gcd()函数时,函数实参是多少?递归函数总共调用了几次?( ) def gcd(a, b): if a % b == 0: return b return gcd(b, a % b) print(gcd(168, 66))

A
gcd(168, 66), 4次
B
gcd(66, 36), 3次
C
gcd(66, 36), 4次
D
gcd(36, 30), 3次
使用微信搜索喵呜刷题,轻松应对考试!

答案:

C

解析:

根据题目给出的程序,gcd函数使用递归方式计算两个数的最大公约数。函数的工作方式是,如果a除以b的余数为0,则返回b作为最大公约数,否则递归调用gcd函数,参数为b和a除以b的余数。对于第一次调用gcd(168, 66),经过几次递归调用后,会到达第二次调用gcd的地方。此时,参数应该是gcd(66, 36),因为在这个过程中,较大的数不断除以较小的数,余数逐渐减小,直到能够整除。关于递归调用的次数,从gcd(168, 66)开始,经过几次递归后到达gcd(66, 36),总共应该是四次调用。因此,答案为C选项,即第二次调用gcd()函数时的实参是gcd(66, 36),并且递归函数总共调用了四次。

创作类型:
原创

本文链接:小明正在学习辗转相除法求两数的最大公约数,他用Python语言编写了如下程序,请问第二次调用gcd(

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

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

分享考题
share