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

admin2013-06-11  33

问题 以下程序运行后的输出结果是______。
   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。
转载请注明原文地址:https://kaotiyun.com/show/e8Jp777K
0

最新回复(0)