问题:
[单选] 下面程序输出的是( )。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,
B . 1,3,5,1,5,9, 1,3,5,
C . 1,3,5,
D . 1,3,5,0,4,8, -l,3,7,
参考答案:D
参考解析:
D。【解析】本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为-l,3,7。