2012华为上机题

合集下载

华为2012校园招聘软件上机笔试题+准确答案

华为2012校园招聘软件上机笔试题+准确答案

2012华为校园招聘上机试题+准确答案1.给定一个字符串,把字符串内的字母转换成该字母的下一个字母,a换成b,z换成a,Z换成A,如aBf转换成bCg,字符串内的其他字符不改变,给定函数,编写函数void Stringchang(const char*inpu,char*output)其中input是输入字符串,output是输出字符串答案:void Stringchang (char *input,char *output){ int len=strlen(input);for(int i=0;i<len;i++){if((input[i]<='Z'&&input[i]>='A')||(input[i]<='z'&&input[i]>='a'))output[i]=input[i]+1;else output[i]=input[i];}}2.求一个整型数字中有没有相同的部分,例如12389756123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。

方法是先将整型数字转换到数组中,再判断。

函数为int same(int num)其中num是输入的整型数字答案:参考第三题很容易写出代码!3.求两个字符串的乘积,结果存到字符串中,例如字符串一中存的“657891”,字符串二中存的“521”,分别将字符串中的字符转换成整型数字,进行计算后,再转换成字符类型存储起来函数为void mul(char *input1,int n,char *input2, int m,char *output)其中input1和input2是输入,n是input1的长度,n2是input2的长度。

Output是输出答案:void mul(char *input1,int n,char *input2, int m,char *output){ int num1=StrToNum(input1,n);int num2=StrToNum(input2,m);int muti=num1*num2;NumToStr(muti,output);cout<<output<<endl;}int StrToNum(char *input,int len) //字符串转为int型变量{ int delta='0'-0,num=0;for(int i=len-1;i>=0;i--){num+=(input[i]-delta)*pow(10.0,len-i-1);}return num;}void NumToStr(int num,char *output) //int型变量转为字符串{ int len=0;while(1){int flag=num%(int)pow(10.0,len);if(flag==num) break;else len++;}int delta='0'-0,num0=num;for(int i=len-1;i>=0;i--){ output[len-i-1]=num0/(int)pow(10.0,i)+delta;num0=num0%(int)pow(10.0,i);}output[len]='\0';}。

届华为校园招聘上机考试题

届华为校园招聘上机考试题

2012届华为校园招聘上机考试题目(9月6日下午1点场)分类:华为准备2011-09-08 15:10 281人阅读评论(0) 收藏举报在网上看到华为在有的地方已经开始机试了,于是决定自己先编着试试。

下面是题目和自己写的代码。

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)view plaincopy to clipboardprint?1. #include<stdio.h>2. #include<string.h>3. #include<iostream.h>4. #include<conio.h>5. #define N 56.7. i nt cal_score(int score[], int judge_type[], int n)8.9. {10. int expert=0;11. int dazhong=0;12. int zongfen=0;13. int i;14. int number=0;15.16. for(i=0;i<N;i++)17. {18. if(judge_type[i]==1)19. {20. expert=expert+score[i];21. number++;22. }23. else dazhong=dazhong+score[i];24. }25. if(number==N)26. {27. zongfen=(int)(expert/N);28. }29. else30.31. {32. expert=(int)(expert/number);33. dazhong=(int)(dazhong/(N-number));34. zongfen=int(0.6*expert+0.4*dazhong);35.36. }37. return zongfen;38.39. }40. int main()41. {42. int score[N];43. int judge_type[N];44. int numberlast=0;45. int i;46. printf("please input the %d score:\n",N);47. for(i=0;i<N;i++)48. scanf("%d",&score[i]);49. printf("please input the level(1:expert,2:dazhong)\n");50. for(i=0;i<N;i++)51. scanf("%d",&judge_type[i]);52. numberlast=cal_score(score,judge_type,N);53. printf("the last score is %d\n",numberlast);54. return 0;55. }运行结果分析:please input the 5 score:90 80 87 89 91please input the level(1:expert,2:dazhong)1 2 1 1 1the last score is 852、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

华为机试

华为机试

同学都陆续到华为参加了机试,题目整体难度不大,基本上都是考字符串相关的题目。

这里就分享一套2012年华为南京机试C++或者C的编程题目。

2012年华为南京机试第一题整数化成字符串给定一个整数(有可能是负数),将整数变成字符串。

函数已经声明好类似void change(int number, char s[])的形式。

可以自己写用例测试。

2012年华为南京机试第二题单链表逆序给定一个已经定义好的单链表,将单链表中的数字逆序。

输入为head指针,返回的也是一个head指针。

函数声明为void sor(Node **head)的形式。

2012年华为南京机试第三题字符串最大回文子串给定一个字符串,寻找它的一个最大子串,该子串是回文。

例如给定用例字符串”gabcdcbaef”,那么最大回文字串是”abcdcba”。

函数声明为void huiwen(char input[], intlen, char output[])。

一天几个考场的题目有相同的也有不同的,基本上难度都不大。

要求做前两题就可以了,有能力的可以做第三题并且计入总分。

有同学做完当场就看到是100分,也有0分的,至于怎么计分的不太清楚。

希望七叶草提供的2012年华为南京机试编程题对你有帮助!武汉题目:有一个数组a[N]如a[10]={0,1,2,3,4,5,6,7,8,9}每隔两个数删除一个数,如0,1,2(删除),3,4,5(删除),6,7,8(删除),9,到数组尾部回到数组头部继续删除,要求编写一个函数实现实现上述操作,返回最后一个数的数组下标。

函数接口:intgetLast(intiLen)参数:数组初始元素个数iLen01 #include <stdio.h>02 #include <stdlib.h>0304 typedef struct node *List;05 typedef struct node *PNode;0607 typedef struct node08 {09 int data;10 struct node *next;11 }Node;1213 int getLast(int iLen)14 {15 int i;16 List L;17 PNodetempNode,current;18 L = (List)malloc(sizeof(Node));19 L->next = NULL;20 current = L;21 for (i=0; i<iLen; i++)22 {23 tempNode = (PNode)malloc(sizeof(Node));24 tempNode->data = i;25 current->next = tempNode;26 current = tempNode;27 }28 current->next = L->next;29 current = L;30 while (iLen> 1)31 {32 current = current->next->next;33 tempNode = current->next;34 current->next = tempNode->next;35 printf("%d\n",tempNode->data);36 free(tempNode);37 iLen--;38 }39 return current->data;40 }4142 int main()43 {44 printf("last of 20 is %d",getLast(20));45 return 0;46 }编程题(共2题,第一题40分,第二题60分,共100分。

华为机试题目参考1

华为机试题目参考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个元素的一维数组中大于等于所有元素平均值的元素的个数并返回。

华为机考题

华为机考题

销售网络问题时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte问题描述华为公司积极开拓北美市场,首先在北美建立销售总部,总部在附近地区发展一些销售点,这些销售点可以发展建立下一级销售点,依此类推,最终形成一个新型分级销售网络。

假设在销售网络中,有N个销售点(包括总部),将它们分别编号为1至N。

考虑到金融危机,销售总部决定撤销一些销售点,保留其他销售点。

需要注意是:(1)如果撤销一个销售点,那么该销售点发展的所有下级销售点均要撤销,依此类推;(2)销售总部不能撤销自己;(3)销售总部可以不撤销任何销售点。

请你帮忙告诉华为公司:共存在多少个销售点撤销方案。

问题输入输入包括多个行,首先给出一个整数N,接着N-1行给出销售网络的建立过程,在这N-1行中,第j行(1≤j≤N-1)给出一个整数k(i<k),表示销售点k发展了销售点j。

销售点N就是销售总部。

问题输出输出一行,给出销售点撤销方案数。

样例输入323样例输出3提示:样例有3个销售点(包括总部),“销售点2”发展了“销售点1”,“销售点3”发展了“销售点2”,根据描述,有以下3种销售点撤销方案:(1)不撤销任何销售点;(2)撤销“销售点1”;(3)撤销“销售点1”、“销售点2”。

语言识别问题时间限制(普通/Java):10000MS/30000MS 运行内存限制:65536KByte问题描述给你一段英文或德文文字,你能编程识别它可能是哪种语言吗?研究发现,统计文字中字母“t”(或“T”)与“s”(或“S”)出现的次数,如果给定文字中“t”(或“T”)的出现次数比“s”(或“S”)多,则可能为英文,否则可能为德文。

问题输入输入包括多个行数,首先给出整数N(1<N<10000),接着给出N行文字,每一行文字至少包括一个字符,至多100个字符。

问题输出输出包括一行,如果输入文字可能为英文,则输出English,否则输出Deutsch。

最全华为上机试题及部分答案

最全华为上机试题及部分答案

2011年华为软件校园招聘编程测验1、请上机编写程序,按题目要求提交文件。

[详见考试说明,点击进入考试说明]3、评卷通过在给定用例输入下,严格按照试题要求比较考生实现函数的输出与预设输出。

两者相同则得分,不同则不得分。

4、评卷人保证测试用例输入参数的合法性,考生不用考虑输入参数非法或异常的情况5、评卷人保证测试用例输入在被测函数正常合法情况下使用不会导致程序错误6、如果考生函数异常导致程序崩溃或死循环,则自动评卷可能会被人为终止,剩余用例不被执行,无法得分7、基于上述阅卷规则,请考生严格按照题目要求功能实现程序,尽量保证实现函数的稳健性,同时建议完成一道题并调试保证正确性后,再考虑并实现下一题目(17)1,判断电话号码是否合法://要注意情况包含,有可能会同时出现几种不好的情况,要按照顺序输出错误。

不能同时输出好几种错误,应该是这样包含:先判断长度是否符合,再判断是否以86打头,再判断有无其他字符int fun(char num[]){ char *p=num;int n=strlen(num);if(n==13){if(*p=='8'&&*(p+1)=='6')while(*p!='\0'){if(*p>='0'&&*p<='9')p++;elsereturn 2;if(*p=='\0')return 0;}else return 3;}elsereturn 1;}int main(){char num[]="87139a3887671";int k=fun(num);cout<<k<<endl;return 0;}(18) 数组比较(20分)•问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。

2012最全华为上机试题及部分答案

2012最全华为上机试题及部分答案

2011年华为软件校园招聘编程测验1、请上机编写程序,按题目要求提交文件。

[详见考试说明,点击进入考试说明]3、评卷通过在给定用例输入下,严格按照试题要求比较考生实现函数的输出与预设输出。

两者相同则得分,不同则不得分。

4、评卷人保证测试用例输入参数的合法性,考生不用考虑输入参数非法或异常的情况5、评卷人保证测试用例输入在被测函数正常合法情况下使用不会导致程序错误6、如果考生函数异常导致程序崩溃或死循环,则自动评卷可能会被人为终止,剩余用例不被执行,无法得分7、基于上述阅卷规则,请考生严格按照题目要求功能实现程序,尽量保证实现函数的稳健性,同时建议完成一道题并调试保证正确性后,再考虑并实现下一题目1,判断电话号码是否合法://要注意情况包含,有可能会同时出现几种不好的情况,要按照顺序输出错误。

不能同时输出好几种错误,应该是这样包含:先判断长度是否符合,再判断是否以86打头,再判断有无其他字符int fun(char num[]){ char *p=num;int n=strlen(num);if(n==13){if(*p=='8'&&*(p+1)=='6')while(*p!='\0'){if(*p>='0'&&*p<='9')p++;elsereturn 2;if(*p=='\0')return 0;}else return 3;}elsereturn 1;}int main(){char num[]="87139a3887671";int k=fun(num);cout<<k<<endl;return 0;}1. 数组比较(20分)•问题描述:比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。

2012华为校园招聘上机笔试题+机试+自己做出来的

2012华为校园招聘上机笔试题+机试+自己做出来的
函数原型为 int compare_array( int len1, int array1[], int len2, int array2[] ); 其中,len1 与 len2 分别为数组 array1[]和 array2[]的长度,函数返回值为两个数组不同 元素的个数。 以下是上题的函数完整实现: //diff_num.cpp
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可 以将所有包含文件预编译为一个预编译头。
(2)char * const p char const * p const char *p 上述三个有什么区别?
答案:
char * const p; //常量指针,p 的值不可以修改
如同往年,华为今年刚一开学就来学校宣讲了,9 月 6 日和 7 日安排了软件研发类的上机笔 试(其他职位没有笔试,直接通过网上注册的简历筛选并安排面试)。
说下华为上机考试的特点和一些注意事项:
(1)考试时长为 2 个小时,总共有 3 个题(去年是 2 个题,难度要比今年大些),使 用的是 VC 6.0;
若有字符串"8+7*2-9/3",计算出其值为 19。 主要考点:1. 数字的字符形式变换为数字形式的方法; 2. 数字的数字形式变换为数 字的字符串形式的方法。
/share/detail/17893678
(1)什么是预编译,何时需要预编译: 答案:
1、总是使用不经常改动的大型代码体。
13 {
14
if( array1[len1-i] != array2[len2-i] )
15
diff_num++;
16 }
17
18 return diff_num;

【免费下载】华为校园招聘机试题目及答案

【免费下载】华为校园招聘机试题目及答案

{ //sum_zj是专业评委总分数;sum_dz是大众评委总分数;count1专业评委人
数;count2大众评委人数 int sum_zj=0,sum_dz=0,count1=0,count2=0,r; for(int i=0;i<n;i++) { if(judge_type[i]==1) { sum_zj+=score[i]; count1++; } else { sum_dz+=score[i]; count2++; } } if(count2==0)//无大众评委 { r=int((sum_zj/count1)); } else { r=int((sum_zj/count1)*0.6+(sum_dz/count2)*0.4); } return r;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资0配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试.,卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试5交写卷、底重保电。要护气管设装设线备置备4敷高动调、设中作试电技资,高气术料并中课3中试且资件、包卷拒料中管含试绝试调路线验动卷试敷槽方作技设、案,术技管以来术架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

2012年最全的华为笔试题

2012年最全的华为笔试题

华为笔试来源:马彬龙好孩子的日志1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

4、语句for( ;1 ;)有什么问题?它是什么意思?答:无限循环,和while(1)相同。

5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环。

6、请写出下列代码的输出内容#i nclude<stdio.h>main(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return 0;}答:10,12,120一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。

()2、int (*ptr) (),则ptr是一维数组的名字。

()3、指针在任何情况下都可进行>, <, >=, <=, = =运算。

2012华为最全应届生招聘上机考试与完全答案

2012华为最全应届生招聘上机考试与完全答案
#include<assert.h>
#include<string.h>
#define LENGTH 13
int verifyMsisdn(char *inMsisdn)
{
char *pchar=NULL;
assert(inMsisdn!=NULL);
if(LENGTH==strlen(inMsisdn))
month=(input[10]-'0')*10+(input[11]-'0');//取数值,不是取字符 减去字符0的ascii码值
day=(input[12]-'0')*10+(input[13]-'0');
if(input[len-1]!='x'&&(input[len-1]<'0'||input[len-1]>'9'))
int array_compare(int len1, int array1[], int len2, int array2[])
/*
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int verifyIDCard(char* input)
{
int i,k=0,y=0;
int len=strlen(input);
int year,month,day;
请实现身份证号码合法性判断的函数。除满足以上要求外,需要对持有人生日的年、月、日信息进行校验。年份大于等于1900年,小于等于2100年。需要考虑闰年、大小月的情况。所谓闰年,能被4整除且不能被100整除 或 能被400整除的年份,闰年的2月份为29天,非闰年的2月份为28天。其他情况的合法性校验,考生不用考虑。

华为2012上机

华为2012上机

/* 请在这里实现下列函数, c c++语法不限, 最后需要保证程序编译连接通过, 并生成test.exe文件. *//* 相关宏定义及函数声明见'func.h'头文件*/#include "stdafx.h"#include <stdio.h>#include <memory.h>#include <string.h>#include <stdlib.h>//#include "func.h"#define MAXCHAR 100/* 请按照要求实现下列函数,pOutputStr的长度足够大*/#include "string.h"#include "stdlib.h"/*题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“deefd” 输出:“def”输入:“afafafaf” 输出:“af”输入:“pppppppp” 输出:“p”*//* main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出*//* 当前你可以使用其他方法测试,只要保证最终程序能正确执行即可*//* 该函数实现可以任意修改,但是不要改变函数原型。

华为2012机试题及面试

华为2012机试题及面试
机试我们是有两个基础题,一个附加题,基础题是选做一道,做出来就算过了,有时间再做附加题。
基础题1:求一个数组里面能被三整除的个数,给了题目框架,如下所示,题目框架基本是不能改的,尤其是各个变量和fanction的名字之类的,当然如果你觉得框架里面有些小错误或者需要改动的还是可以改一点的
fan(int*p,intn)
case 2:printf("无%d",k);break;
case 3:printf("无%d",k);break;
}
}
附加题4:计算两个字符串中匹配相的字符串,并将匹配的字符串存储在c[]中
要求:1、字符串*可以匹配任意一个字符串,直到下一个匹配字母为止,,其中字符串2中允许有*。
2、输出相匹配的字符串
华为2012笔试题及面试经历
前天早上去华为参加了机试,晚上8点左右就收到了第二天面试的通知,总的来说是很有效率的,第二天去从早上10:16去,各种等各种面到最后一面boss面完已经是晚上7点多了,一天的摧残,最多的就是等待,而且还是各种心理压力的等待,真不怎么好过呢,下面就详细的介绍各个环节吧。
机试:
3、遇到匹配的字符,将字符串1和2的指针都后移,并将字符串1的值存储。
笔试过了就是面试了,面试的环节是技术面——>群面——>性格测试——>boss面
技术面试
面试官一般都比较和蔼吧,首先是做一下自我介绍,如果有做过什么项目经验的,最好详述一下自己的项目经验,面试官一般都比较喜欢做过一些东西,有项目经验的人,然后就是面试官问啦,问了我一些项目中的细节,我提到了测试的东西,可能面试官觉得我正在这方面比较擅长,就问我,那测试主要分为哪些环节,应该注意哪些问题,这个我也不详述了,网上都能搜的到,而且很全,然后面试官又问,一个大型的程序是分成好多模块的,由多个人来完成的,你觉得这样的开发过程应该注意哪些问题,我回答的是团队之间的沟通是最重要的,然后就巴拉巴拉的说为什么沟通是最重要的啊,期间还扯到了我做的项目,面试官很满意的样子,就说我这里过了,可以等候下一轮面试了。

华为入职考试题库及答案

华为入职考试题库及答案

华为入职考试题库及答案
1. 华为公司是全球领先的信息与通信技术(ICT)解决方案提供商,以下哪项不是华为的主要业务领域?
A. 电信网络
B. 云计算服务
C. 汽车制造
D. 企业网络
答案:C
2. 华为的核心价值观包括以下哪项?
A. 客户至上
B. 员工为本
C. 创新驱动
D. 利润优先
答案:A
3. 华为的企业文化强调的是?
A. 个人英雄主义
B. 团队合作
C. 竞争至上
D. 利润最大化
答案:B
4. 华为在全球范围内拥有多少个研发中心?
A. 10个
C. 30个
D. 40个
答案:D
5. 华为的智能手机品牌是?
A. 荣耀
B. 华为
C. 苹果
D. 三星
答案:B
6. 华为在5G技术方面的发展处于什么水平?
A. 行业领先
B. 行业跟随
C. 行业滞后
D. 尚未涉足
答案:A
7. 华为的全球员工总数超过多少人?
A. 10万
B. 20万
C. 30万
D. 40万
答案:C
8. 华为的创始人是谁?
B. 马云
C. 马化腾
D. 李彦宏
答案:A
9. 华为的总部位于哪个城市?
A. 北京
B. 上海
C. 深圳
D. 广州
答案:C
10. 华为在国际市场上的主要竞争对手包括以下哪些公司?
A. 爱立信
B. 诺基亚
C. 苹果
D. 所有以上选项
答案:D。

2012华为笔试题

2012华为笔试题

华为2012第一次笔试题目总结:单选20,多选10,改错3,编程2有数据结构、网络、操作系统、数据库一、单项选择题(4选1)1.如果有N个节点用二叉树结构来存储,那么二叉树的最小深度是:解析:深度为k的二叉树,最多有2^k-1个节点,这时的二叉树成为满二叉树。

Log2(N+1)2.形结构的一种重要运算。

若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则后序序列是:FEGHDCB3.下列算法的功能是:/*L是无头节点单链表*/LinkList Demo(LinkList L){ListNode *Q,*P;If(L&&L->next){Q=L;L=L->next;P=L;While(p->next)P=p->next;p->next=Q;Q->next=NULL;}return L;}解析:将单链表转变为循环链表4、循环单向链表指:最后一个节点的指针总是指向链表头。

5、折半查找算法的算法复杂度:O(log2N)6、void example(char acWelcome[]){Printf(“%d”,sizeof(acWelcome));return;}Void main(){Char acWelcome[]=”Welcome to Huawei Test”;Example(acWelcome);return;}的输出是——A 4B 5C 22D 23解析:237、设有如下定义:Unsigned long pulArray[]={6,7,8,9,10};Unsigned long *pulPtr;则下列程序段的输出结果为——pulPtr=pulArray;*(pulPtr+2)+=2;printf(“%d,%d\n”,*pulPtr,*(pulPtr+2));6,10pulPtr+2只是一个临时的指针相当于int *p,*q;q = PulPtr + 2;return pulPtr;而ptr++相当于ptr = ptr +1;return ptr;7,8指针的问题!!!8、#define M(x,y,z) x*y+zvoid main(){int a=1,b=2,c=3;cout<<M(a+b,b+c,c+a);}A 12B 13C 19D 89、如下:int func(int a){int b;switch(a){case 1:b=100;case 2:b=200;case 3:b=250;default:b=0; }return b;}问f(1)等于多少?010、给出以下定义:Char acX[]=”abcdefg”;Char acX[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 则正确的叙述为()A、数组acX和数组acY等价B、数组acX和数组acY的长度相同C、数组acX的长度大于数组acY的长度D、数组acX的长度小于数组acY的长度11、有下面一段代码:Char szMsisdn[MAX_LEN_MSISDN-1];szMsisdn[sizeof(szMsidn)]=’\0’;则对执行以上代码后,正确的叙述为:程序执行后有问题,内存被踩。

2012届华为校园招聘上机考试题

2012届华为校园招聘上机考试题

2012届华为校园招聘上机考试题目(9月6日下午1点场)分类:华为准备2011-09-08 15:10 281人阅读评论(0) 收藏举报在网上看到华为在有的地方已经开始机试了,于是决定自己先编着试试。

下面是题目和自己写的代码。

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)view plaincopy to clipboardprint?1. #include<stdio.h>2. #include<string.h>3. #include<iostream.h>4. #include<conio.h>5. #define N 56.7. i nt cal_score(int score[], int judge_type[], int n)8.9. {10. int expert=0;11. int dazhong=0;12. int zongfen=0;13. int i;14. int number=0;15.16. for(i=0;i<N;i++)17. {18. if(judge_type[i]==1)19. {20. expert=expert+score[i];21. number++;22. }23. else dazhong=dazhong+score[i];24. }25. if(number==N)26. {27. zongfen=(int)(expert/N);28. }29. else30.31. {32. expert=(int)(expert/number);33. dazhong=(int)(dazhong/(N-number));34. zongfen=int(0.6*expert+0.4*dazhong);35.36. }37. return zongfen;38.39. }40. int main()41. {42. int score[N];43. int judge_type[N];44. int numberlast=0;45. int i;46. printf("please input the %d score:\n",N);47. for(i=0;i<N;i++)48. scanf("%d",&score[i]);49. printf("please input the level(1:expert,2:dazhong)\n");50. for(i=0;i<N;i++)51. scanf("%d",&judge_type[i]);52. numberlast=cal_score(score,judge_type,N);53. printf("the last score is %d\n",numberlast);54. return 0;55. }运行结果分析:please input the 5 score:90 80 87 89 91please input the level(1:expert,2:dazhong)1 2 1 1 1the last score is 852、给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

华为上机考试样题

华为上机考试样题

各难度上机考试样题初级题:从考试成绩中划出及格线10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分输入:输入10个整数,取值0~100输出:输出及格线,10的倍数中级题:亮着电灯的盏数一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。

每盏电灯由一个拉线开关控制。

开始,电灯全部关着。

有n个学生从长廊穿过。

第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。

n个学生按此规定走完后,长廊里电灯有几盏亮着。

注:电灯数和学生数一致。

输入:电灯的数量输出:亮着的电灯数量高级题:地铁换乘已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。

经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。

编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。

地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18 地铁线A(直线)经过车站:B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B15输入:输入两个不同的站名输出:输出最少经过的站数,含输入的起点和终点,换乘站点只计算一次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012华为校园招聘上机笔试题
如同往年,华为今年刚一开学就来学校宣讲了,9月6日和7日安排了软件研发类的上机笔试(其他职位没有笔试,直接通过网上注册的简历筛选并安排面试)。

说下华为上机考试的特点和一些注意事项:
(1)考试时长为2个小时,总共有3个题(去年是2个题,难度要比今年大些),使用的是VC 6.0;
(2)3个题目中大致第一个题是最简单的,第三个题是最难的,这个难度只是假设你对所有的题都不熟悉而言的,所以在拿到题目过后一定要把所有题目过一遍,弄懂它们的要点,看是否有自己熟悉的题目,也做到心里有数。

这算得上是我昨天笔试的时候的一个教训吧;
(3)从服务器上下载题目下来后最好能把工程保存到在电脑重启后不会自动还原的磁盘分区下面,这样不致由于各种意外因素电脑重启过后编的程序不会消失;
(4)不要改动所给函数的原型,可以自己添加函数。

另外,华为提供的工程是将Main 函数隐藏了的,所以自己不用再添加Main函数。

以上便是我对于这次考试了解的一些情况,下面说说我做的3个笔试题(题意我只能大概的按我的理解组织下)。

1. 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有
array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]与array2[2]比较开始,到array1[2]与array[0]比较结束。

这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3。

函数原型为int compare_array( int len1, int array1[], int len2, int array2[] );
其中,len1与len2分别为数组array1[]和array2[]的长度,函数返回值为两个数组不同元素的个数。

以下是上题的函数实现:
compare_array
2. 约瑟夫环(待添加)
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。

从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int num;
struct Node *next;
}LinkList;
LinkList *creat(int n)
{
LinkList *p,*q,*head;
int i=1;
p=(LinkList *)malloc(sizeof(LinkList));
p->num=i;
head=p;
for(i=2;i<=n;i++)
{
q=(LinkList *)malloc(sizeof(LinkList));
q->num=i;
p->next=q;
p=q;
}
p->next=head; /*使链表尾指向链表头形成循环链表*/ return head;
}
void fun(LinkList *L,int m)
{
int i;
LinkList *p,*s,*q;
p=L;
printf("出列顺序为:");
while(p->next!=p)
{
for(i=1;i<m;i++)
{ q=p;
p=p->next;
}
printf("%5d",p->num);
s=p;
q->next=p->next;
p=p->next;
free(s);
}
printf("%5d\n",p->num);
}
int main()
{
LinkList *L;
int n, m;
n=9;
m=5;
L=creat(n);
fun(L,m);
return 0;
}
3. 字符串四则运算的实现
题目大意:有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值。

四则运算即:加减乘除"+-*/",另外该表达式中的数字只能是1位(数值范围0~9)。

另若有不能整除的情况,按向下取整处理,eg: 8/3得出值为2。

若有字符串"8+7*2-9/3",计算出其值为19。

主要考点:1. 数字的字符形式变换为数字形式的方法;2. 数字的数字形式变换为数字的字符串形式的方法。

(2.简单四则运算
注:1、表达式只含 +, -, *, / 四则运算符,不含括号
2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况
3、要考虑加减乘除按通常四则运算规定的计算优先级
4、除法用整数除法,即仅保留除法运算结果的整数部分。

比如8/3=2。

输入表达式保证无0作为除数情况发生
5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算
符字符,除此之外不含其它任何字符,不会出现计算溢出情况
? 要求实现函数:
int calculate(int len,char *expStr)
【输入】int len: 字符串长度;
char *expStr: 表达式字符串;
【输出】无
【返回】计算结果
? 示例
1)输入:char *expStr = “1+4*5-8/3”
函数返回:19
//********实现四则运算*********
int calculate(int len,char *expStr)
{
int data[20],datal=0;
int i=0,k=0;
int res;
//**************转化为整数
while(*(expStr+i)!='\0')
{
switch(*(expStr+i))
{
case '+': data[i]=10;break;
case '-': data[i]=11;break;
case '*': data[i]=12;break;
case '/': data[i]=13;break; default: data[i]=*(expStr+i)-'0';break; }
i++;
}
datal=i;
//**************计算
while(datal!=1)
{
if(datal>3)
{
if(data[1]<=11) //*******当第一个操作符是…+‟或者…-‟
{
if((data[3]==10)||(data[3]==11)) //*****如果是…+‟或者…-‟{
if(data[1]==10)
data[0]=data[0]+data[2];
else
data[0]=data[0]-data[2];
datal=datal-2;
for(k=1;k<=datal-1;k++)
data[k]=data[k+2];
}
if((data[3]==12)||(data[3]==13)) //*****如果是…*‟或者…/‟{
if(data[3]==12)
data[2]=data[2]*data[4];
else
data[2]=data[2]/data[4];
datal=datal-2;
for(k=3;k<=datal-1;k++)
data[k]=data[k+2];
}
}
else //*******当第一个操作符是…*‟或者…/‟{
if(data[1]==12)
data[0]=data[0]*data[2];
else
data[0]=data[0]/data[2];
datal=datal-2;
for(k=1;k<=datal-1;k++)
data[k]=data[k+2];
}
}
else
{
switch(data[1])
{
case 10:res=data[0]+data[2];break;
case 11:res=data[0]-data[2];break;
case 12:res=data[0]*data[2];break;
case 13:res=data[0]/data[2];break;
}
break;
}
}
return res;
}
void main()
{
char *strdata;
int res;
strdata="2+8/3*3+4";
res=calculate(3,strdata);
printf("%d",res);
}
)。

相关文档
最新文档