华为机试题目参考1.docx
《华为机试题目参考1.docx》由会员分享,可在线阅读,更多相关《华为机试题目参考1.docx(18页珍藏版)》请在冰点文库上搜索。
华为机试题目参考1
华为南京地区校园招聘软件类上机考试说明同学您好!
欢迎您应聘华为公司。
软件研发类岗位(软件研发、云计算、操作系统开发、数据库开发)需要提前进行上机考试。
现将上机考试做如下说明。
一、 题目类别
本次上机考试题目设置C/C++、Java两个类别,根据个人情况选作一个类别。
二、 题目数量
每个考生有三道题,第一二道题必答,第三道题为附加题可以选作,附加题做出,成绩会计入总分。
三、 考试时间安排
1、简历筛选后,从9月17日开始分批安排上机考试
2、每个考生上机考试时间为2小时
一、 上机考试步骤
1、打开IE输入服务器的IP地址或者直接打开收藏夹中已经收藏好的地址;
2、输入姓名和手机号,选择考试语言,提交登录:
3、登录后会进入试题说明页面,考试阅读完试题要求后,在页面下方点击下载试题框架并解压到D盘。
如果是C/C++则用VC打开工程进行编程,只在func.cpp文件中进行函数编写,函数名已经定义好;如果是Java则用Eclips打开Java工程进行编程,只在SWTest.java文件中进行函数编写,函数名已经定义好。
注意,考生不要进行任何IO输入输出的处理(题目说明中已经有写了),否则会得0分。
4、编完代码并编译和调试通过后,点击试题页面下方的按钮,在弹出的窗口中,如果是C/C++则将test.exe和func.cpp拷贝到一个名为test的目录中然后打包该目录上传,如果是Java则将工程仍然打包为SWTest.rar一次性上传(这个过程非常重要,否则会因无法自动判卷而得0分)。
上传之后页面会显示“提交成功”,然后关闭所有IE窗口并清空客户机中您所创建的所有内容后结束考试离开考场。
二、 如何阅卷
1、考生提交试卷后,我们在服务器后台执行系统阅卷程序,进行自动判卷,不进行人工阅卷。
2、系统设置了多个测试用例,根据用例执行的情况判断考生所上机考试的分数。
三、 样题
编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素的个数并返回。
预祝您上机考试顺利!
华为南京校园招聘组
2011年9月
2012华为校园招聘机试(成都)
1.选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数,judge_type[]里存储与score[]数组对应的评委类别,judge_type[i]==1,表示专家评委,judge_type[i]==2,表示大众评委,n表示评委总数。
打分规则如下:
专家评委和大众评委的分数分别取一个平均分(平均分取整),然后,总分=专家分*0.6+大众评委*0.4,总分取整。
如果没有大众评委,则总分=专家评委平均分,总分取整。
函数最终返回选手得分。
函数接口:
intcal_score(intscore[],intjudge_type[],intn)
#include
#include
#include
#include
#defineN5
intcal_score(intscore[],intjudge_type[],intn)
{
intiExpert=0;
intiPeople=0;
intiTotalPoints=0;
inti;
intiNumber=0;
for(i=0;i{
if(judge_type[i]==1)
{
iExpert=iExpert+score[i];
iNumber++;
}
else
{
iPeople=iPeople+score[i];
}
}
if(iNumber==N)
{
iTotalPoints=(int)(iExpert/N);
}
else
{
iExpert=(int)(iExpert/iNumber);
iPeople=(int)(iPeople/(N-iNumber));
iTotalPoints=(int)(iExpert*0.6+iPeople*0.4);
}
returniTotalPoints;
}
intmain()
{
intscore[N];
intjudge_type[N];
intiNumberLast=0;
inti;
printf("Pleaseinputthe%dscore:
\n",N);
for(i=0;i{
scanf("%d",&score[i]);
}
printf("Pleaseinputthelevel(1:
Expert,2:
People)\n");
for(i=0;i{
scanf("%d",&judge_type[i]);
}
iNumberLast=cal_score(score,judge_type,N);
printf("Thelastscoreis%d\n",iNumberLast);
return0;
}
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}
#include
usingnamespacestd;
intsort(intinput[],intn,intoutput[]);
intmain()
{
inti,n;
intinput[100],output[100];
cout<<"请输入数组的长度:
"<cin>>n;
cout<<"请输入该数组:
"<for(i=0;i{
cin>>input[i];
}
sort(input,n,output);
cout<<"排序后的结果是:
"<for(i=0;i{
cout<