柠檬试题库
search
首页 计算机 公务员 驾照 关于

有以下程序: #include fun(int x, int y) { static int m=0, i=2;  i+=m+1; m=i+x+y; return m; } main() { int j=1, m=1, k;  k=fun(j,m); printf("%d,",k);  k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是(  )。


  • A.5, 11
  • B.5, 5
  • C.11, 11
  • D.11, 5
热度🔥715
参考答案:A
解析:

【解析】声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数fun中的变量 i和m均为静态局部变量。所以第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,m的值已经是5了,所以执行i+=m+1,i的值变为9,m=i+x+y=9+1+1=11。
复制题目向AI提问