问题 单项选择题

有下列程序:

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[j]; 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]);

printf("\n");

程序运行后的输出结果是( )。

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函数的作用是将指定的数由大到小排序。主调函数“sort(aa+2,5);”中的实参aa+2是指aa[2]的地址,将其传给了形参a[],使得形参中a[0]的值为主函数中aa[2]的值,即3;实参中的5传绐形参中的n,在sort函数中起着限制循环次数的作用,即使得参加排序的只有5个数,从aa[2]到aa[6],所以本题输出的结果是1,2,7,6,5,4,3,8,9,10,。

选择题
问答题