[问题已解决][求助]递归调用和宏定义的题
1.以下程序输出结果是#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);
}
书上答案是:8
不过,我运行的结果是13
这是怎么算的啊???因为连续有2个递归调用,所以我就搞不清了
2.下面程序的运行结果是
#define POWER(x)((x)*(x))
main()
{ int i=1;
while(i<4)printf("%d\t%d",POWER(i++),i);
printf("\n");
}
书上的答案是:2 12
我运行后的结果是:2 112 3
这又是怎么算的啊?这里并不知道x的值?
\t 是水平制表(跳到下一个tab位置) ,这是什么意思啊?是换行还是空几格呢????
[此贴子已经被作者于2006-7-21 19:41:07编辑过]