有以下程序 #include <stdio.h> int a=2; int f(int k) { static int n=0; int m=0; n++; a++; m++; k++; return n+m+a+k;

admin2020-11-27  19

问题 有以下程序
#include  <stdio.h>
int a=2;
int f(int  k)
{  static int  n=0;
   int   m=0;
   n++;  a++;  m++;  k++;
   return n+m+a+k;
}
main( )
{  int  k;
   for (k=0; k<2; k++)   printf("%d,", f(k));
   printf("\n");
}
程序运行后的输出结果是

选项 A、6,9,
B、6,10,
C、6,6,
D、6,7,

答案A

解析 static定义一个静态分布变量,变量只会初始化一次,在for循环体内调用f()函数输出,f()函数是将当前n,m,a,k加1后进行累加返回主函数输出,第二次累加时,n值初始值为1,因此输出分别为6,9,答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/djD0FFFM
0

最新回复(0)