问题
单项选择题
下述程序的输出结果是( )。 # include <stdio.h>int fun( int a) { int b=0; static int c=3; b++,c++; return a+b+c; } void main() { int x=2,i; for(i=1;i<3;i++) printf("%d",fun(x)); }
A.56
B.67
C.78
D.89
答案
参考答案:C
解析: 本题主函数中的for循环会循环两次,即输出连续两次调用fun(2)的返回值。在fun()函数中定义了一个静态变量c,第一次调用fun()时c被初始化为3,然后自增为4,最后输出a+b+c为2+1+4=7。由于静态变量的生存周期为整个程序执行周期,所以第二次调用fun()时c的值为4,然后自增为5,故最后输出a+b+c为2+1+5=8。所以程序的输出结果是78,应该选择C。