问题
单项选择题
以下程序的输出结果是( ) int d=1; fun(int p) { static int d=5; d+=P: printf("%d",d); return(d); } main() { int am=3; printf("%d\n",fun(a+fun(d))): }
A.6 9 9
B.6 6 9
C.6 15 15
D.6 6 15
答案
参考答案:C
解析: int d=1; fun(int p) { static int d=5;/*变量d被定义为static存储类型的int整型变量,作用域仪限两数fun(int p)内。函数fun(int p)被执行之后变量d仍然存在,再次执行函数fun(int p)时所使用的变量d的值是上次调用函数fun(int p)时d所得到的新值。*/ d+=P; printf("%d",d);/*每次调用都会打印输出d的值*/ return(d);/*返回d的值*/ main() { int a=3; printf("%d\n",fun(a+fun(d)));/*此处调用函数fun(int p)时,所用的变量d为整个程序段头所定义的d*/ }