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
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/31 15:39:27
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
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
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.