有以下程序: #include void fun(int a[],int n,int flag) { int i=0,j,t; for(i=0;i

admin2019-01-11  15

问题 有以下程序:
    #include
    void fun(int a[],int n,int flag)
    {  int i=0,j,t;
    for(i=0;i    f10T(j=i+1;j    if(flag)
    {if(a    {t:a;a=a[j];a[j]=t;}
    }
    else
    {if(a>a[j])
    {t=a;a=a[j];a[j]=t;}
    }
    }
    main()
    {  int c[10]={7,9,10,8,3,5,1,6,2,4},i;
    fun(c,4,1);
    fun(c+4,6,0);
    for(i=0;i<10;i++)printf("%d,",c);
    printf("\n");
    }
    程序运行后的输出结果是(    )。

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

答案C

解析 fun()函数的作用是定义了冒泡法排序,flag控制升序(0)或者降序(1),n为参与排序的元素个数,a为数组的起始地址。因此,fun(a,4,1)函数即将数组的前4个数据降序排序,fun(a+4,6,0)函数是对数组的第4项后的6个元素进行升序排序。故结果为10,9,8,7,l,2,3,4,5,6。答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/f4xp777K
0

最新回复(0)