別太把面試題當回事兒

2022-02-10 17:18:42 字數 2545 閱讀 4817

找工作要面試,所以在這最難就業季,很多人對面試題特別感興趣,津津有味地研究,孜孜不倦地學習。

但實際上這些面試題目良莠不齊,許多題目根本上就是垃圾和毒藥。

比如問「空結構體」的尺寸是多少,實際上c語言中根本就沒有「空結構體」,因為結構體的定義本身就規定結構體不可以為空。所以,「空結構體」的尺寸是多少這樣的問題是驢唇不對馬嘴的偽問題。

有些題目喜歡轉牛角尖,比如問呼叫

malloc(0)

得到的返回值是否是null?(

這在實踐中是基本沒用的知識。

儘管沒用,但問題本身還是成立的。可笑的是給出的解答是錯的,解答竟然說malloc(0)返回的一定不是null。

實際上malloc(0)的返回值可能是null也可能不是null,和實參為乙個正整數時沒什麼區別。如果返回值不為null,也應該用free()函式釋放。malloc(0)唯一不同的地方就是,就算你申請記憶體成功,即malloc(0)返回值不為null,你也沒法使用這塊記憶體。

有一些考察程式設計能力的題目,則直接暴露出了出題者的程式設計能力很差。比如

兩個單鏈表(singly linked list),每乙個節點裡面乙個0-9的數字,輸入就相當於兩個大數了。然後返回這兩個數的和(乙個新list)。這兩個輸入的list長度相等。 要求是:1. 不用遞迴。2. 要求演算法在最好的情況下,只遍歷兩個list一次 ,最差的情況下兩遍。(鍊錶儲存資料為從低位到高位)

這個題目就很搞笑。因為只要小學畢業,就知道多位數加法只需要從低位到高位遍歷一次就可以了,遍歷兩次說明小學沒畢業。非但只需要一次,同樣不需要兩個加數字數相同。計算和這個過程既然能在紙上用筆完成,那麼用**同樣也能夠完成。

那麼,題目為什麼給出「兩個輸入的list長度相等」這樣沒用的條件以及「最差的情況下兩遍」這樣笨拙的要求呢?只能解釋為出題者自己不會用**處理兩個list長度不相等的情況,並且寫不出遍歷一次的**。

實際這個問題一點也不難,會寫鍊錶的人都能輕易寫出兩個list不等長,且兩煉表只遍歷一次求和的**。

#include

#include

#include

typedef

struct bignum

* list  ;

list get_num( void );

void my_malloc( list * );

void output( list );

list add( list ,list );

void my_free( list );

void move( list * );

int get_dig( list );

void put( int , list * );

int main( void )

void my_malloc( list * p )

//輸入,建立從低位到高位的鍊錶

list get_num( void )

return p;

}void my_free( list p )

int get_dig( list p )

void move( list * pp )

void put( int n , list * pp )

list add( list p1 ,list p2 )

if ( high != 0 )                          //處理最高位的進製                

put( high , pp_res );

return p_res;

}void output( list p )

*list ;

list get_num(

void

);void my_malloc( list *);

void

output( list );

list add( list ,list );

void

my_free( list );

void move( list *);

intget_dig( list );

void put( int , list *);

int main( void

)void my_malloc( list *p )

//輸入,建立從低位到高位的鍊錶

list get_num( void

)

returnp;}

void

my_free( list p )

intget_dig( list p )

void move( list *pp )

void put( int n , list *pp )

list add( list p1 ,list p2 )

if ( high != 0 ) //

處理最高位的進製

put( high , pp_res );

return

p_res;

}void

output( list p )

別太把自己當回事

別太把自己當回事布思 塔金頓是20世紀美國著名 家和劇作家,他的作品 偉大的安伯森斯 和 愛麗絲 亞當斯 均獲得普利茲獎。在塔金頓聲名最鼎盛時期,他在多種場合講述過這樣乙個故事 那是在乙個紅十字會舉辦的藝術家作品展覽會上,我作為特邀的貴賓參加了展覽會。其間,有兩個可愛的十六七歲小女孩來到我面前,虔誠...

別太把3G當回事

如果你只是使用通話和簡訊功能,3g對你毫無意義!如果你沒想過去使用無線網際網路,3g對你毫無意義!如果你近期沒有考慮換台3g手機,3g對你毫無意義!如果你的3g手機不匹配現有網路,3g對你毫無意義!如果你是山寨手機的狂熱追隨者,3g對你毫無意義!張書樂 3g的意義在哪呢?其實3g的消費群體在目前看來...

程式設計師,別太把技術入股當做一回事

最近在跟某前合作夥伴鬧了一些彆扭。大概的來龍去脈如下 我幫他開發好了一套綜合繳費軟體,他說他出錢,我幫他組織人馬,到時候做成了股份給我30 中間又組織管理和測試開發了一套andorid voip軟體。他直接把錢打給開發者,我沒出錢,也沒拿錢,但是架構,專案管理是我做的,答應給我50 的股份。今年我因...