问题 填空题

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

解析: 本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中int a=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中 static int a=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用; 自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中int c=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中 a+=b++相当于a=a+b,b=b+1.所以,在第一个 ptine("%d",a)中 a=a+b=10+20=30, 第二个 printf("%d",a)中a=a+c=5+20=25,即输出30 25。

单项选择题
填空题