刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题



阅渎以下说明和C代码,回答问题,将解答写入答题纸的对应栏内。

 【说明】

函数bubbleSort(int arr [ ] int n, int (*compare)(int, int)的功能是根据调用时传递的比较函数 compare 对数組arr的前n个元素进行排序。

 【C代码】

#define swap(a,b){a=a^b;b=a^b;a=a^b //交换a与b 的值
int less(int x, int y)
{
    return((x<y)?1: 0);
}
int larger(int x, int y)
{
return((x>y)?1: 0);
}
 
void bubble Sort(int arr[  ], int n, int (*compare)(int, int))
{    
int i,j;
int swapped= 1;
for( i= 0; swapped; 1++) {
     swapped =0;
      for(j=0; j<n-I-i; j++)
       if( compare( arr[j+1, arr[ j ])) {
           swap( arr[j+1}, arr[ j ]);
           swapped =1;
          }
   }
}

【问题1】

设有如下数组定义:

int data1[ ]={4,2.6.3,1};

int data2[ ]={4,2,6.3,1}

int datas3[ ]={4,2,6.3,1}

请分别给出下面的函数调用执行后,数组 data1、data2和 data3 各自的元素序列。

(1)bubble Sort(data1, 5, less);

(2)bubble Sort(data2, 5, larger)

(3)bubble Sort(data3, 3, larger)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1){1,2,3,4,6}

(2){6,4,3,2,1}

(3){6,4,2,3,1}

解析:

根据提供的说明和C代码,我们知道 bubbleSort 函数根据传递的比较函数 compare 对数组进行排序。函数 less 用于从小到大排序,而函数 larger 用于从大到小排序。数组 data1data2 的定义都包含五个元素,所以可以对它们进行排序。然而,数组 datas3 的定义存在问题,缺少逗号分隔元素,并且只传入三个元素进行排序,因此无法确定排序后的结果。根据这一点和提供的答案,我们可以得出上述结论。

创作类型:
原创

本文链接:阅渎以下说明和C代码,回答问题,将解答写入答题纸的对应栏内。 【说明】函数bubbleSort(in

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share