刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
本题考察函数的传值调用和引用调用的区别。在函数f()中,变量x和a分别表示不同的值。根据题目描述,当调用函数g()时,第一个参数采用传值调用时,函数内部对该参数的修改不会影响到函数外部的变量;而第二个参数采用引用调用时,函数内部对该参数的修改会影响到函数外部的变量。因此,根据题目中的描述和函数的调用方式,我们可以得出以下分析:
(1)当第一个参数采用传值调用时,函数g()中的x接收的是函数f()中变量a的地址,此时函数g()中的操作不会改变函数f()中的变量x的值。而第二个参数采用引用调用时,函数g()中的a接收的是函数f()中变量x的值,此时函数g()中对a的操作会改变函数f()中变量a的值。因此,在函数g()执行完毕后,函数f()中的变量a的值变为6(因为函数g()中执行了a=x+1的操作),而变量x的值不变仍为初始值5。所以最后的结果是x+a=5+6=11。但由于题目要求输出值为(1),因此这种情况下输出的结果应为题目给定的值。
(2)当第一个参数采用引用调用时,函数g()中的x接收的是函数f()中变量x的地址,此时函数g()中对x的操作会改变函数f()中变量x的值。而第二个参数采用传值调用时,函数g()中的a接收的是函数f()中变量a的值,此时函数g()中对a的操作不会改变函数f()中变量a的值。因此,在函数g()执行完毕后,函数f()中的变量x的值变为函数g()中对x操作后的值(即改变了原有值),而变量a的值不变仍为初始值。所以最后的结果是改变后的x+原有a的值,但由于题目没有明确给出原有a的值是多少,因此无法确定最后的结果是什么。但根据题目要求输出值为(2),因此这种情况下输出的结果应为题目给定的值。由于两种情况下的输出值不同,但题目只给出了两个可能的输出值(即选项中没有正确答案),因此无法确定正确答案是什么。因此答案为D是错误的。
本文链接:函数 f( ) 和 g( ) 如下定义。根据调用方式的不同,f( ) 的输出值有所变化。请分析并给出
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
