问题 单项选择题

函数f和g的定义如下图所示,执行函数f时需要调用函数g(a),若采用传值调用方式(Call By Vahle)调用g(a),则函数f的返回值为 (16) :若采用引用(Call By Reference)方式调用g(a),则函数f的返回值为 (17)
f() g(形式参数x)
int a=3,c; int m=5;
c=g(a); m=x*m; x=m-5;
return a+c;return x+m;

A.35

B.28

C.25

D.13

答案

参考答案:A

解析: 在函数f中a=3,执行语句c=g(a)时调用函数g(a)。在调用函数g(a)时,若采用传值调用,将a的值传给x,通过计算可得m=3×5=15,x=15-5=10,x+m=25,则函数返回值为25,得c=25,而由于采用传值调用,a的值并没有发生改变,因此函数f的返回值为3+25=28;在调用函数g(a)时,若采用引用方式调用,则函数g(a)会改变a的值,执行g(a)后a的值变为10,因此函数f的返回值为10+25=35。

单项选择题 案例分析题
单项选择题