有以下程序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.3C.2 D.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.3C.2 D.1


相似考题
更多“有以下程序int f(int n){ if(n==1)return 1; else return f(n-1)+1;}main(){ int i,j=0; for(i=1 ”相关问题
  • 第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
    解析:本题考查的知识点是递归函数。通过分析不难写出,f()函数的数学表达式为:
      f(n)=1  n=1;
      f(n)=f(n-1)+1  n不等于1;
      在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值 1,并把它加到i中,i的值为1。第二次i为2,调用f(n),根据递归公式可知“f(2)=f(1) +1”,得到返回值2并把它加到j中,j的值为3。所以最后输出的j的值为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