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

admin2020-04-18  55

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

选项 A、7
B、3
C、0
D、10

答案A

解析 静态变量只在初次定义时赋初值,且子函数的静态变量一直在内存中,当下次调用该函数时,静态变量还具有上次调用结束时的值,且不会被再次赋值,所以本题第1次调用结束时x=3,当第2次调用时,x=2*3+1=7,选项A正确。
转载请注明原文地址:https://jikaoti.com/ti/XWG0FFFM
0

最新回复(0)