有下列程序: struct S{int n;int a[20];}; void f(int*a,int n) {int i; for(i=0;i

admin2019-12-17  22

问题 有下列程序:
    struct S{int n;int a[20];};
    void f(int*a,int n)
    {int i;
    for(i=0;i+=i;}
    main()
    {int i;struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
    f(s.a,s.n);
    for(i=0;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,1 1,1l,18,9,
D、1,2,3,6,8,7,5,4,10,9,

答案C

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

最新回复(0)