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

单选题

己知函数f()、g()的定义如下所示,执行表达式"x=f(5)"的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行"x=f(5)"后x的值为(请作答此空);若函数调用g(a)是值调用(call by value)方式,则执行"x=f(5)"后x的值为( )。

A
20
B
25
C
60
D
75
使用微信搜索喵呜刷题,轻松应对考试!

答案:

D

解析:

本题考察函数调用的方式对于函数执行结果的影响。

首先,理解题目中的函数调用方式:

  • 引用调用(call by reference):形参是实参的引用,对形参的修改会影响到实参的值。
  • 值调用(call by value):形参是实参的副本,对形参的修改不会影响实参的值。

根据题目给出的函数f和g的定义:

  1. 在引用调用方式下:
    • 执行表达式 “x=f(5)”,函数f中的a初始值为5。
    • 执行 “a=a-1”,此时a变为4。
    • 调用函数g(a),由于引用调用,函数g中的形参y与函数f中的实参a指向同一个对象。函数g中执行 “y=y*y-1”,此时y变为15,由于引用调用,a也变为15。
    • 返回函数f继续执行,计算 “a*x”,结果为75(a=15,x=5)。所以第一空填75。
  2. 在值调用方式下:
    • 执行表达式 “x=f(5)”,函数f中的a初始值为5。
    • 执行 “a=a-1”,此时a变为4。
    • 调用函数g(a),由于值调用,函数g中的形参y只是获得实参a的值的一份副本。函数g中执行 “y=y*y-1”,此时y变为15,但不影响函数f中的a的值。
    • 返回函数f继续执行,计算 “a*x”,结果为20(a仍然为4,x为5)。所以第二空填20。
创作类型:
原创

本文链接:己知函数f()、g()的定义如下所示,执行表达式"x=f(5)"的运算时,若函数调用g(a)是引用调

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

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

分享考题
share