2014华为校园招聘笔试算法题汇总
【最新推荐】华为招聘笔试题目-精选word文档 (3页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==华为招聘笔试题目华为是很多求职者都想要进入的,下面是小编搜集整理的华为招聘笔试题目,欢迎阅读,供大家参考和借鉴!华为系统程序招聘笔试题华为笔试题一:基础知识1、string 是最基本的数据类型吗?2、int 和 integer 有什么区别3、string 和 stringbuffer 的区别4、运行时异常与一般异常有何异同?5、说出 servlet 的生命周期,并说出 servlet 和 cgi 的区别。
华为笔试题二:专业知识6、说出 arraylist,vector, linkedlist 的存储性能和特性7、ejb 是基于哪些技术实现的?并说出 sessionbean 和 entitybean 的区别,statefulbean 和statelessbean 的区别。
8、collection 和 collections 的区别。
9、&和&&的区别。
10、hashmap 和 hashtable 的区别。
华为笔试题三:知识拓展11、final, finally, finalize 的区别。
12、sleep() 和 wait() 有什么区别?13、overload 和 override 的区别。
overloaded 的方法是否可以改变返回值的类型?14、error 和 exception 有什么区别?15、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
16、abstract class 和 interface 有什么区别?华为C语言招聘笔试题目一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
( )2、int (*ptr) (),则ptr是一维数组的名字。
2014华为机试笔试题目

2014华为机试笔试题目2014华为机试笔试题目1.输入摸一个数,然后将其倒过来相加,如果和不是回文串,那么将和再采取同样的操作,在判断得到的是否为回文串,这样往返7次,如果其中有一次是回文就直接打出来,若都没有,那么输出0;也很简单!用库函数更简单,itoa这个!整数转成字符,然后判断回文!2.关于匹配的字符串的个数的最大值,即目标字符串与多个字符串比配,找出匹配最多的那个字符串。
其实代码很简单,我当时用2个数组,下标即为字符,值为出现次数,这样比较即可;可是我输入字符的代码写错了比如要输入Li si;到一个字符数组里面,我写成了char a[200];cin a;//这里错了,应该写为cin.getline(a,200);因为cin输入遇到空格就认为输入结束,所以只有li,没有si3.输入一个十进制的数,与一个n整数,求输出这个十进制数的n 进制的数!分析:哎,真倒霉,可以用atoi函数啊itoa函数#include cstdlib #include cstdio int main(){int num = 10; char str[100]; itoa(num, str, 2);printf( %s\n , str);return 0;}itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用的基数。
在上例中,转换基数为10。
10:十进制;2:二进制于是想到了一个十进制转二进制的方法:#include cstdlib#include cstdioint main(){int num = 10;char str[100];int n = atoi(itoa(num, str, 2)); printf( %d\n ,n); return 0;}。
华为面试 笔试题目(附答案)

华为面试/笔试题目(附答案)陈晓明2010-05-21 15:45:59要查看更多华为笔经相关信息,请访问华为公司校园招聘club:深圳华为技术有限公司(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。
在这种情况下,可以将所有包含文件预编译为一个预编译头。
(2)char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p(3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str 6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout (y)?(y):(x)) //结尾没有‘;’(10)嵌入式系统中经常要用到无限循环,你怎么用c编写死循环。
答案:while(1){}或者for(;;)(11)关键字static的作用是什么?答案:定义静态变量(12)关键字const有什么含意?答案:表示常量不可以修改的变量。
(13)关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。
最全的华为校园招聘笔试题

最全的华为校园招聘笔试题最全的华为校园招聘笔试题华为笔试1.局部变量能否和全局变量重名?答:能,局部会屏蔽全局。
要⽤全局变量,需要使⽤“::“ 局部变量可以与全局变量同名,在函数内引⽤这个变量时,会⽤到同名的局部变量,⽽不会⽤到全局变量。
对于有些编译器⽽⾔,在同⼀个函数内可以定义多个同名的局部变量,⽐如在两个循环体内都定义⼀个同名的局部变量,⽽那个局部变量的作⽤域就在那个循环体内。
2.如何引⽤⼀个已经定义过的全局变量?答:extern 可以⽤引⽤头⽂件的⽅式,也可以⽤extern关键字,如果⽤引⽤头⽂件⽅式来引⽤某个在头⽂件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你⽤extern⽅式引⽤时,假定你犯了同样的错误,那么在编译期间不会报错,⽽在连接期间报错。
3.全局变量可不可以定义在可被多个.C⽂件包含的头⽂件中?为什么?答:可以,在不同的C⽂件中以static形式来声明同名全局变量。
可以在不同的C⽂件中声明同名的全局变量,前提是其中只能有⼀个C⽂件中对此变量赋初值,此时连接不会出错。
4.语句for( ;1 ;)有什么问题?它是什么意思?答:⽆限循环,和while(1)相同。
5.do……while和while……do有什么区别?答:前⼀个循环⼀遍再判断,后⼀个判断以后再循环。
6.请写出下列代码的输出内容#i nclude 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.指针在任何情况下都可进⾏>, =, =MAX_SRM)return (NULL_SRM); else return SRM_no; }3. 写出程序运⾏结果 int sum(int a){ auto int c=0; static int b=3; c+=1; b+=2;return(a+b+C); } void main(){ int I; int a=2; for(I=0;Inext = NULL; p=h;for(i=0;inext = s; printf(“Please input the informationof the student: name sex no age \n“);scanf(“%s %c %d %d“,s->name, s->next = NULL; p = s; } printf(“Create successful!“); return(h); } void deletelist(struct stu *s,int a){ struct stu *p; while(s->age!=a){ p = s; s = s->next; } if(s==NULL)printf(“The record is not exist.“); else { p->next = s->next; printf(“Delete successful!“); } } void display(struct stu *s){ s = s->next; while(s!=NULL){ printf(“%s %c %d %d\n“,s->name,s->sex,s->no,s->age); s = s->next; } } int main(){ struct stu *s; int n,age; printf(“Please input the length of seqlist:\n“); scanf(“%d“, s = creatlist(n); display(s); printf(“Please input the age:\n“);scanf(“%d“, deletelist(s,age); display(s); return 0; }2.实现⼀个函数,把⼀个字符串中的字符从⼩写转为⼤写。
华为校园招聘笔试题大全

★笔试题大全★1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别?1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。
5.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。
6.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。
7.什么函数不能声明为虚函数?Constructor(构造函数)函数不能声明为虚函数。
8.冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。
9.写出float x 与“零值”比较的if语句。
if(x>0.000001&&x<-0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构?Tcp/Ip协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。
11.Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析協議)12.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。
不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。
2014华为java笔试题目

2014华为java笔试题目一、单项选择题是从语言改进重新设计。
++答案:B2.下列语句哪一个正确程序经编译后会产生machinecode程序经编译后会产生bytecode程序经编译后会产生DLLD.以上都不正确答案:B3.下列说法正确的有中的constructor不可省略必须与class同名,但方法不能与class同名在一个对象被new时执行D.一个class只能定义一个constructor答案:c4.提供java存取数据库能力的包是答案:A5.下列运算符合法的是A.&&B.:=答案:A6.执行如下程序代码a=0;c=0;do{--c;a=a-1;}while;后,c的值是-1D.死循环答案:c7.下列哪一种叙述是正确的修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住c.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D8.下列语句正确的是A.形式参数可被视为localvariableB.形式参数可被字段修饰符修饰c.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A9.下列哪种说法是正确的A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法c.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题程序的种类有A.类2.下列说法正确的有A.环境变量可在编译sourcecode时指定B.在编译程序时,所能指定的环境变量不包括classpath一次可同时编译数个java源文件能指定编译结果要置于哪个目录答案:BcD3.下列标识符不合法的有$答案:AcD4.下列说法错误的有A.数组是一种对象B.数组属于一种原生类=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BcD5.不能用来修饰interface的有答案:AcD6.下列正确的有不会改变实际参数的数值能改变实际参数的参考地址不能改变实际参数的参考地址能改变实际参数的内容答案:AcD7.下列说法错误的有A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用c.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:AcD8.下列说法错误的有面向对象语言容许单独的过程与函数存在面向对象语言容许单独的方法存在语言中的方法属于类中的成员语言中的方法必定隶属于某一类,调用方法与过程或函数相同答案:ABc9.下列说法错误的有A.能被成功运行的javaclass文件必须有main方法就是javaAPI可利用jar选项运行.jar文件D.能被Appletviewer成功运行的javaclass文件必须有main 方法答案:BcD三、判断题程序中的起始类名称必须与存放该类的文件名相同。
【VIP专享】(6.10)2014年华为校招问题回答汇总

华为校招问题与解答6月10日1.希望了解一些软件考试方面的信息ANS:7月上旬机试,大家等艾庆兴的技术专场,会在各高校讲。
(ps.给刚才提到的艾庆兴同学做个简介,外号“艾神”,2014华为最高特殊起薪;百度之星程序设计大赛冠军;ACM/ICPC程序设计大赛金奖、银奖;腾讯编程马拉松区域决赛第二名;2013陕西ACM/ICPC程序设计大赛参与命题;最主要做过14届所有的华为机试题,认真听他的讲座可以大大提高机试通过率)2.华为招聘员工对英语有什么要求啊?ANS:研发类4级通过即可。
3.本科生能做除了研发其他的部门吗?ANS:华为的本科生岗位非常多。
具体的岗位可登陆华为招聘官网查。
4.我想问问除了一些知识上的要求,华为对想进华为的学生有什么建议呢?ANS:学历只是参考,重视个人素质与能力5.华为今年的暑期实习还可以补录吗?ANS:华为实习生招聘已结束,不能再补录。
6.7月份的机试是提前批还是正式秋招的机试?是软件类还是硬件类?ANS:7月份是正式的秋招机试,软件类招聘第一个环节,希望有意向的同学可以安排好时间。
时间定在7月中上旬。
7.除了这次7月份的校招,开学还有没有新一轮的校招?ANS:7月份软件机试是核心,尽量协调好时间,因为很可能9月份将不再设置软件类机试。
8.华为今年的招聘是不是和往年一样也分好几个批次?ANS:不能保证有几个批次,机会先到先得,有意向的同学还望早作准备。
9.华为有内推吗?是什么呢?ANS:有的,每个学校都是有接口人的。
10.如果是分多批次的话,七月份提前批比后面的校招有什么优惠政策?ANS:机试出色的人,可以参加优先招聘,会定制部门,特殊起薪机会,还可以选择优秀的导师。
11.7月份校招的需要暑假去华为呆上一段时间吗?参加了7月批次的还能不能参加后续的招聘?ANS:不需要去华为呆上一段时间。
7月份的软件机试,是整个华为面试的一个重要环节。
重点是软件类岗位。
12.实习的时候招硬件非常少,这次呢?ANS:软硬件都是主流招聘岗位。
2014华为机考(附答案)

目录样题-初级题:从考试成绩中划出及格线 (2)样题-中级题:亮着电灯的盏数 (2)样题-高级题:地铁换乘 (3)8.29去掉最大值、最小值之后剩下的个数 (3)8.29从5个人中选取2个人作为礼仪 (5)8.29验证括号是否匹配 (6)8.31回文数 (8)8.31将第一行中含有第二行中“23”的数输出并排序 (9)8.31翻译电话号码 (11)9.1.AM 将整数倒序输出,剔除重复数据 (12)9.1.AM 大数相减 (14)9.1.AM 判断if语句括号是否合法 (15)9.1.PM (17)9.1.PM (18)9.1.PM (18)样题-初级题:从考试成绩中划出及格线10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分样题-中级题:亮着电灯的盏数一条长廊里依次装有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 地铁线B(直线)经过车站:B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B158.29去掉最大值、最小值之后剩下的个数1、输入一串数,以','分隔,输出所有数中去掉最大值、最小值之后剩下的个数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华为2014笔试算法题汇总1.通过键盘输入一串小写字母(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打印输出当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。
一定要保证编译运行不受影响[cpp] view plaincopy//////////////////////////////////////////////////////////////////////////#include <iostream>#include <cassert>using namespace std;bool g_flag[26];void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr) {assert(pInputStr != NULL);int i = 0;if (pInputStr == NULL || lInputLen <= 1){return;}const char *p = pInputStr;while(*p != '\0'){if (g_flag[(*p - 'a')]){p++;}else{pOutputStr[i++] = *p;g_flag[*p - 'a'] = 1;p++;}}pOutputStr[i] = '\0';}int main(){memset(g_flag,0,sizeof(g_flag));char input[] = "abacacde";char *output = new char[strlen(input) + 1];stringFilter(input,strlen(input),output);cout<<output<<endl;delete output;return 0;}2.通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:1、仅压缩连续重复出现的字符。
比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
2、压缩字段的格式为"字符重复的次数+字符"。
例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
要求实现函数:void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“cccddecc”输出:“3c2de2c”输入:“adef”输出:“adef”输入:“pppppppp”输出:“8p”[cpp] view plaincopy//////////////////////////////////////////////////////////////////////////#include <iostream>#include <cassert>using namespace std;void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr){const char *p = pInputStr;int num = 1;int i = 0;p++;while(*p != NULL){while(*p == *(p-1)&& *p != NULL){p++;}if (num > 1){int size = 0;int temp = num;while(num) //计算位数{size++;num /= 10;}num = 1;for (int j = size; j > 0; j--){pOutputStr[i+j-1] = '0'+ temp%10; temp /= 10;}i +=size;pOutputStr[i++] = *(p-1);p++;}else{pOutputStr[i++] = *(p-1);}}pOutputStr[i] = '\0';}int main(){char input[] = "cccddecc";char *output = new char[strlen(input) + 1];stringZip(input,strlen(input),output);cout<<output<<endl;return 0;}3.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:1、操作数为正整数,不需要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
要求实现函数:void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“4 + 7”输出:“11”输入:“4 - 7”输出:“-3”输入:“9 ++ 7”输出:“0”注:格式错误[cpp] view plaincopy//////////////////////////////////////////////////////////////////////////#include <iostream>using namespace std;void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr){const char *input = pInputStr;char *output = pOutputStr;int sum = 0;int operator1 = 0;int operator2 = 0;char *temp = new char[5];char *ope = temp;while(*input != ' ') //获得操作数1 {sum = sum*10 + (*input++ - '0'); }input++;operator1 = sum;sum = 0;while(*input != ' '){*temp++ = *input++;}input++;*temp = '\0';if (strlen(ope) > 1 ){*output++ = '0';*output = '\0';return;}while(*input != '\0') //获得操作数2{sum = sum*10 + (*input++ - '0');}operator2 = sum;sum = 0;switch (*ope){case '+':itoa(operator1+operator2,pOutputStr,10); break;case '-':itoa(operator1-operator2,pOutputStr,10); break;default:*output++ = '0';*output = '\0';return;}}int main(){char input[] = "4 - 7";char output[] = " ";arithmetic(input,strlen(input),output);cout<<output<<endl;return 0;}4.输入1--50个数字,求出最小数和最大数的和[cpp] view plaincopy//华为2014年机试题1:输入1--50个数字,求出最小数和最大数的和//输入以逗号隔开#include<stdio.h>#define N 50void sort(int a[],int n);int main(void){char str[100];int a[N]={0};gets(str); //要点1:动态的输入1--50个整数,不能确定个数,只能用字符串输入,然后分离出来int i=0;int j=0;int sign=1;while(str[i]!='\0'){if(str[i]!=',') //输入时要在半角输入{if(str[i] == '-') //要点:2:有负整数的输入{// i++; //易错点1sign=-1;}else if(str[i]!='\0') //不用else的话,负号也会减去‘0’ {a[j]=a[j]*10 + str[i]-'0'; //要点3:输入的可以是多位数}}i++;if(str[i]==',' || str[i]=='\0') //这个判断是在i自加以后{a[j]=a[j]*sign; //易错点2sign=1; ////易错点3j++; //j就是a数组的个数范围0到j-1}}sort(a,j);printf("Max number + Min number = %d",a[0]+a[j-1]);return 0;}void sort(int a[],int n) //选择排序{int i,j;int k;int temp;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if(a[k]>a[j])k=j;}if(i!=k){temp = a[k];a[k] = a[i];a[i] = temp;}}for(i=0;i<n;i++)printf("%-5d",a[i]); puts("");}。