问题 填空题

下面程序的运行结果是 【8】 #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; }

答案

参考答案:I

解析: 本题主要考察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。

单项选择题
单项选择题