下列程序执行输出的结果是【 】。 #include<stdio.h> f(int a) { int b=0; static c=3; a=c++,b++; return(a);} main()

admin2009-02-15  32

问题 下列程序执行输出的结果是【  】。
   #include<stdio.h>
   f(int a)
   {  int b=0;
      static c=3;
      a=c++,b++;
      return(a);}
   main()
   {  int a=2,i,k;
      for(i=0;i<2;i++)
           k=f(a++);
      printf("%d\n",k);}

选项

答案4

解析 本题考查了静态存储类别的局部变量的特点。静态存储类别的局部变量在程序的整个生存周期内都存在,但作用域却只局限于定义它的函数或局部范围。当i=0时执行第一次for循环,k=f(2),a=c+ +,b++;因为赋值运算符的优先级高于逗号运算符,所以a=3,c=4;当i=1时执行第二次for循环,k=f(3), a=c++,b++;因为c为静态局部变量所以保留着这一次执行的结果值4,所以a=4,c=5,所以函数f()返回a的值为4。
转载请注明原文地址:https://kaotiyun.com/show/CfXp777K
0

最新回复(0)