已知函数f1()、f2()的定义如下所示,设调用函数f1时传递给形参x的值是10

admin2022-08-02  28

问题 已知函数f1()、f2()的定义如下所示,设调用函数f1时传递给形参x的值是10,若函数调用f2(a)以引用调用(call by reference)的方式传递信息,则函数f1的返回值为(  );若圈数调用f2(a)以值调用(call by value)的方式传递信息,则函数f1的返回值为(  )。A.10B.20C.59D.98

选项 A.10
B.20
C.59
D.98

答案 B

解析 本题考查程序语言基础知识。
    以值调用方式进行参数传递时,需要先计算出实参的值并传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。对于引用调用,调用时首先计算实参的地址,并将此地址传递给被调用的过程,因此被调用的函数既得到了实参的值又得到了实参的地址,然后执行被调用的过程(或函数)。在过程(或函数)的执行过程中,针对形参的修改结果将反映在对应的实参变量中。
    题目中,若f2(a)采用引用调用方式,则在f2中对y的访问本质上是对f1中a的访问,因此经过运算“y=5*y-1”后,y的值为49,即f1中a的值为49,x的值是10,因此函数f的返回值为59。若f2(a)采用值调用方式,则f2中对y的访问与f1中的a无关,f2(a)调用完成后,在f1中a和x的值保持不变(都为10),因此函数f1的返回值为20。
转载请注明原文地址:https://tihaiku.com/congyezige/2427447.html

最新回复(0)