有以下程序 #include <stdio.h> int mul(int val) { static int init = 1; return init *= val; } main( ) { int i; for (i=1; i<

admin2020-01-10  20

问题 有以下程序
#include   <stdio.h>
int mul(int  val)
{  static int init = 1;
   return init *= val;
}
main( )
{  int  i;
   for (i=1; i<=5; i++)
        printf("%d,", mul(i));
}
程序运行后的输出结果是

选项 A、1,2,6,24,120,
B、1,2,3,4,5,
C、1,1,1,1,1,
D、1,2,4,6,8,

答案A

解析 static静态变量只在声明时初始化一次。mul()累乘,第一次init=1,init*=val,
第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五层init=24,val=5,因此结果为1,2,6,24,120。故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/zWCp777K
0

最新回复(0)