● 函數fun1()、fun2()的定義如下所示,已知調用fun1 時傳遞給形參x的值是-5,若以引用調用(call by reference)的方式調用fun
● 函數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。
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫學等領域),建議您咨詢相關領域專業人士。