问题
单项选择题
以下程序的输出结果是______。 int d=1; fun(int p) { static int d=5;d+=p;printf("%d ",d);return(d); } main() { int a=3;printf("%d\n",fun(a+fun(d))); }
A.699
B.669
C.6 15 15
D.6615
答案
参考答案:C
解析: 本题要注意静态变量d。第1次执行fun(d),即fun(1),在函数fun里对静态变量赋初值5,得到d=d+p=5+1=6并输出,返回6;第2次执行fun(a+fun(d)),即fun(3+6)=fun(9),在函数fun中直接执行d=d+p=6+9=15并输出,然后返回15再一次输出。