有以下程序: int f(int n) { if(n==1)retuxn 1; else return f(n-1)+1; } main() { int i, j=0; for(i=1; i<3;

admin2010-09-05  22

问题 有以下程序:    int f(int n)    {  if(n==1)retuxn 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是递归函数,主函数中语句j+=f(i)共执行了两次,首次执行时j=j+f(i)=0+f(1)=f(1)=1;第二次执行时j=j+f(2)=1+f(2)。其中f(2)=f(1)+1-1+1=2,因此j=1+f(2)=1+2=3,即printf语句输出结果为3。
转载请注明原文地址:https://kaotiyun.com/show/qfWp777K
0

最新回复(0)