问题 单项选择题

以下程序的输出结果是______。 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再一次输出。

单项选择题
单项选择题