华为2016届实习生招聘(武汉)笔试
2015-04-22 20:52
302 查看
2015年4月22日,作者在本校机房参加了华为2016届实习生招聘软件类岗位的上机笔试。华为笔试采用华为自己的在线编程平台http://career-oj.huawei.com (类似的在线编程平台还有http://www.hihocoder.com,这个比OJ可能要做得好一些,是我偏爱的平台,喜欢编程刷题的不妨常去逛逛),要求在两小时之内完成三道编程题,题目比较基础,只要基础还行,仔细编码,做出来问题不大。
1.关于答题流程
要进行笔试,需要提前注册华为OJ平台(前文提及),在个人资料里绑定***号和简历编号。笔试前刷***签到。
首先要完成性格测试,这是所有岗位都要参加的。之后便是软件类岗位的笔试。
后台开放笔试后,可以在OJ平台‘竞赛’栏目找到笔试题目,里面有三道题,任意一道题后被第一次点击后开始计算该题作答用时。点击进去才能看到题目内容,页面下方是代码编辑区,可以选择编程语言,完成后提交代码,每道题有5次提交机会。提交后系统会进行评测,对于编译错误、运行时错误、答案错误、答案正确等情况返回相应结果,并计算得分,满分为150分,通过的样例测试越多,分数越高。
笔试中会对所有选手排名,首先看得分,得分相同看提交次数,提交次数相同看作答总用时。所以请使用电脑上的编程工具测试无误后再提交代码,减少提交次数。
2.关于试题
三道题如下:
1)解析报文,找到字段和字段的值输出。
对于这样的输入样例
得到这样的输出样例
熟悉web的同学可能对此比较熟悉,http 的GET请求就是在请求的URL后加上?user=username&clientid=123456这类的后缀用来发送数据的,这里传了两组数据
我们要做的就是将后缀里面的变量名、变量值分组,然后按照例子所示的格式输出。
2)颠倒数字相加
输入: 一行数据,两个数,中间用空格隔开
输出:将输入的两个数字反序,去掉反序后开始部分的0,然后将反序之后的数据相加,输出结果。
例如:
输入:
输出:
3)Excel的列编号
我们知道,Excel的列是这样编号的:
a, b, c, …, z, aa, ab, …,az, ba, bb, …, bz, …za, …, zz, …, aaa……
它们对应的数字序号是1,2,3 … 26, 27, 28, … 56, 57,……。
编写程序,实现输入一个字母列号,输出数字列号。
如果感兴趣的话不妨做一做,我会在分割线后给出解答。
-----------------------------
传说中的分割线
-----------------------------
-----------------------------
传说中的分割线
-----------------------------
就是这些了,题目应该不难吧,考查的都是基础。最后祝愿大家能顺利进入自己心仪的实习单位。
1.关于答题流程
要进行笔试,需要提前注册华为OJ平台(前文提及),在个人资料里绑定***号和简历编号。笔试前刷***签到。
首先要完成性格测试,这是所有岗位都要参加的。之后便是软件类岗位的笔试。
后台开放笔试后,可以在OJ平台‘竞赛’栏目找到笔试题目,里面有三道题,任意一道题后被第一次点击后开始计算该题作答用时。点击进去才能看到题目内容,页面下方是代码编辑区,可以选择编程语言,完成后提交代码,每道题有5次提交机会。提交后系统会进行评测,对于编译错误、运行时错误、答案错误、答案正确等情况返回相应结果,并计算得分,满分为150分,通过的样例测试越多,分数越高。
笔试中会对所有选手排名,首先看得分,得分相同看提交次数,提交次数相同看作答总用时。所以请使用电脑上的编程工具测试无误后再提交代码,减少提交次数。
2.关于试题
三道题如下:
1)解析报文,找到字段和字段的值输出。
对于这样的输入样例
name=Justin,age=19,job=lawer
得到这样的输出样例
[[name,Justin],[age,19],[job,lawer]]
熟悉web的同学可能对此比较熟悉,http 的GET请求就是在请求的URL后加上?user=username&clientid=123456这类的后缀用来发送数据的,这里传了两组数据
变量名 | 变量值 |
---|---|
user | username |
clientid | 123456 |
2)颠倒数字相加
输入: 一行数据,两个数,中间用空格隔开
输出:将输入的两个数字反序,去掉反序后开始部分的0,然后将反序之后的数据相加,输出结果。
例如:
输入:
210 80
输出:
20
3)Excel的列编号
我们知道,Excel的列是这样编号的:
a, b, c, …, z, aa, ab, …,az, ba, bb, …, bz, …za, …, zz, …, aaa……
它们对应的数字序号是1,2,3 … 26, 27, 28, … 56, 57,……。
编写程序,实现输入一个字母列号,输出数字列号。
如果感兴趣的话不妨做一做,我会在分割线后给出解答。
-----------------------------
传说中的分割线
-----------------------------
[code] #include <iostream> #include <cstring> #include <string> using namespace std; int toNum(char *); void test1(); void test2(); void test3(); int main() { int choice; //选择题号 cin>>choice; switch(choice) { case 1: test1(); break; case 2: test2(); break; case 3: test3(); break; } return 0; } //第一题 void test1() { string input; cin>>input; cout<<"[["; for(int i = 0; i < input.length(); i++){ if(input.at(i) == '=') cout<<','; else if(input.at(i) == ',') cout<<"],["; else cout<<input.at(i); } cout<<"]]"<<endl; } void test2() { char num1[20], num2[20]; cin>>num1>>num2; cout<<toNum(num1) + toNum(num2)<<endl; } int toNum(char * input) { int end, res = 0, base = 1; char *pos; end = strlen(input); //清除尾部的0字符 while(input[end - 1] == '0') end--; input[end] = '\0'; //如果输入全0,则字符数组被清空 for(pos = input; *pos; pos++) { //字符转数字,再乘以10的n次方 res += ((*pos)-0x30)*base; base *= 10; } return res; } void test3() { string input; cin>>input; int pos, base = 1, res = 0; //与第二题相似,区别是从尾部开始读取 for(pos = input.length(); pos >= 1; pos--) { res += base * (input.at(pos - 1) - 'a' + 1); base *= 26; } cout<<res<<endl; }
-----------------------------
传说中的分割线
-----------------------------
就是这些了,题目应该不难吧,考查的都是基础。最后祝愿大家能顺利进入自己心仪的实习单位。
相关文章推荐
- 2017年华为实习生招聘笔试题1
- 华为、腾讯实习生招聘笔试、面试经验
- 腾讯 2016届实习生招聘笔试
- 2017年华为实习生招聘笔试题2
- [腾讯面试] 2016届腾讯实习生招聘笔试+面试(技术岗)
- 华为2017实习生招聘笔试题-公司年会
- 华为2017实习生招聘笔试题-水仙花数
- 2013-04-26-成都华为实习生招聘上机笔试
- 华为 2017 实习生招聘笔试题
- 阿里 2016届实习生招聘笔试
- 华为2016实习生招聘笔试题第三题--和尚挑水
- 2014年阿里武汉实习生招聘笔试题
- 2014年实习生招聘之华为实习生招聘笔试题(上机完成)—2014/04/02
- 华为2017实习生招聘笔试题-任务调度
- 360 2016届实习生招聘笔试 综合题
- 小米 2016届实习生招聘笔试
- 2017百度实习生招聘笔试真题编程题集合
- 2014-03-29.阿里实习生招聘笔试题目
- 面试----2015腾讯3-4月实习生招聘(笔试,一面,二面)
- 面试----2015阿里巴巴5月校园实习生招聘(笔试、一面、二面+Hr面)