参考答案和解析
正确答案:C
更多“ 在下列程序代码中,主程序调用add(x)时,若参数传递采用引用方式,则其输出结果为(34),若参数传递采用传值方式,则输出结果为(35)。(61)A.2B.4C.6D.8 ”相关问题
  • 第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题:

    在下面的程序中,若调用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。

  • 第3题:

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

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

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

  • 第4题:

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


    正确答案:B

  • 第5题:

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