资源描述:
《2012华为校园招聘机试题目及答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、2012届华为校园招聘上机考试题目1、选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,judge_type[]里存储与score[]数组对应的评委类别,judge_type[i]==1,表示专家评委,judge_type[i]==2,表示大众评委,,n表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分=专家评委平均分*0.6+大众评委*0.4,总分取整。如果没有大众评委,则总分=专家评委平均分,总分取整。函数最终返回选手得分。函数接口intcal_score(intscore[],intjudg
2、e_type[],intn)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}函数接口voidsort(intinput[],intn,intoutput[])3、操作
3、系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级<50,用户任务的优先级>=50且<=255。优先级大于的非法任务,应予以剔除。现有一任务队列task[],长度为n,task中的元素表示任务的优先级,数值越小,优先级越高。函数scheduler实现如下功能,将task[]中的任务按照系统任务、用户任务依次存放到system_task[]数组和user_task[]数组中(数组中元素的值是任务在task[]数组中的下标),并且优先级高的任务排在前面,优先级相同的任务按照入队顺序排列(即先入队的任务排在前面),数组元素为-1表示结束。例如:tas
4、k[]={0,30,155,1,80,300,170,40,99}system_task[]={0,3,1,7,-1}user_task[]={4,8,2,6,-1}函数接口voidscheduler(inttask[],intn,intsystem_task[],intuser_task[])参考答案1、#includeusingnamespacestd;intcal_score(intscore[],intjudge_type[],intn){//sum_zj是专业评委总分数;sum_dz是大众评委总分数;count1专业评委人数;count2大众评
5、委人数intsum_zj=0,sum_dz=0,count1=0,count2=0,r;for(inti=0;i6、;intjudge_type[]={1,1,1,2,2};intresult=cal_score(score,judge_type,5);cout<usingnamespacestd;//选择法将数组中的数据按从大到小排列voidSelectSort(intinput[],intn){intmax,k;for(inti=0;imax){max=input[j];k=j;}if(k!=i){i
7、nput[k]=input[i];input[i]=max;}}}voidsort(intinput[],intn,intoutput[]){SelectSort(input,n);//先将数据从大到小排列intl1=0,l2=0;if((n%2)==1)//数组长度为奇数{output[n/2]=input[0];for(intj=1;j