華爲——工作累,筆試面試也累

華爲的筆試太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   每列從上到下爲非減序列;
當作一維數組直接排序就可以了
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章