有如下递归函数:int Fun(int n){if(n<=1) return 1;______}请补充完整,使得函数Fun能够正确计算形参n的阶乘。

题目

有如下递归函数:

int Fun(int n){

if(n<=1) return 1;

______

}

请补充完整,使得函数Fun能够正确计算形参n的阶乘。


相似考题
参考答案和解析
正确答案:else return n*Fun(n-1);
else return n*Fun(n-1); 解析:此题考查的是递归函数。函数Fun中的参数n小于2时,Fun函数返回1,其余返回值为n*Fun(n-1)。
更多“有如下递归函数: int Fun(int n){if(n<=1)return 1;______ } 请补充完整,使得函数Fun能够正确计 ”相关问题
  • 第1题:

    下列给定程序中,函数fun的功能是按以下递归公式求函数值。

    例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

    请改正程序中的错误,使它能得到正确结果。

    注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    /*************found****+*******/

    fun(int n);

    {

    int c;

    /*************found********+*****/

    if(n=1)

    c=15;

    else

    c=fun(n-1)*2;

    return(c);

    }

    main()

    {

    int n;

    printf("Enter n:");

    scanf("%d",&n);

    printf("The result:%d\n\n",fun(n));

    }


    正确答案:(1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1)
    (1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1) 解析:错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if垢面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。

  • 第2题:

    函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是( )。

    A.Fun(20);

    B.Fun(20+n);

    C.Fun(n);

    D.Fun(&n);


    正确答案:C
    C。【解析】本题考查函数的调用。当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。

  • 第3题:

    函数定义为Func(int *p),变量定义为n=100,则下面调用该函数正确的是?

    A.Fun(20)

    B.Fun(20+n)

    C.Fun(n)

    D.Fun(&n)


    B 本题考查的是指针函数。指针函数定义的基本格式为:类型说明符 函数名。其中,“类型说明符”表示返回的指针值所指向的数据类型。

  • 第4题:

    有如下函数模板定义: template T1 fun(T1 a1) { return(al+a2+a3);

    有如下函数模板定义: template<typename T1,int a2,int a3> T1 fun(T1 a1) { return(al+a2+a3); } 则下列调用中正确的是( )。

    A.fun<int,4,3>(5);

    B.fun<4,3>(5);

    C.fun<int,int,int>(5);

    D.fun(5);


    正确答案:A
    解析: 类模板是类的抽象,类是类模板的实例。在调用时,尖括号内指定实际的类型名,在编译时,编译系统就用int取代类模板中的类型参数,这样就具体化了类模板。其中的参数为4,3。

  • 第5题:

    下列函数中,哪项是正确的递归函数( )。

    A int Fun(int n)

    {

    if(n<1) return 1;

    else return n*Fun(n+1);

    }

    B) int Fun(ira n)

    {

    if(abs(n)<1) return 1;

    else return n*Fun(n/2);

    }

    C) int Fun(int n)

    {

    if(n>1) return 1;

    else return n*Fun(n*2)1

    }

    D) int Fun(int n)

    {

    if(n>1) return 1;

    else retun n*Fun(n-1);

    }

    A.A

    B.B

    C.C

    D.D


    正确答案:B
    解析:本题考查递归函数这个知识点。递归函数由递归出口和递归体两部分组成:递归出口给出了递归终止的条件;递归体给出了递归的方式。对于选项A,当参数n>=1时,不满足递归调用的结束条件;对于选项C,当参数n=0时,不满足递归调用的结束条件;对于选项D,当参数n:2时,不满足递归调用的结束条件。