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

admin2019-07-10  28

问题 有以下程序
#include <stdio.h>
int  a = 2;
int f(int k)
{  static int  n;
   int m;
   m = n = 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,8,
B、6,9,
C、6,6,
D、6,7,

答案A

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

最新回复(0)