列表

详情


已知函数f()、g()的定义如下所示,执行表达式“x=f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行”x=f(5)”后x的值为( ) ;若函数调用g(a)是值调用(call by value)方式,则执行”x=f(5)”后x的值为 ( ) 。


第 1 问

A. 20

B. 25

C. 60

D. 75

第 2 问

A. 20

B. 25

C. 60

D. 75

参考答案: D A

详细解析:

传值调用:在按值调用时,过程的形式参数取得的是实际参数的值。在这种情况下,形式参数实际上是过程中的局部量,其值的改变不会导致调用点所传送的实际参数的值发生改变,也就是数据的传送是单向的
引用调用:在按引用调用时,过程的形式参数取得的是实际参数所在的单元地址。在过程中,对该形式参数的引用相当于对实际参数所在的存储单元的地址引用。任何改变形式参数值的操作会反映在该存储单元中,也就是反映在实际参数中,因此数据的传送是双向的
本题的第一问:采用的是引用调用方式执行,x=5,g(a)中y=y*y-1=15,即a这时的值被修改为15,最好a*x=5*15=75
本题的第二问:采用的是传值调用方式执行,x=5,g(a)中y=y*y-1=15,即a这时的值仍然为4,最好a*x=5*4=20

上一题