试题与答案

下面程序的输出是( )。 main() int t=1;fun(fun(t)

题型:单项选择题

题目:

下面程序的输出是( )。
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。

试题推荐
微信公众账号搜索答案