以下程序中函数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+

admin2013-02-23  61

问题 以下程序中函数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++)print("%d,",aa);       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,

答案4

解析 本题中首先定义一个长度为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正确。
转载请注明原文地址:https://jikaoti.com/ti/p5n0FFFM
0

最新回复(0)