下述程序的输出结果是( )。 # include <stdio.h> int fun( int a) { int b=0; static int c=3; b++,c++; return a+b+c

admin2010-01-10  34

问题 下述程序的输出结果是(  )。    #  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

答案4

解析 本题主函数中的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。
转载请注明原文地址:https://jikaoti.com/ti/byI0FFFM
0

最新回复(0)