问题
单项选择题
以下程序运行后的输出结果是 #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。