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

admin2020-10-26  36

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

选项 A、3,5,
B、3,6,
C、3,7,
D、0,3,

答案A

解析 static静态变量只在声明时初始化一次。因此,第一次调用函数f(k=0),此时n=m=k=0, 经过自增操作n=1,m=1,k=1,返回值为3,第二次调用函数f(k=1),此时n=1,k=1,m=0,经过自增操作,n=2,k=2,m=1,返回值为5.故最终结果为3,5。故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/lx3p777K
0

最新回复(0)