函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为(7);若采用引用(call by reference)方式调用g(a),则函数f的返回值为(8)。

admin2021-01-08  45

问题 函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为(7);若采用引用(call by reference)方式调用g(a),则函数f的返回值为(8)。


选项 A、35
B、28
C、25
D、13

答案A

解析 本题考查参数传递基本知识。引用调用和值调用是进行过程(函数)调用时实在参数与形式参数间传递信息的两种基本方式。在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实在参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此,在被调用的过程(函数)中,既得到了实参的值,又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形式参数的修改将反映在对应的实在参数变量中。在值调用方式下调用函数g(a)时,实际参数a的值3传递给形式参数x,在函数g中,局部变量m的值由5修改为15,x的值由3修改为10,然后返回25并赋值给c,因此函数f的返回值为28(实参a的值仍然是3)。在引用调用方式下调用函数g(a)时,对x的修改就是对a的修改,因此函数调用g(a)结束后,a的值为10,函数f()的返回值为35(25+10)。
转载请注明原文地址:https://kaotiyun.com/show/YZkZ777K
0

最新回复(0)