1、届华为校园招聘上机考试题目及答案Java和C+两种方式实现2012届华为校园招聘上机考试题目(9月6日下午1点场) 1、选秀节目打分,分为专家评委和大众评委,score 数组里面存储每个评委打的分数,judge_type 里存储与 score 数组对应的评委类别,judge_typei = 1,表示专家评委,judge_typei = 2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分 *0.6 + 大众评委 * 0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分
2、。函数接口 int cal_score(int score, int judge_type, int n) 2、给定一个数组input ,如果数组长度n为奇数,则将数组中最大的元素放到 output 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。 例如: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函
3、数接口 void sort(int input, int n, int output) 3、操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 = 50且 = 255。优先级大于255的为非法任务,应予以剔除。现有一任务队列task,长度为n,task中的元素值表示任务的优先级,数值越小,优先级越高。函数scheduler实现如下功能,将task 中的任务按照系统任务、用户任务依次存放到 system_task 数组和 user_task 数组中(数组中元素的值是任务在task 数组中的下标),并且优先级高的任务排在前面,优先级相同的任务按照入队顺序排列(即先
4、入队的任务排在前面),数组元素为-1表示结束。 例如:task = 0, 30, 155, 1, 80, 300, 170, 40, 99 system_task = 0, 3, 1, 7, -1 user_task = 4, 8, 2, 6, -1 函数接口 void scheduler(int task, int n, int system_task, int user_task)Java实现:public class Test1 public static int cal_score(int score,int judge_type,int n) int score_zhuanjia=0
5、; int score_dazong=0; int sum_score=0; int num_zhuanjia=0; int num_dazong=0; for(int i=0;in;i+) if(1=judge_typei) score_zhuanjia+=scorei; num_zhuanjia+; if(2=judge_typei) score_dazong+=scorei; num_dazong+; if(0=num_dazong) sum_score=score_zhuanjia/num_zhuanjia; else sum_score=(int)(score_zhuanjia/nu
6、m_zhuanjia*0.6+score_dazong/num_dazong*0.4); return sum_score; public static void main(String args) int score1=90,91,92,93,94,95,96,97,98,99; int judge_type1=1,1,1,2,2,1,2,1,2,1; int sum_score1=cal_score(score1,judge_type1,10); System.out.println(sum_score1); int score2=90,91,92,93,94; int judge_typ
7、e2=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 intn; int num=new intn; for(int i=0;in;i+) numi=inputi; if(0!=n%2) for(int i=0;in;i+) if(0=i%2) flagi=(
8、n+i)/2; else flagi=(n-i)/2-1; else for(int j=0;jn;j+) if(0=j%2) flagj=(n+j)/2; else flagj=(n-j)/2; for(int ii=0;iin-1;ii+) for(int jj=ii+1;jjnumii) int temp=numii; numii=numjj; numjj=temp; for(int k=0;kn;k+) outputflagk=numk; public static void main(String args) / TODO Auto-generated method stub int
9、 input1=3,6,1,9,7; int output1=new int5; sort(input1,5,output1); for(int i=0;i5;i+) System.out.println(output1i); System.out.println(*); int input2=3,6,1,9,7,8; int output2=new int6; sort(input2,6,output2); for(int j=0;j6;j+) System.out.println(output2j); public class Test3 /* * param args */ public
10、 static void scheduler(int task,int n,int system_task,int user_task) int n_system=0; int n_user=0; for(int i=0;in;i+) if(taski=50&taski=255) n_user+; int num_system=new intn_system; int num_user=new intn_user; int j=0; int k=0; for (int i = 0; i n; i+) if (taski=50&taski=255) num_userk=taski; user_t
11、askk=i; k+; system_taskj=-1; user_taskk=-1; for(int ii=0;iin_user-1;ii+) for(int jj=ii;jjnum_userjj) int temp1=num_userii; num_userii=num_userjj; num_userjj=temp1; int temp2=user_taskii; user_taskii=user_taskjj; user_taskjj=temp2; for(int ii=0;iin_system-1;ii+) for(int jj=ii;jjnum_systemjj) int temp
12、1=num_systemii; num_systemii=num_systemjj; num_systemjj=temp1; int temp2=system_taskii; system_taskii=system_taskjj; system_taskjj=temp2; public static void main(String args) / TODO Auto-generated method stub int task=0,30,155,1,80,300,170,40,99; int num_system=0; int num_user=0; for(int i=0;itask.l
13、ength;i+) if(taski=50&taski=255) num_user+; int system_task=new intnum_system+1; int user_task=new intnum_user+1; scheduler(task,task.length,system_task,user_task); for(int i=0;isystem_task.length;i+) System.out.println(system_taski); System.out.println(*); for(int j=0;juser_task.length;j+) System.o
14、ut.println(user_taskj); C+实现:题一:#includeusing namespace std;int cal_score(int score,int judge_type,int n);void main() int score110=90,91,92,93,94,95,96,97,98,99; int judge_type110=1,1,1,2,2,1,2,1,2,1; int sum_score1=cal_score(score1,judge_type1,10); coutsum_score1endl; int score25=90,91,92,93,94; in
15、t judge_type25=1,1,1,1,1; int sum_score2=cal_score(score2,judge_type2,5); coutsum_score2endl;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;in;i+) if(1=judge_typei) score_zhuanjia+=scorei; num
16、_zhuanjia+; if(2=judge_typei) score_dazong+=scorei; num_dazong+; if(0=num_dazong) sum_score=score_zhuanjia/num_zhuanjia; else sum_score=(int)(score_zhuanjia/num_zhuanjia*0.6+score_dazong/num_dazong*0.4); return sum_score;题二:#includeusing namespace std;void sort(int input,int n,int output);void main(
17、) int input15=3,6,1,9,7; int output15; sort(input1,5,output1); for(int i=0;i5;i+) coutoutput1iendl; cout*endl; int input26=3,6,1,9,7,8; int output26; sort(input2,6,output2); for(int j=0;j6;j+) coutoutput2jendl; void sort(int input,int n,int output) int* flag=new intn; int* num=new intn; for(int i=0;
18、in;i+) numi=inputi; if(0!=n%2) for(int i=0;in;i+) if(0=i%2) flagi=(n+i)/2; else flagi=(n-i)/2-1; else for(int j=0;jn;j+) if(0=j%2) flagj=(n+j)/2; else flagj=(n-j)/2; for(int ii=0;iin-1;ii+) for(int jj=ii+1;jjnumii) int temp=numii; numii=numjj; numjj=temp; for(int k=0;kn;k+) outputflagk=numk; 题三:#inc
19、ludeusing namespace std;void scheduler(int task,int n,int system_task,int user_task);void main() int task=0,30,155,1,80,300,170,40,99; int num_system=0; int num_user=0; for(int i=0;i9;i+) if(taski=50&taski=255) num_user+; int* system_task=new intnum_system+1; int* user_task=new intnum_user+1; schedu
20、ler(task,9,system_task,user_task); for(int k=0;knum_system+1;k+) coutsystem_taskkendl; cout*endl; for(int j=0;jnum_user+1;j+) coutuser_taskjendl; void scheduler(int task,int n,int system_task,int user_task) int n_system=0; int n_user=0; for(int i=0;in;i+) if(taski=50&taski=255) n_user+; int* num_sys
21、tem=new intn_system; int* num_user=new intn_user; int j=0; int k=0; for (int ij = 0; ij n; ij+) if (taskij=50&taskij=255) num_userk=taskij; user_taskk=ij; k+; system_taskj=-1; user_taskk=-1; for(int ii=0;iin_user-1;ii+) for(int jj=ii;jjnum_userjj) int temp1=num_userii; num_userii=num_userjj; num_userjj=temp1; int temp2=user_taskii; user_taskii=user_taskjj; user_taskjj=temp2; for(int iii=0;iiin_system-1;iii+) for(int jj=iii;jjnum_systemjj) int temp1=num_systemiii; num_systemiii=num_systemjj; num_systemjj=temp1; int temp2=system_taskiii; system_taskiii=system_taskjj; system_taskjj=temp2;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1