函数fun1( )、fun2( )的定义如下所示,己知调用funl时传递给形参x的值是-5,若以引用调用(call by reference)的方式调用fun2,则函数fun1的返回值为(/):若以值调用(call by value)的方式调用fun2,则函数fun1的返回值为()。
本题考查程序语言基础知识。在传值调用方式下,将实参的值传递给形参,分配给实参变量和形参变量的存储单元之间无相关性,各自使用,互不干扰。在引用调用方式下,实参变量和形参变量对应的存储单元是同一个,在被调用函数中修改形参实质上就修改了实参变量的值。本题中,无论在哪种方式下,以实参调用函数fun2后返回的结果是相同的(为12),因此在函数fiml中,x都被修改为15,在计算表达式a-x的值时,有差别的是a的值。在传值方式下,a的值没有修改,因此a-x的值为+12,等于-18:在引用调用方式下,a的值被修改为4,因此a-x的值为4-12,等于-8。