问题
填空题
若有如下程序:
void sub()
static int x=8;
x/=2;printf("%d",x);
main()
int m;
for(m=0;m<2;m++) sub();
则程序运行后的输出结果是 【9】 。
答案
参考答案:42
解析: 主函数中的for循环循环两次,即函数sub()被调用两次。在sub()中x被定义为静态整型变量,当调用函数sub()完毕返回主函数,x中的值仍然保留,下次调用函数sub()时,x不再被赋初值。第1次调用x/=2相当于x=x/2=8/2=4,第2次调用x=x/2= 4/2=2,因此输出42。