函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(

练习题库2022-08-02  49

问题 函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为 () ;若采用引用(call by reference)方式调用g(a),则函数f的返回值为()。A.6B.13C.25D.28

选项 A.6
B.13
C.25
D.28

答案 D

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

最新回复(0)