C语言题:求结果,要给出解释
第一题f(intb){staticinty=3;return(b+y++);}main(){inta=2,i,k;for(i=0;i<2;i++)printf(″%d\n...
第一题
f(int b)
{ static int y=3;
return(b+y++);
}
main()
{ int a=2,i,k;
for(i=0;i<2;i++)
printf(″%d\n″,f(a++));
第二题
int funs(int n)
{ if(n= =1 ||n= =2) return 2;
else return n+funs(n-1);
}
main()
{ int x=4;
printf(″S=%d\n″,funs(x));
} 展开
f(int b)
{ static int y=3;
return(b+y++);
}
main()
{ int a=2,i,k;
for(i=0;i<2;i++)
printf(″%d\n″,f(a++));
第二题
int funs(int n)
{ if(n= =1 ||n= =2) return 2;
else return n+funs(n-1);
}
main()
{ int x=4;
printf(″S=%d\n″,funs(x));
} 展开
2个回答
展开全部
#include<stdio.h>
int f(int b)
{ static int y=3;
return(b+y++);
}
main()
{ int a=2,i,k;
for(i=0;i<2;i++)
printf("%d\n",f(a++));
}
调用函数f(a++)
b=a=2
返回b+y =5 y++ y=4
a++ a=3
再调用f(a++)
b=a=3
返回b+y =7 y++ y=5
a++ a=4
所以答案 5 7
#include<stdio.h>
int funs(int n)
{
if(n==1||n==2)
return 2;
else
return n+funs(n-1);
}
main()
{
int x=4;
printf("S=%d\n",funs(x));
}
x=4 调用f(x) n=4
继续调用f(x) n=3
继续调用f(x) n=2
满足 n==1||n==2 为真
返回2
返回2+3=5
返回5+4=9
返回到主函数 所以s=9
追问
请问 调用函数f(a++) 后 为什么就b=a了
追答
这是函数的传参 b是形参 a是实参 把a的值传给b
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询