




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华为校招_我的机试经历( 考试时间:2013年9月12日下午2:00-4;00(两个小时) 考试地点:南京华为研究所N5三楼培训大厅(南京软件大道101号)上机环境:C/C+: VS2005(或VC6.0) Java:JDK1.7 试题类型:上机编程说明:这次考试跟以往不同(我们这届就是命苦,中考、高考、考研。从未被超越);1、以前上机考试编程工具为C/C+:VC 6.0;Java:eclipse,这次改成C/C+: VS2005(或VC6.0) Java:JDK1.7。由于本人以前学C语言花了一些功夫,相对Java用得上手些,备考时用的是C+;临考前一周接到通知,说是要用VS2005,于是下个软件再加上熟悉一下花了半天时间,手忙脚乱了一阵(建议最好用VS,毕竟有的程序在VC上能调通,在VS上可能运行不通过);2、以往的形式是给你个函数模块,函数名已写好,你只要往里面填代码就行了(华为提供的工程是将Main函数隐藏了的,所以自己不用再添加Main函数)例如: 1. 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array15=77,21,1,3,5, array23=1,3,5,从array14与array22比较开始,到array12与array0比较结束。这样得出它们不同的元素个数为0,若array16=77,21,1,3,5,7,那么他们不同的元素为3。函数原型为 int compare_array( int len1, int array1, int len2, int array2 );其中,len1与len2分别为数组array1和array2的长度,函数返回值为两个数组不同元素的个数。这次是随你发挥,可以写子函数,也可以只写个main函数(当然main函数是必不可少的)。先在编译环境(即VS2005或JDK1.7)上运行,调通后再复制到考试系统中,检查无误后,点击提交(不过每道题最多只能传五次);3、以往满分是100分,第一题20分,第二题30分,第三题50分,且前两题为必做题,最后一题作为附加题;现在是满分320(有点像英语四六级改革一样,100分改成710分),第一题60分,第二题100分,第三题160分,且不分什么必做题、附加题,建议拿到题目后最好把题目都浏览一遍,不一定按顺序做,尽会做的先做;有几点需要特别注意:1、一定要按标准输入、输出来编程,且按照考试系统中规定的格式,否则即使从头到尾写的都对,系统将显示格式错误,无法得分;2、最好多试几组测试条例,否则得不全分(本人已经犯过此类失误,希望后人不要重蹈覆辙);3、不要写任何程序提示语句(包括自己人为添加的换行命令),否则该题自动判0分;此外,考试时有不清楚的就问在场的工作人员,不要一个人憋在那里不吭声,浪费的是自己宝贵的时间;个人觉得华为的员工还是挺热心的,我问了不少问题,他们都跟我详细解答的,在此感谢他们的热忱相助。好了,废话啰嗦, 到此为止。下面进入正题。1、删除一个字符串首尾的下划线。例如,输入:hello_输出:hello注意:1、删除的是首尾的下划线,中间如果有的话则保留;2、要考虑一个字符串全是下划线的情况。自己写的程序(水平很烂,各位看官见笑了):#include<iostream>using namespace std;void underline_delete(char *str,int len)int i,j,k;if(str=NULL)return;if(len<1)return;for(i=0;stri=_;i+);for(j=len-1;strj=_;j-);if(i>j)strcpy(str,"");return;elsechar *Str=new char len+1;int Len=0;for(k=i;k<=j;k+)StrLen+=strk;StrLen=0;strcpy(str,Str);delete Str;void main()char str100;int len;gets(str); /hello_/_Hello_HuaWei_/_This_is_a_C+_program._len=strlen(str);underline_delete(str,len);cout<<str;/cout<<endl;2、剔除一个字符中重复的字符,然后按ASCII码值从小到大排列。例如,输入:abbcccddeeeffgghh输出:abcdefgh注意:1、剔除是整个字符串中重复的字符,而不是连续的字符2、要考虑空格(space)的情况(考试时忘了考虑这个,当时心情有点小紧张,一时疏忽了,因此这道题只得了一半分)。程序代码如下:#include<iostream>using namespace std;void sort(char *str,int len)int i,j,k;char ch;if(str=NULL|len<2)return;for(i=0;i<len-1;i+)k=i;for(j=i+1;j<len;j+)if(strj<strk)k=j;if(k!=i)ch=strk;strk=stri;stri=ch;void redundance_delete(char *str,int len)int i,diff_count=0;char ch;if(str=NULL)return if(len<1)return;sort(str,len);/先排序,再剔除字符串中重复的字符,否则剔除的是连续出现的字符char *Str=new charlen+1;diff_count+;ch=str0;Strdiff_count-1=ch;for(i=1;i<len;i+)if(i=len-1 && ch!=stri)diff_count+;ch=stri;Strdiff_count-1=ch;while(i<len && ch=stri)i+;if(i>=len)break;diff_count+;ch=stri;Strdiff_count-1=ch;Strdiff_count=0;strcpy(str,Str);delete Str;void main()char str100;int len=0;/用cin函数输入的话,编译系统会将空格 当作结束符0来处理gets(str);/abbcccddeeeffgghh/ab ba cd dc/dcbaabcd/abcd efgh_len=strlen(str);redundance_delete(str,len);cout<<str;3、渡口问题(原题我记不得了,大概如下):一个渡口有N辆客车和货车需要乘船,规定如下:同类车辆先来的先上;客车优先于货车;客车上了4辆后货车才可以上;客车若不足4辆则货车可以补充;若无货车则客车可以全上。其中客车的优先级为0,货车的优先级为1。例如,输入:50 0 1 0 1输出:0 1 3 2 4注意:1、输出的是原车辆在序列中的序号,且从0算起,因而前后交换时要保持相对顺序不变;2、要考虑客车不足4辆, 或者货车数量和客车数量有一者或两者为0的情况。#include<iostream>using namespace std;void shift(int len,int a,int pos)if(len<1)return;if(pos<0)return;int i,s;s=apos+len;for(i=len;i>0;i-)apos+i=apos+i-1;apos=s;void ferry(int num, int input,int output)int i,truck_num=0,bus_num=0;if(num<1)return;for(i=0;i<num;i+)if(inputi=0)bus_num+;else if(inputi=1)truck_num+;else output0=-1;return;outputi=i;if(truck_num=0|bus_num=0)return;int truck_count=0,bus_count=0,len,pos=0;for(i=0;truck_count+bus_count<truck_num+bus_num;)if(bus_count<bus_num && bus_count%4=0)pos=truck_count+bus_count;if(inputpos!=0)for(i=pos,len=0;inputi;i+,len+);shift(len,input,pos);shift(len,output,pos);pos=truck_count+(+bus_count);while(bus_count<bus_num && bus_count%4)if(inputpos!=0)for(i=pos,len=0;inputi;i+,len+);shift(len,input,pos);shift(len,output,pos);pos=truck_count+(+bus_count);if(bus_count>=bus_num)return;if(truck_count>=truck_num)return;if(inputpos!=1)for(i=pos,len=0;!inputi;i+,len+);shift(len,input,pos);shift(len,output,pos);pos=(+truck_count)+bus_count;void main()int i,N;cin>>N;/5/9/6/3/4/8int *input=new int N,*output=new int N;for(i=0;i<N;i+)cin>>inputi;/0 0 1 0 1/1 1 0 1 0 0 1 1 0/1 1 0 0 1 0/1 1 0/0 0 0 0/1 1 0 0 1 0 0 1ferry(N,input,output);if(output0!=-1)for(i=0;i<N;i+)cout<<outputi<< ;/输入输出序列中,数字以空格分开delete input,output;考完机考后,HR让我们到对面房间坐下来,歇息片刻;之后要做半个多小时的综合测评(即性格测试),不需要做太多准备,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市宝山区扬波中学2025年高三数学第一学期期末考试模拟试题
- 2025年产品运营题目及答案英文
- 汽车维修工高级技师理论考试复习题及参考答案
- 2025湖南医药学院招聘高层次人才120人备考练习试题及答案解析
- 2025年安徽某省属国有企业本部招聘驾驶员1名备考练习题库及答案解析
- 2025重庆奉节县教育事业单位面向公费师范生招聘53人考试参考试题及答案解析
- 2025浙江台州市建设工程质量检测中心招聘编制外用工3人备考练习试题及答案解析
- 免疫学模拟试题含参考答案
- 数据可视化与可视化平台的协同分析-洞察及研究
- 《开满鲜花的小路》小学教案上课件
- 柚子树栽培技术
- 2025年北京市公安机关人民警察特殊职位公务员招录考试(网络技术)历年参考题库含答案详解(5套)
- 行为面试法培训课件
- X射线电离辐射安全知识培训课件
- 医院洁净手术部建筑技术规范
- 上腔静脉综合征护理查房
- 《机械创新设计》课件-k第七章-机械结构设计与创新
- 2025年新退休返聘人员协议书
- 公共财产管理办法
- 脑梗死急性期护理查房
- 《中国玫瑰痤疮诊疗指南》解读
评论
0/150
提交评论