以下程序的输出结果是( )。 #include<stdio.h> int fun(int n,int *s) { int f1,f2; if(n==0||n==1) *s=1; else

admin2009-02-15  27

问题 以下程序的输出结果是(    )。    #include<stdio.h>    int fun(int n,int *s)    { int f1,f2;      if(n==0||n==1)            *s=1;      else            { fun(n-1,&f1);              fun(n-2,&f2);              *s=f1+f2;            } }    void main()    { int x;         fun(6,&x);         printf("\n%d"  ,x);}

选项 A、7
B、13
C、9
D、10

答案2

解析 n=0或n=1是递归的终止条件。然后利用已知值逐步递推求出未知值。注意:通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。
转载请注明原文地址:https://kaotiyun.com/show/SvXp777K
0

最新回复(0)