问题
填空题
以下程序的输出结果是______。
#include<stdio.h>
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(j,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。