华为南京地区校园招聘软件类上机考试说明同学您好!
欢迎您应聘华为公司。软件研发类岗位(软件研发、云计算、操作系统开发、数据库开发)需要提前进行上机考试。现将上机考试做如下说明。
一、题目类别
本次上机考试题目设置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,总分取整。如果没有大众评委,则总分= 专家评委平均分,总分取整。函数最终返回选手得分。
函数接口:int cal_score(int score[],int judge_type[],int n)
#include
#include
#include
#include
#define N 5
int cal_score(int score[],int judge_type[],int n) {
int iExpert = 0;
int iPeople = 0;
int iTotalPoints = 0;
int i;
int iNumber = 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); }
return iTotalPoints;
}
int main()
{
int score[N];
int judge_type[N];
int iNumberLast = 0;
int i;
printf("Please input the %d score:\n",N);
for(i=0;i{
scanf("%d",&score[i]);
}
printf("Please input the level(1:Expert,2:People)\n");
for(i=0;i{
scanf("%d",&judge_type[i]);
}
iNumberLast = cal_score(score,judge_type,N);
printf("The last score is %d\n",iNumberLast);
return 0;
}
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
using namespace std;
int sort(int input[],int n,int output[]);
int main()
{
int i,n;
int input[100],output[100];
cout<<"请输入数组的长度:"<cin>>n;
cout<<"请输入该数组:"<for(i=0;i{
cin>>input[i];
}
sort(input,n,output);
cout<<"排序后的结果是:"<{
cout<