2012 届华为校园
招聘上机考试题目(9 月 6 日下午 1 点场)
1、 score[] 数组里面存储每个评委打的分数, 选秀节目打分, 分为专家评委和大众评委, judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type[i] == 1,表示专家评委, judge_type[i] == 2,表示大众评委,n 表示评委总数。打分规则如下:专家评委和大众评委 的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分 * 0.6 + 大众 评委 * 0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数 最终返回选手得分。 函数接口 int cal_score(int score[], int judge_type[], int n)
2、 给定一个数组 input[] , 如果数组长度 n 为奇数, 则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度 n 为偶数,则将数组中最大的元素放到 output[] 数组中 间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照 一左一右的顺序,依次存放剩下的数。 例如:input[] = {3, 6, 1, 9, 7} 8} output[] = {1, 6, 8, 9, 7, 3} 函数接口 void sort(int input[], int n, int output[]) output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7,
3、操作系统任务调度
问题。操作系统任务分为
系统任务和用户任务两种。其中,系统 任务的优先级 < 50, 用户任务的优先级 >= 50 且 <= 255。 优先级大于 255 的为非法任务, 应予以剔除。现有一任务队列 task[],长度为 n,task 中的元素值表示任务的优先级,数值 越小,优先级越高。函数 scheduler 实现如下功能,将 task[] 中的任务按照系统任务、用户 任务依次存放到 system_task[] 数组和 user_task[] 数组中(数组中元素的值是任务在 task[] 数组中的下标),并且优先级高的任务排在前面,优先级相同的任务按照入队顺序排 列(即先入队的任务排在前面),数组元素为-1 表示结束。 例如:task[] = {0, 30, 155, 1, 80, 300, 170, 40, 99} -1} user_task[] = {4, 8, 2, 6, -1} 函数接口 void scheduler(int task[], int n, int system_task[], int user_task[]) system_task[] = {0, 3, 1, 7,
Java 实现:
public class Test1 { public static int cal_score(int score[],int judge_type[],int n){ int score_zhuanjia=0; int score_dazong=0; int sum_score=0; int num_zhuanjia=0; int num_dazong=0; for(int i=0;i
ntln(sum_score1); int score2[]={90,91,92,93,94}; int judge_type2[]={1,1,1,1,1}; int sum_score2=cal_score(score2,judge_type2,5); System.out.println(sum_score2);
} }
public class Test2 { /** * @param args */ public static void sort(int input[],int n,int output[]){ int[] flag=new int[n]; int[] num=new int[n]; for(int i=0;inum[ii]){ int temp=num[ii]; num[ii]=num[jj]; num[jj]=temp;
} } } for(int k=0;k