问题 单项选择题

设有以下函数:f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______。 main() { int a=2, i;for(i=0; i<3; i++)printf("% d\n", f(a)); }

A.7 8 9

B.7 9 11

C.7 10 13

D.7 7 7

答案

参考答案:A

解析: 本题考查静态变量的问题。函数f中c是静态变量存放在静态存储区,在程序的整个运行期间都不释放占据的存储单元。函数f被调用3次,调用过程如下。 第1次调用;a=2、b=0、c=3,执行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7 第2次调用:a=2、b=0、c=4.执行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8 第3次调用:a=2、b=0、c=5,执行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9 所以输出结果为选项A。

单项选择题 A1/A2型题
单项选择题 A型题