niusouti.com

已知C++中一个函数的原型为void f(int &x, int &y),调用这个函数时,要把实在参数传递给形式参数,应该采用的参数传递方式是(30)。A.传值调用B.引用调用C.复制恢复D.传名调用

题目

已知C++中一个函数的原型为void f(int &x, int &y),调用这个函数时,要把实在参数传递给形式参数,应该采用的参数传递方式是(30)。

A.传值调用

B.引用调用

C.复制恢复

D.传名调用


相似考题
更多“已知C++中一个函数的原型为void f(int x, int y),调用这个函数时,要把实在参数传递给形式参数,应该采用的参数传递方式是(30)。A.传值调用B.引用调用C.复制恢复D.传名调用”相关问题
  • 第1题:

    在下面的程序中,若调用f1(x)时参数传递采用引用方式,调用f2(y)时参数传递采用传值方式,则输出结果为(47);若调用f1(x)和f2(y)时参数传递都采用引用方式,则输出结果为(48)。

    A.3

    B.6

    C.8

    D.10


    正确答案:C
    解析:在高级语言中,使用参数是函数(子程序)之间传递信息的一种手段。最常用的参数调用方法有传值调用和引用调用:使用传值调用时,被调用的函数内部对形参的修改不影响实参的值;使用引用调用时,函数中对形参的访问和修改实际上就是对相应时参所作的访问和修改。因此,若调用n(x)时参数传递采用引用方式,调用f2(y)时宰数传递采用传值方式,则程序运行过程中a的值变化如图1所示:

  • 第2题:

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


    正确答案:B

  • 第3题:

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

    (34)

    A. 18

    B. 17

    C. 12

    D. 8

    (35)

    A. 18

    B. 17

    C. 12

    D. 8


    正确答案:C,A

  • 第4题:

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

  • 第5题:

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

  • 第6题:

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

  • 第7题:

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

    A. 10 B. 15 C. 25 D.30A. 10 B. 15 C. 25 D.30


    正确答案:C,D

  • 第8题:

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

    A.10
    B.15
    C.25
    D.30

    答案:C
    解析:
    本题考查程序语言基础知识。
    若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。
    根据题目说明,当调用函数f时,形参x首先得到10,接下来以传值方式调用函数g,也就是将f中x的值传给g的参数x。在这种情况下,系统为f中的x与g中的x分别分配存储单元。执行g中的"x=x+5"运算后,g中x的值变为15,返回值15存入f的变量y(即y的值变为10),而f中x的值没有变,因此函数f的返回值为25(x=10,y=15)。
    在引用方式调用g时,g中对其形参x的修改可视为是对调用g时实参的修改,因此调用g之后,f中的y得到返回值15,f中的x也被修改为15,所以f的返回值为30。

  • 第9题:

    在函数调用中,引用调用方式将( )。下面所定义的函数foo为值调用方式,函数g( )的第一个参数采用值调用、第二个参数采用引用调用方式传递数据。若有表达式y=foo(2),则foo调用执行之后,y被赋值为(请作答此空)。


    A.5
    B.6
    C.7
    D.8

    答案:C
    解析:
    传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。在本题中,首先在foo()函数中,传入给x的值为2,然后b的值为1,接下来调用g()函数,x的值为2,所以g()函数b的值为2(值传递),b的值为1,所以g()函数x的值为1(地址传递,故x的值变化,会引起foo()函数中b值的变化)。经过g()函数的一系列语句,b=3,x=5。则foo()中b值变成5,最终foo()函数的返回值为5+2=7。

  • 第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)__。 空白(1)处应选择()
    A

    3

    B

    4

    C

    6

    D

    7


    正确答案: A
    解析: 在传值调用方式下,将实参的值传递给形参,分配给实参变量和形参变量的存储单元之间无相关性,各自使用,互不干扰,在引用调用方式下,实参变量和形参变量的对应的存储单元是同一个,在被调用函数中修改形参实质上就修改了实参变量的值。对于本题,在传值方式下,函数f的参数x、局部变量a和函数g的参数y分别对应不同的存储单元。因此,已传值方式调用g,函数f执行结束时,返回值为3。

  • 第13题:

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

    A.7

    B.5

    C.4

    D.3


    正确答案:D

  • 第14题:

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

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


    正确答案:B

  • 第15题:

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

    (40)

    A. 3

    B. 4

    C. 6

    D. 7

    (41)

    A. 3

    B. 4

    C. 6

    D. 7


    正确答案:A,B

  • 第16题:

    在下面的程序中,若调用f1(x)时,参数传递采用传值方式,调用f2(y)时,参数传递采用引用方式,则输出结果为(47);若调用f1(x)时,参数传递采用引用方式,调用f2(y)时,参数传递采用传值方式,则输出结果为(48)。

    A.2

    B.4

    C.6

    D.8


    正确答案:A
    解析:在过程(或函数)首部声明的参数称为形式参数,简称形参;过程(或函数)调用时的参数称为实际参数,简称实参。调用语句实现了对过程(或函数)体的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以传值方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行所调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。若参数传递采用引用方式,则调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,因此对应的形参既得到了实参的值又得到了实参的地址,然后执行被调用的过程(或函数)。在过程(或函数)的执行过程中,针对形式参数的修改将反映在对应的实际参数变量中。题目中若调用f1(x)时,参数传递采用传值方式,则主过程中实际参数a的值不会被改变,所以输出结果为2。若调用f1(x)时,参数传递采用引用方式,调用翅f2(y)时,参数传递采用传值方式,则在函数f1中调用f2不会改变f1中x的值,而在f1中对x的修改就会反映在主过程main的实参a中,因此输出结果为4。

  • 第17题:

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

  • 第18题:

    在高级程序设计语言中,使用参数是子程序之间传递信息的一种手段。子程序说明中的参数称为形式参数,调用语句中的参数称为实在参数。调用时,实在参数的个数、类型和顺序要和形式参数保持一致。

    知道一种语言(或编译器)使用哪种参数传递方法是很重要的,因为程序的运行依赖于所用的方法。参数传递方法有传值调用(CALL BY VALUE)、引用调用(CALL BY REFERENCE)、传名调用(CALL BY NAME)和宏扩展(MACROEXPANSION)。

    传值调用是指把实在参数的(50)传递给相应的形式参数、子程序通过这种传值形参(51);引用调用是指把实在参数的(52)传递给相应的形式参数,此时子程序形式参数的一次引用或赋值被处理成对形式参数的(53)访问。

    C语言中的函数,以(54)方式进行参数传递。

    A.地址

    B.名

    C.值

    D.地址和值

    E.值和名


    正确答案:C
    解析:(50)~(54)传值调用是指把实在参数的值传递给相应的形式参数,子程序不能通过这种方式传回任何结果。引用调用是把实参的地址传递给相应的形参,此时子程序对形参的一次引用或赋值都是对形参的间接访问。C语言中,实参变量对形参的数据传递是“值传递”,即单向传递,只能由实参传给形参,而不能由形参传给实参。所以说,C语言中函数是传值调用的。

  • 第19题:

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

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

    答案:D
    解析:
    本题考查程序语言基础知识。
    首先分析函数f的语句执行过程。形参x的值为5,将x的值(二进制形式高位都为0,低八位为00000101)右移1位后赋值给a,使得a的值为2(二进制形式高位都为0,低八位为00000010),然后执行函数调用g(a)。
    若以引用调用方式调用g(a),则在函g执行时,其形参x相当于是f中a的别名,对于运算“x=x*(x+1)”,此运算前x的值为2,运算后x的值改变为6,返回到函数f后a的值被改变为是6,在f中a和x是两个数据对象,所以f结束时返回a+x的值为11(5+6)。
    若以值调用方式调用g(a),则在函数g执行时,其形参x是一个独立的数据对象(值为2),接下来进行运算“x=x*(x+1)”,运算前x的值为2,运算后x的值改变为6,最后返回到函数f,a的值不改变,仍然是2,所以f结束时返回a+x的值为7(即2+5)

  • 第20题:

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

  • 第21题:

    在函数调用中,引用调用方式将(请作答此空)。下面所定义的函数foo为值调用方式,函数g( )的第一个参数采用值调用、第二个参数采用引用调用方式传递数据。若有表达式y=foo(2),则foo调用执行之后,y被赋值为( )。

    A.实参的值传给形参
    B.形参的值传给实参
    C.实参的地址传给形参
    D.形参的地址传给实参

    答案:C
    解析:
    传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。在本题中,首先在foo()函数中,传入给x的值为2,然后b的值为1,接下来调用g()函数,x的值为2,所以g()函数b的值为2(值传递),b的值为1,所以g()函数x的值为1(地址传递,故x的值变化,会引起foo()函数中b值的变化)。经过g()函数的一系列语句,b=3,x=5。则foo()中b值变成5,最终foo()函数的返回值为5+2=7。

  • 第22题:

    函数f( )、g( )的定义如下所示,已知调用f时传递给其形参x的值是10,若以传值方式调用g,则函数f的返回值为______。

    A.10
    B.15
    C.25
    D.30

    答案:C
    解析:
    本题考查程序语言基础知识。 若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。 根据题目说明,当调用函数f时,形参x首先得到10,接下来以传值方式调用函数g,也就是将f中x的值传给g的参数x,执行g中的“x=x+5”运算后,g中x的值变为15,返回值15存入f的变量y(即y的值变为15),而f中x的值没有变,因此函数f的返回值为25(x=10,y=15)。

  • 第23题:

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

    • A、3
    • B、4
    • C、6
    • D、7

    正确答案:B