文档介绍:该【(招聘面试)届华为校园招聘上机考试题 】是由【平儿】上传分享,文档一共【11】页,该文档可以免费在线阅读,需要了解更多关于【(招聘面试)届华为校园招聘上机考试题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
(招聘面试)届华为校园招
聘上机考试题:.
2012961届华为校园招聘上机考试题目(日下午点场)月
分类:华为准备2011-09-0815:10281(0)收藏举报人阅读评论
于网上见到华为于有的地方已经开始机试了,于是决定自己先编着试试。下面是题目和自己
写的代码。
1、选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,
judge_type[]里存储和score[]数组对应的评委类别,judge_type[i]==1,表示专家评委,
judge_type[i]==2,表示大众评委,n表示评委总数。打分规则如下:专家评委和大众评委
的分数先分别取壹个平均分(平均分取整),然后,总分=专家评委平均分*+大众评委
*,总分取整。如果没有大众评委,则总分=专家评委平均分,总分取整。函数最终返回
选手得分。
函数接口intcal_score(intscore[],intjudge_type[],intn)
viewplaincopytoclipboardprint?
1.#include<>
2.#include<>
3.#include<>
4.#include<>
5.#defineN5
(intscore[],intjudge_type[],intn)
7.{
=0;
=0;
=0;
;
=0;
(i=0;i<N;i++)
14.{
(judge_type[i]==1)
16.{
=expert+score[i];
++;
19.}
=dazhong+score[i];
21.}
(number==N)
23.{
=(int)(expert/N);
25.}
27.{:.
=(int)(expert/number);
=(int)(dazhong/(N-number));
=int(*expert+*dazhong);
31.}
;
33.}
()
35.{
[N];
[N];
=0;
;
("pleaseinputthe%dscore:\n",N);
(i=0;i<N;i++)
("%d",&score[i]);
("pleaseinputthelevel(1:expert,2:dazhong)\n");
(i=0;i<N;i++)
("%d",&judge_type[i]);
=cal_score(score,judge_type,N);
("thelastscoreis%d\n",numberlast);
;
49.}
运行结果分析:
pleaseinputthe5score:
9080878991
pleaseinputthelevel(1:expert,2:dazhong)
12111
thelastscoreis85
2、给定壹个数组input[],如果数组长度noutput[]为奇数,则将数组中最大的元素放到
数组最中间的位置,如果数组长度noutput[]数组中间为偶数,则将数组中最大的元素放到
俩个位置偏右的那个位置上,然后再按从大到小的顺序,依次于第壹个位置的俩边,按照壹
左壹右的顺序,依次存放剩下的数。
例如:
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}
viewplaincopytoclipboardprint?
1.#include<>
2.#include<>
3.#include<>
(intinput[],intn,intoutput[]):.
5.{
,j;
=1;
;
;
(i=0;i<n;i++)
(j=0;j<n-i;j++)
(input[j]>input[j+1])
13.{temp=input[j];input[j]=input[j+1];input[j+1]=temp;}
(n%2!=0)
15.{
(i=0;i<n;i++)
("%2d",input[i]);
("\n");
=(n-1)/2;
[med]=input[n-1];
(i=1;i<=med;i++)
22.{
[med-i]=input[n-1-k];
[med+i]=input[n-2-k];
=k+2;
26.}
27.}
29.{
(i=0;i<n;i++)
("%2d",input[i]);
("\n");
=n/2;
[med]=input[n-1];
(i=1;i<=med-1;i++)
36.{
[med-i]=input[n-1-k];
[med+i]=input[n-2-k];
=k+2;
40.}
[0]=input[0];
42.}
(i=0;i<n;i++)
("%2d",output[i]);
("\n");
46.}
()
48.{:.
[6]={3,6,1,9,7,8};
[6]={0};
(inti=0;i<6;i++)
("%2d",a[i]);
("\n");
(a,6,b);
;
56.}
运行结果
361978
136789
168973
3、操作系统任务调度问题。操作系统任务分为系统任务和用户任务俩种。其中,系统任务
的为非法任务,应予以剔除。的优先级<50,用户任务的优先级>=50<=255。优先级大于255且
现有壹任务队列task[],长度为n,task中的元素值表示任务的优先级,数值越小,优先级
越高。函数schedulertask[]中的任务按照系统任务、用户任务依次存放实现如下功能,将
到system_task[]数组和user_task[]数组中(数组中元素的值是任务于task[]数组中的下
标),且且优先级高的任务排于前面,数组元素为-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}
函数接口voidscheduler(inttask[],intn,intsystem_task[],intuser_task[])
viewplaincopytoclipboardprint?
1.#include<>
2.#include<>
3.#include<>
4.#include<>
(inttask[],intn,intsystem_task[],intuser_task[])
6.{
;
=0;
*p,*pp,*p_user,*pp_user;
=0;
,count2;
=0;
=0;:.
=(int*)malloc(sizeof(int)*n);
(i=0;i<n;i++)
[i]=0;
=(int*)malloc(sizeof(int)*n);
(i=0;i<n;i++)
[i]=0;
=(int*)malloc(sizeof(int)*n);
(i=0;i<n;i++)
[i]=0;
=(int*)malloc(sizeof(int)*n);
(i=0;i<n;i++)
[i]=0;
(i=0;i<n;i++)
27.{
(task[i]<50)
29.{
30.{
[j]=task[i];
[j]=i;
++;
34.}
=j;
36.}
(task[i]<=255)
38.{
39.{
[k]=task[i];
[k]=i;
++;
43.}
=k;
45.}
[i]=task[i];
47.}
(i=0;i<count;i++)
("%3d",system_task[i]);
("\n");
(i=0;i<count;i++)
52.{
=system_task[0];
(j=1;j<count;j++)
55.{
(system_task[j]<min)
57.{:.
=system_task[j];
[i]=j;
60.}
61.}
[p[i]]=51;
63.}
[count]=-1;
(i=0;i<count;i++)
("%3d",pp[p[i]]);
("%3d\n",pp[count]);
68./***********************************************************/
(i=0;i<count2;i++)
("%4d",user_task[i]);
("\n");
(i=0;i<count2;i++)
73.{
=user_task[0];
(j=1;j<count2;j++)
76.{
(user_task[j]<min)
78.{
=user_task[j];
[i]=j;
81.}
82.}
[p_user[i]]=256;
84.}
[count2]=-1;
(i=0;i<count2;i++)
("%4d",pp_user[p_user[i]]);
("%3d\n",pp_user[count2]);
89.}
()
91.{
[9]={0,30,155,1,80,300,170,40,99};
[9]={0};
[9]={0};
(task,9,system_task,user_task);
;
97.}
运行结果:
030140:.
0317-1
1558017099
4826-1
2012-1华为校园招聘机试(成均)
第壹道就是说算分数的问题,去掉壹个最高分壹个最低分,求平均分
viewplaincopytoclipboardprint?
1.#include<>
(floatscore[],intn)
3.{
=0;
=0;
=0;
=0;
=0;
=score[0];
(inti=0;i<n;i++)
(score[i]<min)
12.{
=score[i];
=i;
15.}
[minindex]=0;
=score[0];
(i=0;i<n;i++)
(score[i]>max)
20.{
=score[i];
=i;
23.}
[maxindex]=0;
(i=0;i<n;i++)
+=score[i];
=sum/(n-2);
;
29.}
()
31.{
[6]={70,80,90,98,87,86};:.
;
=avescore(score,6);
("thelastscoreis:%\n",lastscore);
36.}
运行结果:
thelastscoreis:
2012-2华为校园招聘机试(成均)
分类:华为准备2011-09-0822:23324(2)收藏举报人阅读评论
第二道:对壹个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着
放且输出数组第壹位放奇数若奇数和偶数不等长,则把剩下的直接放到数组中。
-------------------思路:先进行奇偶判断,得到奇数和偶数数组。然后对俩数组排序,
进行长度判断,最后组织数据。
viewplaincopytoclipboardprint?
1.#include<>
2.#include<>
(inta[],intn)
4.{
*p1;
*p2;
,j;
=0;
=0;
=0;
=0;
;
;
=0;
=(int*)malloc(sizeof(int)*n);
=(int*)malloc(sizeof(int)*n);
(i=0;i<n;i++)
18.{
[i]=0;
[i]=0;
21.}
(i=0;i<n;i++)
23.{
((a[i]%2)!=0):.
25.{p2[kk++]=a[i];}
27.{p1[k++]=a[i];}
28.}
=k;
=kk;
(i=0;i<count2;i++)
("%3d",p2[i]);
("\n");
(i=0;i<count2;i++)
(j=0;j<count2-1-i;j++)
(p2[j]>p2[j+1])
37.{temp2=p2[j];p2[j]=p2[j+1];p2[j+1]=temp2;}
(i=0;i<count2;i++)
("%3d",p2[i]);
("\n");
(i=0;i<count1;i++)
("%3d",p1[i]);
("\n");
(i=0;i<count1;i++)
(j=0;j<count1-i;j++)
(p1[j]<p1[j+1])
47.{temp=p1[j];p1[j]=p1[j+1];p1[j+1]=temp;}
(i=0;i<count1;i++)
("%3d",p1[i]);
("\n");
(count1>count2)
52.{
(i=0;i<count2;i++)
54.{
[i+m]=p2[i];
[i+1+m]=p1[i];
=m+1;
58.}
(i=0;i<count1-count2;i++)
[2*count2+i]=p1[i+count2];
61.}
63.{
(i=0;i<count1;i++)
65.{
[i+m]=p2[i];
[i+1+m]=p1[i];
=m+1;:.
69.}
(i=0;i<count2-count1;i++)
[2*count1+i]=p2[i+count1];
72.}
(i=0;i<n;i++)
("%3d",a[i]);
("%\n");
76.}
()
78.{
[10]={2,3,14,6,2,15,12,14,4,11};
(a,10);
81.}
运行结果:
31511
31115
2146212144
1414126422
314111415126422