以下程序运行后的输出结果是______。 fun(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } main()

admin2013-06-11  34

问题 以下程序运行后的输出结果是______。
   fun(int  a)
   {  int  b=0;  static int c=3;
       b++;  c++;
       return(a+b+c);
   }
    main()
    {  int  i,a=5;
        for(i=0;i<3;i++) printf("%d %d",i,fun(a));
        printf("\n");
    }

选项

答案0 10 1 11 2 12

解析 本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量i和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为 5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。
转载请注明原文地址:https://jikaoti.com/ti/Pzn0FFFM
0

最新回复(0)