网站大量收购闲置独家精品文档,联系QQ:2885784924

浅谈程序员2013年下半年下午卷试题解析.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软酷网官网 : 2013年软考程序员下半年下午卷解析 ——试题二 问题描述 阅读以下说明和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[l],依此类推,9 的个数记入b[5]。最后依次判断数组b 的每个元素值,并 将相应个数的数值顺序地写入结果序列即可。 对于上例,所得数组b 的各个元素值如下: b[0] B[1] B[2] B[3] B[4] B[5] 1 2 4 0 1 1 那么在输出序列中写入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 l; in; i++) { if ( (1) ) { minimum a[i]; } else { 软酷网官网 : if ( (2) ) maximum a [i]; } } number maximum - minimum + 1; if (number l) return; b (int *)calloc(number, sizeof(int)); if (!b) return; for(i 0; in; i++) { /*计算数组a的每个元素值出现的次数并记入数组b */ k a [i] - minimum; ++b[k]; } /*按次序在数组a 中写入排好的序列*/ i ( 3 ) ; for(k 0;knumber;k++ ) { for( ; (4) ;--b[k]) { a [i++] minimum + ( 5 ) ; } } } 【答案】 (1) a[i]minimum,或a[i] minimum,或其等价形式 (2) a[i]maximum,或a[i] maximum,或其等价形式 (3) 0 (4) b[k],或b[k]0,或b[k]! 0,或其等价形式 (5) k 问题分析 1、本题实现的是对数组进行非递减排序,考察C语言基本语法和运算逻辑。 涉及顺序结构、选择结构、循环结构。 顺序结构:执行顺序是自上而下,依次执行。 选择结构:判断给定的条件,根据判断的结果来控制程序的流程,如: if (a 1) { b 2; } else { 软酷网官网 : b 3; } 当a为1时,b等于2,否则b等于3。 循环结构:用来描述重复执行某段算法的问题 ,如:求1+2+3+4+5 int i, sum; for (i 1; i 5; i++) { sum sum + i; } 最后得到的sum值即为1+2+3+4+5的和。 i的值

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档