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

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

A.-5
B.6
C.15
D.35

参考解析

解析:本题考查程序语言基础知识。
函数f1被调用而运行时,其局部变量值的变化情况如下:在调用f2(a)之前,x的值为1,a的值为5。在以引用调用方式调用f2(a)时,形参x是实参a的引用,在函数f2中的x就是函数f1中a的别名(或者说此时x与a所对应的存储单元是同一个,只是角度不同而已),因此执行函数f2时,条件表达式x>1即等同于a>1,a的值是5所以该条件表达式成立,从而执行了"x=x*x",就将x所对应存储单元的内容改为了25,然后结束f2的执行并将所返回的-10赋值给f1中的x,因此在f1结束时返回的值为a+x=25-10=15。
在值调用方式下调用f2(a)时,是将实参a的值5传递给f2的形参x,a和x所对应的存储单元是不同的,此后执行f2时,由于x的值是5,所以条件表达式x>1即等同于5>1,是成立的,从而执行了"x=x*x",此时是将f2中的x修改为25,与f1中的a和x都无关,在结束f2的执行并将返回值-10赋值给f1中的x后,f1结束时进行的计算为a+x=5-10=-5。

相关考题:

函数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) 。

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

函数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

函数fun1()、fun2()的定义如下所示,已知调用fun1时传递给形参x的值是-5,若以引用调用(call by.reference)的方式调用。fun2,则雨数fun1的返回值为( );若以值调用(call by value)的方式调用fun2,则函数funl的返回值为( )。A.-18B.-11C.-8D.O(34)

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

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

已知函数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

已知函数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的值为 () ;若函数调用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()的定义如下,调用f1时为传值调用,调用f2时为引用调用。设有函数调用t=f1(5),那么调用执行后t的值为( )。A.1B.5C.6D.7

调用函数时若是引用调用方式,则是将(请作答此空)。下面所定义的函数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( )的定义如下所示,执行表达式"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

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

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

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

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