- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软酷网官网 :
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的值
您可能关注的文档
最近下载
- 输液泵使用 ppt新流程.ppt VIP
- 乐企数字开放平台用户指引(纳税人端).pptx
- 人工智能在文化保护与传承中的应用.pptx VIP
- 一部分aptitude test适用于四大各种测试带详细答案solutions.pdf VIP
- 2025年海南经贸职业技术学院教师招聘考试笔试备考题库.docx VIP
- 一部分aptitude test适用于四大各种测试带详细答案questions.pdf VIP
- 中国血栓性疾病防治指南.pdf VIP
- 必威体育精装版部编版一年级语文下册全册学历案(精心撰写).doc VIP
- 2022年超导材料行业专题研究 低温超导材料与高温超导材料产业分析.docx VIP
- 体例格式9:工学一体化课程《小型网络安装与调试》任务2学习任务工作页.docx VIP
文档评论(0)