问题 单项选择题

在下面的程序代码中,a是全局变量。若以引用调用(call by reference)方式调用函数 f,则输出结果为 (1) ;若以值调用(call by value)方式调用函数f,输出结果为 (2)

(2)

A.10

B.40

C.36

D.72

答案

参考答案:B

解析: 传值调用是指将实际参数的值传递给形式参数,实际参数与形式参数对应的存储单元是相互独立的,实际参数仅为形式参数提供初始值,在被调用函数中对形式参数的修改与实际参数没有关系。题目中,实际参数a的值为5,传值调用时将5传递给形式参数x,a是全局变量,所以函数f中对a和x的引用是两个对象,如图6-4所示,函数的返回值为36。 引用调用时形式参数和实际参数对应的存储单元都是实参的单元,因此函数中对a和x的引用是同一个对象,如图6-5所示,函数的返回值为64。

单项选择题
判断题