下面程序输出的是( )。 main() { int t=1;fun(fun(t));} fun(int h) { static int a[3]={1,2,3); int k; for(k=0;k<3;k++)a[k]+=

admin2012-12-03  21

问题 下面程序输出的是(  )。
  main()
  { int t=1;fun(fun(t));}
  fun(int h)
  { static int a[3]={1,2,3);
    int k;
    for(k=0;k<3;k++)a[k]+=a[k]-h;
    for(k=0;k<3;k++)printf("%d",a[k]);
    printf("\n");
    return(a[h]);}

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

答案D

解析 本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为-1,3,7。
转载请注明原文地址:https://kaotiyun.com/show/JwPp777K
0

最新回复(0)