有以下程序: #include <stdio. h> 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

admin2009-01-15  28

问题 有以下程序:   #include <stdio. h>  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);    prinff("\n" );}程序运行后的输出结果是(    )。

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

答案1

解析 本题考查的是排序算法。
   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;}
该段程序的作用是将数组元素x[0]~x[3]中的数由大到小排列,得到x[]{7,5,3,1,2,4,6,0}。
    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;}
该段程序的作用是将数组元素x[4]~x[7]中的数由小到大排列,得到x[]={7,5,3,1,0,2,4, 6}。因此输出结果为75310246。
转载请注明原文地址:https://kaotiyun.com/show/tUXp777K
0

最新回复(0)