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

admin2020-11-23  47

问题 以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。
    #include
    void f(int b[],int n,int nag)
    {
    int i,j,t;
    for(i=0;i    for(j=i+1;j<11;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完成的功能是对数据进行排序,语句f(&a[2],5,0)的作用是对从a[2]开始的5个元素进行从大到小排序。注意:这里传递的是地址&a[2],所以排序操作可看作是直接对数组a进行操作,执行后的结果为5,4,7,6,3,2,1,8,9,10。语句f(a,5,1)对数组a的前5个元素进行从小到大排序,排序后的数组为:3,4,5,6,7,2,1,8,9,10。因此B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/SED0FFFM
0

最新回复(0)