函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1);在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)()。 空白(2)处应选择
- A12
- B16
- C20
- D24
函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(callbyvalue)方式调用函数f时,输出为(1);在函数t中以引用调用(callbyreference)方式调用函数时,输出为(2)()。 空白(2)处应选择
本题主要考查函数调用时参数的传递方式。如果采用传值方式调用,则形参值的变化不会影响实参;如果采用引用方式调用,则形参值的变化会直接反映到实参。本题中如果在函数t中采用传值方式调用函数f,a的值传给形参r,在函数f中,a的值变为6,r的值为10并返回赋给变量x,由于a是全局变量,退出函数f后a的值依然为6,所以函数t的输出结果为16。如果函数t采用传值方式调用函数f,则形参r就是对实参a的引用,对r的修改就是对a的修改,在执行a=r+1时,a和r的值都变为6,执行r=r*2,a和r的值都变为12,并将r的值返回给x,因此函数t的输出结果为24。