itgle.com
更多“有以下程序int f(int n){if(n==1)return 1; else return f(n-1)+1;}main(){int i,j=0; for(i=1;i ”相关问题
  • 第1题:

    有以下程序int f(int n){ if(n==1 return 1; else return f(n-1)+1;}main(){ int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j);}程序运行后的输出结果是A.4 B.3 C.2 D.1


    正确答案:B
    在main函数中,对f(1)和f(2)的值进行了累加。
    f(1)=1
    f(2)=f(1)+1=2
    最后,j的值为1+2=3。

  • 第2题:

    有以下程序 int f(int n) { if (n==l) return 1; else return f(n-1)+1; } main () { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf {"%d\n", j ); } 程序运行后的输出结果是

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:本题考查的知识点是递归函数.通过分析不难写出,f()函数的数学表达式为:f(n)=1n=1;f(n)=f(n-1)+1n不等于1;在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到i中,i的值为1。第二次i为2,调用f(n),根据递归公式可知“f(2)=f(1)+1”,得到返回值2并把它加到i中,j的值为3。所以最后输出的j的值为3,所以4个选项中B正确。

  • 第3题:

    有以下程序: int f(int n) { if (n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:通过分析不难写出,f()函数的数学表达式为:
      f(n)=1  n=l;
      f(n)=f(-1)+1  n≠1;
      在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到j中,j的值为1。第二次i为2,调用f(n),根据递归公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值为3。所以最后输出,i的值为3。

  • 第4题:

    有以下程序

    int f(int n)

    { if(n==1)return 1;

    else return f(n-1)+1;}

    main()

    { int i,j=0;

    for(i=1;i<3;i++)j+=f(i);

    printf("%d\n",j);}

    程序运行后的输出结果是

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:在main函数中,对f(1)和f(2)的值进行了累加。
    f(1)=1
    f(2)=f(1)+1=2
    最后,j的值为1+2=3

  • 第5题:

    有以下程序 int f(int n) { if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<5;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )

    A.15

    B.10

    C.6

    D.3


    正确答案:B