以下程序运行后的输出结果是【 】。 int a=5; fun(int b) { static int a=10; a+=b++; printf("%d",a); } main

admin2010-09-05  23

问题 以下程序运行后的输出结果是【  】。
      int a=5;
        fun(int b)
   {  static int a=10;
        a+=b++;
        printf("%d",a);
   }
   main()
   {  int c=20;
     fun(c);
      a+=c++;
   printf("%d\n",a);
   }

选项

答案30 25

解析 C语言规定如果全局变量与局部变量同名,在局部变量的作用域内全局变量不起作用。调用函数fun(c)时,在 fun内部局部变量a起作用,即a=10,执行语句a+=b++得a=a+b++=a+b=10+20=30,执行printf语句输出30;在main函数内执行语句a+=c++;时,a是全局变量,值为5,因此a=a+c=5+20=25,执行printf语句输出为25。
转载请注明原文地址:https://kaotiyun.com/show/4MWp777K
0

最新回复(0)