A-A+

有下列程序: structS{intn;inta[20];); voidflint*a in

2022-08-12 19:13:02 问答库 阅读 197 次

问题详情

有下列程序: structS{intn;inta[20];); voidflint*a,intn) {inti; for(i=0;i<n-1;i++)a[i]+:i; ) main() {inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}); f(s.a,s.n); for(i=0;i<s.n;i++)printf(”%d,”,s.a[i]); ) 程序运行后的输出结果是
A.3,4,2,7,9,8,6,5,11,10,
B.2,3,1,6,8,7,5,4,10,9,
C.2,4,3,9,12,12,11,11,18,9,
D.1,2,3,6,8,7,5,4,10,9

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
voidf(int*a,intn)函数的功能是对数组a[]的每一个元素加上其下标的值。所以在main()函数中f(s.as.n)语句会调用f(int*a,intn)函数,此时指针a指向数组s.a={2,3,l,6,8,7,5,4,10,9},n=10:然后执行for(i=0;i<n.1;i++)a[i]+=i;语句,也就是从0开始到8对数组s.a={2,3,1,6,8,7,5,4,10,9}中的每一个元素加上其下标值。

考点:程序