- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华为面试上机题(原创)
)
2011年华为软件校园招聘编程测验
类别:软件C/C++语言
编程题(共3题,第一题20分,第二题30分,第三题50分,共100分)
注意:
1、请上机编写程序,按题目要求提交文件。[详见考试说明,点击进入考试说明]
2、本试题采用自动执行测试用例进行评分,测试用例不对考生公开
3、评卷通过在给定用例输入下,严格按照试题要求比较考生实现函数的输出与预设输出。两者相同则得分,不同则不得分。
4、评卷人保证测试用例输入参数的合法性,考生不用考虑输入参数非法或异常的情况
5、评卷人保证测试用例输入在被测函数正常合法情况下使用不会导致程序错误
6、被要求实现的函数如果包含返回参数,该返回参数涉及的空间分配和释放均在函数外完成,在被要求实现函数内部可以直接使用返回参数
7、如果考生函数异常导致程序崩溃或死循环,则自动评卷可能会被人为终止,剩余用例不被执行,无法得分
8、基于上述阅卷规则,请考生严格按照题目要求功能实现程序,尽量保证实现函数的稳健性,同时建议完成一道题并调试保证正确性后,再考虑并实现下一题目
1.评委打分(20分)
问题描述:
在评委打分的比赛中,通常采取去掉一个最高分和最低分,再求平均分的做法,主要是为了公平,公正和公开的原则,防止有人买通评委,有特别的高分出现,另外,也可以防止因为评委个人原因,对选手有“低见”给特别低的分。去掉最高分最低分能够求出较为准确的平均分。请编写程序实现上述计分过程
要求实现函数:
intscore_calc(int n, int score[])
【输入】 int n,评委人数n(n=3)
int score[],每个评委的打分(百分制)
【输出】 无
【返回】 选手最终得分(取整)
注:
取整和四舍五入不同,取整只保留数值的整数部分,小数部分丢弃。比如7.3和7.6,取整后都为7
示例
输入:int n = 5;int score[] = {75, 80, 75, 70, 80}
输出:无
返回:76
2.按要求排序(30分)
问题描述:
请编程实现将输入自然数组中的数字按要求处理并放入到输出数组中
1、 偶数按从大到小排序
2、 奇数按从小到大排序
3、 将奇数和偶数按顺序间插后放入输出数组,奇数在前,偶数在后。奇数和偶数数目不等,奇数和偶数数目不等时,多出的数字无法间插的就按顺序放置
比如: 输入数组input[]={1,12,32,15,2,67,8,9,12,3,3,5}
奇数排序:1,3,3,5,9,15,67
偶数排序:32,12,12,8,2
输出数组output[]={1,32,3,12,3,12,5,8,9,2,15,67}
要求实现函数:
void my_sort(int n, int input[], int output[])
【输入】 int n,输入自然数个数
int input[],输入自然数
【输出】 int output[],按要求排列好的输出数据
【返回】 无
示例
输入:int n = 12; int input[]={1,12,32,15,2,67,8,9,12,3,3,5}
输出:output[]={1,32,3,12,3,12,5,8,9,2,15,67}
3.哈希求值
问题描述:
请按照下述规则计算得到输入整数数组中每个正整数的对应输出值
1、 对于第i(i=17)个输入的正整数,求得该正整数与17相除的余数。如果该余数与任意第j个输入正整数(ji)的输出值不同,则将该余数作为第i个输入正整数的输出值
2、 否则,将第1步得到的余数+1后,再与17相除求得余数,如果该余数与任意第j个输入正整数(ji)的输出值不同,则将该余数作为第i个输入正整数的输出值
3、 否则,将第2步得到的余数+2后,再与17相除求得余数,如果该余数与任意第j个输入正整数(ji)的输出值不同,则将该余数作为第i个输入正整数的输出值
。
。
。
N、直到求得第i个输入正整数的输出值为止
比如:
输入数组input[]={18,2,19,36,53}
对于第1个输入数字18,18 mod 17 = 1,1没有出现过,则18的输出为1
对于第2个输入数字2,2 mod 17 = 2,2没有出现过,则2的输出为2
对于第3个输入数字19,19 mod 17 = 2,2已经出现,则(2+1) mod 17 = 3,3没有出现过,则19的输出为3
对于第4个输入数字36,36 mod 17 = 2,2已经出现过,则(2+1)
文档评论(0)