首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次
admin
2014-05-07
35
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
删除Windows中某个应用程序的快捷方式,意味着(39)。
在Excel2007中,若在单元格A1中输入函数“=ROUNDUP(3.1415926,2)”,按回车键后,则A1单元格中的值为______。
在Excel的A1单元格中输入函数“=IF(12,1,2)”,按回车键后,A1单元格中的值为()。
许多书上都说,人一次只能记住或处理5~9(7±2)条信息。为了检验这个结论是否正确,宜采用()调查方法。经过多次调查统计研究发现,人一次平均只能记住或处理4条信息。经考证,原来7±2的说法只是一位专家在一个讲演稿中的估计,并不是真正的调研报告,但却
编译程序的作用是将高级程序语言源程序翻译为(4)。
()是移动互联网的组成部分。
甲和乙用如下图的两个转盘做游戏,游戏规则如下:分别旋转两个转盘,当两个转盘所转到的数字之积为奇数时,甲得2分;当所转到的数字之积为偶数时,乙得1分,则这游戏规则______。
在Windows7运行时,为强行终止某个正在持续运行且没有互动反应的应用程序,可按组合键Ctrl+Alt十Del启动(24)________________,选择指定的进程和应用程序,结束其任务。
随机试题
A.经前诊刮,病理:增殖期子宫内膜B.经前1天诊刮,病理:分泌期宫内膜,腺体分泌不足,腺体与间质发育不同步C.经期第5天诊刮,病理:可见分泌期宫内膜、增生早期内膜及出血坏死内膜混合存在D.即时诊刮,病理:分泌期宫内膜E.淋漓出血后诊刮,病理:子宫内
注册咨询工程师(投资)的执业范围包括()
属于安装工程一切险承保的是()。
下列属于商业银行客户的有()。
下列有关前后任注册会计师的说法中,不正确的是()。
把两个或两个以上年级的学生编在一个班里,由一位老师分别用不同的教材,在同一节课里对不同年级的学生,采取直接教学和自动作业交替的办法进行教学的组织形式称之为()
Joyandsadnessareexperiencedbypeopleinallculturesaroundtheworld,buthowcanwetellwhenotherpeoplearehappyord
判断α1=(1,0,2,3)T,α2=(1,1,3,5)T,α3=(1,-1,a+2,1)T,α4=(1,2,4,a+9)T的线性相关性.
要在文本框中显示当前日期和时间,应当设置文本框的控件来源属性为()。
在考生文件夹下BEN文件夹中新建一个“CONG”文件夹。
最新回复
(
0
)