文档介绍:该【2012届华为校园招聘上机考试题 】是由【小布】上传分享,文档一共【25】页,该文档可以免费在线阅读,需要了解更多关于【2012届华为校园招聘上机考试题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
2012届华为校园招聘上机考试
题
D:.
2012届华为校园招聘上机考试题目(9月6日下午1点场)
分类:华为准备2011-09-0815:10281人阅读评论(0)收藏举报
在网上看到华为在有的地方已经开始机试了,于
是决定自己先编着试试。下面是题目和自己写的
代码。
1、选秀节目打分,分为专家评委和大众评委,
score[]数组里面存储每个评委打的分数,
judge_type[]里存储与score[]数组对应的
评委类别,judge_type[i]==1,表示专家评委,
judge_type[i]==2,表示大众评委,n表示评
委总数。打分规则如下:专家评委和大众评委的
分数先分别取一个平均分(平均分取整),然后,
总分=专家评委平均分*+大众评委*
,总分取整。如果没有大众评委,则总分=
专家评委平均分,总分取整。函数最终返回选手
得分。
函数接口intcal_score(intscore[],int
judge_type[],intn)
viewplaincopytoclipboardprint?
1.#include<>:.
:.
=dazhong+score[i];
4.}
(number==N)
6.{
=(int)(expert/N);
8.}
10.
11.{
=(int)(expert/number);
=(int)(dazhong/(N-num
ber));
=int(*expert+*daz
hong);
15.
16.}
;
18.
19.}
()
21.{:.
[N];
[N];
=0;
;
("pleaseinputthe%dscore:\
n",N);
(i=0;i<N;i++)
("%d",&score[i]);
("pleaseinputthelevel(1:exp
ert,2:dazhong)\n");
(i=0;i<N;i++)
("%d",&judge_type[i]);
=cal_score(score,judg
e_type,N);
("thelastscoreis%d\n",num
berlast);
;
35.}
运行结果分析::.
pleaseinputthe5score:
9080878991
pleaseinputthelevel(1:expert,2: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}
viewplaincopytoclipboardprint?
1.#include<>:.
2.#include<>
3.#include<>
4.
5.
6.
(intinput[],intn,intoutput[])
8.{
,j;
=1;
;
;
(i=0;i<n;i++)
(j=0;j<n-i;j++)
(input[j]>input[j+1])
16.{temp=input[j];input[j]=input[j
+1];input[j+1]=temp;}
(n%2!=0)
18.{
(i=0;i<n;i++)
("%2d",input[i]);
("\n");:.
=(n-1)/2;
[med]=input[n-1];
(i=1;i<=med;i++)
25.{
[med-i]=input[n-1-
k];
[med+i]=input[n-2-
k];
=k+2;
29.
30.}
31.}
33.{
34.
(i=0;i<n;i++)
("%2d",input[i]);
("\n");
=n/2;
[med]=input[n-1];
(i=1;i<=med-1;i++)
41.{:.
[med-i]=input[n-1-
k];
[med+i]=input[n-2-
k];
=k+2;
45.}
[0]=input[0];
47.}
(i=0;i<n;i++)
("%2d",output[i]);
("\n");
51.}
52.
53.
()
55.{
[6]={3,6,1,9,7,8};
[6]={0};
(inti=0;i<6;i++)
("%2d",a[i]);
("\n");
(a,6,b);:.
;
63.}
运行结果
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[])
viewplaincopytoclipboardprint?
1.#include<>
2.#include<>
3.#include<>
4.#include<>
5.
(inttask[],intn,intsy
stem_task[],intuser_task[])
7.{
;
=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;
27.
(i=0;i<n;i++)
29.{
(task[i]<50)
31.{
32.{:.
[j]=task[i];
[j]=i;
++;
36.}
=j;
38.}
39.
(task[i]<=255)
41.{
42.
43.{
[k]=task[i];
[k]=i;
++;
47.}
=k;
49.}
[i]=task[i];
51.
52.}
53.
(i=0;i<count;i++):.
("%3d",system_task[i]);
("\n");
57.
58.
(i=0;i<count;i++)
60.{
=system_task[0];
(j=1;j<count;j++)
63.{
64.
(system_task[j]<min)
66.{
=system_task[j];
[i]=j;
69.}
70.
71.}
[p[i]]=51;
73.}
74.
[count]=-1;
(i=0;i<count;i++):.
("%3d",pp[p[i]]);
("%3d\n",pp[count]);
79.
80.
81./*****************************************
******************/
82.
(i=0;i<count2;i++)
("%4d",user_task[i]);
("\n");
86.
(i=0;i<count2;i++)
88.{
=user_task[0];
(j=1;j<count2;j++)
91.{
92.
(user_task[j]<min)
94.{
=user_task[j];
[i]=j;
97.}:.
98.
99.}
[p_user[i]]=256;
101.}
102.
[count2]=-1;
(i=0;i<count2;i++)
("%4d",pp_user[p_user[i
]]);
("%3d\n",pp_user[count2])
;
107.
108.
109.}
110.
111.
112.
()
114.{
[9]={0,30,155,1,80,300,
170,40,99};
[9]={0};:.
[9]={0};
(task,9,system_task,
user_task);
;
120.}
运行结果:
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",l
astscore);
36.
37.}
运行结果:
thelastscoreis:
2012华为校园招聘机试(成都)-2
分类:华为准备2011-09-0822:23324人阅读评论(2)收藏举报
第二道:对一个数组,将数组中偶数从大到小
排序,奇数从小到大排序,奇数和偶数交叉着放
且输出数组第一位放奇数若奇数和偶数不等
长,则把剩下的直接放到数组中。:.
-------------------思路:先进行奇偶判断,得到奇
数和偶数数组。然后对两数组排序,进行长度判
断,最后组织数据。
viewplaincopytoclipboardprint?
1.#include<>
2.#include<>
3.
(inta[],intn)
5.{
*p1;
*p2;
,j;
=0;
=0;
=0;
=0;
;
;
=0;
=(int*)malloc(sizeof(int)*n);:.
=(int*)malloc(sizeof(int)*n);
(i=0;i<n;i++)
19.{
[i]=0;
[i]=0;
22.}
23.
(i=0;i<n;i++)
25.{
26.
((a[i]%2)!=0)
28.{p2[kk++]=a[i];}
30.{p1[k++]=a[i];}
31.}
=k;
=kk;
34.
(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])
42.{temp2=p2[j];p2[j]=p2[j+1];p2[
j+1]=temp2;}
(i=0;i<count2;i++)
("%3d",p2[i]);
("\n");
46.
(i=0;i<count1;i++)
("%3d",p1[i]);
("\n");
50.
51.
(i=0;i<count1;i++)
(j=0;j<count1-i;j++)
(p1[j]<p1[j+1])
55.{temp=p1[j];p1[j]=p1[j+1]
;p1[j+1]=temp;}
(i=0;i<count1;i++)
("%3d",p1[i]);
("\n");:.
59.
60.
61.
(count1>count2)
63.
64.{
(i=0;i<count2;i++)
66.{
[i+m]=p2[i];
[i+1+m]=p1[i];
=m+1;
70.}
(i=0;i<count1-count
2;i++)
[2*count2+i]=p1[i+c
ount2];
73.
74.}
76.{
(i=0;i<count1;i++)
78.{:.
[i+m]=p2[i];
[i+1+m]=p1[i];
=m+1;
82.
83.}
(i=0;i<count2-count
1;i++)
[2*count1+i]=p2[i+c
ount1];
86.
87.}
(i=0;i<n;i++)
("%3d",a[i]);
("%\n");
91.
92.}
()
94.{
[10]={2,3,14,6,2,15,12,14,4,11};
(a,10);
:.
98.}
运行结果:
31511
31115
2146212144
1414126422
314111415126422