itgle.com

有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else retu有如下程序: #include<iostream.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2);} void main( ) {cout<<fib(3);} 该程序的输出结果是A.2B.4C.6D.8

题目
有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else retu

有如下程序: #include<iostream.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2);} void main( ) {cout<<fib(3);} 该程序的输出结果是

A.2

B.4

C.6

D.8


相似考题
参考答案和解析
正确答案:B
解析:fib(3)=fib(2)+fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib (3)的值为4。
更多“有如下程序:#include<iostream.h>long fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else retu ”相关问题
  • 第1题:

    有如下程序: long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() {printf("%ld\n",fib(3));} 该程序的输出结果是______。

    A.2

    B.4

    C.6

    D.8


    正确答案:B
    解析:函数fib内部有两个递归调用,当n=3时,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值为4。

  • 第2题:

    有如下程序:includelong fib(int n){if(n>2)return(fib(n-1)+fib(n-2)); else return(

    有如下程序: #include <stdio.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是( )。

    A.2

    B.4

    C.6

    D.8


    正确答案:B
    解析:本题考查函数的递归调用。fib(3)=fib(2)+fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib(3)的值为4。

  • 第3题:

    有以下程序 include using namespace std; long fib(int n) { if(n>2) return(fib(n-1

    有以下程序

    include<iostream>

    using namespace std;

    long fib(int n)

    {

    if(n>2)

    return(fib(n-1)+fib(n-2));

    else

    return 2;

    }

    int main( )

    {

    cout<<fib(3)<<endl;

    return 0;

    }

    则该程序的输出结果应该是______。


    正确答案:4
    4 解析:本题主要考查C++中递归函数,主函数通过调用fib( )函数,fib( )函数的内部再通过一个分支结构判断是否进行递归调用或退出递归调用,调用方式为直接递归调用。主函数通过实参将值3赋给fib( )函数的形参n,由于n=3满足if分支语句条件,因此函数进行递归调用,即计算 fib(2)和fib(1)的值;将2赋给fib( )函数的形参后,由于n=2不满足if语句条件,因此程序退出递归,返回2;将1赋给fib( )函数的形参后,函数同样返回2。因此函数递归调用的最终结果为返回2 +2=4,即fib(3)=4,程序最后输出值为4。

  • 第4题:

    有如下程序:includelong fib(int n){if(n>2) return(fib(n-1) +fib(n-2) ) ; else

    有如下程序: #include<iostream.h> long fib(int n) { if(n>2) return(fib(n-1) +fib(n-2) ) ; else return(2) ;} void main( ) { cout < < nb(3) ;} 该程序的输出结果是

    A.2

    B.4

    C.6

    D.8


    正确答案:B
    解析:fib(3) =fib(2) +fib(1) ,而fib (2) 的返回值为2,fib(1) 的返回值也为2,故输出的fib (3) 的值为4。

  • 第5题:

    有如下程序:includeusing namespace std;long fib(int n){ if(n>2) return(fib(n-1)+

    有如下程序: #include<iostream> using namespace std; long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(n); } void main() { int i; cout<<"请输入一个整数:"; cin>>i;cout<<endl; cout<<fib(i)<<endl; { 当输入4、2时,该程序的输出结果是( )。

    A.5

    B.4

    C.5

    D.6 1 2 2 2


    正确答案:C
    解析:注意递归调用的过程,当输入2作为函数参数时,调用肋()函数直接返回参数值2;当输入参数大于2时有一个递归调用的过程。