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

admin2019-08-18  22

问题 有以下程序
#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,其初值等于1,然后再把其值扩大1倍后返回。在主函数中执行for循环语句2次,调用函数fun()两次,所以变量s的值等于4。这里要强调的一点是当函数fun()执行完毕后,局部静态变量x的值不会丢失,仍然有效。
转载请注明原文地址:https://kaotiyun.com/show/SpRp777K
0

相关试题推荐
最新回复(0)