有以下程序    struct S{ int n;int a[20];};    voidf(struct S*p)    { int i,j,t;      for(i=0;i<p->n-1;i++)        for(j=i+1;j<p->n;j+

admin2009-03-17  35

问题 有以下程序    struct S{ int n;int a[20];};    voidf(struct S*p)    { int i,j,t;      for(i=0;i<p->n-1;i++)        for(j=i+1;j<p->n;j++)          if(p->a>p->a[j]){t=p->a;p->a=p->a[j];p->a[j]=t;}    }    main()    { int i;struct S s={10,{2,3,l,6,8,7,5,4,10,9}};      f(&s);      for(i=0;i<s.n;i++)printf("%d,",s.a);    }     程序运行后的输出结果是

选项 A、1,2,3,4,5,6,7,8,9,10,
B、10,9,8,7,6,5,4,3,2,1,
C、2,3,1,6,8,7,5,4,10,9,
D、10,9,8,7,6,1,2,3,4,5,

答案A

解析 本题中,在调用函数f()时,实参是结构体变量s的地址,所以在函数中对形参的改变会影响到实参的数值。函数f()实现的功能是把结构体的成员数组中的值按从小到大顺序进行排列。
转载请注明原文地址:https://kaotiyun.com/show/bYXp777K
0

最新回复(0)