20140815 华为机试 记录

来源:互联网 发布:西安行知中学军训吗 编辑:程序博客网 时间:2024/06/06 01:27

华为是我投的第一份简历,今天第一次机试,有一些感想,想找个地方记录一下,跟大家分享。这也是我写的第一篇博客,新的开始,希望一切顺利。

注意事项:

1.华为的机试环境C和C++是VS2005,一直使用VC6.0的同学最好提前熟悉下环境。建工程时最好建空项目,不要带预编译头的。建完空项目自己在项目下添加.cpp源文件。

2.华为的提交跟leetcode不一样,leetcode给你提供接口,你只需要写主函数就可以,而华为需要你提交完整的程序,所以为了验证你的程序结果的正确与否,华为有对应的输入测试用例,然后看你的输出是否符合要求。所以一定要按题目要求标准输入,标准输出。而且要对各种输入情况准确输入。
3.华为每一题都有好几组测试用例,所以你需要自己调试的时候多试几组测试用例,而不是满足样例就可以,这样会得不全分。华为是按照测试用例通过的比例给分的。

4.满分320分(60+120+160),三道题,2个小时。通过60分就有面试的机会。

5.感觉华为的机试题考查字符串,数组,链表,循环等比较多。掌握常用的数据结构很重要,再加一定的逻辑分析能力前两题差不多就可以了,第三题涉及的就比较多,比较复杂,在规定的两个小时时间内做完3道题还是有一点难度的。


分享今天的机试题:(原题不记得了,只记得大概)

1.十进制数转BCD码

   输入一串10个以内的正整数,转换成BCD码输出。(先将十进制转换成二进制数,8位一组按BCD码的规则输出)

如:输入:123          输入:1234

        输出:152          输出:1852


2.输入一串正整数序列,用空格隔开每一个数字。输入不超过32个数,如超过32个数,输出"ERROR"。除了数字和空格,一旦序列中有其他字符,输出“ERROR”。其他情况输出所有输入的数的和。

如:输入:12 a34           输入:11 11 11 11 11 11

        输出:ERROR         输出:66


3.火星计算器  定义了四种新的运算方式,运算符是@,#,$,&,比如:x@y=(x-1)*(y+1),(其他的不记得了),表达式可能存在多个运算符,之间还有一些优先级的定义,但保证不存在括号。

输入多行运算表达式,按定义的运算算出运算结果,对应行输出。

如:输入:2@3&4

                   7#5

        输出:****

                    ****(具体不记得了)

0 0