有以下程序:    void sort(int  a[],int  n)    {    int  i,j,t;    for(i=0;i<n;i++)      for(j=i+1;<n;j++)         if(a[i]<a[j]){  t=a[

admin2009-02-15  20

问题 有以下程序:    void sort(int  a[],int  n)    {    int  i,j,t;    for(i=0;i<n;i++)      for(j=i+1;<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+2,5);    for(i=0;i<10;i++)printf("%d,",aa );    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,。
转载请注明原文地址:https://kaotiyun.com/show/wqXp777K
0

最新回复(0)