在高级程序设计语言中,使用参数是函数(过程、子程序)之间传递信息的一种手段。传值调用是指把实际参数的(1)传递给相应的形式参数,函数通过这种传值形参(2);引用调用是指把实际参数的(3)传递给相应的形式参数,在函数中对形参的引用和赋值被处理成是对实际参数间接的访问。C语言中采用(4)调用方式进行参数传递。在下面的主程序中,实参a与形参x以引用调用(Call by reference)的方式传递信息,实参b与形参y以传值调用(Call by value)的方式传递信息,那么,从过程"compute"A.值B

题目

在高级程序设计语言中,使用参数是函数(过程、子程序)之间传递信息的一种手段。传值调用是指把实际参数的(1)传递给相应的形式参数,函数通过这种传值形参(2);引用调用是指把实际参数的(3)传递给相应的形式参数,在函数中对形参的引用和赋值被处理成是对实际参数间接的访问。C语言中采用(4)调用方式进行参数传递。

在下面的主程序中,实参a与形参x以引用调用(Call by reference)的方式传递信息,实参b与形参y以传值调用(Call by value)的方式传递信息,那么,从过程"compute"

A.值

B.名

C.地址

D.地址和值


相似考题
更多“在高级程序设计语言中,使用参数是函数(过程、子程序)之间传递信息的一种手段。传值调用是指把实际参数的(1)传递给相应的形式参数,函数通过这种传值形参(2);引用调用是指把实际参数的(3)传递给相应的形式参数,在函数中对形参的引用和赋值被处理成是对实际参数间接的访问。C语言中采用(4)调用方式进行参数传递。在下面的主程序中,实参a与形参x以引用调用(Call by reference)的方式传递信息,实参b与形参y以传值调用(Call by value)的方式传递信息,那么,从过程"compute"A.值B”相关问题
  • 第1题:

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

  • 第2题:

    在下面的主程序中,实参a与形参x以值调用(call by value)的方式传递信息,实参b与形参y以引用调用(call by reference)的方式传递信息,那么,从过程“compute”返回主程序后a和b的值分别为(220)。

    A.1和4

    B.5和12

    C.1和2

    D.1和12


    正确答案:A
    解析:值调用不传递实参的地址,对形参的修改与实参无关,所以a的值保持不变。对于引用调用,在传递实参值的同时也传递实参的地址,于是函数执行过程中对形参的修改同时也会反映到实参上,所以b的值变为4。

  • 第3题:

    在引用调用方式下进行函数调用,是将(9)。

    A.实参的值传递给形参

    B.实参的地址传递给形参

    C.形参的值传递给实参

    D.形参的地址传递给实参


    正确答案:B

  • 第4题:

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

  • 第5题:

    在下面的程序中,若实参a与形参x以引用调用(call by reference)的方式传递信息,则输出结果为(1);若实参a与形参x以值调用(call by value)的方式传递信息,那么输出结果为(2)。

    Main program Procedure addone(x)

    a:=1; a:=x+1;

    addone(a); x:=x+2;

    write(a); return;

    A.1

    B.2

    C.3

    D.4


    正确答案:D
    解析:所有函数的定义都是独立的、平行的。在一个函数定义中不允许定义另外一个函数,但可以对别的函数进行调用或做引用说明;它也可以对自身进行调用,即递归调用。函数原型的形式如下:
      函数 函数名(形参表);
      形参表中的形参名可以省略。函数原型提供了更强的函数检查功能,在编译阶段就能发现函数的返回值的类型以及参数个数和类型是否正确。
      传值调用是指把实形参数的值传递给相应的形式参数,子程序不能通过这种方式传回任何结果。
      引用调用是指把实形参数的地址传递给相应的形式参数,此时子程序对形式参数的一次引用或赋值都是对形式参数的间接访问。
      实参a与形参x以引用调用的方式传递信息,那么,addone(a)则会通过语句“a:= x+1;”和“x:=x+2;”改变a的值。因此,变量a的值变为4。
      实参a与形参x以传值调用的方式传递信息,则a的值保持不变。
      这里需要说明的是,变量a没有进行声明而在“Main program”和“addone”中进行引用,在这里应当视为全局变量。

  • 第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题:

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

    知道一种语言(或编译器)使用哪种参数传递方法是很重要的,因为程序的运行依赖于所用的方法。参数传递方法有传值调用(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语言中函数是传值调用的。

  • 第8题:

    在下列程序中,调用f1(x)时,实参a与形参x以引用调用的方式传递信息,其输出结果为(33),调用f2(y)时,实参b与形参y以传值的方式传递信息,其输出结果为(34)。

    (63)

    A.1

    B.2

    C.3

    D.4


    正确答案:D

  • 第9题:

    程序语言提供的传值调用机制是将( )。

    A.实参的值传递给被调用函数的形参
    B.实参的地址传递给被调用函数的形参
    C.形参的值传递给被调用函数的实参
    D.形参的地址传递给被调用函数的实参

    答案:A
    解析:
    本题考查程序语言基础知识。
    传值调用是指将实参的值传递给形参,然后执行被调用的函数。实参可以是常量、变量、表达式和函数调用等。

  • 第10题:

    常用的函数参数传递方式有传值与传引用两种。( )。

    A.在传值方式下,形参与实参之间互相传值
    B.在传值方式下,实参不能是变量
    C.在传引用方式下,修改形参实质上改变了实参的值
    D.在传引用方式下,实参可以是任意的变量和表达式

    答案:C
    解析:
    传值调用和引用调用是常用的两种参数传递方式。在传值调用方式下,是将实参的值传递给形参,该传递是单方向的,调用结束后不会再将形参的值传给实参。在引用调用方式下,实质上是将实参的地址传递给形参,借助指针在间接访问数据方式下(或者将形参看作是实参的别名),在被调用函数中对形参的修改实质上是对实参的修改。

  • 第11题:

    在引用调用方式下进行函数调用是将(21)。

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

    答案:B
    解析:
    引用调用是把实参(如‘int a)的地址(&a)赋给形参(指针变量,比如*b,这时b=&a,即b指向变量a),如果*b(也即a对应的内存空间)发生变化,也就是变量a的值发生了变化。

  • 第12题:

    在引用调用方式下进行函数调用,是将( )。

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

    答案:B
    解析:
    函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用其他函数的函数为主调函数,被调用的函数为被调函数。
    值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
    引用传递过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。

  • 第13题:

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


    正确答案:B

  • 第14题:

    下列关于过程的叙述不正确的是( )

    A.过程的传值调用是将实参的具体值传递给形参

    B.过程的传址调用是将实参在内存的地址传递给形参

    C.过程的传值调用参数是单向传递的,过程的传址调用参数是双向传递的

    D.无论过程传值调用还是过程传址调用,参数传递都是双向的


    正确答案:D

  • 第15题:

    ●在下面的程序中,若实参a与形参x以引用调用(call by reference)的方式传递信息,实参b与形参y以值调用(call by value)的方式传递信息。则a的输出结果为 (53) ,b的输出结果为 (54) 。

    (53) A.1

    B.3

    C.4

    D.5

    (54) A.2

    B.4

    C.8

    D.12


    正确答案:D,A
    【解析】实际上,引用调用时,实参向形参传递的参数的地址,因此在子程序可以修改实参变量的值。相反,值调用时,子程序将不修改实参变量的值。子程序compute()的执行语句对x的修改结果就是a的值,即x=1+2*2=5。y值的修改不影响b的值,因此b=2。

  • 第16题:

    函数调用时,基本的参数传递方式有传值与传地址两种,(16)。A.在传值方式下,形参将值传给实参SXB

    函数调用时,基本的参数传递方式有传值与传地址两种,(16)。

    A.在传值方式下,形参将值传给实参

    B.在传值方式下,实参不能是数组元素

    C.在传地址方式下,形参和实参间可以实现数据的双向传递

    D.在传地址方式下,实参可以是任意的变量和表达式


    正确答案:C
    本题考查程序语言基础知识。函数调用时基本的参数传递方式有传值与传地址两种,在传值方式下是将实参的值传递给形参,因此实参可以是表达式(或常量),也可以是变量(或数组元素),这种信息传递是单方向的,形参不能再将值传回给实参。在传地址方式下,需要将实参的地址传递给形参,因此,实参必须是变量(数组名或数组元素),不能是表达式(或常量)。这种方式下,被调用函数中对形式参数的修改实际上就是对实际参数的修改,因此客观上可以实现数据的双向传递。

  • 第17题:

    在下面的程序中,若实参a与形参x以引用调用(Call by Reference)的方式传递信息,则输出结果为(51);若实参a与形参x以值调用(Call by Value)的方式传递信息,那么输出结果为(52)。

    A.1

    B.2

    C.3

    D.4


    正确答案:D
    解析:对于引用调用,不但传递实参的值,同时也传递实参的地址,函数执行过程中对形参的修改也反映到实参上,所以a的结果是4。值调用不传递实参的地址,对形参的修改不会反映到实参上,所以(52)题中a的值为2。

  • 第18题:

    在下面的程序中,若实参a与形参x以引用调用(call by reference)的方式传递信息,实参b与形参Y以值调用(call by value)的方式传递信息。则a的输出结果为(53),b的输出结果为(54)。

    A.1

    B.3

    C.4

    D.5


    正确答案:D

  • 第19题:

    在引用调用方式下进行函数调用,是将( )。

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


    正确答案:B

  • 第20题:

    在引用调用方式下进行函数调用是将 ( ) 。

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

    答案:B
    解析:
    引用调用是把实参(如'int a)的地址(&a)赋给形参(指针变量,比如*b,这时b=&a,即b指向变量a),如果*b(也即a对应的内存空间)发生变化,也就是变量a的值发生了变化。

  • 第21题:

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

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

    答案:A
    解析:
    传值调用:形参取的是实参的值,形参的改变不会导致实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。函数g中的b最终值为3,X为5,因此返回的结果是7。

  • 第22题:

    在函数调用中,引用调用方式将(请作答此空)。下面所定义的函数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。

  • 第23题:

    在传值调用方式下进行函数调用是将( )。

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

    答案:A
    解析:
    传值调用是实参的值传递给形参。