专注在线职业教育23年
下载APP
小程序
希赛网小程序
导航

2019上半年软考程序员下午真题(二)

责编:胡媛 2019-05-29

2、阅读以下说明和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);


相关推荐:2019上半年程序员下午真题及答案

在线题库:程序员历年真题自测估分

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关阅读
查看更多

加群交流

公众号

客服咨询

考试资料

每日一练