华为——工作累,笔试面试也累

来源:互联网 发布:本兮 知乎 编辑:程序博客网 时间:2024/06/06 08:28
华为的笔试太bt了,开始是素质考试,题量大,头很晕,然后是技术考试,题目也不少。总之把人累得一蹋糊涂。

接着是三轮面试,一轮技术,二轮小组群面,三轮就是跟你讨论地点了。

 

发信人: window (pja), 信区: Job
标 题: 华为软件面试式题大全
发信站: 武汉白云黄鹤站 (Thu Nov 2 17:09:06 2000), 转信
 c 语言
 1. 编写一种排序方法
 2. 链表倒序
 3
 4
还有不用函数实现小写字符串变大写。呵呵。
写出 c 语言库函数memcopy(*p1,*p2,int n )算法
 
1、int   i=10,   j=10,   k=3;   k*=i+j;   k最后的值是___ 
60  
 2、进程间通信的方式有__   __   __   __等。 
http://blog.csdn.net/lne818/archive/2006/07/31/1005041.aspx  
Linux下进程间通信的几种主要手段简介:
 
    1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
 
    2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;Linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);
 
    报文(Message)队列(消息队列):消息队列是消息的链接表,包括Posix消息队列systemV消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
 
    共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
 
    信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
 
套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:LinuxSystem V的变种都支持套接字。   
3、网桥是独立于___协议的,(后面还有一句话,记不得了)    
网络层
 4、struct   A    
 {    
 char   t:4;    
 char   k:4;    
 unsigned   short   i:8;    
 unsigned   long   m;    
 }    
 sizeof(A)=___(不考虑边界对其)
Vc8
该错题:    
 1、下面的函数实现在一个固定的数上加上一个数,有什么错误,改正    
 int   add_n(int   n)    
 {    
 static   int   i=100;    
 i+=n;    
 return   i;    
 }    
I每次都变化
 2、就是大家说的少一个free的那道题    
 3、就是const   字符串不能被修改的问题    
 4、char   p[5];    
 char*   s="12345";    
 strcpy(p,s);    
 5、class   A    
 {    
 public:    
 A()   {   p=this;   }    
 ~A()   {   if(p!=NULL)   {   delete   p;   p=NULL;   }   }    
 A*   p;    
 };    
 这个问题我说一下,可能出题者自己也没意识到这个问题,因为在趋势的考试中这样    
 error也出现了。    
 显然,出题者的意图是:delete   this之后,不能操作这个对象了,所以,p=NULL是错    
 误的。但是还有一个错误:big-three原则,定义了析构函数,缺少了copy   ctroperato    
 r=    
发信人: xjtuwolf (西北望,射天狼), 信区: job
标 题: 华为面试题(软件)
发信站: 兵马俑BBS (Fri Nov 28 13:35:14 2003), 转信(bbs.xjtu.edu.cn)
 
 
第一题:
     指针的使用,地址的概念
第二题:
     编程把一个整数分解质因子并打印
第三题:
     编程打印如下图案(不能用数组,递归,不考虑空格)
                       1
                      121
                     12321
                      121
                       1
 
发信人: evileye (邪眼), 信区: job
标 题: 华为最后三个大题
发信站: 饮水思源 (2004111210:23:03 星期五), 站内信件
 
1.A,B,C,D四个进程,Abuf里面写数据,B,C,Dbuf里面读数据,
A写完,且BCD都读一次后,A才能再写。用PV操作实现。
 
2.将单向链表reverse,如ABCD变成DCBA,只能搜索链表一次。
 
3.将二叉树的两个孩子换位置,即左变右,右变左。不能用递规(变态!)
其实也可以类似于二叉树的非递归遍历,比如前序遍历,只不过visit变成交换左右孩子节点。
先将根节点压栈,然后进入while循环,条件栈不空
将节点出栈,交换其左右节点,然后再将左右节点进栈
发信人: autumn (秋天不该那么绝望的), 信区: job
标 题: 华为D卷最后四大题
发信站: 饮水思源 (2004111212:41:17 星期五), 站内信件
 
1、A1,A2....AnB交换资源,求写出PV操作的序列
 
2、非递归实现废物不拉屎数列.
 
3、折半查找干啥用的?
   实现之.
 
4、实现有序链表上的插入
 
题目概要:一射击选手射击10次共得89环,每次射击获得环数范围为[0,10]。请给出他射击
结果的所有可能性
 
1、int   i=10,   j=10,   k=3;   k*=i+j;   k最后的值是___    
 2、进程间通信的方式有__   __   __   __等。    
 3、网桥是独立于___协议的,(后面还有一句话,记不得了)  
网络层  
 4、struct   A    
 {    
 char   t:4;    
 char   k:4;    
 unsigned   short   i:8;    
 unsigned   long   m;    
 }    
 sizeof(A)=___(不考虑边界对其)
 
1、下面的函数实现在一个固定的书上加上一个数,有什么错误,改正    
 int   add_n(int   n)    
 {    
 static   int   i=100;    
 i+=n;    
 return   i;    
 }    
 2、就是大家说的少一个free的那道题    
 3、就是const   字符串不能被修改的问题    
 4、char   p[5];    
 char*   s="12345";    
 strcpy(p,s);    
 5、class   A    
 {    
 public:    
 A()   {   p=this;   }    
 ~A()   {   if(p!=NULL)   {   delete   p;   p=NULL;   }   }    
 A*   p;     
 };    
 这个问题我说一下,可能出题者自己也没意识到这个问题,因为在趋势的考试中这样    
 的error也出现了。    
 显然,出题者的意图是:delete   this之后,不能操作这个对象了,所以,p=NULL是错    
 误的。但是还有一个错误:big-three原则,定义了析构函数,缺少了copy   ctr和operato    
 r=。    
   
 
.要求采用非递归的方法,把二叉树的每一个非叶子节点的左右孩子节点互换,试编写函数。  
  函数原型:void   exchange(node   *t){     ...   }//t为二叉树的根节点。  
 树节点结构:  
 typedef   struct   node    
 {       int   data;  
          node   *left;  
          node   *right;  
 };  
变相的二叉树遍历题目,可以采用先序遍历,层次遍历等
typedef   struct   node  
 {  
    int   key;  
    struct   node   *llink,*rlink;  
 }NODE;  
 void   exchange(NODE   *root)  
 {  
    NODE   *r,*p,stack[MAX];  
 int   top=0;  
 stack[++top]=root;  
 while(top>0)  
 {  
 p=stack[top--];  
 if(p!=NULL){  
    r=p->llink;  
    p->llink=p->rlink;  
    p->rlink=r;  
 stack[++top]=p->llink;  
 stack[++top]=p->rlink;  
 }  
 }  
 }  
 
任意给定9个自然数,请给出一定的规则(一条或几条)判断是否能组成九宫图。  
 据华为经理说这是小学的奥赛题。
从小到大排序,设中间位置(第5)个数为   m,则必须符合  
   
 一、   m-d,   m-c,   m-b,   m-a,   m,   m+a,   m+b,   m+c,   m+d   的模式  
 这里已经假设了   0<=a<=b<=c<=d  
 根据   a,   b,   c,   d   的不同有几种可能。  
   
 或者是:  
 二、   d   =   c   =   b   =   a   =   0  
   
 或者是:  
 二、   a   =   0  
 三、   b   =   c   >   0;  
 四、   d   =   b   或者   d   =   2b  
   
   
 或者是:  
 二、   d   >   c   >   b   >   a   >   0  
 三、   c   =   a   +   b  
 四、   d   =   a   +   c   或者   d   =   b   +   c
 
int   a[10][10]={...};  
 要求对a进行排序,使之:  
 1   每行从左到右为非减序列;  
 2   每列从上到下为非减序列;
当作一维数组直接排序就可以了
 
原创粉丝点击