以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。    void f(int b[],int n,int flag)    { int i,j,t;      for(i=0;i<n-1;i++)     

admin2009-03-17  26

问题 以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。    void f(int b[],int n,int flag)    { int i,j,t;      for(i=0;i<n-1;i++)        for(j=i+1;j<n;j++)          if(flag?b>b[j]:b<b[j]){t=b;b=b[j];b[j]=t;}    }    main()    { int a[10]={5,4,3,2,1,6,7,8,9,10},i;      f(&a[2],5,0);f(a,5,1);      for(i=0;i<10;i++)printf("%d,",a);    }    程序运行后的输出结果是

选项 A、1,2,3,4,5,6,7,8,9,10,
B、3,4,5,6,7,2,1,8,9,10,
C、5,4,3,2,1,6,7,8,9,10,
D、10,9,8,7,6,5,4,3,2,1,

答案B

解析 在main()中,“f(&a[2],5,0);”语句的功能是对数组a[10]中从a[2]到a[6]的数宇(即3,2,1, 6,7)进行从大到小排序,这时数组a[10]中的数字序列变为{5,4,7,6,3,2,1,8,9,10}。“f(a,5,1);”语句的功能是对数字序列{5,4,7,6,3,2,1,8,9,10}中的5,4,7,6,3进行从小到大的排序,所以数组a[10]中的数字序列最终变为{3, 4,5,6,7,2,1,8,9,10}。
转载请注明原文地址:https://jikaoti.com/ti/6pK0FFFM
0

最新回复(0)