有以下程序: #include<stdio.h> int fun() {static int x=1; x*=2;return x; main() {int i,s=1: for(i=1;i<=2;i++)s=fun(); printf("%din",s)

admin2021-04-28  16

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

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

答案C

解析 fun函数中的x为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用x的值。主函数中调用两次fun函数:第一次调用:x=1,x=x*2=2,s=2;第二次调用:(直接用上次x的值)x=x*2=4,s=4。因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/UDtp777K
0

最新回复(0)