摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2019年5月 程序员 下午题】部分试题的详解,一起来看看吧~



1、阅渎以下说明和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}


答题解析:

swp 函数是将两元素值进行相互交换。

less 数是判断x和y 的关系,如果 x<y,则函数值为真;

large 的数是判断x和y 的关系,如果x>y,则函数值为真;

在)bubbleSort函数中,第二个参数表示进行比素的个数,第三个参数表示进排序的方式,如果传入less函数,则是从小到大排序;如果传入large函数,则是从大到小排序。



查看完整试题>>>