2017年华为科技求职笔试题大全

合集下载

华为公司面试笔试题

华为公司面试笔试题

华为公司面试笔试题《一》Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?Q4:请问C++的类和C里面的STRUCT有什么区别?05:请讲一讲析构函数和虚函数的用法和作用?Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。

Q8:8086是多少位的系统?在数据总线上是怎么实现的?《二》1、测试设计(任选一题)A、规则说明一号通功能是指用户的多个终端(手机、固定电话)可以挂在一个虚拟或实际号码下面、这个号码称为引导号码。

当其它用户拨打引导号码时,用户的多个终端会同时振铃,当用户接听其中一个终端后,其它终端将停止振铃。

一号通最多只支持有2个成员;一号通的成员可以是固定电话或移动电话;引导号码长度为4-16请设计相应测试用例验证一号通功能(写出分析过程)B、规则说明假设需要实现操作系统中的一个进程调度器,根据如下规则来确定如何进行测试设计、进程可处于5种状态;1、就绪随时可以被调度器选中,从而获得CPU得到执行2、运行已经获得CPU,正在执行3、阻塞进程申请系统中的资源,如果资源暂时无法获得,则进入阻塞状态4、终止进程结束,则进入终止状态,等待操作系统回收进程在创建或运行时申请的资源5、死亡处于终止状态的进程资源被回收后,进程彻底消失,等价于没有被创建请设计用例测试进程调度器(写出分析过程)。

2、英文翻译1、Round RobinSpecifies that the system passes each mew commection request to the next server in line eventually distributing connections evenly across the array of machines being load balanced. This method works well in most configurations , especially if the equipment that you are load balancing is roughly equal in processing speed and memory.2、The maximum number of HTTP/HTTPS transactions per connection ,before the clientcloses the TCP connection with the proxy , regardless of whether or not the destination is from the same sever).3、程序设计题(可选)不使用任何库,编写一个函数char*remove(const char* src,char c )参数src为输入的字符串,长度不确定,不为空。

华为面试笔试题

华为面试笔试题

华为硬件面试题[硬件工程师]全都是几本模电数电信号单片机题目 1.用与非门等设计全加法器 2.给出两个门电路让你分析异同3.名词:sram,ssram,sdram 4.信号与系统:在时域与频域关系 5.信号与系统:和4题差不多 6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12分之一周期....)7.串行通信与同步通信异同,特点,比较8.RS232c高电平脉冲对应的TTL逻辑是?(负逻辑?)9.延时问题,判错10.史密斯特电路,求回差电压11.VCO是什么,什么参数(压控振荡器?)12. 用D触发器做个二分颦的电路.又问什么是状态图13. 什么耐奎斯特定律,怎么由模拟信号转为数字信号14. 用D触发器做个4进制的计数15.那种排序方法最快?一、研发(软件)用C语言写一个递归算法求N!;给一个C 的函数,关于字符串和数组,找出错误;防火墙是怎么实现的?你对哪方面编程熟悉?硬件:1、继电器控制电路。

2、SDRAM是怎么工作的3、写出逻辑表达式说明A2A1A0大于B2B1B0。

4、常用触发器有几种5、示波器有几种触发方式,举出三种华为笔试题含答案[软件工程题]写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。

如:100个1是一个组合,5个1加19个5是一个组合。

请用C++语言写。

答案:最容易想到的算法是:设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以编程为:number=0;for (x=0; x<=100; x++)for (y=0; y<=50; y++)for (z=0; z<=20; z++)if ((x+2*y+5*z)==100)number++;cout<<number<<endl;上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。

最全的华为校园招聘笔试题

最全的华为校园招聘笔试题

最全的华为校园招聘笔试题最全的华为校园招聘笔试题华为笔试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.实现⼀个函数,把⼀个字符串中的字符从⼩写转为⼤写。

华为笔试题目及答案

华为笔试题目及答案

华为笔试题目及答案
xx 华为笔试题目及答案
1.请你分别画出 OSI 的七层网络结构图和 TCP/IP 的五层结构图。

2.请你详细地解释一下 IP 协议的定义,在哪个层上面 ?主要有什么作用?TCP 与UDP 呢 ?
3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?
4.请问 C++ 的类和 C 里面的 struct 有什么区别?
5.请讲一讲析构函数和虚函数的用法和作用。

6.全局变量和局部变量有什么区别 ?是怎么实现的?操作系统和编译器是怎么知道的 ?
7.8086 是多少位的系统 ?在数据总线上是怎么实现的 ?
......
一个员工是否优秀,主要不断追求卓越的精神he 不断超越自身的努力,与此同时,还要具备优秀的人品、高尚的职责、精湛的技
能,以及世界 500 强企业非常重视的活跃的思维。

阿凡老师选择了一些比较著名的企业的笔试题目,同学们,拿出
自己的本领,发送你的 .答案给我。

1.请你分别画出 OSI 的七层网络结构图和 TCP/IP 的五层结构图。

2.请你详细地解释一下 IP 协议的定义,在哪个层上面 ?主要有什么作用?TCP 与UDP 呢 ?
3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?
4.请问 C++ 的类和 C 里面的 struct 有什么区别?
5.请讲一讲析构函数和虚函数的用法和作用。

6.全局变量和局部变量有什么区别 ?是怎么实现的?操作系统和编译器是怎么知道的 ?
7.8086 是多少位的系统 ?在数据总线上是怎么实现的 ?模板,内容仅供参考。

华为笔试题大全(史上最齐全)

华为笔试题大全(史上最齐全)

华为笔试汇总有什么用途?〔请至少说明两种〕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)采用哪种网络协议?该协议的主要层次结构? Tcp/Ip 协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。

物理地址和IP 地址转换采用什么协议?ARP (Address Resolution Protocol)〔地址解析協議〕地址的编码分为哪俩局部?IP 地址由两局部组成,网络号和主机号。

不过是要和“子网掩码〞按位与上之后才能区分哪些是网络位哪些是主机位。

13.用户输入M,N 值,从1 至N 开始顺序循环数数,每数到M 输出该数值,直至全部输出。

写出C 程序。

循环链表,用取余操作做14.不能做switch()的参数类型是:switch 的参数不能为实型。

华为笔试题大全(史上最齐全)

华为笔试题大全(史上最齐全)

华为有什么用途(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。

3) 不存在指向空值的引用,但是存在指向空值的指针。

3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。

4.全局变量和局部变量在内存中是否有区别如果有,是什么区别全局变量储存在静态数据库,局部变量在堆栈。

5.什么是平衡二叉树左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。

6.堆栈溢出一般是由什么原因导致的没有回收垃圾资源。

7.什么函数不能声明为虚函数constructor函数不能声明为虚函数。

8.冒泡排序算法的时间复杂度是什么时间复杂度是O(n^2)。

9.写出float x 与“零值”比较的if语句。

if(x>&&x<采用哪种网络协议该协议的主要层次结构Tcp/Ip协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。

物理地址和IP地址转换采用什么协议ARP (Address Resolution Protocol)(地址解析協議)地址的编码分为哪俩部分IP地址由两部分组成,网络号和主机号。

不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。

写出C程序。

循环链表,用取余操作做14.不能做switch()的参数类型是:switch的参数不能为实型。

上海华为的一道关于指针方面的编程题int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。

华为笔试面试题大全

华为笔试面试题大全

华为笔试面试题大全(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 *str6 = abc char *str7 = abc char *str8 = abc cout ( str1 == str2 ) endl; cout ( str3 == str4 ) endl; cout ( str5 == str6 ) endl; cout ( str7 == str8 ) endl;结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

(4)以下代码中的两个sizeof用法有问题吗?[C易] void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母{ for( size_t i=0; i(5)一个32位的机器,该机器的指针是多少位答案:指针是多少位只要看地址总线的位数就行了。

80386以后的机子都是32的数据总线。

所以指针的位数就是4个字节了。

6main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)( a+1); printf( %d,%d ,*(a+1),*(ptr-1)); } 答案:2。

华为面试笔试题技术面经

华为面试笔试题技术面经

华为面经(9.28)一面(业务面):2 号面试官1 问项目,介绍项目2 聊实习项目3 问基础信号量,多线程编程(直接说不懂,忘记了)4 代码题求两个单链表的公共节点(问能用python 吗用c,cpp,java)忘记怎么求了写了一大段java 代码实际上用双指针,先求出两个链表的长度m,n,然后利用双指针让一个指针先跑m-n,然后同时跑,如果有指向同一个节点就说明有,遍历到最后也没有说明没有公共节点。

5 你有什么要问我--------------------------------------------------------------------------------------------------------------------------------- -----------------------------------下午吃完饭通知另一场业务面,换了3 号面试官,估计是换了岗位或者换了部门业务面:3 号面试官1 自我介绍2 项目3 实习4 聊论文5 智力题九宫格,给九个数字放入九宫格,能否满足,“米”字型的四条表上的三个数字之和都相等?写代码实现输出true false看了一分钟,就说出思路了。

考官很满意实际上这题转化为:给九个数,能否满足其中八个数组成4 对和相同数对。

6 问我编程能力,一看笔试满分,然后问的技术栈愿意转java 或者c 吗?我说语言不是问题,基础打好学什么都快,我也有java 基础。

7 问一些个人信息,家乡,意向城市等(估计稳了)--------------------------------------------------------------------------------------------------------------------------------- -----------------------------------综合面(2 号面试官大佬,不是业务的2 号)1 直接自我介绍,大佬对双学位感兴趣,聊了一会,打听到大佬也学过双学位。

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

文档编号:YLWK417125
2017年华为科技求职笔试题大全

1.引用与指针有什么区别?
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
2.static有什么用途?(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数
访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就
是,这个函数被限制在声明它的模块的本地范围内使用

3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
全局变量储存在静态数据库,局部变量在堆栈。
5.什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。
6.堆栈溢出一般是由什么原因导致的?
没有回收垃圾资源。
文档编号:YLWK417125
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输出该数值,直至全部输
出。写出C程序。

循环链表,用取余操作做
14.不能做switch()的参数类型是:
switch的参数不能为实型。
文档编号:YLWK417125
上海华为的一道关于指针方面的编程题
int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int
nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中
第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且
给出设计思路)

华为笔试题含答案 [软件工程题]
写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个
数。

如:100个1是一个组合,5个1加19个5是一个组合。。。。 请用C++语言写。
答案:最容易想到的算法是:
设x是1的个数,y是2的个数,z是5的个数,number是组合数
注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以编程为:
number=0;
for (x=0; x<=100; x++)
for (y=0; y<=50; y++)
for (z=0; z<=20; z++)
if ((x+2*y+5*z)==100)
文档编号:YLWK417125
number++;

cout<上面这个程序一共要循环100*50*20次,效率实在是太低了
事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。我的解法如下:
因为x+2y+5z=100
所以x+2y=100-5z,且z<=20 x<=100 y<=50
所以(x+2y)<=100,且(x+5z)是偶数
对z作循环,求x的可能值如下:

z=0, x=100, 98, 96, ... 0
z=1, x=95, 93, ..., 1
z=2, x=90, 88, ..., 0
z=3, x=85, 83, ..., 1
z=4, x=80, 78, ..., 0
......
z=19, x=5, 3, 1
z=20, x=0
文档编号:YLWK417125
因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数

+1,

即为:
(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+
3)+1

某个偶数m以内的偶数个数(包括0)可以表示为m/2+1=(m+2)/2
某个奇数m以内的奇数个数也可以表示为(m+2)/2
所以,求总的组合次数可以编程为:
number=0;
for (int m=0;m<=100;m+=5)
{
number+=(m+2)/2;
}
cout<这个程序,只需要循环21次, 两个变量,就可以得到答案,比上面的那个程序高效了许

倍----只是因为作了一些简单的数学分析

这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问

相关文档
最新文档