有以下程序 #include<stdio.h> intfun( ) {staticintx=l; x*=2:returnx; } main( ) {inti,s=1; for(i=1;i<=2;i++)s=fun( ); printff’

admin2014-06-18  44

问题 有以下程序
#include<stdio.h>
intfun(    )
{staticintx=l;
x*=2:returnx;
}
main(    )
{inti,s=1;
for(i=1;i<=2;i++)s=fun(    );
printff’’%d\n’’,s);
}
程序运行后的输出结果是

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

答案A

解析 在子函数fun(    )中定义局部静态变量x,其初值等于l,然后再把其值扩大1倍后返回。在主函数中执行for循环语句2次,调用函数fun(    )两次,所以变量s的值等于4。这里要强调的一点是当函数fun(    )执行完毕后,局部静态变量x的值不会丢失,仍然有效。
转载请注明原文地址:https://jikaoti.com/ti/opn0FFFM
0

最新回复(0)