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

有以下程序: #include int f(int n); main() {  int a=3,s;   s=f(a);s=s+f(a); printf("%d\n",s); } int f(int n) {  static int a=1;   n+=a++;   return n; } 程序运行后的输出结果是(  )。


  • A.9
  • B.8
  • C.7
  • D.10
热度🔥445
参考答案:A
解析:

【解析】题目中静态局部变量a,在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第一次调用函数执行n+=a++;时a先与n相加在再进行自增。n的值为4,a的值为2,且a变量执行完后空间没有释放。再执行 s=s+f(a)时 ,s的值为4,调用f(a)函数时n的返回值为 n=3+2=5,且此时a的值为3了。所以s的值为9。
复制题目向AI提问