问题 单项选择题

有以下程序:
void sort(int a[],int n)

int i,j,t;
fbf(i=0;i<n;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,。

单项选择题
填空题