程序员应用技术在下午考试,希赛小编为大家整理了2019上半年程序员应用技术题二,供考生备考练习。
阅读以下说明和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 bubbleSort(int arr[ ], int n, int (*compare)(int,int))
{ int i,j;
int swapped = 1;
for( i=0; swapped; i++) {
swapped = 0;
for(j=0; j<n-l-i; j++)
if ( compare( arr[j+1], arr[j])) {
swap( arr[j+1], arr[j]);
swapped =1;
}
}
}
问题内容:
【问题】
设有如下数组定义:
int data1[ ] = {4, 2, 6, 3, 1};
int data2[ ] = {4, 2, 6, 3, 1};
int data3[ ] = {4, 2, 6, 3, 1};
请分别给出下面的函数调用执行后,数组data1、data2和data3各自的元素序列。
(1)bubbleSort(data1, 5, less);
(2) bubbleSort(data2, 5, larger);
(3) bubbleSort(data3, 3, larger);