首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
62
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
设10个数{Xi|i=1,10)的平均值为a,则{10Xi+1|i=1,10)的平均值为(5)。
某个字段的数据是原始数据计算的结果,该字段的宽度和小数位数对数据的精度有影响。一般来说,小数位数的确定需要考虑______。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
某公司下设4个分公司A、B、C、D,上月各分公司的销售额及其在总公司所占比例如下表所示。由于此表单受潮,有些数据看不清了,但还可以推算出来。根据推算, D公司上月的销售额为(68)万元。
在Excel2010中,一个宗箱的函数计算包括()。
在Windows7系统运行时,用户为了获得联机帮助,可以直接按功能键(24)________________。
采购了多种品牌的部件进行计算机组装,每个部件都正常,连接、安装、配置操作也完全正确,但系统仍不能正常使用。很可能是____________问题。
阅读以下说明,回答问题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
随机试题
2003年某省政府为实施省人大的地方性规定出台一部规章,2006年省人大对该地方性法规进行修订,但未对该规章废止与否作出规定。2008年某省行政机关依据该规章对甲作出处罚。甲不服处罚提起行政诉讼,提出不应适用该规章。关于法院是否应适用该规章,下列哪些说法是
世界银行贷款项目采购工程和货物的资格预审方法是通过或不通过的合格制,评标方法是实质上的响应招标文件的有资格和能力的()中标。
下列现浇钢筋混凝土板底乳胶漆顶棚的工程做法,从外向里依次表述,其中哪条做法是错误的?[2003-096]
以下属于资产负债表非流动负债的是()。
简述教育与生产力的关系。
3~6岁儿童使用的主要句型是()
行政监督中的社会监督包括()。
下列职位中,我国《宪法》没有规定连任不得超过两届的是()。
某大会主席宣布:“此方案没有异议,大家都赞同,通过。”如果以上不是事实,下面哪项必为事实?
M:That’sabeautifuldressyouhaveon!W:______
最新回复
(
0
)