欢迎访问题库宝!

阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。[说明]下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复

题库宝 分享 时间: 加入收藏

考试:初级软件水平考试

科目:(初级)程序员(在线考试)

问题:

阅读以下说明和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.jpg那么在输出序列中写入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(______) minimum=a[i]; eiSe if (______) maximum=a[i]; } number=maximum-minimum+1; if(number<=i)return; b=(int*)calloc(number,sizeof(int)); if(!b) return; for(i=0;i<n; i++){/*计算数组a的每个元素值出现的次数并记入数组b */ k=a[i]-minimum; ++b[k]; } /*按次序在数组a中写入排好的序列*/ i=______; for(k=0; k<number; k++) for(; ______; --b[k] ) a[i++]=minimum+______; }

答案:


相关标签:

(初级)程序员     函数     序列     说明     递减     整数    

热门排序

推荐文章

公共营养师对一户居民进行了连续3日的膳食调查,结果如表1、表2。现请您分析:平均每人每日各种食物的摄入量是多少?(计算结果保留整数,填写于表3中) 某街道有四个小区,60岁以上共17608人,其中女性9608人,男性8000人,现将调查的60岁以上人群患有缺铁性贫血的情况进行统计和整理,得到的资料如表6-2所示。现根据上述提供的信息进行计算,并分 阅读下面说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】一个信息系统集成项目有A、B、C、D、E、F、G共7个活动。各个活动的顺序关系、计划进度和成本预算如下图所示,大写字母为活动名称, 对于技能高、意愿低的员工应该采取的监控方法是() 某数据库系统中,假设有部门关系:Dept(部门号,部门名,负责人,电话),其中,“部门号”是该关系的主键;员工关系Emp(员工号,姓名,部门,家庭住址),属性“家庭住址”包含省、市、街道以及门牌号,该 设某n阶三对角矩阵Anxn的示意图如下图所示。若将该三对角矩阵的非零元素按行存储在一维数组B[k](1≤k≤3*n-2)中,则k与i、j的对应关系是( )。 加工某种零件需要依次经过毛坯、机加工、热处理和检验四道工序。各道工序有多种方案可选,对应不同的费用。下图表明了四道工序各种可选方案(连线)的衔接关系,线旁的数字表示该工序加工一个零件所需的费用(单位: 某网站向CA中请了数字证书,用户通过( )来验证网站的真伪。在用户与网站进行安全通信时,用户可以通过( )进行加密和验证,该网站通过(请作答此空)进行解密和签名。 阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。【说明】某单位有两间办公室,通过ADSL接入Internet,内网由若干台计算机组成局域网,手机和笔记本电脑均可通过无线方式接入Int 某全国连锁企业的总部和分布在全国各地的30家分公司之间经常需要传输各种内部数据,因此公司决定在总部和各分公司之间建立VPN技术。具体拓扑如下:配置部分只显示了与总部与分公司1的配置。根据拓扑完成问题1
221381
领取福利

微信扫码领取福利

微信扫码分享