华为笔试题总汇超全.docx
- 文档编号:7163007
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:23.27KB
华为笔试题总汇超全.docx
《华为笔试题总汇超全.docx》由会员分享,可在线阅读,更多相关《华为笔试题总汇超全.docx(16页珍藏版)》请在冰豆网上搜索。
华为笔试题总汇超全
华为面试流程一共5轮
首先资格考试和面试(相应职位的资深工程师主持);
其次应聘职位的部门付经理面试
再次应聘职位的部门付经理面试
再次人事面试
最后是付总级的面试。
常问问题:
Q1:
请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?
Q2:
请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?
TCP
与UDP呢?
Q3:
请问交换机和路由器分别的实现原理是什么?
分别在哪个层次上面实现的?
Q4:
请问C++的类和C里面的struct有什么区别?
Q5:
请讲一讲析构函数和虚函数的用法和作用?
Q6:
全局变量和局部变量有什么区别?
实怎么实现的?
操作系统和编译器是怎么知
道的?
Q7:
一些寄存器的题目,主要是寻址和内存管理等一些知识。
Q8:
8086是多少位的系统?
在数据总线上是怎么实现的?
测试题:
1、由于你是新员工,没有公配手机时,当你在现场遇到紧急事故时,你会()向公司求助
A、打用户机房内的电话
B、借用户手机
C、拔110
D、拔200或300
E、立即打车回办事处
(答案:
D,答CE者立即辞退,按照公司规定,不能随便使用用户的电话,以提高公司
形象)
2、工程师A某周日晚正在家里看电视,突然手机响了,电信局运维员工突然
打电话过来,小A接起电话,用户声音很急迫,说:
“不好了,瘫了,你快来处理”。
请问这里“瘫了”最有可能是什么意思()
A、设备漏电将维护人员电瘫了
B、设备支架不够结实,被压瘫了
C、设备坏了,将维护人员吓瘫了
D、设备坏了,大面积业务中断了
(答案:
D,答错者,按不合格处理)
Network:
1.如何设计一个模型来检验通信协议的正确性?
2.位于网络两端的计算机的连接过程是怎样的?
3.链路层的协议?
4.FSM和PETRI网哪个好
5.中国一号和七号信令的区别。
Hardware:
6.CPU里面有些什么东东,外面有些什么东东?
7.指令执行分几个步骤
LangugeandCompiler:
9.i=0,那么,++i||i--的值?
8.cc++java的区别?
9.全局变量、局部变量、静态变量都放在内存的什么地方?
10.结构与类的区别
11.a*b+c这样的表达式如何写编译程序?
12 c++虚函数怎么实现
DatastructureandAlgorthim
13.写出一个二分函数?
14.写出一个字符串子串匹配的算法?
15 对一个一维数组排序
SoftwareSystem:
16.UNIX文件系统的最大优点是什么?
17.fork函数的返回值是?
18.(软件)测试有哪几种方法?
Database
19.数据库编程哪部分最重要?
20.未来的数据库(电子信息数据库)的走向?
21.数据库第一范式怎么表示
华为笔试题含答案[软件工程题]
1.static有什么用途?
(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用
2.引用与指针有什么区别?
1)引用必须被初始化,指针不必。
2)引用初始化以后不能被改变,指针可以改变所指的对象。
3)不存在指向空值的引用,但是存在指向空值的指针。
3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。
4.全局变量和局部变量在内存中是否有区别?
如果有,是什么区别?
全局变量储存在静态数据库,局部变量在堆栈。
5.什么是平衡二叉树?
左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。
6.堆栈溢出一般是由什么原因导致的?
没有回收垃圾资源。
7.什么函数不能声明为虚函数?
constructor函数不能声明为虚函数。
8.冒泡排序算法的时间复杂度是什么?
时间复杂度是O(n^2)。
9.写出floatx与“零值”比较的if语句。
if(x>0.000001&&x<-0.000001)
10.Internet采用哪种网络协议?
该协议的主要层次结构?
Tcp/Ip协议
主要层次结构为:
应用层/传输层/网络层/数据链路层/物理层。
11.Internet物理地址和IP地址转换采用什么协议?
ARP(AddressResolutionProtocol)(地址解析協議)
12.IP地址的编码分为哪俩部分?
IP地址由两部分组成,网络号和主机号。
不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。
写出C程序。
循环链表,用取余操作做
14.不能做switch()的参数类型是:
switch的参数不能为实型。
随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。
不能用字符串库函数
/***************************************************************
1.
函数名称:
Symmetry
功能:
判断一个数时候为回文数(121,35653)
输入:
长整型的数
输出:
若为回文数返回值为1esle0
******************************************************************/
unsignedcharSymmetry(longn)
{
longi,temp;
i=n;temp=0;
while(i)//不用出现长度问题,将数按高低位掉换
{
temp=temp*10+i%10;
i/=10;
}
return(temp==n);
}
方法一
/*---------------------------------------------------------------------------
功能:
判断字符串是否为回文数字
实现:
先将字符串转换为正整数,再将正整数逆序组合为新的正整数,两数相同则为回文数字
输入:
char*s:
待判断的字符串
输出:
无
返回:
0:
正确;1:
待判断的字符串为空;2:
待判断的字符串不为数字;
3:
字符串不为回文数字;4:
待判断的字符串溢出
----------------------------------------------------------------------------*/
unsignedIsSymmetry(char*s)
{
char*p=s;
longnNumber=0;
longn=0;
longnTemp=0;
/*判断输入是否为空*/
if(*s==\'\\0\')
return1;
/*将字符串转换为正整数*/
while(*p!
=\'\\0\')
{
/*判断字符是否为数字*/
if(*p<\'0\'||*p>\'9\')
return2;
/*判断正整数是否溢出*/
if((*p-\'0\')>(4294967295-(nNumber*10)))
return4;
nNumber=(*p-\'0\')+(nNumber*10);
p++;
}
/*将数字逆序组合,直接抄楼上高手的代码,莫怪,呵呵*/
n=nNumber;
while(n)
{
/*判断正整数是否溢出*/
if((n%10)>(4294967295-(nTemp*10)))
return3;
nTemp=nTemp*10+n%10;
n/=10;
}
/*比较逆序数和原序数是否相等*/
if(nNumber!
=nTemp)
return3;
return0;
}
方法二
/*---------------------------------------------------------------------------
功能:
判断字符串是否为回文数字
实现:
先得到字符串的长度,再依次比较字符串的对应位字符是否相同
输入:
char*s:
待判断的字符串
输出:
无
返回:
0:
正确;1:
待判断的字符串为空;2:
待判断的字符串不为数字;
3:
字符串不为回文数字
----------------------------------------------------------------------------*/
unsignedIsSymmetry_2(char*s)
{
char*p=s;
intnLen=0;
inti=0;
/*判断输入是否为空*/
if(*s==\'\\0\')
return1;
/*得到字符串长度*/
while(*p!
=\'\\0\')
{
/*判断字符是否为数字*/
if(*p<\'0\'||*p>\'9\')
return2;
nLen++;
p++;
}
/*长度不为奇数,不为回文数字*/
if(nLen%2==0)
return4;
/*长度为1,即为回文数字*/
if(nLen==1)
return0;
/*依次比较对应字符是否相同*/
p=s;
i=nLen/2-1;
while(i)
{
if(*(p+i)!
=*(p+nLen-i-1))
return3;
i--;
}
return0;
}
1。
数组应该初始化
2。
memcpy不判断是否越界,所以调用前应该判断是否越界
3。
不应该返回rest,因为这个数组是在函数内部申请的,所以函数结束之后就会消失,指针也会变成“野指针”,所以指向非法地址
最后一个比较隐蔽
char*memcpy(char*dest,constchar*src,intlen)
{
char*pDest=(char*)dest;
char*pSrc=(char*)src;
intpos;
for(pos=0;pos { pDest[pos]=pSrc[pos]; } return(char*)pDest; } 存在地问题就是没有判断指针是否非法assert(dest! =NULL||src! =NULL);条件为FLASE显示 不调用其他函数,写一个memcpy的函数,函数原型为 void*memcpy(void*dest,void*src,size_tlength); -----------利用好断言--------- /*memcpy───拷贝不重叠的内存块*/ voidmemcpy(void*pvTo,void*pvFrom,size_tsize) { void*pbTo=(byte*)pvTo; void*pbFrom=(byte*)pvFrom; ASSERT(pvTo! =NULL&&pvFrom! =NULL); /*内存块重叠吗? 如果重叠,就使用memmove*/ ASSERT(pbTo>=pbFrom+size||pbFrom>=pbTo+size); while(size-->0) *pbTo++==*pbFrom++; return(pvTo); } ----------------------- 常见函数编程: char*strcpy(char*strDest,constchar*strSrc) { ASSERT(strDest! =NULL&&strSrc! =NULL); char*addr=strDest; while(*strDest++=*strSrc++) NULL;//NULL可以省略,但更有利于编译器发现错误 } returnaddr; } void*memcpy(void*dest,constvoid*src,intcount) { ASSERT(dest! =NULL&&src! =NULL); for(inti=0;i { dest=src; } } intstrcmp(constchar*str1,constchar*str2) { while(str1! =NULL&&str2! =NULL) { if(*str1<*str2)return-1; elseif(*str1>*str2)return1; else{str1++;str2++;} } if(str1==NULL&&str2! =NULL) return-1; elseif(str1! =NULL&&str2==NULL) return1; elsereturn0; } //way2: morecompact intstrcmp(constchar*str1,constchar*str2) { inti=strlen(str1); intj; for(j=0;j<=i;j++) { if(str1[j]>str2[j])return1;//ifstr2terminates,thenstr2[j]=0,str1[j]>str2[j],return1; elseif(str1[j] elseif(str1[j]=='')return0; } } //way3: optimizeagain. intstrcmp(constchar*str1,constchar*str2) { while (1) { if(*str1>*str2)return1; elseif(*str1<*str2)return-1; elseif(*str1=='')return0; str1++;str2++; } } 217.路由器A的配置如下: Quidway#SHOWRUN Currentconfiguration ! userhuaweiservice-无效ppppassword0quidway ! interfaceEthernet0 ipaddress1.1.1.1255.0.0.0 ! interfaceSerial0 encapsulationppp pppauthenticationchap pppchaphosthuawei ipaddress2.1.1.1255.0.0.0 ! interfaceSerial1 encapsulationppp ! interfaceSerial2 flowcontrolnormal asyncmodededicated encapsulationppp ! exit iproute0.0.0.00.0.0.02.1.1.2preference60 end 路由器B的配置如下 Quidway#SHOWRUN Currentconfiguration ! userhwservice-无效ppppassword0quidway ! interfaceEthernet0 ipaddress3.1.1.1255.0.0.0 ! interfaceSerial0 clock-selectDTECLK1 encapsulationppp pppchaphosthuawei ipaddress1.1.1.2255.0.0.0 ! interfaceSerial1 encapsulationppp ! interfaceSerial2 flowcontrolnormal asyncmodededicated encapsulationppp ! exit iproute0.0.0.00.0.0.02.1.1.2preference60 end 一道华为笔试题 题目: 请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如: 144,676。 用c语言编写(不能用数字转换成字符串)。 #include #include //函数havesamenum确认num是否满足条件 inthavesamenum(intnum) { inti=0,j; chara[10]={0}; while(num>0) { j=num%10; a[j]+=1; num=num/10; } while(a[i]<=1&&i<10) i++; if(i<10) return1; else return0; } voidmain(void) { inti,j,m; m=(int)sqrt(99999); for(i=1;i { j=i*i; if(1==havesamenum(j)) printf("%6d\t",j); } } 下图为运行结果: 这个简单的面试题目,我选输出no(对比的应该是指针地址吧),可在VC是YES在C是NO lz的呢,是一个常量字符串。 位于静态存储区,它在程序生命期内恒定不变。 如果编译器优化的话,会有可能a和b同时指向同一个hello的。 则地址相同。 如果编译器没有优化,那么就是两个不同的地址,则不同 华为面试流程一共5轮 首先资格考试和面试(相应职位的资深工程师主持); 其次应聘职位的部门付经理面试 再次应聘职位的部门付经理面试 再次人事面试 最后是付总级的面试。 常问问题: Q1: 请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图? Q2: 请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP 与UDP呢? Q3: 请问交换机和路由器分别的实现原理是什么? 分别在哪个层次上面实现的? Q4: 请问C++的类和C里面的struct有什么区别? Q5: 请讲一讲析构函数和虚函数的用法和作用? Q6: 全局变量和局部变量有什么区别? 实怎么实现的? 操作系统和编译器是怎么知 道的? Q7: 一些寄存器的题目,主要是寻址和内存管理等一些知识。 Q8: 8086是多少位的系统? 在数据总线上是怎么实现的? 测试题: 1、由于你是新员工,没有公配手机时,当你在现场遇到紧急事故时,你会()向公司求助 A、打用户机房内的电话 B、借用户手机 C、拔110 D、拔200或300 E、立即打车回办事处 (答案: D,答CE者立即辞退,按照公司规定,不能随便使用用户的电话,以提高公司 形象) 2、工程师A某周日晚正在家里看电视,突然手机响了,电信局运维员工突然 打电话过来,小A接起电话,用户声音很急迫,说: “不好了,瘫了,你快来处理”。 请问这里“瘫了”最有可能是什么意思() A、设备漏电将维护人员电瘫了 B、设备支架不够结实,被压瘫了 C、设备坏了,将维护人员吓瘫了 D、设备坏了,大面积业务中断了 (答案: D,答错者,按不合格处理) Network: 1.如何设计一个模型来检验通信协议的正确性? 2.位于网络两端的计算机的连接过程是怎样的? 3.链路层的协议? 4.FSM和PETRI网哪个好 5.中国一号和七号信令的区别。 Hardware: 6.CPU里面有些什么东东,外面有些什么东东? 7.指令执行分几个步骤 LangugeandCompiler: 9.i=0,那么,++i||i--的值? 8.cc++java的区别? 9.全局变量、局部变量、静态变量都放在内存的什么地方? 10.结构与类的区别 11.a*b+c这样的表达式如何写编译程序? 12 c++虚函数怎么实现 DatastructureandAlgorthim 13.写出一个二分函数? 14.写出一个字符串子串匹配的算法? 15 对一个一维数组排序 SoftwareSystem: 16.UNIX文件系统的最大优点是什么? 17.fork函数的返回值是? 18.(软件)测试有哪几种方法? Database 19.数据库编程哪部分最重要? 20.未来的数据库(电子信息数据库)的走向? 21.数据库第一范式怎么表示 慧通试题 1写出程序把一个链表中的接点顺序倒排 typedefstructlinknode { intdata; structlinknode*next; }node; //将一个链表逆置 node*reverse(node*head) { node*p,*q,*r;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 笔试 总汇