以下程序的输出结果是_________。 #include int fun(int x,int y) { static int m=0,i=2: i=i+1: m+=i+x+y; return m } main() { int j=

admin2012-12-03  28

问题 以下程序的输出结果是_________。
#include
int fun(int x,int y)
{ static int m=0,i=2:
  i=i+1:
  m+=i+x+y;
  return m
}
main()
{   int j=4,m=1,k;
     k=fun(j,m);printf("%d,",k);
     k=fun(j,m);printf("%d\n",k)
}

选项

答案8,17。

解析 因为在fun中,m、i都是静态局部变量,因此其生存期是直到整个程序的结束,当执行第一个k=fun(i,m)时,返回值m+i+x+y,其中x+y=j+m,m=0+3+4+1=8,接着再次执行k=fun(j.m)后,返回值m=4+8+4+1=17。
转载请注明原文地址:https://kaotiyun.com/show/mrPp777K
0

最新回复(0)