2012届华为校园招聘上机考试题目

上传人:kms****20 文档编号:41029558 上传时间:2018-05-28 格式:DOC 页数:17 大小:435.50KB
返回 下载 相关 举报
2012届华为校园招聘上机考试题目_第1页
第1页 / 共17页
2012届华为校园招聘上机考试题目_第2页
第2页 / 共17页
2012届华为校园招聘上机考试题目_第3页
第3页 / 共17页
2012届华为校园招聘上机考试题目_第4页
第4页 / 共17页
2012届华为校园招聘上机考试题目_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《2012届华为校园招聘上机考试题目》由会员分享,可在线阅读,更多相关《2012届华为校园招聘上机考试题目(17页珍藏版)》请在金锄头文库上搜索。

1、2012 届华为校园招聘上机考试题目(届华为校园招聘上机考试题目(9 月月 6 日下午日下午 1 点场)点场) 2011-09-10 16:33 347 人阅读 评论(3) 收藏 举报 昨天去参加了华为的校园招聘上机考试,题目一共三道,都比较简单,不要求算法效率, 也不要求对所给数据的合法性作检测,主要还是注重基础知识的考察,和大家分享一下, 希望对接下来的同学有所帮助。 1、选秀节目打分,分为专家评委和大众评委,score 数组里面存储每个评委打的分数, judge_type 里存储与 score 数组对应的评委类别,judge_typei = 1,表示专家评委, judge_typei =

2、 2,表示大众评委,n 表示评委总数。打分规则如下:专家评委和大众评委 的分数先分别取一个平均分(平均分取整) ,然后,总分 = 专家评委平均分 * 0.6 + 大众 评委 * 0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函 数最终返回选手得分。函数接口 int cal_score(int score, int judge_type, int n) 2、给定一个数组 input ,如果数组长度 n 为奇数,则将数组中最大的元素放到 output 数组最中间的位置,如果数组长度 n 为偶数,则将数组中最大的元素放到 output 数组中间两个位置偏右的那个位置上,

3、然后再按从大到小的顺序,依次在第一个位置的两 边,按照一左一右的顺序,依次存放剩下的数。例如:input = 3, 6, 1, 9, 7 output = 3, 7, 9, 6, 1; input = 3, 6, 1, 9, 7, 8 output = 1, 6, 8, 9, 7, 3函数接口 void sort(int input, int n, int output)3、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统 任务的优先级 = 50 且 int cal_score(int score, int judge_type, int n); void main()

4、 int score10=70,80,90,99,98,97,96,88,79,90; int judge_type10=1,2,2,1,2,2,2,1,2,2; printf(“%dn“,(int)cal_score(score,judge_type,10); int cal_score(int score, int judge_type, int n) int i,zc=0; int zs=0,ds=0; for(i=0;i #define CNT 6 void sort(int input, int n, int output); void main() int inputCNT=3,

5、6, 1, 9, 7, 8,; int outputCNT; sort(input,CNT,output); for(int i=0;i0;i-) for(j=0;j #define CNT 9 void scheduler(int task, int n, int system_task, int user_task); void main() int taskCNT = 0, 30, 155, 1, 80, 300, 170, 40, 99; int system_taskCNT; int user_taskCNT; scheduler(task,CNT,system_task,user_

6、task); void scheduler(int task, int n, int system_task, int user_task) int i,j=0,k=0; for(i=0;i=50 system_task=system_taskj; system_taskj=tmp; for(i=0;itaskuser_taskj) tmp=user_task; user_task=user_taskj; user_taskj=tmp; system_taskjj=-1; user_taskk=-1; for(i=0;i taski) 8. system_tasktemp1+ = i*1000

7、+taski; /低两位是系统任务优先级,第四位 是对应的 task 数组下标 9. else if(255 = taski) 10. user_tasktemp2+ = i*1000+taski; /低三位是用户任务优先级,第四位是 对应的 task 数组下标 11. 12. system_tasktemp1 = -1; 13. user_tasktemp2 = -1; 14. 15. bubbleSort(system_task,temp1); /按低两位的优先级进行冒泡排序 16. adjust(system_task,temp1); /把数组 system_task 中的值调整为对应的

8、 task 数组的下标 17. bubbleSort(user_task,temp2); /按低三位的优先级进行冒泡排序 18. adjust(user_task,temp2); /把数组 user_task 中的值调整为对应的 task 数组的下标 19. print(system_task,temp1+1); 20. print(user_task,temp2+1); 21. 22. 23. int _tmain(int argc, _TCHAR* argv) 24. 25. int task = 0, 30, 155, 1, 80, 300, 170, 40, 99; 26. int s

9、ystem_task9,user_task9; 27. scheduler(task,9,system_task,user_task); 28. return 0; 29. void scheduler(int task, int n, int system_task, int user_task) int temp1 = 0; int temp2 = 0; for(int i = 0;i taski) system_tasktemp1+ = i*1000+taski; /低两位是系统 任务优先级,第四位是对应的 task 数组下标 else if(255 = taski) user_task

10、temp2+ = i*1000+taski; /低三位是用户任务优先级,第四位是对应的 task 数组下标 system_tasktemp1 = -1; user_tasktemp2 = -1; bubbleSort(system_task,temp1); /按低两位的 优先级进行冒泡排序 adjust(system_task,temp1); /把数组 system_task 中的值调整为对应的 task 数组的下标 bubbleSort(user_task,temp2); /按低三位的优先级进行冒泡排序 adjust(user_task,temp2); /把数组 user_task 中的值调

11、整为对应的 task 数组的下标 print(system_task,temp1+1); print(user_task,temp2+1); int _tmain(int argc, _TCHAR* argv) int task = 0, 30, 155, 1, 80, 300, 170, 40, 99; int system_task9,user_task9; scheduler(task,9,system_task,user_task); return 0; 36 楼 crazyhzc 昨天 10:47 发表 回复 引用 举报第三题 view plaincopy to clipboardp

12、rint? 1.#include “stdafx.h“ 2. 3./*冒泡排序*/ 4.void bubbleSort(int list,int n) 5. 6. int exchange = 1; 7. for(int i = 0;i listk+1%1000) 13. 14. listk = listklistk+1; 15. listk+1 = listklistk+1; 16. listk = listklistk+1; 17. exchange = 1; 18. 19. 20. 21. 22. 23. /*调整数组中元素的值为对应的 task 数组中的下标*/ 24. void ad

13、just(int list,int n) 25. 26. for(int i = 0;i listk+1%1000) listk = listklistk+1; listk+1 = listklistk+1; listk = listklistk+1; exchange = 1; /*调整数组中元素的值为对应的 task 数组中的下标*/ void adjust(int list, int n) for(int i = 0;i = 0 j-) /插入排序法 system_taskj+1 = system_taskj; system_taskj+1 = i; iS+; else if(task = 0 j-) /插入排序法 user_taskj+1 = user_taskj; user_taskj+1 = i; iU+; system_taskiS = -1; user_taskiU = -1; 27 楼 maxiao001 昨天 20:26 发表 回复 引用 举报lz weida 26 楼 liuqiqi677 昨天 17:43 发表 回复 引用 举报void scheduler(int task, int n, int system_t

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号