六一兒童節傾情奉獻,校內首發,CSDN再發,2011年冬季c/c++程序員找工作心得

六一兒童節傾情奉獻,校內首發,CSDN再發,2011年冬季c/c++程序員找工作心得

 

我把2011年末2個月去的公司,遇到的問題整理出來,自己複習下,也供大家參考。其實沒什麼經驗,也就是流水賬。對部分公司我也發表了自己的觀點,不過純屬自己的體會,給大家參考下。

所有的筆試題目都是部分的,我記錄下的都是自己認爲比較經典的,要麼就是我不太會的,至於一些常考的,簡單的不能再簡單的,就沒有必要記錄了。

201110月下旬開始找工作,先後經歷了30家公司。Offer也拿了很多,但是都不是很給力,要麼工資低,工資高的戶口不給力,最後還在飄,打算明年春天再找找看,奔些大公司去。

重點推薦準備書籍:C語言(譚浩強)、c++面向對象程序設計(譚浩強)、數據結構(嚴蔚敏)、高質量c++/編程指南(林銳博士)、程序員面試寶典第三版(歐立奇)

其他推薦書籍:軟件設計師教程(胡聖明)、vc++深入詳解(孫鑫)、c++語言 習題與解答第三版(李春葆)、

廢話少說進入正題……

20111020    北京**天科公司

這家公司沒有筆試,全是面試。先是一個HR面試,讓我介紹下項目經驗,問我戶口問題;

後面是部門經理技術面試,和我談了很久,介紹了下項目經驗,一直給我說自己公司編程時員工是多麼的不規範,我說推薦使用林瑞博士的高質量c++/編程指南,大約聊了30多分鐘吧;

後面是人事經理面試,隨便瞎聊了下,說讓我回去等通知,說後面還有2個面試,結果我什麼消息都沒等到,杯具了畢竟是第一次面試嘛!

20111021   北京寶**軟件技術服務公司

這家公司不解決戶口,後來問到的,公司出的題量比較大,選擇題不少,還有填空題,然後是程序題,但都比較基礎。我做的也是的心應手,筆試做完後,是上機,我對此比較反感,不是反感上機,因爲公司通知面試時間比較晚,我昨晚筆試題,等了很久前臺MM來說再做下上機吧,這時候都差不多11點半了,說上機做一個小時,當時我就火了,老子早晨都沒吃飯,過來筆試,還然不讓吃中午飯了,不過我忍着做題,心不在焉的,隨便選擇了個實現strstr(),題目很多,選擇2道。做的也不是很好,做完的時候都12點多了,跑前臺去說,前臺早沒人了,後來等了會,一個人過來問我機試的情況,我說太晚了,早晨沒吃飯,沒心情做,後來就走了,走的時候我看到30道選擇題我得分26分。這家公司給我的感覺就是很不好,一點也不人性化,反正我是不會去的。

部分筆試題:

1.Char *p =(char*)malloc(100)

Memset(p,1,100);

Strcpy(p,hello);

Char str[]=hello;

Cout<<sizeof(p)<<strlen(p)<<sizeof(str)<<strlen(str);

答案:4 5 6 5

2.Double dArray[2] = {3,9},*p,*q;

p=&dArrary[0];

q=p+1;

cout<<q-p<<(int)q-(int)p;

答案:1 8

分析:q-p的實際運算是:(q的地址-p的地址)/sizeof(double)

3.STL中以連續形式存儲的是:向量(vector),雙隊列(deque)

分析:向量(vector)連續存儲的元素

雙隊列(deque)連續存儲的指向不同元素的指針所組成的數組

4.寫出常見的5個設計模式

單例模式,觀察者模式,工廠模式,責任鏈模式,策略模式.

5.隨便寫一個排序算法

20111024   北京雷***科技有限公司

筆試題相當簡單,就是林銳博士高質量c++/c編程指南最後一套題,沒啥意思。

20 分鐘搞定,答案我都會背了。公司沒戶口,沒談成。技術面試的時候那人一直問我些莫名其妙的問題,我實習的公司有多大,我們項目小組有幾個人,我爲什麼離職,等等。暈,我之前是實習的,你問我爲什麼離職?

20111024   中科***股份有限公司

應該是一個員工的面試,結果面試我沒通過,面試過程是:介紹下項目經驗,針對項目問了幾個問題,最後出了一個選擇題,做對了,但是沒進入下一輪面試。

題目:判斷ABCD四個表達式中值是否正確,若正確寫出a的值。

int a=4;

A     a+=(a++);     先計算a++,這時候a的值還是4,第二次運算時a=a+(a++)=5+4=9

B     a+=(++a);     先計算++a,這時候a的值是5,第二次運算時a=a+(++a)=5+5=10

C     (a++)+=a;    錯誤,左側不是一個有效變量,不能賦值,可改爲(++a)+=a;答案爲10

D     (++a)+=(a++); 先計算++a,a的值爲5,然後再去計算a+=(a++),5+6=11

20111023   **子北京總部     筆試地點:北航

威盛我沒進入面試,杯具啊!

1.typedef struct s* tPS define dPS struct s* 哪個好?爲什麼?

  這兩種情況都的意圖都是要定義dPStPS作爲一個指向結構體s指針,typedef更好。

  因爲:dPS P1P2;  Tps P3P4;

第一個擴展爲struct s* P1P2;定義P1爲一個指向結構的指針,P2爲一個實際的結構;

第二個擴展爲struct s* P3struct s* P4;正確定義了P3P4兩個指針。

2.myStruct *ptr;

 myStruct myArray[10];

 ptr=myArray;

下列哪個指向數組的第二個元素

A ++ ptr

B ptr= ptr+sizeof(myArray);    

C ptr= ptr+sizeof(myStruct);

D ptr= ptr+sizeof(str);

選擇A ,B應該爲ptr= ptr+10*sizeof(myArray)

3.int a[4][2];

int b=0,x;

int i,y;

for(i=0;i<4;i++)

for(y=0;y<2;y++)

 a[i][j]=b++;

 x=*(*(a+2)+1);

cout<<x;

答案:第三行第二列 7

4.int twofold(int iVal)

 {return iVal*2;}

int main()

{int x,y;

 y= twofold((x=3,x+2));

 printf(x=%i,y=%i\n,x,y)

}

答案:x=3y=10;逗號優先級最低

分析:逗號表達式先求解表達式1值,在求解表達式2的值;

      例如:a=3*5,a*4;表達式的值爲60

            (a=3*5,a*4),a+5;表達式的值爲20,但是a的值爲15.

5.x=5,y= -10,a=4,b=-2;

Z=x+++--y*b/a;

Cout<<z;

答案:z=10

分析:Z = x++    +    --y*b/a;

6.declare a pointer to an integer pointer

A   int *ptr;

B   int **ptr;

C   int *&ptr;

D   int &*ptr;

答案:明顯選擇B

7.編寫strcat函數

8.選擇排序

20111023  **信  筆試地點:北郵  應用軟件C++工程師

面試官好像是在宣講會上的那個技術總監,問了些問題,看到我簡歷上寫有測試,讓我把題目最後那個mommove測試下,要考慮下哪些情況?

筆試30分鐘,題目不難,還有其他測試20分鐘(邏輯推理)

1.class A

{

public:

void Fun(void)

{

cout<<"Fun of class A"<<endl;

}

};

int _tmain(int argc_TCHARargv[])

{

A *p;

{

A a;

p = &a;

}

p->Fun();

return 0;

}

答案:Fun of class A

2. char str[] = "abcde中國";

cout << sizeof(str)<<endl;

答案:10,1個漢字佔2個字節

3.Fun(int a)

{ Assert(a>=0);}

Fun(int a)

{ Assert(a++>=0);}

分析:Assert宏的原型定義在<assert.h>中,其作用是如果它的條件返回錯誤,則終止程序。

使用Assert的缺點:頻繁調用會極大影響程序性能,增加額外的開銷。

用法總結與注意事項:

(1) 在函數開始處檢查傳入參數的合法性;

(2) 每個Assert只檢查一個條件,因爲同時檢查多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗;

(3) 不能使用改變環境的語句,因爲Assert只在Debug下生效,如果這麼做,會使程序正在運行時遇到問題。

錯誤:Assert(i++ <100)這是因爲如果出錯,比如執行前i=100,那麼條件語句就不執行,那麼i++這條命令就沒有執行;

正確:Assert(i<100);i++;

4.軟件代碼編寫規範

具體可參考林銳博士的高質量c++/c編程指南

5.STUDENT S與STUDENT *P區別

結構體和類的本質差不多的,就像定義一個類的一般實例變量,就會調用默認的構造函數對實例進行初始化,每一個成員都有自己的地址空間,但定義一個類的指針,如果沒有new之前,只獲得了一個存儲該指針的32位地址,類還沒有初始化,new之後跟上面一樣。

定義一個結構體指針後,程序實際只是給指針本身分配了機器字長的空間,用來存儲一個地址,如果全局變量或靜態變量的話,默認初始化爲0;

結構指針式用來存儲你真正結構的地址的,而當你剛剛定義指針時,它是沒有志向任何結構的,對於你定義的指針,它本身的內容實際爲0;

而定義結構體變量就不一樣了,如果你定義了一個結構變量,那它本身就分配了內存,當然它的內部變量也是分配內存的。

6.memove原型

20111026北京**時代信息科技有限公司 (筆試+面試) 

筆試題目比較多,面比較廣,但是都不是很難。筆試完,技術主管面試,然後是副總面試。

Char str[]=abc\0

Sizeof(str);    答案:5   \0佔一個空間

Char str1[]=abc\0d\e

Sizeof(str1);   答案:7    \0、\e各佔一個空間

這家公司我感覺面試的很好,技術主管面完後還說我基礎挺紮實的,還在黑板上給我講了將近10分鐘公司做什麼的。副總面完後說有需要我們會聯繫你,結果我就杯具了。

20111026     北京圖**科技有限公司  (筆試+面試)

筆試題不太好做,具體不記得了,技術初面是個女的,就是針對你做的題在那裏和你討論,那天我做的很爛,不過人家還是給了我機會讓我進了2面,下面是技術2面的題目

1. 單一模式:保證一個類僅有一個實例並且提供一個訪問它的全局訪問點。

2. static成員函數

3. 野指針產生的原因

4. 快速排序,時間、空間複雜度

這段時間也比較累,做題也心不在焉,技術面試的時候被鄙視的一塌糊塗,那時候連個選擇排序都不會,只會冒泡。更不要說時間,空間複雜度了。

2011112  北京**鑫公司   (筆試+面試) 

公司是做圖像處理,網上閱卷機的。筆試題目比較少,偏C語言點。考到了枚舉,結構體

面試題目:

信號與信號量區別:信號與信號量是不同的,他們雖然都可以用來實現同步和互斥,但前者是使用信號處理器來完成的,後者是使用PV操作來實現的。

2011113   北京**華夏科技有限責任公司 (筆試+面試)

筆試題目,比較雜,什麼都考,網絡方面我記得的就是考各個端口號。其他不記得了。

面試時間抽不開沒去。

2011113  **洋 筆試+面試

筆試:題目很多,時間是3個小時,一般人在不到2個小時都交卷了。題目太多我記得不大清楚了,反正做的很垃圾。後來**把我的簡歷扔到了子公司**上洋,最後上洋發了offer。

技術面試的時候,感覺答的都還可以,後來簡歷被大洋扔到了子公司**上洋,最後在上洋麪試2次,電話通知offer。

**上洋麪試的時候是2次面試,都是技術面試,我感覺面試官很好,一個還是我學姐,二面的時候,我感覺老總很好,給的工資也很高,但是由於不能保證解決戶口,加上公司地址在永豐,有點遠,我最後沒去,但是我很感謝他們,不過人家說什麼時候考慮好給人家打電話就可以,真的感謝他們。

部分筆試題:

1.哪些運算符不能重載

大部分的操作符是可以被重載的,例外的只有“.”“::”“?:”“sizeof”

2.寫雙向鏈表的插入和刪除

3.我在家裏看電視,妹妹在家裏看書,媽媽在家裏做飯。我和妹妹等飯。

媽媽說:飯好了。我關電視,妹妹合上書,到餐桌準備吃飯。

說說用到那些設計模式。

這是個“觀察者模式”

2011114  北京**特石油技術公司 (筆試+面試)

筆試題目都比較簡單

1. 不正確的字符串常量是:(A)

abc       B 1212                  C   0            D  “”

2.int a=b=c=5 (正確)

3.進程和線程的差別

4.switch語句的書寫

5.寫個遞歸(我寫的是折半查找,也就是二分法)

6.排序,我用了最簡單的冒泡排序,就是2個for循環

面試:

大概問了下MFC,函數退出時候用哪一個函數?讓你講下你對MFC的理解。

退出程序用 AfxGetMainWnd()->SendMessage(WM_CLOSE);

2011118  **通(筆試+機試+面試)

這家公司我感覺很不好,不誠信。因爲我被這家公司忽悠了,原因是:技術面試後,那負責人說2天沒給通知,結果10號中午給我電話了,談了很久說下一步跟人事談具體待遇,結果我一直沒等到,發郵件問了2次,第一次說主管領導出差了,第二次說主管領導認爲,還需要再進行一下篩選,所以沒有給你offer。所以我感覺唄這家公司給玩弄了。下面來說下具體的面試過程。

所有筆試題目都不難,比較容易,上機讓做了個排序,就是給你20個數,讓你找出最大的,最小的,然後求出平均值。做一個控制檯的,做一個MFC的,做一個DLL的,我那時候就做了一個控制檯的。面試的時候,先是拿着你做的題目在那裏和你討論,讓你說說想法,後來問的都是很簡單的問題,比如說struct與class區別了,記得不太清楚了,反正就是很簡單。

部分筆試題如下:

1.作用域的種類有哪些?

不同的標識符有着不同的作用域。按作用域的大小可分爲如下5種,從大到小依次爲:
·程序級·文件級·類級·函數級·程序塊級
  程序級的作用域最大,包括組成該程序的若干個文件。屬於程序級作用域的有外部變量或對象和外部函數,在定義它的整個程序中都是可見的。
  文件級作用域有內部函數和外部靜態變量或對象。這種作用域的範圍是在定義它的文件內,並且是從定義時開始到該文件結束。另外,宏名的作用範圍也是文件級,它從定義時起,一直到文件結束,除非文件中出現了undef取消定義。
  類級作用域是指在其類體內,類中的私有成員的作用範圍僅在其類體內,而公有成員在類體外有時可見。而類的對象的作用域要看其定義範圍。關於類的作用域在後面章節中再討論。
  函數級作用域是在該函數的函數體內,包括函數的形參、函數體內定義的某些自動類變量或對象、內部靜態變量或對象以及語句標號等。但是,需要指出的是不包含在函數體內的分程序中、或if語句中、switch語句中以及循環體內所定義的變量或對象。
  程序塊級作用域包含那些定義在分程序中、if語句和switch語句以及循環語句中的自動類和內部靜態類的變量或對象。它們的作用範圍僅在定義它的相應範圍內,從定義時起是可見的。

2.勇士只死一次,懦夫死前已死多次,這句諺語意思是:B
A “雙鳥在林不如一鳥在手
B “帶馬到河邊容易,逼馬飲水難
C “唯勇者早逝直木先砍
D “不要杞人憂天莫自尋煩惱
E “老傢伙比小傢伙怕死

3.strcat函數的書寫,他出的題好像是有問題的。

20111111  北京***信軟件技術有限公司(筆試+機試+面試)

這家公司我印象不是很好,電話通知10點到,到那裏先做筆試,筆試題不難,還有部分智力題,做完後是技術面試,面試讓我說下軟件測試的架構,我哪裏知道,聊了會,那人讓我做了個機試題目,其實就是strcpy,沒啥意思,做完後又讓我寫了個方案,寫方案一個小時,我開始看方案的時候都快12點了,這下我就火了,哥早飯還沒吃呢,然後我看了會就說我沒寫,那人讓我說下大概的思路,我連看都沒看咋說?結果我就回去了,總體的感覺就是面試那個領導說話太牛,根本不把你放在眼裏。說話太牛,跟我介紹公司有多少項目之類的,我聽得頭都大了,問了句,咱們公司有多少人,他說80多個吧,我說那項目能做的過來嗎?那人說這要看領導的領導能力,我當時就無語了,總之總結就是:這家公司的老闆仗着自己公司有中科院的背景,也不知道咋地,反正就是牛逼的不得了,不把任何人放在眼裏,說話牛逼哄哄的。後來我問了幾個同學,去這家公司面試的說的情況和我差不多。

部分筆試題目:

1.求a,b,c,x

int fun(int a,int *b,int &c)

{

int x;

a=a+2;

*b=*b+2;

c=c+2;

x=a+*b+c;

return x;

}

int _tmain(int argc_TCHARargv[])

{

int a,b,c,x;

a=5;

b=5;

c=5;

x=fun(a,&b,c);

cout <<a<<endl<<b<<endl<<c<<endl<<x;

return 0;

}

答案:a=5,b=7,c=7,x=21

智力題:

1.五個洞排成一排,其中一個洞裏藏有一隻狐狸。每個夜晚,狐狸都會跳到一個相鄰的洞裏;每個白天,你都只允許檢查其中一個洞。怎樣才能保證狐狸最終會被抓住? 

答案:按照2, 3, 4, 2, 3, 4的順序檢查狐狸洞可以保證抓住狐狸。爲了說明這個方案是可行的,用集合F表示狐狸可能出現的位置,初始時F = {1, 2, 3, 4, 5}。如果它不在2號洞,則第二天狐狸已經跑到了F = {2, 3, 4, 5}。如果此時它不在3號洞,則第三天狐狸一定跑到了F = {1, 3, 4, 5}。如果此時它不在4號洞,則再過一晚後F = {2, 4}。如果此時它不在2號洞,則再過一天F = {3, 5}。如果此時它不在3號洞,再過一天它就一定跑到4號洞了。 
方案不是唯一的,下面這些方案都是可行的: 
2, 3, 4, 4, 3, 2 
4, 3, 2, 2, 3, 4 
4, 3, 2, 4, 3, 2

2.對一批編號爲1100,全部開關朝上()的燈進行以下*作:凡是1的倍數反方向撥一次開關;2的倍數反方向又撥一次開關;3的倍數反方向又撥一次開關……問:最後爲關熄狀態的燈的編號。

解答:1 4 9 16 25 36 49 64 81 100

因爲所有燈都是打開的

所以,一個燈如果最後是熄滅的,那麼它一定被開關了奇數次

20111115  **技股份有限公司 (筆試+技術HR面試)

那天筆試去了3個人,面試也是三個人面3個人,每人先做個自我介紹,然後有技術面試官發問。

筆試題目:好像是網上的,很簡單。

20111115  **團 (筆試)   北方工業大學2

我就參加了筆試,筆試好像是90分鐘,先做智力題(好像是30分鐘),然後是c++題目,面試那時候由於時間都排滿了,通知2次都沒去,杯具了,後來有時間了,人家不通知了。

廢話少說,部分筆試題目:

1.C編譯過程包括哪3個階段?

  (1)語法分析、語義分析(2)代碼生成器(3)優化器

2. f(int y, int *x)

{ y = y +* x; 

*x =*x + y;

}

 main( )

{int x=2,y=4;

f(y,&x);

printf("%d ,%d",&x,&y);     分析:y傳值,x傳地址,子函數會修改x的內容。

}               

輸出結果是x=8,y=4

20111123 北京**網脈技術股份有限公司 (筆試+技術面試)

**訊 (筆試+面試+技術面試+最後面)

筆試題目這兩家放一起:

部分筆試題目:

1.堆棧溢出一般是什麼原因導致的?

  答:沒有回收垃圾資源

2.IP地址的編碼分爲哪兩部分?

:網絡號和主機號;要與“子網掩碼”按位取與後才能區別哪些是網絡位,哪些是主機位。

3. 判斷ABCD四個表達式中值是否正確,若正確寫出a的值。

int a=4;

A     a+=(a++);     先計算a++,這時候a的值還是4,第二次運算時a=a+(a++)=5+4=9

B     a+=(++a);     先計算++a,這時候a的值是5,第二次運算時a=a+(++a)=5+5=10

C     (a++)+=a;    錯誤,左側不是一個有效變量,不能賦值,可改爲(++a)+=a;答案爲10

D     (++a)+=(a++); 先計算++a,a的值爲5,然後再去計算a+=(a++),5+6=11

4.程序什麼時候使用線程,什麼時候使用單線程效率高?

(1).耗時的操作使用線程,提高應用程序響應

(2).並行操作時使用線程,如C/S架構的服務器端併發線程響應用戶的請求

(3).多CPU系統中,使用線程提高CPU利用率

(4).改善程序結構。一個既長又複雜的進程可以考慮分爲多個線程,成爲幾個獨立或半獨立的運行部分,這樣的程序會利於理解和修改。

其他情況都使用單線程。

5.Linux有內核級線程嗎?

線程通常被定義爲一個進程中代碼的不同執行路線。從實現方式上劃分,線程有兩種類型:用戶級線程內核級線程。用戶線程指不需要內核支持而在用戶程序中實現的線程,其不依賴於操作系統核心,應用進程利用線程庫提供創建、同步、調度和管理線程的函數來控制用戶線程。

Linux支持內核級線程。

6.一般數據庫若出現日誌滿了,會出現什麼情況,是否還能使用?

答:只能執行查詢等讀操作,不能執行更改,備份等寫操作,原因是任何寫操作都要記錄日誌。也就是說基本上處於不能使用的狀態。

7.動態連接庫的兩種方式?

答:調用一個DLL中的函數有兩種方法:1.載入時動態鏈接load-time dynamic linking),模塊非常明確調用某個導出函數,使得他們就像本地函數一樣。這需要鏈接時鏈接那些函數所在DLL的導入庫,導入庫向系統提供了載入DLL時所需的信息及DLL函數定位。 2.運行時動態鏈接(run-time dynamic linking),運行時可以通過LoadLibraryLoadLibraryEx函數載入DLLDLL載入後,模塊可以通過調用GetProcAddress獲取DLL函數的出口地址,然後就可以通過返回的函數指針調用DLL函數了。如此即可避免導入庫文件了。

8.TCP\IP建立連接的過程

答:TCP\IP協議提供可靠的連接服務,採用3次握手建立一個連接。

第一次握手:建立連接時,客戶端發送syn(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認; 

第二次握手:服務器收到syn包,必須確認客戶的SYNack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態; 

第三次握手:客戶端收到服務器的SYNACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。 

完成三次握手,客戶端與服務器開始傳送數據

9。字符串倒序。

先說中**脈,這家公司面試是2個人,面試官對我說你筆試題目做的很好,我謙虛的寒暄了幾句,然後和我談了很多,結果沒給offer,我無語了,可能是因爲解決不了戶口吧。我後來也就沒問。

陽**訊這家公司給我的印象很深,我往豐臺跑了3次,第一次是筆試和那個孫先生面試(他是負責招聘的,我還以爲是做技術的,給他balabala了半天浪費我時間),第二次是通知技術面試,孫先生和一個做技術的面我,第三次面試是:3個人,2個是領導,好像一個還是老總,還有一個是博士,面完後給我說有什麼問題給他們打電話,結果呢,最後沒給我發offer,這家公司是我最無語的公司,一次在我們學校招聘會上,我還問了這個負責招聘的孫先生,他說碩士生公司都會解決戶口咋了,還沒協商好,說不好意思什麼的。NND,老子當時心裏就是火,不過我也沒說啥,心想,公司在豐臺那麼遠,讓我往那裏跑了3次,面試沒問題,走的時候領導還讓我憂問題給他們打電話,結果沒給我發offer,哥哥咋說現在也有將近10offer了,不在乎你這一個,再說了,我也不一定去。總之對這家公司影響是很不好。

20111124  **技(機試+2技術面試)

公司沒有筆試,直接機試,好像一道是設計一個計算器,要考慮大數越界問題。不過我理解錯了,做了個運算符重載。筆試完後是技術面試,問了些技術問題,不難,第二天是副總的面試,然後等了一天就發offer了。感覺公司不錯,但是公司說由於我學校不是211,沒戶口,我也就沒留下。工資處於中等水平,能接受的範圍。

20111124  星河***科技(筆試+技術面試)

筆試題目很簡單,我記得的就是把2個有序的鏈表重新排序,而且是填空題,還有一個是頭文件的作用,還有一個是線程間通信如何實現。

技術面試的時候是2個人面的,一個人問完後,就走了,另一個繼續面。面試的時候問到了,調試技巧(爲什麼在release版本下不會報錯,在Debug版本下報錯);又問到了野指針,也就是內存分配的一些問題,我balabala說了半天。面試完的時候面試官還禮貌的和我握了手,由於公司給的工資有點低,再加上戶口原因,沒去;但是我感覺公司面試官很和藹,要不我可能也去這家公司了。

20111125  北京神**惠科技(筆試+2技術面試+HR面)

筆試題目很多,但是都不是很難,具體一道也想不起來了。

面試的時候第一個應該是老員工,問的問題很不難,UML,單例設計模式,冒泡排序,深拷貝與淺拷貝等等,其他記得不太清楚了。二面的時候是部門經理,問了很多,對了,還問了個選擇排序,讓我寫一個memcpy函數,然後讓我改進,問了我內存重疊問題。其實就是memmove考慮的問題。這個內存重疊我沒研究過,沒答上來。最後面試官說我面試是不是做過準備,我無語了。後來我去了這家公司實習了2天,最後離開了,原因不想多說,不過這家公司給我印象不好。公司工資很低。

20111125  北京永**博(面試+HR面)

這家公司是我面試最輕鬆的,基本沒有技術面,面試人好像是領導,問了些問題,沒有具體問細節,後來就是HR面,回去沒多久就發offer了,工資還行,第一年還提供住宿,或者是住宿補助。但是說給我解決不了北京戶口,解決天津戶口,我也就沒有去。

20111126  **辰 (筆試+技術面試+面試)

其實我還是想去這家公司,畢竟是做網絡安全的,我對這方面感興趣,筆試題我做的肯定沒問題,哪個題錯了我都知道,估計最多也就是做錯了2-3個題目。面試的時候也沒問題,最後面試的時候先做一些什麼測試題,性格之類的,不也不知道叫啥,反正就是做很久,然後就是面試,其實我挺生氣的,面試的時候根本不是c++的,也不是領導,估計領導不在,隨便找了個給我面。沒談技術問題,拉家常。無語。啓明最後沒給我發offer我很不爽,我不知道爲什麼?

不多說了,進入筆試題,由於我做的快,沒事就把部分題目記了下來。

1.C2爲字符型,執行語句C2=A+6-3後,C2的值爲  (D

 分析:ASCII65+54-51=68->D

       ASCII值  048    對應  字符0

2.c=5,a=2+(c+=c++,c+8,c++);a應該爲多少?

答案:a=13;分析:c=5,c+=c++c=11;c+8,c=11,c++,c=12; (c+=c++,c+8,c++)整個逗號表達式的值爲11;最後推出a=13;

3. int a=5,b=3,c;

  c=!a&b++;   推出:a=5,b=4,c=0;

c=!a&&b++;   推出:a=5,b=3,c=0;

4.const char* ptr;  指向向量字符串的指針(對);指向向量字符的指針(錯)。

5.已知f(int)是類A的公有成員函數,P是指向成員函數的f1()的指針,下列正確的使用方法是(B

  A: P=f1          B: P=A::f1              C: A::f1 ()        D: P=f1()

6.創建派生類對象時,構造函數的執行順序是:基類、對象成員、派生類本身(構造函數)

7. union

{

int i;                        4個字節

char x[2];                    2個字節

}a;

int main()

{

a.x[0]=10;             

a.x[1]=1;

printf("%d\n",a.i);

}

答案:266(低位低地址,高位高地址,內存佔用情況是0x010A

   分析:a的第一個字節是10,第二個字節是1,我們目前的系統大多是小模式序,低地址存高位數據,所以a.i成爲0x010A ,得到:16的平方+10*160次方=266

8.常成員函數: 數據類型 函數名(參數表) const;

9.x=x+1;x+=1;x++哪一個效率最高?

  x=x+1;最低,執行過程:(1).讀取右x的地址(2). x+1 (3). 讀取左x的地址(4).將右值傳給左值

x+=1;其次,執行過程:(1).讀取右x的地址 (2). x+1 (3). 將得到的值傳給x(因爲x的地址已讀出)

x++;最高,執行過程:(1) .讀取右x的地址 (2). X自增1

10.string4個函數

11.求一個數是否爲素數

12.vectormap的特點,什麼時候用map

13.寫一個單例模式

20111128  北京**普樂科技 (筆試+技術面試)

筆試題目很多,什麼都有,還比較難,我硬着頭皮做了不少,後面面試的時候面試官說其實可以做一部分,所有職位的題都有。還有網絡安全的部分題目。

記得的部分筆試題目:

1.windows套接字在兩種模式下執行I/0操作:阻塞模式,非阻塞模式;

  阻塞模式:在I/0操作完成前,執行操作的winsock函數會一直等待下去,不回立即返回。

  非阻塞模式:無論操作是否完成都會立刻返回,需要通過其他方式判斷具體的操作是否成功。

2.網絡字節序

  網絡字節序是tcp/ip中規定好的一種數據表示格式,它於具體的CPU類型無關,從而保證數據在不同主機間傳輸時能夠被正確解釋。

  不同的CPU有不同的字節序類型,這些字節序是指整數在內存中保存的順序,這個叫主機序。

面試的時候好像問到了異步套接字。分佈式之類的東西。

20111129  北京**訊電信技術有限公司(筆試+機試)

這家公司我昨晚筆試看了機試就走了,沒意思,公司給我機試的機子我看着就夠了,太爛了,感覺公司不咋地,後來就直接走了。筆試題目比較簡單。

部分筆試題送上:

.考到了絕對路徑,相對路徑之類的題;

. int main()

{

int *a=(int*)32;

printf("%d\n",a+64);         答案:32+64*4=288

拓展:int main()

{

char *a=(int*)32;

printf("%d\n",a+64);        答案:32+64*1=96

. #define ADD(p) {p++;(*p)++;}

void  Add(int *p

{

p++;

    (*p)++;

}

int a[] = {3,2,1};

int *p = a;

ADD(p);

ADD(p);

printf("%d,%d,%d\n",a[0],a[1],a[2]);       答案: 3 3 2

p=a;

Add(p);

Add(p);

ADD(p);

ADD(p);

printf("%d,%d,%d\n",a[0],a[1],a[2]);      答案:3 5 2 

2011122  北京**技術開發公司 (面試+筆試)

那天是北京今冬的一場雪,去了先面試,然後讓你回去,有意向的話再來筆試,然後和老總談。我那時候直接申請了筆試,哥跑這麼遠來了,白白回去?結果做了筆試題,筆試題沒任何技術含量,一看就知道是在網上扒的題。結果回去沒收到通知。

2011126  **算機 (筆試)

1.一個有10個指針的數組,該指針式指向一個函數,該函數有一個整形參數並返回一個整形數。       int (*a[10])(int )

a) 一個整型數(An integer

b) 一個指向整型數的指針(A pointer to an integer

c) 一個指向指針的的指針,它指向的指針是指向一個整型數(A pointer to a pointer to an integer

d) 一個有10個整型數的數組(An array of 10 integers

e) 一個有10個指針的數組,該指針是指向一個整型數的(An array of 10 pointers to integers

f) 一個指向有10個整型數數組的指針(A pointer to an array of 10 integers

g) 一個指向函數的指針,該函數有一個整型參數並返回一個整型數(A pointer to a function that takes an integer as an argument and returns an integer

h) 一個有10個指針的數組,該指針指向一個函數,該函數有一個整型參數並返回一個整型數

答案:a) int a; // An integer

b) int *a; // A pointer to an integer

c) int **a; // A pointer to a pointer to an integer

d) int a[10]; // An array of 10 integers

e) int *a[10]; // An array of 10 pointers to integers

f) int (*a)[10]; // A pointer to an array of 10 integers

g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer

h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer

2.給定一個整形變量a,寫兩段代碼,第一個abit3,第二個清除abit3,在以上2個操作中,要保持其他位不變(a32位的)。

答案:

#define BIT3 (0x1<<3)

Static int a;

Void set_bit3(void){a|=BIT3;}

Void clear_bit3(void){a&=~BIT3;}

或者:a|=0x08;a&=0xF7;  

3. 將一個整數10002存到磁盤上,以ASCII碼形式存儲和以二進制形式存儲,佔用的字節數分別是

答案:ASCII碼形式存儲,每個數字佔1個字節,100025個數字,佔5個字節

以二進制形式存儲,每個整數不論大小佔2個字節,100021個整數,佔2個字節

4.指針變量按照定義格式分爲哪幾類?每類如何定義?

所謂指針就是變量、數組、函數等的內存地址。
指針變量按定義格式大致可分爲五種:指針變量、指針數組、指向一維數組的指針變量、返回指針值函數、函數指針變量。

1)指針變量的定義格式如下:
〔存儲類型〕 <類型> *<指針變量名;如: int b,a[10],* p;
2)指針數組的定義格式如下:
〔存儲類型〕 <類型> *<數組名>[<數組長度>]
例如: char c[3 ][4]={ "ABC","DEF","GHI"};
char *pc[3 ]={c[0],c[1],c[2]};
3)指向一維數組的指針變量可用於處理二維數組的運算問題,其定義格式爲:
<類型> (*<指針變量名>)[<數組列數>];
如:int (*p)[3];
4)函數可返回一個指針值,該指針指向一個已定義好的任一類型的數據。定義返回指針值的函數格式爲:<類型> *<函數名>(<形參>){<函數體>}
如:float * f ( float x) {… } 定義了一個返回實型指針的函數f (),該函數的形參爲實型的x
5)函數指針變量是用於存放函數指針的變量,也即存放函數入口地址的變量。函數指針變量的定義格式爲:
<類型> (*<變量名>) (<參數表>)

5.寫出標準SQLselect,insert,update,delete語句。

6.畫出類之間(A類,B類)“關聯”、“泛化”、“實現”、“依賴”之間的關係。

7.畫出乘客在電梯裏的用例圖。

2011127  **團 (筆試+面試)

筆試題目都很簡單題目都很簡單,2頁的題目。記得不太清楚了,反正就是很簡單。面試時候是3個人面的,這3個人都是做技術的,一個人主面,估計是研發經理和幾個老員工面的,無非是介紹下項目,針對項目問些問題,沒有問具體的知識,只是大致問了下。

筆試題目:

1.C編寫死循環(3中方法)

(1)while(1)

(2)for(;;)

(3)Loop:

...

goto Loop;

2.進程與線程的區別

3.軟件測試方法,黑盒測試白盒測試。

4.全局變量與局部變量區別

20111221  **技 (筆試)

題目比較雜,不是以c++爲主的,啥題都有,先總結下:

2005年下半年系統分析師上午部分題:

在下面的活動圖中,從A到J的關鍵路徑是__(24)__,I和J之間的活動開始的最早時間是__(25)__。

(24)A.ABEGJ   B.ADFHJ    C.ACFGJ    D.ADFIJ
(25)A.13     B.23      C.29      D.40

● 下列關於軟件需求管理與需求開發的論述,正確的是__(26)__。
(26)A.所謂需求管理是指對需求開發的管理
   B.需求管理包括:需求獲取、需求分析、需求定義和需求驗證
   C.需求開發是將用戶需求轉化爲應用系統成果的過程
   D.在需求管理中,要求維持對原有需求和所有產品構件需求的雙向跟蹤

答案:24  B                 25   D                   26 B

● 某商場的部門、員工和商品三個實體之間的關係如下圖所示。假設每個部門有若干名員工,每種商品只能由一個部門負責銷售,那麼部門到員工、部門到商品之間分別存在這__(33)__的聯繫。如果用戶要求得到表4所示的結果,需要__(34)__,並增加關係模式__(35)__。如果查詢某部門負責銷售的商品,需要__(36)__。

(33)A.1:1和1:1   B.1:1和1:n   C.1:n和1:1   D.1:n和1:n
(34)A.修改表1的結構,在表1中增加一個員工號
   B.修改表2的結構,在表2中增加一個員工號
   C.修改表2的結構,在表2中增加一個部門號
   D.修改表3的結構,在表3中增加一個部門號
(35)A.Sale_record(員工號,名稱,數量)
   B.Sale_record(員工號,名稱,商品號,數量)
   C.Sale_record(員工號,部門號,數量)
   D.Sale_record(員工號,部門號,商品號,數量)
(36)A.修改表1的結構,在表1中增加一個員工號
   B.修改表2的結構,在表2中增加一個員工號
   C.修改表2的結構,在表2中增加一個部門號
   D.修改表3的結構,在表3中增加一個部門號

  

答案:33.C 34.C 35.D 36.C 

某工廠倉庫有一名保管員,該倉庫可存放n箱零件。該工廠生產車間有m名工人,只要倉庫空閒,工人將生產好的整箱零件放入倉庫,並由保管員登記入庫數量;該工廠銷售部有k名銷售員,只要倉庫庫存數能滿足客戶要求,便可提貨,並由保管員登記出庫數量。規定工人和銷售員不能同時進入倉庫,但是工人和工人,銷售員和銷售員可以同時進入倉庫,其工作流程如下圖所示。

假設系統中P操作表示申請一個資源,當執行P操作時對信號量減1,若信號量S0,則執行P操作的進程繼續執行,否則等待。系統中V操作表示釋放一個資源,當執行V操作時對信號量加1,若信號量S>0,則執行V操作的進程繼續執行;若信號量S0,則從阻塞狀態喚醒一個進程,並將其插入就緒隊列,然後執行V操作的進程繼續。
  爲了利用PV操作正確地協調工人和銷售員進程之間的工作,設置了信號量S1,S2和S3,它們的初值分別爲n、0和1。圖中的a和b應填寫__(40)__;圖中的e和f應分別填寫__(41)__;圖中的c、d、g和h應分別填寫__(42)__。


(40)A.P(S1) 、V(S1)         B.P(S1)、V(S2)
   C.P(S2) 、V(S2)         D.P(S2)、V(S1)
(41)A.P(S1) 、V(S1)         B.P(S1)、V(S2)
   C.P(S2) 、V(S2)         D.P(S2)、V(S1)
(42)A. P(S1)、V(S1)、P(S2)、V(S2)  B.P(S1)、V(S1)、P(S3)、V(S3)
   C.P(S2)、V(S2) 、P(S3)、V(S3)  D.P(S3)、V(S3)、P(S3)、V(S3)

答案:40.B 41.D 42.D 

Microsoft's COM is a software __(66)__ that allows applications to be built from binary software components. COM is the underlying architecture that forms the foundation for higher-level software services, like those provided by OLE. COM defines a binary standard for function calling between components, a way for components to dynamically discover the interfaces implemented by other components, and a mechanism to identify components and their interfaces uniquely.
  OLE is a compound __(67)__ standard developed by Microsoft. OLE makes it possible to create __(68)__ with one application and link or embed them in a second application. Embedded objects retain their original format and __(69)__ to the application that created them. Support for OLE is built into the Windows and MacOS Operating Systems. A __(70)__ compound document standard developed mainly by Apple and IBM is called OpenDoc.
  (66)A.architecture  B.protocol   C.procedure   D.structure
  (67)A.text      B.graphic   C.document   D.database
  (68)A.table     B.event    C.objects    D.function
  (69)A.characteristics B.address   C.page     D.links
  (70)A.completing   B.competing  C.connecting  D.contained

答案:66-67 ACCDA

C語言題目:

一:已知一棵二叉樹是以二叉鏈表的形式存儲的,其結點結構說明如下:

struct node { int data; // 結點的數據場。
struct node *left; // 給出結點的左兒子的地址。
struct node * right; // 給出結點的右兒子的地址。
};
請在1、2二題的 [ ] 處進行填空,完成題目要求的功能。注意,每空只能填一個語句,多填爲 0 分。
1、 求出以T 爲根的二叉樹或子樹的結點個數。
int size (struct node * T ) {
if ( [ T == NULL ] ) return 0;
else [ return 1 +size(T->left) + size(T->right) ];
}
2、 求出以T爲根的二叉樹或子樹的高度。注:高度定義爲樹的總的層次數。
int height(struct node * T ) {
if ( T == NULL ) [ return 0 ];
else [ return 1 +( ( height(T->left) > height(T->right))? height(T->left): height(T->right) ) ];
}

二:一個盲人使用的冰箱,寫出設計思路?

三:智力題:

(1)小明對哥哥說:我長到你現在這麼大年齡時,你就31歲了。哥哥說:是啊,我像你這麼大的時候,你只有1歲呢。問:小明與他的哥哥現在各幾歲?

解答:設小明X歲,哥哥Y歲。他們的歲數差爲d,則有X+d=Y。根據題意可知小明到了Y歲時哥哥31歲,小明1歲時哥哥爲X歲。由此再有兩個等式:Y+d=31,1+d=X.整理三個等式可得3d=30,d=10.即歲數差爲10.就可知X=11,Y=21

(2)有一個細胞,一秒中可以複製兩個一樣大小的細胞現在把這個細胞放在一個杯子裏面,2分鐘就可以填滿這個杯子,那麼放兩個細胞多長時間可以填滿這個杯子

解答:1分59秒

數據庫題目:

1、什麼是事務?

數據庫事務(Database Transaction) ,是指作爲單個邏輯工作單元執行的一系列操作,這些操作要麼全做,要麼全不做,是一個不可分割的工作單位。

事務的開始和結束可以由用戶顯示控制,如果用戶沒有顯示定義事務,則有DBMS按默認的規定自動劃分事務。事務具有原子性、一致性、獨立性及持久性等特點。

2.解釋第一範式,第二範式,第三範式

3.常用的SQL語句

表1名稱:employee 包含的字段名稱employee_GUID(主鍵), name(姓名),age(年齡),email(郵件),address(地址),department_GUID(外鍵)

表2名稱:department 包含的字段名稱 department_GUID(主鍵), name(部門名稱),telephone(部門電話)

寫出SQL語句:

1〉、所有年齡等於25歲的人姓名

Select name from employee where age=25;

2〉、所有年齡等於25歲並且屬於“電子政務事業部”的人的姓名、郵件地址

Select e.name,e.email from employee e,department d where e.age=25 and d.name= 電子政務事業部 and e.department_GUID =d.department_GUID;

3>、統計年齡等於25歲的人的個數

Select count(*) form employee where age=25;

5>、查詢所屬部門等於“電子政務事業部”人的姓名,年齡

Select e.name,e.age from employee e,department d where d.name= 電子政務事業部 and e.department_GUID =d.department_GUID;

名詞解釋:下面是我會的,還有些我不會,所以沒記得太清楚。

XML,J2EE,ERP

網絡部分題目:

給你ip地址和子網掩碼,讓你求出主機地址,網絡地址和廣播地址。

 

此博客曾在校內首發。

現發表在2012答辯、工作塵埃落定後。今天是六一兒童節作爲一個紀念,紀念20多年來的求學生涯,也算是畫上一個句號。

歡迎轉載,請指明出處。

發佈了84 篇原創文章 · 獲贊 180 · 訪問量 56萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章