北京愛立信的面試題
北京愛立信的面試題
筆試題:
a, struct與class區別
b, heap與stack的區別,以及標識一下一段程度中一些變數分配在哪裡??(區域性變數,全域性變數,靜態變數,常量,malloc出來的變數)
c, 將一個單向連結串列反轉過來的函式
d, 一個string類,沒有的複製建構函式,然後一段程式碼中實現了String a=b的複製,問程式會發生什麼??
e, 設計題:設計一個閱讀系統,其中有許多檔案,並且有的檔案大小超過1G,而記憶體容量是2G,記憶體可容許的最大可匯入檔案大小不能超過1G,請問如何設計這樣一個系統??
f, 實現一個iota的函式?
g, 在C++中呼叫c程式為什麼需要C extern關鍵字
工程師面談:
a, scpt中的關聯需要什麼引數
b,
經理面談:
a, 一個字典系統,有1000000個單詞,找出那些字母一樣,只是順序不一樣的單詞,分類整理(例如:pot, opt, pto, etc)
b,有著良好的背景,技術思路非常不錯,但可能最近兩年在做測試,對程式設計可能稍顯生疏
英語:
a, 說說你的缺點???
b, 說說你的優點???
c, 說說你認為對你印象最深刻的事?
d, 為什麼想換工作??
e, 比較一下你瞭解的五個城市(宜昌,荊州,武漢,北京,青島),你更偏向於哪個城市??
部分答案:
1, 關鍵字 extern "C" 說明
==> C與C++對函式名的處理是不一樣的,在C++中會對函式名編譯時加一些修飾符用以區分函式的過載等問題
==> C編譯的函式庫,C++中宣告與呼叫時,應指定extern "C"關鍵字,這樣保證C++在編譯時仍然採用C的方式編譯函式名
==> C++連結時就能找到正確的C函式
==> extern "C" void f(int a,char b); ---引用C函式
==> extern "C" { #include "cExample.h"} ---引用C檔名
==> extern "C" int a; ---引用C全域性變數
2, 關鍵字 struct 與 class 區別:(被問到的題目用綠色標示出來)
==> 預設繼承許可權。class的預設繼承關係是private,struct的是public
==> 預設成員許可權。class中的預設成員(變數與函式)許可權都是private, struct的.是public
==> 模板中struct不能用作模板
3, 指標與引用的區別:
==> 指標可以被重新賦值以指向另一個不同的物件。但是引用則總是指向在初始化時被指定的物件,以後不能改變
==> 指標是一個變數,編譯時會分配記憶體區域。引用只是一個別名,不分配記憶體區域
==> sizeof(指標)通常為4, sizeof(引用)為物件地址空間
4, socket中的recv/send阻塞與非阻塞區別
==> recv/send 引數中都會指定length
==> 阻塞式send: 拷到傳送緩衝區,如果緩衝區滿,則需等待直到指定長度的資料傳送到緩衝區
==> 非阻塞式send: 一直複製,如果緩衝區滿,也立即返回,並不等待。
==> 阻塞式recv: 直到接到到指定長度的資料為止
==> 非阻塞式recv: 立即返回,不管緩衝區裡是否有資料,或者資料是否夠指定長度,都立即返回
5, main函式之前還有程式碼嗎?
main函式之前還有一些全域性變數的初始化,物件的構造,main函式退出後會有全域性變數的析構等。