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

题目

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

A.35

B.24

C.22

D.11


相似考题
更多“ 函数t()、f()的定义如下所示。若调用函数t()时传递给x的值为3,并且调用函数f()时,第一个参数采用传值(call by value)方式,第二个参数采用传引用(call by reference)方式,则”相关问题
  • 第1题:

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

    (32)

    A. 6

    B. 13

    C. 25

    D. 28

    (33)

    A. 35

    B. 28

    C. 25

    D. 13


    正确答案:D,A

  • 第2题:

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

    (49)A. 35 B. 24 C. 22 D. 11


    正确答案:B

  • 第3题:

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

    A.6

    B.10

    C.14

    D.随机数


    正确答案:C
    解析:引用调用和值调用是进行过程(函数)调用时实在参数与形式参数间传递信息的两种基本方式。在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实在参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此在被调用的过程(函数)中,既得到了实参的值又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形式参数的修改将反映在对应的实在参数变量中。在引用调用方式下,题目中过程f2的执行语句对y的修改结果就是a的值,即a的值在f2中被改为7(即y=2*3+1),在f1中没有修改x的值,所以f1的返回值为14(7*2)。在值调用方式下,在f2中修改y的值不会影响实参a,所以f1的返回值为6(3*2)。

  • 第4题:

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

    A.7

    B.5

    C.4

    D.3


    正确答案:D
    解析:本题考查参数传递的基本知识。引用调用和值调用是进行过程(函数)调用时实际参数与形式参数间传递信息的两种基本方式。在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实际参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此在被调用的过程(函数)中,既得到了实参的值又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形式参数的修改将反映在对应的实际参数变量中。调用函数f()时传递给形参a的值为1,因此局部变量c的初始值为2。在传值调用方式下,执行函数g()不会影响实参c,因此函数f()的返回值为3;在引用调用方式下,执行函数g()时,对b的修改等同于对c进行修改,因此在g()中,局部变量x的值为4,参数b的值修改为4,因此函数调用g(c)结束后,c的值为4,函数q)的返回值为5。

  • 第5题:

    函数main()、f()的定义如下所示,调用函数们f()时,第一个参数采用传值 (call by value) 方式,第二个参数采用传引用 (call by reference) 方式, main() 函数中 "print(x)" 执行后输出的值为( )。

    A.11B.40C.45D.70


    正确答案:B

  • 第6题:

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


    正确答案:D,A

  • 第7题:

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

    B.25

    C.60

    D.75


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

  • 第8题:

    函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值 (call by value) 方式,第二个参数采用传引用 (call by reference )方式,main()执行后输出的值为( )。

    A.2
    B.4
    C.5
    D.8

    答案:D
    解析:

  • 第9题:

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


    A.35
    B.32
    C.11
    D.7

    答案:C
    解析:
    引用调用:在按引用调用时,过程的形式参数取得的是实际参数所在的单元地址。在过程中,对该形式参数的引用相当于对实际参数所在的存储单元的地址引用。任何改变形式参数值的操作会反映在该存储单元中,也就是反映在实际参数中,因此数据的传送是双向的。本题:采用的是引用调用方式执行,x=5,右移一位之后a=2(注意不是2.5,偶数变为原来的一半,奇数变为原数减1的一半),函数g中的a的地址赋予了此时局部变量x,最后得出a=2*3=6,即a这时的值被修改为6,最后a+x=6+5=11,

  • 第10题:

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

    A.33
    B.22
    C.11
    D.负数

    答案:A
    解析:
    当程序执行到函数t中,调用f(x,a)时,x=5,a=16。当程序在f(x,a)中执行完成之后,对r的值的改变,并不会影响实参值,但对s的修改会改变调用的实参值,在f(x,a)中执行完成之后s的值变为38,所以对应实参值a也是38。最后返回值是:a-x,即38-5=33

  • 第11题:

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

    A.3
    B.4
    C.6
    D.7

    答案:A
    解析:
    本题考查程序设计基础知识。
    在传值调用方式下,将实参的值传递给形参,分配给实参变量和形参变量的存储单元之间无相关性,各自使用,互不干扰。在引用调用方式下,实参变量和形参变量的对应的存储单元是同一个,在被调用函数中修改形参实质上就修改了实参变量的值。
    对于本题,在传值方式下,函数f的参数x、局部变量a和函数g的参数Y分别对应不同的存储单元,如下图所示:



    因此,以传值方式调用g,函数f执行结束时,返回值为3。

  • 第12题:

    单选题
    函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为__(1)__;若以传引用方式调用g,则函数f的返回值为__(2)__。空白(2)处应选择()
    A

    3

    B

    4

    C

    6

    D

    7


    正确答案: B
    解析: 在传引用方式下,函数f的参数x、局部变量a分别对应不同的存储单元,函数g的参数y与实参x引用同一个存储单元。因此,以传值方式调用g,函数f执行结束时,返回值为4。

  • 第13题:

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


    正确答案:B

  • 第14题:

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

    A.14

    B.16

    C.17

    D.22


    正确答案:A
    解析:本题考查的是参数传递基本知识。 
      引用调用和值调用是进行过程(函数)调用时实际参数与形式参数问传递信息的两种基本方式。
      在过程(或函数)首部声明的参数称为形式参数,简称形参:过程(或函数)调用时的参数称为实际参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此在被调用的过程(函数)中,既得到了实参的值又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形参的修改将反映在对应的实参变量中。
      运行函数f()时,参数x的值为5,因此局部变量a的值为9。在传值调用方式下,执行函数g()不会影响实参a,因此函数f()的返回值为14;在引用调用方式下,执行函数g()时,对y的修改就是对a的修改,因此在g()中,局部变量a的值为8,参数y的值改为17,因此函数调用g(a)结束后,a的值为17,函数f()的返回值为22。

  • 第15题:

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

    A.14

    B.16

    C.17

    D.22


    正确答案:A

  • 第16题:

    函数f()、g()的定义如下所示,调用函数f()时传递给形参x的值为1。

    若采用传引用(call by reference)的方式调用g(y),则函数f()的返回值为(49);

    若采用传值(call by value)的方式调用g(y),则函数f的返回值为(50)。

    A.3

    B.6

    C.7

    D.8


    正确答案:C

  • 第17题:

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


    正确答案:C,D

  • 第18题:

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

    A.-5

    B.6

    C.15

    D.35


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

  • 第19题:

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

    答案:C
    解析:
    本题考查程序语言基础知识。
    函数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。

  • 第20题:

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

    答案:A
    解析:
    本题考查程序语言基础知识。若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。根据题目说明,调用函数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。

  • 第21题:

    函数main( )、f( )的定义如下所示。调用函数f( )时,第一个参数采用传值(call by value)方式,第二个参数采用引用调用(call by reference)方式,main( )执行后输出的值为( )

    A.2
    B.4
    C.5
    D.8

    答案:D
    解析:
    本题考查程序设计语言中传值方式和引用方式的基本知识。f(int x, int&a)函数中 x=2*2+1=5; a=5+3=8, 且a是引用,对应main()函数中x,所以x的值为8。故正确答案为:D

  • 第22题:

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


    A.14
    B.18
    C.24
    D.28

    答案:D
    解析:
    代入可知m=2*5;x=10-1;return x+m=1919+9=28

  • 第23题:

    函数 main( ) 、f( )的定义如下所示。调用函数 f( )时,第一个参数采用传值 (call by value)方式,第二个参数采用传引用(call by reference)方式,则函数 main( )执行后输出的值为(50)。

    A.10
    B.19
    C.20
    D.29

    答案:D
    解析:
    X=19,a=29。因为a属于传引用,最后结果是29。

    传值与传引用的区别是:值传递时,实参被拷贝了一份,只能在函数体内使用。因此题干中的x=19,只能作用于f函数中。