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