已知函数f1()、f2()的定义如下所示,设调用函数f1时传递给形参x的值是10,若函数调用f2(a)以引用调用(Call By Reference)方式传递信息和以值调用(Call By Va1ue)方式传递信息,则函数f1的返回值分别为(16)。

admin2019-06-12  57

问题 已知函数f1()、f2()的定义如下所示,设调用函数f1时传递给形参x的值是10,若函数调用f2(a)以引用调用(Call By Reference)方式传递信息和以值调用(Call By Va1ue)方式传递信息,则函数f1的返回值分别为(16)。

选项 A、20和20
B、59和20
C、59和98
D、20和98

答案B

解析 本题主要考查传值调用和引用调用。
    在传值调用中,形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变;而引用(传址)调用中,形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。
    在本题中,f2以引用调用时,这个时候将变量x的值10传递给变量a,即a的值为10,然后将a作为f2的实参,以引用调用方式调用f2,然后计算得到y的值为49并带回,然后在函数f1中返回a+x=49+10=59。
    f2以值调用时,这个时候将变量x的值10传递给变量a,即a的值为10,然后将a作为f2的实参,以值调用方式调用f2,然后计算得到y的值为49,但无法带回,然后在函数f1中返回a+x=10+10=20。
转载请注明原文地址:https://kaotiyun.com/show/2sCZ777K
0

最新回复(0)