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

admin2022-10-24  21

问题 有以下程序
 #include<stdio.h>
 int mul(int val)
 {  static int init=l;
    return init *=val:
 }
 main()
 {    int i;
    for(i=l;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与变量val的乘积。main函数中,在for循环内调用mul函数。当i=l,init=1,init*=1;当i_2,val=2,init=1×2=2;当i=3,val=3,init=2×3=6;当i=4,val=4,init=4×6=24;当i=5,val=5,init=5×24=120。因此结果为“1,2,6,24,120,”。故本题答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/Snd0FFFM
0

相关试题推荐
随机试题
最新回复(0)