首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,回答问题,将解答写入对应栏内。 【说明】 函数bubbleSort(int arr[],int n,int(*compare)(int,int))的功能是根据调用时传递的比较函数compare对数组arr的前n个元素进行排序。
阅读以下说明和C代码,回答问题,将解答写入对应栏内。 【说明】 函数bubbleSort(int arr[],int n,int(*compare)(int,int))的功能是根据调用时传递的比较函数compare对数组arr的前n个元素进行排序。
admin
2021-03-13
38
问题
阅读以下说明和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-1-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);
选项
答案
(1)1 2 3 4 6或{1,2,3,4,6} (2)6 4 3 2 1或{6,4,3,2,1} (3)6 4 2 3 1 或{6,4,2,3,1}
解析
本题考查C程序基本控制逻辑、函数调用及其应用。
函数bubbleSort(int arc[],int n,int(
*
compare)(int,int))的第一个参数表示arr是一个数组,第二个参数n表示数组的前n个元素,第三个参数compare是函数指针,在函数体中实现compare(arr[j+1],arr[j])的具体结果需要根据调用bubbleSort时的第3个实参来确定。
对于调用bubbleSort(data1,5,less),arr表示的是data1数组,在排序时compare(arr[j+1],arr[j])操作实质实现的是less(arr[j+1],arr[j]),也就是arr[j+1]<arr[j]时返回值为1,从而需要交换arr[j+1]和arr[j]的值,其结果是较小的值换至下标小的数组元素中,因此bubbleSort实现了data1数组的全部5个元素从小到大的排列。
对于调用bubbleSort(data2,5,larger),arr表示的是data2数组,compare(arr[j+1],arr[j])操作实质实现的是larger(arr[j+1],arr[j]),也就是arr[j+1]<arr[j]时返回值为1,从而需要交换arr[j+1]和arr[j]的值,其结果是较大的值换至下标小的数组元素中,因此bubbleSort实现了data2数组的全部5个元素从大到小的排列。
对于调用bubbleSort(data3,3,larger),arr表示的是data3数组,compare(arr[j+1],arr[j])操作实质实现的是larger(arr[j+1],arr[j]),也就是arr[j+1]>arr[j]时返回值为1,从而需要交换arr[j+1]和arr[j]的值,其结果是较大的值换至下标小的数组元素中,因此bubbleSort实现了data3数组的前3个元素从大到小的排列。
转载请注明原文地址:https://kaotiyun.com/show/j2jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
对新买的计算机需要记录保存的硬件主要参数中,不包括_______。
计算机病毒是一段程序,一般隐藏在______中。
Windows XP的许多应用程序的“文件”菜单中,都有“保存”和“另存为”两个命令。以下对这两个命令的叙述,正确的是(36)。
在Access2007中,若要想查询所有姓名为2个汉字的学生记录,应在准则中输入______。
下面记录的是某班36人期末考试的数学成绩:971009596100879610089100936999891008188
()是移动互联网的组成部分。
一批数据的__________代表这批数据的一般水平,掩盖了其中各部分数据的差异。
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入答题纸对应的解答栏内。说明在Ⅲ浏览器中输入常春藤大学招生办公室主页的网址并回车后,网页显示的效果如图5-1所示。HTML文本<html><he
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明某公司内部有一个采用TCP/IP作为传输协议的100BASE-TX局域网,包括1台服务器和20台客户机,通过一台16端口的交换机与一台8端口共享集线器级连,其网络结构如图11所
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。制作交叉双绞线(一端按EIA/TIA568A线序,另一端按EIA/TIA568B线序)时,其中一端的线序如图1-2(a)所示,另一端线序如图1—2
随机试题
归档文件是指本机关形成的文件。
肺胀的病理因素有
结核性腹膜炎起病方式最多见的是
下列情况中,不能正确反映外科疾病的病因与发病部位的关系的是
总供给等于()之和。
下列诗句中,反映平原与山地气候差异的是()。
Theseveteransstillremembertheirrigorousdisciplineandhardtraininginthesecamps.
向量组(I):α1,α2,…,αm线性无关的充分条件是(I)中()
采用SCSI接口时,一块SCSI主接口卡可以连接含有SCSI协议标准控制器的设备为______。
—It______hourstodothework.—No,itwon’t.
最新回复
(
0
)