已知函数f( )、g( )的定义如下所示,执行表达式"x=f(5)"的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行"x=f(5)"后x的值为( );若函数调用g(a)是值调用(call by value)方式,则执行"x=f(5)"后x的值为(请作答此空)。A.20B.25C.60D.75

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


A.20
B.25
C.60
D.75

参考解析

解析:本题考查程序语言基础知识。
若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。
根据题目说明,调用函数f时,实参的值为5,也就是在函数f中,x的初始值为5,接下来先通过"a=x-1"将a的值设置为4,再调用函数g(a)。函数g()执行时,形参y的初始值为4,经过"y=y*y-1"运算后,y的值就修改为15。
在引用调用方式下,g函数中y是f函数中a的引用(可视为形参y与实参a是同一对象),也就是说函数f中a的值被改为15,因此,返回函数f中再执行"a*x"运算后得到75(x=5,a=15),因此第一空应填入的值为75。
在值调用方式下,g函数中y只获得f函数中a的值(形参y与实参a是两个不同的对象),也就是说在函数g中修改y的值与函数f中a的值已经没有关系了,因此,返回函数f再执行"a*x"运算后得到20(x=5,a=4),因此第二空应填入的值为20。

相关考题:

函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为(7);若采用引用(call by reference)方式调用g(a),则函数f的返回值为(8)。A.6B.13C.25D.28

函数f()、g()的定义如下所示,调用函数f时传递给形参a的值为1,若采用传值(call by value)的方式调用g(c),则函数f的返回值为(1);若采用传引用(call by reference)的方式调用g(c),则函数f的返回值为(2)。A.7B.5C.4D.3

● 函数 f和g 的定义如下图所示。执行函数 f时需要调用函数 g(a),若采用值调用方式 (call by value) 调用 g(a), 则函数 f的返回值为 (32) ; 若采用引用 (call by reference)方式调用 g(a),则函数 f的返回值为 (33) 。(32)A. 6B. 13C. 25D. 28(33)A. 35B. 28C. 25D. 13

● 函数t()、f()的定义如下所示。若调用函数t()时传递给x的值为3,并且调用函数f()时,第一个参数采用传值(call by value)方式,第二个参数采用传引用(call by reference)方式,则函数t()的返回值为(33) 。

函数f()、g()的定义如下图所示,调用函数f时传递给形参x的值为5,若采用传值(call by value)的方式调用g(a),则函数f的返回值为(31);若采用传引用(call by reference)的方式调用g(a),则函数f的返回值为(32)。A.14B.16C.17D.22

已知函数f1()、f2()的定义如下图所示,如果调用函数f1时传递给形参x的值是2,若a和y以引用调用(call by reference)的方式传递信息,则函数f1的返回值为(47);若a和y以值调用(call by value)的方式传递信息,则函数f1的返回值为(48)。A.6B.10C.14D.随机数

函数f()、g()的定义如下所示,调用函数f时传递给形参x的值为5,若采用传值(call by value)方式调用g(a),则函数f的返回值为(1);若采用传引用(call by reference)方式调用g(a),则函数f的返回值为(2)。A.14B.16C.17D.22

函数f()、g()的定义如下图所示,调用函数f()时传递给形参a的值为1。若采用传值(call by value)的方式调用g(c),则函数f()的返回值为(29);若采用传引用(call by reference)的方式调用g(c),则函数f()的返回值为(30)。A.7B.5C.4D.3

函数f()、g()的定义如下所示,调用函数f()时传递给形参x的值为1。若采用传引用(call by reference)的方式调用g(y),则函数f()的返回值为(49);若采用传值(call by value)的方式调用g(y),则函数f的返回值为(50)。A.3B.6C.7D.8

已知函数f(). G()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用( call by reference)方式传递参数,则函数f的返回值为( );若g(a)采用值调用(.call by value)的方式传递参数,则函数f的返回值为( )。其中,表达式X>>1的含义是将x的值右移1位,相当于x除以2。A.35B.32C.11D.7A.35B.32C.11D.7

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

已知函数fl()、f2()的定义如下图所示设调用函数f1时传递给形参x的值是1,若函数调用f2(a)采用引用调用(call by refere nce)的方式传递信息,则函数n的返回值为 (32) ;若函数调用f2(a)以值调用(call liy value)的方式传递信息,则函数F1返回值为(33)。A.-5B.6C.15D.35

已知函数f(). g()的定义如下所示,执行表达式“x= f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行“x=f(5)”后x的值为(33):若函数调用g(a)是值调用(call by value)方式,则执行“x= f(5)”后x的值为(34)。A.20B.25C.60D.75

已知函数f132、f232的定义如下图所示。设调用函数f1时传递给形参x的值是1,若函数调用f2(a)采用引用调用(call by reference)的方式传递信息,则函数f1的返回值为(请作答此空);若函数调用f2(a)以值调用(call by value)的方式传递信息,则函数f1的返回值为( )。A.-5B.6C.15D.35

已知函数f()、g()的定义如下所示,执行表达式”x=f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行”x=f(5)”后x的值为 () ;若函数调用g(a)是值调用(call by value)方式,则执行”x=f(5)”后x的值为 (请作答此空) 。A. 20B. 25C. 60D. 75

已知函数f()、g()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用(callbyreference)方式传递参数,则函数f的返回值为(请作答此空);若g(a)采用值调用(callbyvalue)的方式传递参数,则函数f的返回值( )。其中,表达式“x>>1”的含义是将x的值右移1位,相当于x除以2。A.35B.32C.11D.7

己知函数f33、g33的定义如下所示,执行表达式"x=f35"的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行"x=f35"后x的值为( );若函数调用g(a)是值调用(call by value)方式,则执行"x=f35"后x的值为(请作答此空)。A.20B.25C.60D.75

函数f30、g30的定义如下所示,已知调用f时传递给其形参x的值是10。若在f中以传值方式调用g,则函数f的返回值为(请作答此空);若以引用方式调用g,则函数f的返回值为( )。A.10B.15C.25D.30

调用函数时若是引用调用方式,则是将(请作答此空)。下面所定义的函数f1为值调用方式,函数f2为引用调用方式。若有表达式x=f1(5),则函数调用执行完成后,该表达式中x获得的值为( )。A.实参的值传给形参B.形参的值传给实参C.实参的地址传给形参D.形参的地址传给实参

调用函数时若是引用调用方式,则是将( )。下面所定义的函数f1为值调用方式,函数f2为引用调用方式。若有表达式x=f1(5),则函数调用执行完成后,该表达式中x获得的值为(请作答此空)。A.5B.20C.36D.45

已知函数f( ),g( )的定义如下所示,调用函数f( )时传递给形参x的值是5,若g(a)采用引用调用(call by reference)方式传递参数,则函数f( )的返回值为(请作答此空);若g(a)采用值调用(call by value)的方式传递参数,则函数f( )的返回值( )。其中,表达式“x>>1”的含义是将x的值右移1位,相当于x除以2。A.35B.32C.11D.7

已知函数f( )、g( )的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用(callbyreference)方式传递参数,则函数f的返回值为(1);若g(a)采用值调用(callbyvalue)的方式传递参数,则函数f的返回值(2)。其中,表达式“x>>1”的含义是将x的值右移1位,相当于x除以2。2、______A.35B.32C.11D.7

调用函数时若是引用调用方式,则是将( )。下面所定义的函数f1为值调用方式,函数f2为引用调用方式。若有表达式x=f1(5),则函数调用执行完成后,函数f1最终获得的值为(请作答此空)。A.5B.20C.36D.45

函数t( )、f( )的定义如下所示,若调用函数t时传递给x的值为5,并且调用函数F( )时,第一个参数采用传值(call by value)方式,第二个参数采用传引用(call by reference)方式,则函数t的返回值为( )A.33B.22C.11D.负数

函数f和g的定义如下图所示。执行函数f时若采用引用(call by reference)方式调用函数g(a),则函数f的返回值为( )。A.14B.18C.24D.28

已知函数F( )、G( )的定义如下所示,执行表达式”x=F(3)”的运算时,若函数调用G(a)是引用调用方式,则执行”x=F(3)”后x的值为( );若函数调用G(a)是值调用方式,则执行”x=F(3)”后x的值为(请作答此空)。A.6B.7C.8D.9

函数f( )、g( )的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为(请作答此空);若以传引用方式调用g,则函数f的返回值为( )。A.3B.4C.6D.7