有下列程序的输出结果是( )。 struct S{int n;int a[20];}; void f(int*a,int n) {int i; for(i=0;i<n一1;i++)a[i]+=i;} main() {int i;struet S s={1

admin2017-10-24  23

问题 有下列程序的输出结果是(  )。
struct S{int n;int a[20];};
void f(int*a,int n)
{int i;
for(i=0;i<n一1;i++)a+=i;}
main()
{int i;struet S s={10,{1,2,3,4,5,6,7,8,9,10}};
f(s.a,s.n);
for(i=0;i<s.13;i++)printf(’’%d,’’,s.a);}

选项 A、2,4,6,8,10,12,14,16,18,10
B、2,3,1,6,8,7,5,4,10,9,
C、1,3,5,7,9,1 l,13,15,17,10,
D、1,2,3,6,8,7,5,4,10,9,

答案C

解析 题目中子函数的功能是对数组a[]的每一个元素加上其下标的值。所以主函数中f(s.a,s.n)语句会调用f(int*a,int n)函数,此时指针a指向数组s.a={1,2,3,4,5,6,7,8,9,10},n=10;也就是说从0开始到8对数组中的每一个元素加上其下标值。
转载请注明原文地址:https://kaotiyun.com/show/lbxp777K
0

最新回复(0)