itgle.com

若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,()。A.f3执行结束后返回f2继续执行,f2结束后返回f1继续执行B.f3执行结束后返回f1继续执行,f1结束后返回f2继续执行C.f2执行结束后返回f3继续执行,f3结束后返回f1继续执行D.f2执行结束后返回f1继续执行,f1结束后返回f3继续执行

题目

若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,()。

A.f3执行结束后返回f2继续执行,f2结束后返回f1继续执行

B.f3执行结束后返回f1继续执行,f1结束后返回f2继续执行

C.f2执行结束后返回f3继续执行,f3结束后返回f1继续执行

D.f2执行结束后返回f1继续执行,f1结束后返回f3继续执行


相似考题
更多“若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况 ”相关问题
  • 第1题:

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

  • 第2题:

    已知函数f1()、f2()的定义如下,调用f1时为传值调用,调用f2时为引用调用。设有函数调用t=f1(5),那么调用执行后t的值为( )。

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

    答案:A
    解析:
    首先a=f2(x)=f2(1),代入到f2中进行运算,x的值为0,返回值为1。这里x是引用调用,所以x的终值为0,然后返回值赋给了a。所以a=1。最终t的值为a+x=1。

  • 第3题:

    已知函数f1、f2的定义如下,调用f1时为传值调用,调用f2时为引用调用。设有函数调用t=f1(5),那么调用执行后t的值为( )。

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

    答案:A
    解析:
    本题考查程序语言基本知识。
    首先a=f2(x)=f2(1),代入到f2中进行运算,x的值为0,返回值为1。这里x是引用调用,所以x的终值为0,然后返回值赋给了a。所以a=1。最终t的值为a+x=1。选择A。

  • 第4题:

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

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

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

  • 第5题:

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

    A.5
    B.20
    C.36
    D.45

    答案:D
    解析:
    传址调用(引用调用) : 将实参地址给形参
    由于f1采用传值调用, X值不发生变化X=5 ; f2采用传址调用,会对B的值产生影响,当执行b=x-1后b=4 ;当执行f2中2*x+1后, b=9 ;所以最后b*x= 5*9=45