首页 > 计算机 > 软考初级 正文

● 函数fun1()、fun2()的定义如下所示,已知调用fun1 时传递给形参x的值是-5,若以引用调用(call by

时间:2021-05-05 07:04:58 解答: 78 次

● 函数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)A. -18 B. -11 C. -8 D. 0

(34)A. -18 B. -11 C. -8 D. 0

正确答案:

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。

请充值VIP继续使用(未注册用户支付后会自动注册登录)

×

95元 29元

VIP截止日期:2025-01-01 23:43:53

←请使用支付宝扫码支付

95元 29元

VIP截止日期:2025-01-01 23:43:53

←请使用微信扫码支付