首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次
admin
2014-05-07
77
问题
阅读以下说明和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单元格中的值为__________。
西部某省考试机构工作人员统计了去年下半年三个地区四种资格的报考人数,将统计表抄录如下(其中有一个数据抄错了): 信息处理技术员小王很快就找出了错误的数据,并进行了纠正。错误的数据是(32),该数据应纠正为(33)。32.
在Excel中,若A1单元格中的内容为“全国计算机技术与软件专业技术资格(水平)考试”,在A2单元格中输入函数=LEFT(A1,2),则A2单元格显示的内容是______。
(1)是固化在主板ROM内的程序,为计算机提供最底层、最直接的硬件访问和控制。
删除Windows中某个应用程序的快捷方式,意味着(39)。
在Excel2007中,若在单元格A1中输入函数“=ROUNDUP(3.1415926,2)”,按回车键后,则A1单元格中的值为______。
在计算机程序设计语言中,可以直接被计算机识别并执行的是______。
计算机在接通电源后,系统首先由(41)程序对内部每个设备进行测试。
程序员一般用(7)软件编写和修改程序。
在Windows7运行时,为强行终止某个正在持续运行且没有互动反应的应用程序,可按组合键Ctrl+Alt十Del启动(24)________________,选择指定的进程和应用程序,结束其任务。
随机试题
男性,58岁,因肺心病呼吸衰竭入院。入院查体神志清晰,血气分析:PaO230mmHg,PaCO260mmHg,吸氧后神志不清,血气分析:PaO270mmHg,PaCO280mmHg.该患者病情恶化的原因最可能的是()
患者,女性,28岁。因外出春游去植物园,出现咳嗽、咳痰伴喘息1天入院。查体:体温36.5无,脉搏90次/分,呼吸28次/分,血压110/80mmHg,喘息貌,口唇发绡,在肺部可闻及广泛哮鸣音。该患者发病最可能的诱因是()。
晋国的“常法”是()制定的。
由于政治、社会、自然因素造成建设工程目标发生偏差,应采取被动控制,这说明()。
以机械旋转方法搅动地层,同时注入水泥基质浆液,在松散细颗粒地层内形成柱体的基础处理形式为()。
关于预制安装水池的水泥砂浆保护层喷射施工,下列说法不正确的是()。
每个收发电子邮件的用户都必须有一个电子邮件地址。()
诺贝尔医学奖获得者屠呦呦曾向媒体介绍,青蒿索研究的难点在于对青蒿科属的选择上,此外提取方法也需要突破,后来屠呦呦受葛洪的《肘后备急方》中“青蒿一握,以水二升渍,绞取汁,尽服之”的启发,改进了提取方法,采取了乙醚冷浸法低温提取,最终获得成功。这表明(
【B1】【B10】
A、 B、 C、 D、 D
最新回复
(
0
)