作业帮 > 综合 > 作业

fun(int x,int y) {static int m=0,i=2;i+=m+1;m=i+x+y;return m

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 12:34:55
fun(int x,int y) {static int m=0,i=2;i+=m+1;m=i+x+y;return m;}
fun(int x,int y)
{static int m=0,i=2
;i+=m+1;m=i+x+y;return m;
}
main()
{int j=1,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
}
输出结果是多少
11
i+=m+1含义为:i=i+m+1.
第一次调用子程序fun时,赋值得:x=j=1,y=m=1.而子程序里m=0,i=2.所以
运行i+=m+1得 i=3; 运行m=i+x+y得 m=5.同时返回值m=5,即把5赋值给fun,即k=5,输出k=5.在这次调用中x、y值没改变,所以fun(j,m)中的j、m值不变.
第二次调用fun时,赋值还得:x=j=1,y=m=1.而此时,因m、i为static型变量,即静态变量,它们保持上次运行结果即m=5,i=3,通过运算的m=11.