问题 单项选择题

函数f()、g()的定义如下所示,己知调用f时传递给其形参x的值是3,若以传值方式调用g,则函数f的返回值为 (34) ;若以传引用方式调用g,则函数f的返回值为 (35)

(35)处填()。

A.18

B.17

C.12

D.8

答案

参考答案:A

解析:

本题考查函数调用时的参数传递概念。

实现函数调用时,实参要向形参传递值。参数传递指的是在函数调用时实参与形参的匹配动作。如果由实参向形参传递值,相应的调用就称为传值调用;如果传递的是实参的地址(或者通过引用传递),则称为引用调用。

在函数f中以传值调用方式调用函数g时,将x的值(即3)传递给函数g的形参x,在函数g中,x*x即3*3赋值给定义在g中的局部变量x(形参x),而与函数f中的x无关。调用结束回到函数f后,y得到9,x的值(即3)不变,因此x+y的结果为12。

在函数f中以引用调用方式调用函数g时,在函数g中的x与f中的x是同一个数据对象,因此x*x即3*3赋值x后,函数f中的x被修改了。调用结束回到函数f后,y得到9,x的值为9,因此x+y的结果为18。

单项选择题
单项选择题 A1型题