有以下程序: 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;

admin2009-01-15  28

问题 有以下程序:    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);    }    执行后的输出结果是(    )。

选项 A、5,5
B、5,11
C、11,11
D、11,5

答案2

解析 本题的fun()函数中定义的变量m和i是静态局部变量,第1次调用fun()函数时m=0、 i=2,执行i+=m+1后,i的值变为3,再执行m=i+x+y后,m的值变为5,所以第1次输出的整数是5。第2次调用fun()函数时m=5、i=3,执行i+=m+1,i变为9,再执行m=i+x+y,m变为11,所以第2次输出的整数是11。故本题应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/l6Xp777K
0

最新回复(0)