若有如下程序: void sub() { static int x=8; x/=2;printf("%d",x); } main() { int m; for(m=0;m<2;m++) sub();

admin2013-02-23  20

问题 若有如下程序:
   void sub()
   {    static  int  x=8;
   x/=2;printf("%d",x);
   }
   main()
   { int m;
   for(m=0;m<2;m++)    sub();}
   则程序运行后的输出结果是【  】.  

选项

答案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。
转载请注明原文地址:https://kaotiyun.com/show/r2Jp777K
0

最新回复(0)