A-A+

以下程序中函数sort的功能足对a所指数组中的数据进行由大到小的排序 void sort(i

2022-08-05 21:42:03 问答库 阅读 172 次

问题详情

以下程序中函数sort的功能足对a所指数组中的数据进行由大到小的排序 void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+l,j<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t; } } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=0;i<10;i++) print("%d, ",aa[i]); printf("n"); } 程序运行后输出的结果是
A.1,2,3,4,5,6,7,8,9,10
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3,8,7,6,5,4,9,10
D.1,2,10,9,8,7,6,5,4,3,请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
解析:本题考查的知识点是数组名作为函数的参数以及函数与排序算法结合在一起的综合应用.本题中首先定义一个长度为10的一个整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()数是对具有n个元素的a数组进行从大到小排序.由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3)的地址,即把aa[3]的地址传给?行参数蛆名a,函数也就是对aa[3]开始的5个元素进行从大到小的排序,aa[0]。aa[1],aa[2]、aa[8]、aa[9]并没有变化.Sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。所以4个选项中C正确。

考点:函数,指数