问题
单项选择题
以下程序运行后的输出结果是
#include<stdio.h>
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) 7
B) 8
C) 9
D) 10
答案
参考答案:C
解析: 本题考查静态局部变量。第一次调用f函数时,将实参a值3传给形参变量n,此时,静态局部变量a的值为1,经过n+=a++运算后,n为4,a为2,return语句将4带回到main函数赋给s;第二次调用f函数时,将实参a值3(注意,实参a的值并未改变)传给变量n,此时,静态局部变量a的值为2,经过n+=a++运算后,n为5,a为3,return语句将5带回到main函数,s=s+f(a)=4+5=9。