单选题
函数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.6 B.13 C.25 D.28
单选题
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。