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

admin2009-04-15  25

问题 有以下程序:    main()    {  int x[]={1,3,5,7,2,4,6,0),i,j,k;    for(i=0;i<3;i++)    for(j=2;i>=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、7.53102e+007
B、01234567
C、7.63105e+007
D、1.35702e+007

答案1

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

最新回复(0)