以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)

admin2010-01-10  26

问题 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序    void sort(int a[],int n)    {  int i,j,t;      for(i=0;i<n-1;i++)      for(j=i+1;j<n;j++)      if(a<a[j])  {t=a;a=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++)printf(“%d”,aa );      pfintf(“\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

答案4

解析 本题中首先定义一个长度为10的一个整型数组,并初始化为“l,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”。
转载请注明原文地址:https://kaotiyun.com/show/1XWp777K
0

最新回复(0)