问题 填空题

以下程序运行后的输出结果是 【5】 。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。

名词解释
多项选择题