c语言程序,求答案和解题过程。
#include<stdio.h>intadds(intx,inty);voidmain(){inta=5,b=-1,c;c=adds(a,b);printf("%d,"...
#include<stdio.h>
int adds(int x,int y);
void main()
{int a=5,b=-1,c;
c=adds(a,b);
printf("%d,",c);
c=adds(a,b); printf("%d\n",c);
}
int adds(int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);} 展开
int adds(int x,int y);
void main()
{int a=5,b=-1,c;
c=adds(a,b);
printf("%d,",c);
c=adds(a,b); printf("%d\n",c);
}
int adds(int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);} 展开
2个回答
展开全部
#include<stdio.h>
int adds(int x,int y);
void main()
{
int a=5,b=-1,c;
printf("调用函数add,将a,b的值作为参数进行传值,a,b值不变\n");
c=adds(a,b);
printf("运行函数add 静态变量m初值0 n初值3\n");
printf("执行n*=++m; m先++再取值运算, n=3\n");
printf("执行m=n%x+y++; y先取值运算再++ m=3%5-1, m=2 ,返回打印m的值 打印“2,”\n");
printf("再次调用函数add 传参值不变,静态变量值保留,m初值2 n初值3\n");
printf("执行n*=++m; m先++再取值运算, n=9\n");
printf("执行m=n%x+y++; y先取值运算再++ m=9%5-1, m=3 ,返回打印m的值 打印“3”\n");
printf("所以最终打印:\n");
printf("%d,",c);
c=adds(a,b); printf("%d\n",c);
}
int adds(int x,int y)
{
static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询