⑴ IT面試經驗:C/C++程序員需要掌握哪些知識
概括來說,開發中常用到的功能:串口通信、網口通信、資料庫訪問、數據加解密處理等等。這些方面的知識都要掌握的,細說的話主要有以下幾個方面:
一、語言相關
1、基礎(Basic)
(1)變數與基本類型:語言內置類型、常量、變數的初始化、變數的作用域、變數的 限定符、變數引用、枚舉; (2)typedef 和#define;
(3)數值與指針:數組定義與初始化、多維數值、指針操作;
(4)表達式:算術/邏輯計算、位運算、優先順序、類型轉換;
(5)語句:簡單語句、聲明/定義語句、復合語句、條件/循環控制語句、異常處理語 句;
(6)函數:函數聲明、參數傳遞、堆棧概念、函數重載;
(7)標准IO:條件狀態、緩沖區、文件流、字元流、本地化;
(8)類和數據抽象:類的定義與聲明、類的構造函數、靜態成員、拷貝構造函數、操 作符重載、類型轉換;
(9)面向對象編程:數據(封裝)抽象、繼承、多態(動態綁定);
2、進階(Advance)
(1)模板與泛型編程:模板定義、實例化、類模板成員、重載、特化; (2)智能指針:auto_ptr、shared_ptr、scoped_ptr;
(3)STL容器:順序容器(vector、list、deque、queue、priority_queue、string)和關 聯容器(map、set、multimap、multiset); (4)STL演算法:迭代器、演算法; (5)常用復雜數據結構:hash_map、boost.any、boost. array、boost. regex、boost. variant、 boost. multi_array、boost. pointer_container;
3、高級(Expert)
(1)高級泛型編程:表達式模板、模板元編程、Concept編程;
(2)程序架構,內存池,線程池;
(3)高級抽象:boost.mpl、boost.lambda、boost.fusion、boost.proto;
(4)範式應用:boost.spirit;
(5)應用程序庫:boost.asio 、boost.graph、blitz++、Loki、CGAL、uBLAS;
二、系統相關
1、基礎(Basic)
(1)Windows API之基礎服務:文件系統、注冊表、內存管理、DLL、多媒體;
(2)Windows API之內核對象:句柄、信號、線程、進程、互斥、事件、文件映射、 命名管道、郵槽、計時器、完成埠;
(3)Windows API之圖形設備介面:設備上下文、列印、字體、筆/刷、路徑、區域、 點陣圖;
(4)Windows API之圖形用戶界面:窗口、標題、菜單、狀態欄、消息、圖標、按鈕、 編輯框、組合框、列表框、滾動條、通用對話框;
(5)環境配置及Shell編程:環境變數、右鍵菜單、屬性、關聯; (6)Socket編程; (7)Web相關API; 2、進階(Advance)
(1)MFC/ATL:文檔視圖結構、對話框、通用控制項、OleDB、WinInet; (2)COM、自動化、ActiveX:Office開發、IE插件、VBA; (3)高級圖形系統:OpenGL、DirectX; (4)二次開發:ObjectArx;
三、計算相關
1、計算機圖形學
(1)向量:點積、叉積、求模、單位化、復合運算;(basic)
(2)矩陣:算術運算、平移/旋轉/縮放/錯切等變換、求逆、特徵值;(basic) (3)四元組合歐拉角:與其他表示轉換;(advance) (4)參數曲線/曲面:貝塞爾、(非)均勻有理樣條;(advance) (5)三維幾何體的構造與描述;(expert) 2、計算幾何
(1)幾何查找與判斷:點與線、線與線、點與多邊形;(basic) (2)多邊形:簡單多邊形、凸多邊形、多邊形三角剖分;(advance) (3)凸殼及其應用;(advance) (4)Voronoi圖/三角剖分及其應用;(advance) (5)多邊形的交與並;(expert) (6)平面圖;(expert) 3、數值計算
(1)數值計算的三大任務:求值、解方程(組)、函數逼近;(basic) (2)數值計算的誤差、適定性、穩定性;(basic)
(3)解線性方程組直接方法:Gauss消元法、三角分解法;(basic)
(4)解線性方程組一般迭代方法:基本迭代、Jacobi迭代、G-S迭代、SOR/SSOR迭代; (advance)
(5)解線性方程組的變分迭代法:共軛梯度、預處理共軛梯度法;(expert) (6)解非線性方程組迭代方法:Newton迭代法、Newton-Raphson迭代法、同倫演算法; (expert)
(7)求解矩陣特徵值:乘冪法與反乘冪法、Rayleigh商迭代法、QR法、Krylov子空間 法;(expert)
(8)插值:多項式插值、樣條插值;(advance) (9)數值積分:Simpson公式、Gauss積分;(basic) (10)解常微分方程:歐拉法、Runge-Kutta法;(advance) (11)解橢圓方程:有限單元法、有限差分法、邊界元法;(expert)
希望可以幫到您,謝謝!
⑵ C語言筆試或面試一般會問到什麼問題
既然是面試,一定要提前准備,最好准備一套自我介紹,包括對IT行業的看法之類,面試官經常會問這些問題。
由於c語言是程序員工作語種的其中1個,所以對於程序員這個工種,還是有一些具體的注意事項:
第一、基礎很重要,不要生疏了。
不管應聘什麼開發崗位,基礎永遠是最重要的。IT業不停地在炒作新概念,昨天是SOA,今天是雲計算。我們永遠不知道明天流行什麼,但是只要有踏實的基礎,輔以較好的學習能力,要跟上步伐也不會太難。所以絕大多數公司都會特別看重應聘人員的基礎能力,比如編程語言本身的特性、基本的演算法和數據結構、進程間通信等等,畢竟這些具體技術問題有客觀的答案,而且在各具體行業都是相通的。
工作三年以上的人,往往都習慣了「拷貝+修改」式的工作,用不到的基礎知識基本上都忘掉了,一到應聘的時候就難免眼高手低,總是抓不住機會。
而事實上,技術基礎即便是遺忘了,也是可以很快撿起來的。如果求職者確實忘了很多基礎知識,那麼參加面試的前夜,花點時間把大學里的課本再翻出來看看吧。似乎很土的方法,但確實是有效的。
第二、要關注技術前沿。
不管做任何工作,如果只顧著低頭做事,而不曉得抬頭看天。那麼不管做多久,自身的水平總是停留在畢業時的水平;如果基礎又忘記了太多,那還不如畢業生。
關注技術前沿,並不是要求跟進每一個新技術,而只需關注目前主流媒體經常宣傳的一些新技術、新思想。關注這些技術前沿的動向,並能與自己從事的工作聯系起來作一些深入思考,那麼這是向面試官宣揚求職者的學習能力的一種好辦法。
第三、小公司比較看重知識的廣度,大公司更看重知識的深度。
如果求職業想去一些小公司工作,那麼由於他們人少,分工沒那麼細,所以用人單位大多喜歡知識面廣的應聘者——求職者會聽到更多的「怎麼做」。對於應聘這樣的公司,求職者可以著重培養知識的廣度,比如做網站後台開發,最好也能js、css、apache、mysql都懂一些,能獨自搭建一套完整的網站,這樣去很多小公司難度都不太大。但是由於個人的精力總是有限的,所以要注意不要鋪得太開,重點還是在後台開發本身。
而大公司由於分工比較明細,所以往往更喜歡考量重點知識面的深度——求職者會聽到更多的「為什麼」。所以平常解決問題時,不要光搜索一把解決了就完了,還需要仔細研究各種問題的來龍去脈,並能分析總結,將這些收獲系統化、理論化。
當然,廣度和深度的需求不是絕對的,一個優秀的開發人員應該對至少一到兩個專業領域有著深入的了解,並熟悉其他相關領域,也就是所謂的一專多能。
第四、良好的簡歷設計可以為你的應聘加分。
社會應聘的簡歷往往比校園應聘的簡歷寫得隨意,因為有工作經驗的人往往認為面試官會更看重他的工作經驗,而不是簡歷格式。其實不然。
大多數簡歷只會出現在面試官面前10秒到1分鍾不等。這個短短的時間內,如何讓求職者脫穎而出?這個方面有很多的攻略,我只說重點建議,不解釋原因。
一是簡歷要突出優勢,而不是描述經歷。比如出身名校、就職過名企、參與過著名項目、拿過大獎,這些比較客觀的優勢要重點突出。如果求職者沒有UI的功底,那麼簡單地放大加粗也可以達到效果。當然有些公司只接受文本型簡歷,那就設法加一些特殊符號吧。
二是技術簡歷減少模糊化的語句,最好能數字化。例如項目代碼量,維護的數據量,網站的訪問量,請求平均耗時等等。
三是簡歷要能結合應聘崗位做一些匹配的修改。撇開招聘網站通用的簡歷不談,如果求職者明確對一個特定公司的特定崗位投出簡歷,那麼求職者有必要把跟對應崗位無關的內容弱化,並強化跟其業務相關的內容。如果實在行業差別太大,那麼表達幾句對其行業的見解和興趣也是可以的。
第五、要有積極的溝通意識。
優秀的面試官會激勵應聘者講他原先工作的內容,並從而評估出應聘者的能力水平。但隔行如隔山,絕大多數面試官會慢慢將問題引向自己熟悉的領域——這往往又是應聘者不太熟悉的領域。這就要求應聘者能積極分析面試官的興趣點,並將自己相近的特長表現出來。
如果跟面試官有了意見沖突,也盡量不要再同一個問題上糾纏。那也許是故意製造的陷阱——看看求職者的團隊意識。應聘者需要明白的是,在面試場合中不要妄圖「戰勝」面試官,即便是碰上一個期望「戰勝」應聘者的面試官。
第六、要有良好的表達能力。
沒有哪個面試官喜歡啰啰嗦嗦說了半天還是沒說到點子上的應聘者,所以要盡量簡明扼要地回答問題,除非面試官確實表現出對具體細節的興趣。 回答問題時注意麵試官的情緒變化,一旦他表現出任何想打斷的意願,立即一句話結束這個話題。有些比較復雜的問題,可以先思考十到二十秒鍾,因為一旦開口就沒有思考的時間,話多的人不容易收住話題。
跟學校考試不一樣,大多數主觀性問題並不要求應聘者一二三四說得滴水不漏,能說到大部分關鍵點就是可以的了。另外注意,各種技術術語不要搞混了。搞不清楚的理論概念,不如不說。免得面試官聽到個術語就拉出來窮追猛打,把自己問掛。
第七、自信。
大多數做技術的,平時都信心滿滿,一到應聘的時候卻總覺得自己不懂的東西還太多。回答問題時聲音太小,或者畏畏縮縮用很多「可能」「也許」「大概」。這個不一定影響求職者的錄用,但是不自信的表現無疑會影響在跟HR談薪水時候的議價能力。所以,無論如何,應聘的時候表現得輕松鎮定一些,還是很有好處的。
當然,自信和自大之間往往只有一線之差。千萬小心,不要過度地表現自信搞成了自大,因為HR往往對這一點非常敏感。如果求職者只是要謹慎地表現自信的話,只要回答問題時面帶微笑就夠了。
最後需要特別提醒的是,以上種種其實只不過是應聘時的技巧和注意點而已。職業規劃需要有長遠的眼光和堅持不懈的學習。台上一分鍾,台下十年功。真正的實力還是要在平時工作和學習中進行積累。
⑶ c語言面試經常問到的問題有哪些
c語言面試經常問到的問題有:
1、C語言的主要特徵是什麼?
C是一種過程語言。C語言的主要功能包括對內存的低級訪問,簡單的關鍵字集和簡潔的樣式。這些功能使其適用於諸如操作系統或編譯器開發之類的系統編程。
2、i ++和++i有什麼區別?
1)表達式「i ++」返回舊值,然後遞增i。表達式++i遞增該值並返回新值。
2)後綴++的優先順序高於前綴++。
3)後綴++的關聯性從左到右,前綴++的關聯性從右到左。
4)在C ++中,++i可用作左值,但i ++不能用作左值。在C中,它們都不能用作l值。
3、什麼是l值?
l值或位置值是指可以在賦值運算符左側使用的表達式。例如,在表達式「a = 3」中,a是l值,而3是r值。
l值有兩種類型:
「不可修改的l值」表示無法修改的l值。const變數是「不可修改的l值」。
「可修改的l值」表示可以修改的l值。
4、數組和指針有什麼區別?
指針用於存儲動態分配的數組的地址,以及用於作為參數傳遞給函數的數組。在其他情況下,數組和指針是兩個不同的東西,盡管數組和指針是不同的東西,但是數組的以下屬性使它們看起來相似。
5、C語言中的「循環」數據類型是指什麼?
所謂的「循環」數據類型,其實就是某種類型的數據溢出後,又從頭開始存儲。一個典型的例子是unsigned char變數若已經等於255,仍然對其加1,那麼該變數就會溢出從頭開始,也即等於零:
unsigned char a = 255。
a = a+1;// a等於0。
⑷ C語言最後一輪面試 技術類都問些什麼問題
1、是應屆生還是已經有工作經驗了。如果是應屆生,一般不會問很多關於專業方面的東西(最多會問一些簡單的原理性的東西),然後會考察反應能力跟學習能力,英語的聽說讀寫(搞技術的英語很重要,用的軟體,看的資料基本都是英文)。還會問一些個人家庭情況和未來的打算(就是想知道你會不會干幾個月就離職了)一般應屆生談薪資的不多,因為公司一般都是有標準的。
2、如果是有工作經驗,會問以前做過什麼項目,會問一些非常專業的問題(比如提出一個計劃怎麼實現,達到什麼效果)。具體的面試環節看各個公司的規模,有的很簡單,有的很復雜。
⑸ 明天要面試,要考察C語言和51單片機,我什麼都不會怎麼辦好,救救我,真的
我就是做這個的,大兄弟,我幫幫你,一般我面試,如果是應屆生,我會問以下幾個問題:1 你們大學學的51單片機是高電平復位還是低電平復位(答:低電平),2.有多少個引腳(答:40個),3.在學校做過項目沒有,做的是什麼,把原理構思跟我講一下。4.畫過板嗎?一般走線走多粗? 你把這幾個問題好好想一下就行了。。如果公司知道你是應屆生,不會問很難的問題的,如果你不是應屆生,不好意思,上面的問題我只問第三項
⑹ 如何面試linux下C語言編程項目問題
首先需要將你的項目的整個設計目的給表述明確;
然後需要將你的項目內有體現你技術價值的部分給深入分析;
其次你需要把握好重點,表述明確自己做了哪些,哪些欠缺;
最後突出你對編程能力的和編程框架額掌握程度;
當然,這只是其中的一種面試技巧。
⑺ C語言面試說些什麼
主要是他問你答,他會問你一些很常見的c語言的基礎,如int型,char型各佔多少個位元組等等,也會問你一些其他的,如薪金上的要求等等,主要是你別緊張,自然一點就OK了,祝你好運!
⑻ C 程序員面試
數據結構學好點,至少要可以獨立編寫一些基本的操作,查詢之類的.再有空了多看看軟體工程,知道軟體開發的一些知識,出去找工作不要怕,就充當一名高級人員,就行了,反正人家也不可能指望你剛來就編一個大型的軟體的,只要你有基礎,人家才會對你進行培訓,才會讓你加入他們的軟體開發行列.
畢業了,要知道軟體和程序的區別???
能編寫程序沒有什麼用處,只有能開發軟體才會給公司創造利潤,才會有人給你工資,明白嗎???