A-A+

VN程序中函数f的功能是:当flag为1时 进行由小到大排序;当flag为0时 进行由大到小

2022-08-12 19:10:41 问答库 阅读 197 次

问题详情

VN程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。 yoidf(intb[],intn,intflag) {inti,j,t; for(i=0;i<n-1;i++) for(j=i+lj<nj++) if(flag?b[i]>b[j]:b[i]<bD]) {t=b[i];b[i]=b[j];bD]=t;) } main() {inta[10]={5,4,3,2,1,6,7,8,9,10},i; f(&a[2],5,0); f(a,5,1); for(i=0;i<10;i++、) printf(%d,,a[i]); } 程序运行后的输出结果是
A.1,2,3,4,5,6,7,8,9,10,
B.3,4,5,6,7,2,1,8,9,10,
C.5,4,3,2,1,6,7,8,9,10,
D.10,9,8,7,6,5,4,3,2,1

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

参考答案

正确答案:B
主函数中进行了两次f函数的调用。第一次传递给形参数组b的地址为元素a[2]的地址,n接收数据位5,因此数组b中元素为3,2,1,6,7,此时flag的值为0,进行由大到小排序,而数组b和实参数组a共用一段存储空间,第一次调用结束以后,数组a的值为5,4,7,6,3,2,1,8,9,10。第二次调用f函数,形参数组接收实参数组a的首地址,取5个元素,由小到大排序,调用结束以后,数组a的值为3,4,5,6,7,2,l,8,9,10。

考点:函数,功能