有以下程序 #include int fun() { static int x=1; x*=2; return x; } main() { int i,s=1; for(i=1;i

admin2020-05-19  21

问题 有以下程序
#include
int fun()
{ static int x=1;
x*=2; return x;
}
main()
{ int i,s=1;
for(i=1;i<=2;i++) s=fun();
printf("%d\n",s);
}
程序运行后的输出结果是( )。

选项 A、4
B、1
C、0
D、8

答案A

解析 fun()中的x为一个静态变量。静态变量在编译时就被分配存储空间,所占用存储单元直到程序结束时才释放,它的值在程序运行过程中一直存在,且变量的初始化只进行一次。所以第一次调用函数fun()时,得s=2;第二次调用函数fun()时,x仍保留第一次调用时的计算结果2,计算后s=4,所以答案选A。
转载请注明原文地址:https://jikaoti.com/ti/WCG0FFFM
0

随机试题
最新回复(0)