问题 单项选择题

以下程序运行后的输出结果是 #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。

单项选择题 A3/A4型题
名词解释