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

单选题

关于函数f( )和g( )的调用方式,请分析并给出答案。函数f( )定义如下,当调用函数g( )时,若采用不同的参数传递方式,f( )执行后的输出值分别为多少?

A
5
B
2
C
8
D
10
使用微信搜索喵呜刷题,轻松应对考试!

答案:

C

解析:

本题考察传值调用和引用调用的区别。传值调用意味着形参取的是实参的值,形参的改变不会导致实参的值发生改变;而引用调用则意味着形参取的是实参的地址,形参值的改变会直接影响实参的值。

在函数f()中,初始时x=5,a=x-3=2。针对题目中的两种情况进行分析:

  1. 第一种情况:x传值,a传地址。在函数g()中,a接收的是函数f()中x的值,即a=5;x接收的是函数f()中a的地址,由于x的值在函数g()中被改变,这一改变会传回到函数f()中。所以在函数g()中,x=10-a=5,a=x+1=6。返回函数f()中时,a的值变为5,因此最后x+a=5+5=10。
  2. 第二种情况:a传值,x传地址。在函数g()中,a接收的是函数f()中x的地址,因此a的值不会在函数g()的改变中传回到函数f();而x接收的是函数f()中a的值。所以在函数g()中,x的值会在函数g()中被改变并传回到函数f()中。计算过程中,x=10-a的初始值(即函数f()中的a值)=2,然后a=x+1=3。返回函数f()中时,x的值变为在函数g()中改变后的值,即x的新值6,因此最后x+a=6+2=8。

综上,题目所述两种情况下,f()执行后的输出值分别为10和8。由于题目要求的是两种情况下的输出值之和为( ),所以答案为C选项,即8。

创作类型:
原创

本文链接:关于函数f( )和g( )的调用方式,请分析并给出答案。函数f( )定义如下,当调用函数g( )时,

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

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

分享考题
share