有以下程序:
#include <stdio.h>
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[i]<a[j])
t=a[i];
a[i]=a[i];
a[j]=t;
main()
int aa[10]=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i;
sort(aa+2, 5);
for(i=0; i<10; i++)
printf(" %d, ", aa[i]);
A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, B) 1, 2, 7, 6, 3, 4, 5, 8, 9, 10,
C) 1, 2, 7, 6, 5, 4, 3, 8, 9, 10, D) 1, 2, 9, 8, 7, 6, 5, 4, 3, 10,
参考答案:C
解析: 本题考查的是考生对代码的阅读能力。先看sort()函数,它没有返回值,有两个参数,一个int型数组和一个int型变量。在函数中是一个二重循环,外循环变量i从0递增到n-2,内循环变量j从i+1递增到n-1。内循环体是一条if语句“如果a[i]<a[j]就把两个值交换”。这是一个典型的从大到小选择排序算法,排序的范围是a[0]~a[n-1],一共n个数排序。主函数中定义了一个数组aa[10],然后调用sort(aa+2, 5);的意思是将aa[2]-aa[6]范围的5个数据从大到小排序。