招聘面试届华为校园招聘上机考试题Word文档格式.docx
《招聘面试届华为校园招聘上机考试题Word文档格式.docx》由会员分享,可在线阅读,更多相关《招聘面试届华为校园招聘上机考试题Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
21.}
22.if(number==N)
23.{
24.zongfen=(int)(expert/N);
25.}
26.else
27.{
28.expert=(int)(expert/number);
29.dazhong=(int)(dazhong/(N-number));
30.zongfen=int(0.6*expert+0.4*dazhong);
31.}
32.returnzongfen;
33.}
34.intmain()
35.{
36.intscore[N];
37.intjudge_type[N];
38.intnumberlast=0;
39.inti;
40.printf("
pleaseinputthe%dscore:
\n"
N);
41.for(i=0;
42.scanf("
%d"
&
score[i]);
43.printf("
pleaseinputthelevel(1:
expert,2:
dazhong)\n"
);
44.for(i=0;
45.scanf("
judge_type[i]);
46.numberlast=cal_score(score,judge_type,N);
47.printf("
thelastscoreis%d\n"
numberlast);
48.return0;
49.}
运行结果分析:
pleaseinputthe5score:
9080878991
dazhong)
12111
thelastscoreis85
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}
4.voidsort(intinput[],intn,intoutput[])
5.{
6.inti,j;
7.intk=1;
8.inttemp;
9.intmed;
10.for(i=0;
n;
11.for(j=0;
j<
n-i;
j++)
12.if(input[j]>
input[j+1])
13.{temp=input[j];
input[j]=input[j+1];
input[j+1]=temp;
}
14.if(n%2!
=0)
15.{
16.for(i=0;
17.printf("
%2d"
input[i]);
18.printf("
19.med=(n-1)/2;
20.output[med]=input[n-1];
21.for(i=1;
=med;
22.{
23.output[med-i]=input[n-1-k];
24.output[med+i]=input[n-2-k];
25.k=k+2;
26.}
27.}
28.else
29.{
30.for(i=0;
31.printf("
32.printf("
33.med=n/2;
34.output[med]=input[n-1];
35.for(i=1;
=med-1;
36.{
37.output[med-i]=input[n-1-k];
38.output[med+i]=input[n-2-k];
39.k=k+2;
40.}
41.output[0]=input[0];
42.}
43.for(i=0;
44.printf("
output[i]);
45.printf("
46.}
47.intmain()
48.{
49.inta[6]={3,6,1,9,7,8};
50.intb[6]={0};
51.for(inti=0;
6;
52.printf("
a[i]);
53.printf("
54.sort(a,6,b);
55.return0;
56.}
运行结果
361978
136789
168973
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}system_task[]={0,3,1,7,-1}user_task[]={4,8,2,6,-1}
函数接口voidscheduler(inttask[],intn,intsystem_task[],intuser_task[])
malloc.h>
5.voidscheduler1(inttask[],intn,intsystem_task[],intuser_task[])
6.{
7.inti;
8.intj=0;
9.int*p,*pp,*p_user,*pp_user;
10.intindex=0;
11.intcount,count2;
12.intmin=0;
13.intk=0;
14.p=(int*)malloc(sizeof(int)*n);
15.for(i=0;
16.p[i]=0;
17.pp=(int*)malloc(sizeof(int)*n);
18.for(i=0;
19.pp[i]=0;
20.p_user=(int*)malloc(sizeof(int)*n);
21.for(i=0;
22.p_user[i]=0;
23.pp_user=(int*)malloc(sizeof(int)*n);
24.for(i=0;
25.pp_user[i]=0;
26.for(i=0;
28.if(task[i]<
50)
30.{
31.system_task[j]=task[i];
32.pp[j]=i;
33.j++;
34.}
35.count=j;
36.}
37.elseif(task[i]<
=255)
38.{
39.{
40.user_task[k]=task[i];
41.pp_user[k]=i;
42.k++;
43.}
44.count2=k;
45.}
46.elsetask[i]=task[i];
47.}
48.for(i=0;
count;
49.printf("
%3d"
system_task[i]);
50.printf("
51.for(i=0;
52.{
53.min=system_task[0];
54.for(j=1;
55.{
56.if(system_task[j]<
min)
57.{
58.min=system_task[j];
59.p[i]=j;
60.}
61.}
62.system_task[p[i]]=51;
63.}
64.pp[count]=-1;
65.for(i=0;
66.printf("
pp[p[i]]);
67.printf("
%3d\n"
pp[count]);
68./***********************************************************/
69.for(i=0;
count2;
70.printf("
%4d"
user_task[i]);
71.printf("
72.for(i=0;
73.{
74.min=user_task[0];
75.for(j=1;
76.{
77.if(user_task[j]<
78.{
79.min=user_task[j];
80.p_user[i]=j;
81.}
82.}
83.user_task[p_user[i]]=256;
84.}
85.pp_user[count2]=-1;
86.for(i=0;
87.printf("
pp_user[p_user[i]]);
88.printf("
pp_user[count2]);
89.}
90.intmain()
91.{
92.inttask[9]={0,30,155,1,80,300,170,40,99};
93.intsystem_task[9]={0};
94.intuser_task[9]={0};
95.scheduler1(task,9,system_task,user_task);
96.return0;
97.}
运行结果:
030140
0317-1
1558017099
4826-1
2012华为校园招聘机试(成均)-1
第壹道就是说算分数的问题,去掉壹个最高分壹个最低分,求平均分
2.floatavescore(floatscore[],intn)
3.{
4.floatmin=0;
5.floatmax=0;
6.intminindex=0;
7.intmaxindex=0;
8.floatsum=0;
9.min=score[0];
10.for(inti=0;
11.if(score[i]<
12.{
13.min=score[i];
14.minindex=i;
15.}
16.score[minindex]=0;
17.max=score[0];
19.if(score[i]>
max)
20.{
21.max=score[i];
22.maxindex=i;
23.}
24.score[maxindex]=0;
25.for(i=0;
26.sum+=score[i];
27.sum=sum/(n-2);
28.returnsum;
29.}
30.voidmain()
31.{
32.floatscore[6]={70,80,90,98,87,86};
33.floatlastscore;
34.lastscore=avescore(score,6);
35.printf("
thelastscoreis:
%5.2f\n"
lastscore);
85.75
2012华为校园招聘机试(成均)-2
华为准备2011-09-0822:
23324人阅读评论
(2)收藏举报
第二道:
对壹个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第壹位放奇数若奇数和偶数不等长,则把剩下的直接放到数组中。
-------------------思路:
先进行奇偶判断,得到奇数和偶数数组。
然后对俩数组排序,进行长度判断,最后组织数据。
3.voidjiou(inta[],intn)
4.{
5.int*p1;
6.int*p2;
7.inti,j;
8.intk=0;
9.intkk=0;
10.intcount1=0;
11.intcount2=0;
12.inttemp;
13.inttemp2;
14.intm=0;
15.p1=(int*)malloc(sizeof(int)*n);
16.p2=(int*)malloc(sizeof(int)*n);
17.for(i=0;
18.{
19.p1[i]=0;
20.p2[i]=0;
22.for(i=0;
24.if((a[i]%2)!
25.{p2[kk++]=a[i];
27.{p1[k++]=a[i];
28.}
29.count1=k;
30.count2=kk;
31.for(i=0;
p2[i]);
33.printf("
34.for(i=0;
35.for(j=0;
count2-1-i;
36.if(p2[j]>
p2[j+1])
37.{temp2=p2[j];
p2[j]=p2[j+1];
p2[j+1]=temp2;
38.for(i=0;
39.printf("
count1;
42.printf("
p1[i]);
45.for(j=0;
count1-i;
46.if(p1[j]<
p1[j+1])
47.{temp=p1[j];
p1[j]=p1[j+1];
p1[j+1]=temp;
51.if(count1>
count2)
53.for(i=0;
54.{
55.a[i+m]=p2[i];
56.a[i+1+m]=p1[i];
57.m=m+1;
58.}
59.for(i=0;
count1-count2;
60.a[2*count2+i]=p1[i+count2];
62.else
63.{
64.for(i=0;
65.{
66.a[i+m]=p2[i];
67.a[i+1+m]=p1[i];
68.m=m+1;
69.}
70.for(i=0;
count2-count1;
71.a[2*count1+i]=p2[i+count1];
72.}
73.for(i=0;
74.printf("
75.printf("
%\n"
76.}
77.voidmain()
79.inta[10]={2,3,14,6,2,15,12,14,4,11};
80.jiou(a,10);
31511
31115
2146212144
1414126422
314111415126422