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

admin2019-12-17  55

问题 下列程序中函数f的功能是:当flag为1时,进行由小到大排序:当flag为0时,进行由大到小排序。
    void f(int b[],i nt n,int flag)
    {int i,j,t ;
    for(i=0;i    for(j=i+1;j    if(flag?b>b[j]:b    {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

解析 丰函数中进行了两次f函数的调用。第一次传递给形参数组b的地址为元素a[2]的地址,n接收数据位5,因此数组b中元素为3,2,1,6,7,此时flag的值为0,进行由大到小排序,而数组b和实参数组a共用一段存储空间,第一次调用结束以后,数组a的值为5,4,7,6,3,2,1,8,9,10。第二次调用f函数,形参数组接收实参数组a的首地址,取5个元素,由小到大排序,调用结束以后,数组a的值为3,4,5,6,7,2,1,8,9,10。
转载请注明原文地址:https://kaotiyun.com/show/l6Cp777K
0

相关试题推荐
最新回复(0)