以下程序的输出结果是______。 int f() { static int i=0; int s=1; s+=i; i++; return s; } main() { int i

admin2010-09-05  39

问题 以下程序的输出结果是______。       int f()    {  static int i=0;       int s=1;       s+=i; i++;       return s;    }    main()    {  int i, a=0;       for(i=0; i<5; i++)           a+=f();       printf("% d\n" , a);    }

选项 A、20
B、24
C、25
D、15

答案D

解析 函数f中变量i为静态变量,函数f调用结束后变量i所占据的存储单元不会释放,而在主函数中f被调用5次,具体过程如下。
   第1次调用f:s=s+i=1+0=1,i=i+1=1,主函数中a=a+f()=O+1=1
   第2次调用f:s=s+1=1+1=2,i=i+1=2,丰函数中a=a+f()=1+2=3
   第3次调用f:s=s+1=1+2=3,i=i+1=3,主函数中a=a+f()=3+3=6
   第4次调用f:s=s+i=1+3=4,i=i+1=4,主函数中a=a+r()=6+4=10
   第5次调用f:s=s+i=1+4=5,i=i+4=5,主函数中a=a+f()=10+5=15
   所以printf语句的输出结果为15。
转载请注明原文地址:https://kaotiyun.com/show/npWp777K
0

随机试题
最新回复(0)