列表

详情


已知函数f1()、f2()的定义如下图所示,如果调用函数f1时传送给形参x的值是2,若a和y以引用调用(call  by  reference)的方式传递信息,则函数f1的返回值为();若a和y以值调用(call by value)的方式传递信息,则函数f1的返回值为()。 

第 1 问

A. 6

B. 10

C. 14

D. 随机数

第 2 问

A. 4

B. 6

C. 10

D. 12

参考答案: C B

详细解析:

传值调用是指把实在参数的值传递给相应的形式参数,子程序不能通过这种方式传回任何结果。引用调用是指把实在参数的地址传递给相应的形式参数,此时子程序对形式参数的一次引用或赋值都是对形式参数的间接访问。
  若参数a、y以引用调用的方式传递信息,那么,执行语句a=x+1后,a=3,…调用函数f2,执行语句y=2*y+l后,y=7。因为函数f2执行的是引用传递,变量y和变量a共享一个地址单元,因此a的值也变为7。执行语句return a*x后,函数f1的返回值为2×7=14。
  若参数a、y以传值调用的方式传递信息,那么,执行语句a=x+1后,a=3,…调用函数f2,执行语句y=2*y+1后,y=7。因为函数f2执行的是传值调用,变量y的改变不会引起变量a的改变。因此执行语句return a*x后,函数f1的返回值为2×3=6。

上一题