招聘面试届华为校园招聘上机考试题.docx

上传人:b****6 文档编号:6088657 上传时间:2023-01-03 格式:DOCX 页数:13 大小:18.51KB
下载 相关 举报
招聘面试届华为校园招聘上机考试题.docx_第1页
第1页 / 共13页
招聘面试届华为校园招聘上机考试题.docx_第2页
第2页 / 共13页
招聘面试届华为校园招聘上机考试题.docx_第3页
第3页 / 共13页
招聘面试届华为校园招聘上机考试题.docx_第4页
第4页 / 共13页
招聘面试届华为校园招聘上机考试题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

招聘面试届华为校园招聘上机考试题.docx

《招聘面试届华为校园招聘上机考试题.docx》由会员分享,可在线阅读,更多相关《招聘面试届华为校园招聘上机考试题.docx(13页珍藏版)》请在冰豆网上搜索。

招聘面试届华为校园招聘上机考试题.docx

招聘面试届华为校园招聘上机考试题

(招聘面试)届华为校园招聘上机考试题

2012届华为校园招聘上机考试题目(9月6日下午1点场)

分类:

华为准备2011-09-0815:

10281人阅读评论(0)收藏举报

于网上见到华为于有的地方已经开始机试了,于是决定自己先编着试试。

下面是题目和自己写的代码。

1、选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,judge_type[]里存储和score[]数组对应的评委类别,judge_type[i]==1,表示专家评委,judge_type[i]==2,表示大众评委,n表示评委总数。

打分规则如下:

专家评委和大众评委的分数先分别取壹个平均分(平均分取整),然后,总分=专家评委平均分*0.6+大众评委*0.4,总分取整。

如果没有大众评委,则总分=专家评委平均分,总分取整。

函数最终返回选手得分。

函数接口intcal_score(intscore[],intjudge_type[],intn)

viewplaincopytoclipboardprint?

1.#include

2.#include

3.#include

4.#include

5.#defineN5

6.intcal_score(intscore[],intjudge_type[],intn)

7.{

8.intexpert=0;

9.intdazhong=0;

10.intzongfen=0;

11.inti;

12.intnumber=0;

13.for(i=0;i

14.{

15.if(judge_type[i]==1)

16.{

17.expert=expert+score[i];

18.number++;

19.}

20.elsedazhong=dazhong+score[i];

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;i

42.scanf("%d",&score[i]);

43.printf("pleaseinputthelevel(1:

expert,2:

dazhong)\n");

44.for(i=0;i

45.scanf("%d",&judge_type[i]);

46.numberlast=cal_score(score,judge_type,N);

47.printf("thelastscoreis%d\n",numberlast);

48.return0;

49.}

运行结果分析:

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.voidsort(intinput[],intn,intoutput[])

5.{

6.inti,j;

7.intk=1;

8.inttemp;

9.intmed;

10.for(i=0;i

11.for(j=0;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;i

17.printf("%2d",input[i]);

18.printf("\n");

19.med=(n-1)/2;

20.output[med]=input[n-1];

21.for(i=1;i<=med;i++)

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;i

31.printf("%2d",input[i]);

32.printf("\n");

33.med=n/2;

34.output[med]=input[n-1];

35.for(i=1;i<=med-1;i++)

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;i

44.printf("%2d",output[i]);

45.printf("\n");

46.}

47.intmain()

48.{

49.inta[6]={3,6,1,9,7,8};

50.intb[6]={0};

51.for(inti=0;i<6;i++)

52.printf("%2d",a[i]);

53.printf("\n");

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[])

viewplaincopytoclipboardprint?

1.#include

2.#include

3.#include

4.#include

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;i

16.p[i]=0;

17.pp=(int*)malloc(sizeof(int)*n);

18.for(i=0;i

19.pp[i]=0;

20.p_user=(int*)malloc(sizeof(int)*n);

21.for(i=0;i

22.p_user[i]=0;

23.pp_user=(int*)malloc(sizeof(int)*n);

24.for(i=0;i

25.pp_user[i]=0;

26.for(i=0;i

27.{

28.if(task[i]<50)

29.{

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;i

49.printf("%3d",system_task[i]);

50.printf("\n");

51.for(i=0;i

52.{

53.min=system_task[0];

54.for(j=1;j

55.{

56.if(system_task[j]

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;i

66.printf("%3d",pp[p[i]]);

67.printf("%3d\n",pp[count]);

68./***********************************************************/

69.for(i=0;i

70.printf("%4d",user_task[i]);

71.printf("\n");

72.for(i=0;i

73.{

74.min=user_task[0];

75.for(j=1;j

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;i

87.printf("%4d",pp_user[p_user[i]]);

88.printf("%3d\n",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

第壹道就是说算分数的问题,去掉壹个最高分壹个最低分,求平均分

viewplaincopytoclipboardprint?

1.#include

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;i

11.if(score[i]

12.{

13.min=score[i];

14.minindex=i;

15.}

16.score[minindex]=0;

17.max=score[0];

18.for(i=0;i

19.if(score[i]>max)

20.{

21.max=score[i];

22.maxindex=i;

23.}

24.score[maxindex]=0;

25.for(i=0;i

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);

36.}

运行结果:

thelastscoreis:

85.75

2012华为校园招聘机试(成均)-2

分类:

华为准备2011-09-0822:

23324人阅读评论

(2)收藏举报

第二道:

对壹个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第壹位放奇数若奇数和偶数不等长,则把剩下的直接放到数组中。

-------------------思路:

先进行奇偶判断,得到奇数和偶数数组。

然后对俩数组排序,进行长度判断,最后组织数据。

viewplaincopytoclipboardprint?

1.#include

2.#include

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;i

18.{

19.p1[i]=0;

20.p2[i]=0;

21.}

22.for(i=0;i

23.{

24.if((a[i]%2)!

=0)

25.{p2[kk++]=a[i];}

26.else

27.{p1[k++]=a[i];}

28.}

29.count1=k;

30.count2=kk;

31.for(i=0;i

32.printf("%3d",p2[i]);

33.printf("\n");

34.for(i=0;i

35.for(j=0;j

36.if(p2[j]>p2[j+1])

37.{temp2=p2[j];p2[j]=p2[j+1];p2[j+1]=temp2;}

38.for(i=0;i

39.printf("%3d",p2[i]);

40.printf("\n");

41.for(i=0;i

42.printf("%3d",p1[i]);

43.printf("\n");

44.for(i=0;i

45.for(j=0;j

46.if(p1[j]

47.{temp=p1[j];p1[j]=p1[j+1];p1[j+1]=temp;}

48.for(i=0;i

49.printf("%3d",p1[i]);

50.printf("\n");

51.if(count1>count2)

52.{

53.for(i=0;i

54.{

55.a[i+m]=p2[i];

56.a[i+1+m]=p1[i];

57.m=m+1;

58.}

59.for(i=0;i

60.a[2*count2+i]=p1[i+count2];

61.}

62.else

63.{

64.for(i=0;i

65.{

66.a[i+m]=p2[i];

67.a[i+1+m]=p1[i];

68.m=m+1;

69.}

70.for(i=0;i

71.a[2*count1+i]=p2[i+count1];

72.}

73.for(i=0;i

74.printf("%3d",a[i]);

75.printf("%\n");

76.}

77.voidmain()

78.{

79.inta[10]={2,3,14,6,2,15,12,14,4,11};

80.jiou(a,10);

81.}

运行结果:

31511

31115

2146212144

1414126422

314111415126422

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1