首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次
admin
2014-05-07
44
问题
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次数并记录在数组b中,再从小到大顺序地排列各元素即可得到一个非递减有序序列。例如,对于序列6,5,6,9,6,4,8,6,5,其元素在整数区间[4,9]内取值,因此使数组元素b[0--b[5]的下标0--5分别对应数值4--9,顺序地扫描序列的每一个元素并累计其出现的次数,即将4的个数记入b[0],5的个数记入b[1],依此类推,9的个数记入b[5]。最后依次判断数组b的每个元素值,并将相应个数的数值顺序地写入结果序列即可。
对于上例,所得数组b的各个元素值如下:
那么在输出序列中写入1个4、2个5、4个6、1个8、1个9,即得4,5,5,6,6,6,6,8,9,从而完成排序处理。
【C函数】
void sort(int n,int a[])
{ int*b;
int i ,k|number;
int minimum=a[0],maximum=a[0];
/*minimum和maximum分别表示数组a的最小、最大元素值*/
for(i=1;i<n;i++){
if((1))minimum=a
;
else
if((2))maximum=a
;
}
number=maximum-minimum+1;
if(number<=1)return;
b=(int*)calloc(number,Sizeof(int));
if(!b) return;
for(i=0;i<n;i++){/*计算数组a的每个元素值出现的次数并记入数组b*/
k=a
-minimum; ++b[k];
}
/*按次序在数组a中写入排好的序列*/
i= (3) ;
for(k=0;k<number;k++)
for(; (4);--b[k])
a[i++]=minimum+ (5) ;
}
选项
答案
(1)a[i]
maximum,或a[i]>=maximum,或其等价形式 (3)0 (4)b[k],或b[k]>0,或b[k]!=0,或其等价形式 (5)k
解析
本题考查C程序的基本语法和运算逻辑。
首先应认真分析题目中的说明,然后确定代码结构和各变量的作用。
空(1)和(2)所在for语句的功能是求出数组a中的最小元素minimum和最大元素maximum。在设置了minimum和maximum的初始值后,空(1)处的判断条件是只要目前的元素a
小于minimum,就需要更新minimum,反之,空(2)处的判断条件是只要目前的元素a
大于maximum,就需要更新maximum,因此空(1)处应填入a
>maximum或其等价方式。minimum和maximum的作用是要确定计数数组b的大小。
根据题目中的描述,序列中的每个元素a
都对应到计数数组b[]的一个元素b[k],对应方式为:k=a
一minimum,其中minimum是数组a中的最小元素,显然在计数时,一个数值出现一次,就在对应的b[k]中累加一次。
空(3)~(5)所在的语句组是产生排序后的序列,重新写入数组a。首先需明确变量i和k的作用,根据它们在该语句组中的出现位置,i用于表示数组a的元素下标,k用于表示数组b中元素的下标,因此,空(3)处应填入0,使得从数组a中下标为0的数组元素开始。通过循环控制“for(1k=0;k
0”或其等价形式。由于b[k]中记录的是元素k+minimum的出现次数,所以空(5)处应填入“k”,从而将元素值恢复后再写回去。
转载请注明原文地址:https://kaotiyun.com/show/dnjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2007中,在单元格A1中输入函数“=LEN(”信息处理技术员”)”,按回车键后,则A1单元格中的值为__________。
关系代数运算是以集合操作为基础的运算,其5种基本运算是并、差、(57)、投影和选择。
双击某个非可执行程序的文件名将(24)。
删除Windows中某个应用程序的快捷方式,意味着(39)。
在Excel的A1单元格中输入函数“=IF(12,1,2)”,按回车键后,A1单元格中的值为()。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
计算机使用一段时间后发现,系统启动时间变长,系统响应迟钝,应用程序运行缓慢,为此,需要进行系统优化。系统优化工作不包括___________。
Windows XP的许多应用程序的“文件”菜单中,都有“保存”和“另存为”两个命令。以下对这两个命令的叙述,正确的是(36)。
小张为本企业录入一篇领导讲话文稿。文稿中引用了该企业2008年的销售额和各产品的利润等数据。小张考虑到目前是2010年,从信息的实效性出发,决定对文稿中的这部分内容进行处理,则______做法最为恰当。
随机试题
上海大众、东风日产是特许品牌。()
A、上市后药品的再审查B、上市后药品的再评价C、非预期药物作用D、药物警戒E、药物临床评价新药获得批准后,在上市的头4~6年内进行有效性和安全性调查是
《规范国有土地租赁若干意见》中明确规定:“地上房屋等建筑物、构筑物依法抵押的,承租土地使用权可随之抵押,但承租土地使用权只能按照()估价,抵押权实现时土地租赁合同同时转让。
建筑钢材中可直接用作预应力钢筋的有()。
下列关于税收法律关系的表述中,正确的有()。
银行业从业人员对业务金额大小有差异的客户应当公平对待。()
《新民晚报》始终保持着雅俗文化之间的______平衡,结果,这座城市中很大一部分市民是把读《新民晚报》当作每天不可缺少的生活规程的,而教授学者也绝不会把它______。它开辟了一个颇为______的文化中介地带,大雅大俗均可随意出入。填入划横线部分
设f(x,y)=则f(x,y)在点(0,0)处
已知一汉字的国标码是5E48H,则其内码应该是()。
Anicknameisashortenedversionofaperson’sname.Anicknamealsocan【C1】_____aperson,placeorthing.ManyAmericancities
最新回复
(
0
)