单选题 有以下程序: #include Struct S{int n;int a[20];}; void f(struct S*p) {int i,j,t; for(i=0;in一1;i++) for(j=i+1;jn;j++) if(p一>a[i]>p一>a[j]) {t=p一>a[i];p一>a[i]=p一>a[j];p一>a[j]=t;} } main() {int i;struct S data={10,{2,3,1,6,8,7,5,4,10,9}}; f(&data); for(i=0;i<data_n;i++)printf(''%d,'',data.a [i]); } 程序运行后的输出结果是( )。
【正确答案】 C
【答案解析】解析:子函数的功能是对结构体的第2个元素数组中的元素进行从小到大的排序,因此结果是C,注意这里是地址传值,所以主函数中的结构体的值会变化,如果采用值传递,则主函数中的结构体的值不会发生变化。