有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[

admin2013-06-11  25

问题 有以下程序:    main()    {      int x[]={1,3,5,7,2,4,6,0},i,j,k;      for(i=0;i<3;i++)        for(j=2;j>=i;j--)          if(x[j+1]>x[j])          {             k=x[j];             x[j]=x[j+1];             x[j+1]=k;          }      for(i=0;i<3;i++)        for(j=4;j<7-i;j++)          if(x[j]>x[j+1])            {             k=x[j];             x[j]=x[j+1];             x[j+1]=k;           }      for(i=0;i<8;i++)        printf("%d",x);      printf("\n");    }    程序运行后的输出结果是(    )。

选项 A、75310246
B、1234567
C、76310462
D、13570246

答案1

解析 主函数中定义了一个整型数组x,并初始化。接着执行了一个二重for循环,在该二重循环的作用是将数组的前4个元素按从大到小排序,接着用了一个二重循环(也是冒泡算法)将数组的后4个元素按从小到大的顺序排序,故最后依次输出数组的个元素的值为75310246,所以,4个选项中选项A符合题意。
转载请注明原文地址:https://jikaoti.com/ti/zEn0FFFM
0

最新回复(0)