单选题 阅读下列程序,则运行结果为( )。
#include <stdio.h>
fun()
static int x=5;
x++;
return x;
main()
fint i, x,
for(i=0; i<3; i++)
x=fun();
printf("%d/n", x);
A) 5 B) 6 C) 7 D) 8

【正确答案】 D
【答案解析】[解析] 在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数fun(),三次对静态变量x进行操作,x的值应依次为6, 7, 8。