首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
51
问题
阅读以下说明和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)。
某个字段的数据是原始数据计算的结果,该字段的宽度和小数位数对数据的精度有影响。一般来说,小数位数的确定需要考虑______。
对新买的计算机需要记录保存的硬件主要参数中,不包括_______。
收集数据时,设计调查的问题很重要。此时,需要注意的原则不包括(8)。
在Access2007中,若要想查询所有姓名为2个汉字的学生记录,应在准则中输入______。
张、王、李三个平等的评委独立对三部电影甲、乙、丙进行了评分(三人的满分标准不同),结果如下表:按合理的平均得分计算,第一、二、三名电影应分别授予(69)。
信息处理工作前期,首先需要收集所需的数据,常常要做原始统计记录。做原始统计记录需要注意的事项中一般不包括(32)。
某企业对各部门有5个量化考核指标,每个指标都有达标要求。每个部门的考核结果宜用(67)来展现,既能反映各个指标的达标情况,又能反映该部门整体达标状况。
一批数据的__________代表这批数据的一般水平,掩盖了其中各部分数据的差异。
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入答题纸对应的解答栏内。说明在Ⅲ浏览器中输入常春藤大学招生办公室主页的网址并回车后,网页显示的效果如图5-1所示。HTML文本<html><he
随机试题
甲说:“尽管政府努力通过积极的就业政策和开展全面创业活动降低失业率,但是这一计划仍然失败了,因为在本市实施一年后失业率并没有什么变化。”乙说:“但是在计划开始的最初一段时间,本地的失业率是有降低的,该计划还是有帮助的。”以下哪项为真,最能削弱乙的
A.奇脉B.交替脉C.水冲脉D.短绌脉提示房颤
在人体抵抗力降低时,原本不致病的菌群变成致病菌,引起的感染是
患者,男,39岁。因大面积银汞合金充填要求冠修复。查:大面积银汞补,补物完好,不松动。x线牙片显示:根管治疗良好。拟为该患者行铸造全冠修复铸造全冠预备时,轴壁正常聚合角度一般为
王大爷于2004年6月死亡,留有遗产“房屋、存款”等。王大爷一共有四个子女甲、乙、丙、丁,其中甲是养子女。甲只有一个儿子王超,王超只有一个女儿王小超。丁有一个亲生的女儿吴蕾、养女吴丽和由其抚养长大的继子吴宇。甲于1999年1月因病死亡,王超因下落不明法院依
商品流通企业核心竞争力的基础是()。
甲公司以一批库存商品交换乙公司一幢房产,该商品的成本为1000万元,已计提跌价准备200万元,增值税率为17%,消费税率为5%,该商品的计税价格为1500万元;乙公司房产原价为1600万元,累计折旧600万元,已提减值准备30万元,计税价格为2000万元,
河北省河流众多,长度在18公里以上1000公里以下者就达300多条。境内河流大都发源或流经燕山、冀北山地和太行山山区,其下游有的合流入海,有的单独人海,还有因地形流入湖泊不外流者。主要河流从南到北依次有漳卫南运河、子牙河、大清河、永定河、潮白河、蓟运河、滦
【B1】【B6】
WATERANDLIFEONMARS1Thepresenceorabsenceofwaterhasadirectbearingonthepossibilityoflifeonotherplanets.In
最新回复
(
0
)