问题
填空题
以下程序运行后的输出结果是 。
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。