a, struct與class區(qū)別
b, heap與stack的區(qū)別,以及標識一下一段程度中一些變量分配在哪里??(局部變量,全局變量,靜態(tài)變量,常量,malloc出來的變量)
c, 將一個單向鏈表反轉(zhuǎn)過來的函數(shù)
d, 一個string類,沒有的拷貝構(gòu)造函數(shù),然后一段代碼中實現(xiàn)了String a=b的拷貝,問程序會發(fā)生什么??
e, 設(shè)計題:設(shè)計一個閱讀系統(tǒng),其中有許多文件,并且有的文件大小超過1G,而內(nèi)存容量是2G,內(nèi)存可容許的最大可導入文件大小不能超過1G,請問如何設(shè)計這樣一個系統(tǒng)??
f, 實現(xiàn)一個iota的函數(shù)?
g, 在C++中調(diào)用c程序為什么需要C extern關(guān)鍵字
工程師面談:
a, scpt中的關(guān)聯(lián)需要什么參數(shù)
b,
經(jīng)理面談:
a, 一個字典系統(tǒng),有1000000個單詞,找出那些字母一樣,只是順序不一樣的單詞,分類整理(例如:pot, opt, pto, etc)
b,有著良好的背景,技術(shù)思路非常不錯,但可能最近兩年在做測試,對編程可能稍顯生疏
英語:
a, 說說你的缺點???
b, 說說你的優(yōu)點???
c, 說說你認為對你印象最深刻的事?
d, 為什么想換工作??
e, 比較一下你了解的五個城市(宜昌,荊州,武漢,北京,青島),你更偏向于哪個城市??
部分答案:
1, 關(guān)鍵字 extern “C” 說明
==> C與C++對函數(shù)名的處理是不一樣的,在C++中會對函數(shù)名編譯時加一些修飾符用以區(qū)分函數(shù)的重載等問題
==> C編譯的函數(shù)庫,C++中聲明與調(diào)用時,應指定extern “C”關(guān)鍵字,這樣保證C++在編譯時仍然采用C的方式編譯函數(shù)名
==> C++鏈接時就能找到正確的C函數(shù)
==> extern “C” void f(int a,char b); ---引用C函數(shù)
==> extern “C” { #include “cExample.h”} ---引用C文件名
==> extern “C” int a; ---引用C全局變量
2, 關(guān)鍵字 struct 與 class 區(qū)別:
==> 默認繼承權(quán)限。class的默認繼承關(guān)系是private,struct的是public
==> 默認成員權(quán)限。class中的默認成員(變量與函數(shù))權(quán)限都是private, struct的是public
==> 模板中struct不能用作模板
3, 指針與引用的區(qū)別:
==> 指針可以被重新賦值以指向另一個不同的對象。但是引用則總是指向在初始化時被指定的對象,以后不能改變
==> 指針是一個變量,編譯時會分配內(nèi)存區(qū)域。引用只是一個別名,不分配內(nèi)存區(qū)域
==> sizeof(指針)通常為4, sizeof(引用)為對象地址空間
4, socket中的recv/send阻塞與非阻塞區(qū)別
==> recv/send 參數(shù)中都會指定length
==> 阻塞式send: 拷到發(fā)送緩沖區(qū),如果緩沖區(qū)滿,則需等待直到指定長度的數(shù)據(jù)發(fā)送到緩沖區(qū)
==> 非阻塞式send: 一直拷貝,如果緩沖區(qū)滿,也立即返回,并不等待。
==> 阻塞式recv: 直到接到到指定長度的數(shù)據(jù)為止
==> 非阻塞式recv: 立即返回,不管緩沖區(qū)里是否有數(shù)據(jù),或者數(shù)據(jù)是否夠指定長度,都立即返回
5, main函數(shù)之前還有代碼嗎?
main函數(shù)之前還有一些全局變量的初始化,對象的構(gòu)造,main函數(shù)退出后會有全局變量的析構(gòu)等