有以下程序  #include<stdio.h>  void fun(int n)  { static int x[3]={1,2,3};   int k;   for(k=0;k<3;k++)x[k]+=x[k]-n;   for(k=0;

admin2022-10-24  21

问题 有以下程序
 #include<stdio.h>
 void fun(int n)
 {  static int x[3]={1,2,3};
    int k;
    for(k=0;k<3;k++)x[k]+=x[k]-n;
    for(k=0;k<3;k++)printf("%d,",x[k]);
 }
 main()
 {fun(0);fun(1);}
 程序运行后的输出结果是(          )。

选项 A、1,2,3,0,1,2,
B、2,4,6,1,3,5,
C、2,4,6,3,7,11,
D、2,4,6,4,8,12,

答案C

解析 第一次调用fun函数,此时n=0,数组x是静态的。函数只在第1次调用时初始化数组。由“x[k]+=x[k]-n”计算可知,x[]={2,4,6}。第2次调用fun函数,此时n=1,x[]={2,4,6}。经计算,x[]={3,7,11},输出结果为“2,4,6,3,7,11,”。故本题答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/UJkp777K
0

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