下面程序的运行结果是【 】 #include <iostream> using namespace std; int fun(int n) { static int m = 2; m=m+n;

admin2009-02-15  28

问题 下面程序的运行结果是【  】  
   #include <iostream>
   using namespace std;
   int fun(int n)
   {
      static int m = 2;
      m=m+n;
      return m;
   }
   int main ( )
   {
      int a = 3, b = 4;
      int x;
      x = fun( a );
      x = fun( b );
      cout<<x<<end1;
      return O;
   }

选项

答案9

解析 本题主要考察C++中变量的存储类别及其生存周期。函数fun()中的变量m被定义为静态static变量,即为局部静态变量,其特点是只在函数内部可见,但存储在全局数据区,函数执行过后变量仍存在。 主函数第一次调用fun()函数后,将实参a=3赋值给形参n,因此返回值为:x=m= m+n=2+3=5。主函数再次调用fun()函数时,由于m存储在全局数据区,因此其值仍然为5,由此得到此次返回值:x=m=m+n=5+4=9。 因此程序的最后输出为9。
转载请注明原文地址:https://kaotiyun.com/show/Q7kp777K
0

最新回复(0)