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

单选题

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

答案:

A

解析:

本题考查程序语言基础知识。

已知函数f和g的定义,我们需要分析在两种函数调用方式下执行表达式"x=f(5)"后x的值。

  1. 引用调用(call by reference)方式:
    • 在函数f中,当调用g(a)时,由于引用调用方式会将实参a的地址传递给形参y,因此函数g中对形参y的修改实际上会影响实参a的值。
    • 在函数g中,经过运算"y=y*y-1",假设初始值y=4(即a的值),则y变为15。
    • 由于a的值被修改为15,返回函数f后,再执行"a*x"运算(此时x=5,a=15),得到结果75。所以,在引用调用方式下,执行"x=f(5)"后x的值为75。
  2. 值调用(call by value)方式:
    • 在函数f中,当调用g(a)时,由于值调用方式会将实参a的值传递给形参y,但形参y的修改不会影响实参a的值。
    • 在函数g中,经过运算"y=y*y-1",y的值发生变化,但这不会影响实参a的值。
    • 返回函数f后,执行"a*x"运算(此时x=5,a仍然为初始值4),得到结果20。所以,在值调用方式下,执行"x=f(5)"后x的值为20。

综上,第一空为引用调用方式下的结果,应填75;第二空为值调用方式下的结果,应填20。

创作类型:
原创

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

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

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

分享考题
share