有以下程序: #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,",

admin2021-02-25  37

问题 有以下程序:
#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=l,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/kotp777K
0

最新回复(0)