单选题
● 函数fun1()、fun2()的定义如下所示,已知调用fun1 时传递给形参x的值是-5,若以引用调用(call by reference)的方式调用fun2,则函数fun1的返回值为 (33) ;若以值调用(call by value)的方式调用fun2,则函数fun1的返回值为 (34) 。
fun1(int x) fun2(int x) int a=x-1;
x = fun2(a);
return a-x; x=x+10;
return 3*x;
(33)
(34)
题目答案
A
您的答案
答案解析
、C值调用时,原传递参数值不会被修改!如果是值传递:那么对于fun1中:a=x-1=-6;x=fun2(a)=fun2(-6);那么在fun2中,x=x+10=-6+10=4,返回3*x=12;这时原参数a=-6并不会被修改,也就是说a的值还是-6;这时,a-x=-6-12=-18;对于引用调用,在fun2中执行语句x=x+10=-6+10=4时,这时a的值也被修改,变为4,所以返回到fun1中执行a-x时应该为a-x=4-12=-8。