『壹』 C\C++程序員需要掌握什麼書籍
c/c++程序員需要掌握的書籍大概可以分成幾個方面:
計算機基礎類書籍,這類書籍包括計算機組成原理、計算機網路、資料庫、操作系統、數據結構與演算法。
c/c++類專業書籍,這類書籍包括基礎的C語言程序設計、C++primer。
擴展類書籍,c/c++相關擴展類,推薦的有C陷阱與缺陷、深度探索C++對象模型、effective C++。
平台擴展類書籍,這類就要看你在哪類系統下做開發,一般常用的系統平台是嵌入式、windows、Unix及ios(object C++),這類書籍就比較多了,可以按照個人需求選擇。
按照上述推薦的理由是:
學習計算機語言需要一定的基礎,這類基礎是非常重要但是很無聊的,後續在做開發的時候會覺得非常實用。
學好語言其實不是非常麻煩的部分,一般的教材類書籍即可,重要而麻煩的是在敲代碼的過程中去熟練掌握、運用和創新。
擴展類書籍3可以幫助你更深入的理解你所學到的東西,而深入理解是程序員進階的必經之路。
平台類書籍略有區別,但是標准C++是一樣的,只是針對各自平台做了相應擴展(objectc++除外)。如果需要在某個平台下做開發,或者學習再去學習使用即可。
『貳』 c/c++程序員面試寶典怎麼樣
總體還是比較好的,通過380餘個面試題,對企業招聘c/c++程序員需要掌握的知識進行了系統、全面的總結,以幫助讀者進行充分的面試准備,在激烈的競爭中成功。
『叄』 工作二年以上的程序員前輩如何准備面試
做一份工作,實際就是追尋夢想的過程,而為了完成夢想,必須有一個長期規劃,從而指導我們選擇工作。它是擇業過程中最本質和最原始的參考借鑒
『肆』 《.NET》程序員面試應該怎麼准備
一、NET程序員面試的技巧:
面試是很奇妙的一件事情,在短短的一段時間內,要讓一個完全陌生的人認可自己的專業能力,認可自己的人品,認可自己的職業習慣等。而同樣,被面試者需要判斷這是否是一家靠譜的公司,是不是有錢,是不是適合自己工作,是不是和自己發展方向一致等。工作就像是娶媳婦(找老公),不是說隨隨便便說換就換,而是自己每天都要面對的事情,所以找個好的企業,找一份好的工作,對於一個靠自己養活自己的人來說真實太重要了,那麼找好企業,找好工作的第一步就是面試。
一、面試自身的綜合素質。
1、基本儀容和禮儀:
其實不是針對面試,基本儀容和禮儀在日常生活也是非常重要的,是一個人是否有教養,是否有素質的基本要求。
穿著:如無特別需要,不要著正裝,休閑裝即可。但是不要光腳丫子大拖鞋,背心吊帶,男士不要穿露腳趾涼鞋。干凈整潔即可,表示對本次面試的重視和對面試官的尊重。
儀容:女士如果想化妝的話,淡妝即可,素顏也可以。男士頭發理一下,鬍子剃掉。還是那句話,干凈整潔,萬萬不可口腔有異味,或者身上有體味(特別是腳丫子臭味,絕對不行)。
禮儀:多說「請」,「您」,「謝謝」,記得進門後關門,前台給你倒的水走的時候記得拿出去扔掉。坐下來面對面試官要有坐像,不要跟在家裡一樣太隨便,說話口齒清楚,慢一點說,不要跟打機關槍一樣。切記,不可做作,細節處把握尺度就行。如果遇到和面試官有分歧的時候,立即閉嘴並閉嘴,不要爭論,不要試圖說服面試官,更不可恥笑或者蔑視面試官,哪怕你確實不知道比面試官高到哪裡去了。記住,這是禮貌,跟自己技術有多牛逼無關。
謙虛:任何時候,把自己放在一個相對低的姿態,自己是來面試,不是來教育面試官的,抱著一種接受檢閱和學習的態度面對面試,千萬千萬不要覺得自己主角光環加身,天下之大老子第一。謙虛,起碼不會讓你有成為一個跳樑小丑的機會。
2、專業基礎知識:
對於程序猿來說,專業基礎知識絕對是重中之重,是面試成功的最基礎要素。說的專業基礎知識,不是說自己做了多少個項目,寫了多少行代碼,而是軟體開發的基礎知識。
在面試的時候,有時候會遇到一些候選人,乍一看簡歷也有好幾年工作經驗,項目也寫的滿滿的,但是卻連「值類型引用類型本質區別」,「構造函數有哪些特點,何時被調用」,「類和介面區別是什麼」這樣的問題也回答不了,注意, 是回答不了,也就是不知道,不是知道意思但是組織不了語言。 這類候選人通常在連續回答不上幾個問題後,開口為自己辯解:「我動手比較強,寫代碼都沒問題,但是書上的概念我真的不太清楚」。能說出這個話,就說明此人根本就明白作為一個技術工作者最基本的專業素質是什麼。所以千萬不要覺得自己工作幾年,有些代碼經驗就已經可以挑戰更加高薪的工作。
在面試前,一定要先審視一下自身的基礎知識掌握程度,如果有必要,自己買書回來或者網上找一些資料,利用空餘時間系統的學習一遍,比如所使用的語言本身,比如自己擅長的框架底層實現,比如編譯原理,比如多線程的知識,比如Http相關的知識等等。千萬不要沒有一點點基礎知識儲備或者基礎知識儲備不豐富就跑去面試,失敗的幾率非常大,如果眼睜睜的看著自己心儀的工作機會擦肩而過,我想是誰都會難過的。
3、溝通能力:
面試的過程本質上就是一次溝通的過程,候選人在短短的時間內要盡量的向對方展現自己的長處,隱藏自己的短處,盡量讓對方問題得到圓滿答復並且留下較好印象。有些程序猿性格內向,在陌生人面前比較靦腆,話語不多。當然,這不能說是做錯了,只能說是一些性格上的短處而已(如果很嚴重,那就有自卑的可能,需要重視並且糾正)。在面試時,候選人一定要精神煥發,昂首挺胸,眼神堅定,切記切記眼神不要飄忽不定,切記切記不要瓮聲瓮氣。咱們遇到不會的問題,就老老實實的說「這個我不清楚」,或者「這個我不會」,千萬千萬不要不懂裝懂,顧左右而言他,打算糊弄過去。搗糨糊是過不去的,面試官的問題肯定是面試官非常清楚答案的,忽悠面試官就是在忽悠自己,有意思嗎,當然,也不要胡亂回答,否則只會成為面試官和其它的同事茶餘飯後的笑話。
在面試時,盡量雙眼直視面試官(但不要瞪著人家),背挺直,手機開飛行模式,說話口齒清楚,利落乾脆,回答得上就盡量說,回答不上直接說不知道,不要羅里吧嗦 ,特別是談到薪酬,對方問你期望時,最好在現有基礎上增加10%-20%,不要漫天要價,也不要不好意思,放心大膽的說出自己的期望,如果對方覺得略高,會再跟自己商量。務必一開口就給人真誠,干練,乾脆,專業的印象。
4、過往項目經驗:
很多面試者不大重視自己的過往項目經驗,每個做過的項目,雖然自己在其中可能只是做一個模塊甚至一個功能,但是自己都會想辦法搞清楚整個項目的業務流程,研發背景,內部模塊功能,和外部如何實現集成,底層資料庫的設計,整體系統架構設計等等。在面試候選人的時候,通常都會問最近一個項目相關的東西,有很多候選人都會表示是自己一個人設計開發了這個項目,但是連有哪些功能模塊,系統結構(注意,不是架構)都回答不出來。有些面試者,在面試一些中高級的程序員時,很喜歡從過往經驗入手,自己再一遍介紹的時候他可能隨時提問。因為這樣有2個好處,第一是預防一問一答的形式,候選人事先背了很多問題的答案,第二是從候選人過往項目經驗入手,除了可以看出候選人是否虛假構建了項目經驗,還可以判斷該候選人對開發細節的把握以及對一些技術點的反應能力和掌握情況,畢竟「突然襲擊」比「瞄準射擊」要更加考驗候選人。
所以,在面試前,應該好好把自己以前的項目經驗都捋一捋,特別是上一個項目,從業務流程到產品設計到系統開發,特別是項目內一些你做過的細節地方,准備在面試時拿出來說的,必須以此為點,相關的東西都查查資料看一看。再一個就是項目裡面的閃光點,什麼叫閃光點,就是高大上的東西,需要自己多了解了解,在面試的時候拿出來說也可以加分。面試的時候談到這個上面(閃光點)的時候,面試官對這一塊很有興趣,越問越深,也知無不言,為自己增分不少。
5、不要作弊:
有些企業在面試程序員的時候,喜歡一開始扔一張試卷讓候選人先做,然後再去面試。暫且先不談做卷子考察方式的好壞, 在做試卷的時候,萬萬不要用移動設備上網查詢答案。 本身作弊的行為就讓人不齒,如果面試官在暗處進行觀察,發現作弊,那就太尷尬了。會就是會,不會就是不會,即便你用手機查答案把試卷寫的滿滿的,在接下來面試的時候,面試官再就試卷上的問題展開一問你,你還是不會。所以不管有沒有人監督,在面試的做試卷環節,千萬不要作弊。
6、熱門技術點的掌握:
其實這是個增分項目,如果上面幾點都已經通過面試的考核,那麼這一點就會成為你絕對的亮點。
首先要先自己了解一下當前熱門的技術,然後通過分析自己申請的職位,去看看可能涉及到哪些熱門的技術,然後再去專門的找資料進行學習和動手實驗。比如你是搞互聯網的,那麼最好學習一下負載均衡相關的技術,學習分布式資料庫的技術,學習緩存技術,學習頁面靜態化的技術;
如果自己是搞數據分析的,那麼最好學習一下Hadoop,學習一下微軟的Cube,學習一下惠普的Vertical;如果自己是搞iOS的,那麼可以看看Swift,可以看看Xamarin,可以看看WebSocket等,當然,我只是舉幾個例子,不一定非要這樣對應,如果是搞Java的,也可以去看看Pathon,如果是搞.net的,也可以去看看Ruby on rails等等。所謂技多不壓身,就是這個道理。
二、以上 6 點是自身素質的要求,如果在這6點上面能讓面試官滿意,基本上面試就沒有太大的問題了。接下來講一下,選一個好的公司或者企業。
1、面試官是否專業:
這里的面試官不僅僅是指技術面試官,也包括HR或者大老闆。如果面試官問你一些奇葩問題(例如問你開什麼車,房子多大,伴侶薪水多少等等),或者有比較明顯的不耐煩,歧視,傲慢等表現,就基本可以斷定這人是個奇葩,這家企業也要慎重考慮,因為這個奇葩的人很可能就是你的上司(或者是HR)。好的企業面試官應該表現出來的是專業水準,起碼中規中矩問一些常規的該問的問題。
2、盡量找獵頭推薦或者同行推薦:
道理其實很簡單,一個企業如果花錢請獵頭尋求人才,說明了企業對於這個職位的重視程度,也說明了企業是有經濟能力支付相對高昂一些的招聘費用。這樣就無形中對企業進行了一輪篩選。
3、工作環境:
不求工作環境高大上,起碼要整潔干凈。從對工作環境的狀態,可以看出企業管理者的一些習慣,如果工作環境陰暗潮濕,破破爛爛的,員工也是咋咋呼呼大喊大叫,說明管理者要麼是沒有足夠的經濟條件進行整改,要麼是自身習慣不好,不在乎環境。建議在面試時,仔細觀察一下工作環境,如果是明亮寬敞,干凈整潔,大家都靜悄悄的做自己的事情的,從工作環境上說是個不錯的企業。
4、加班與薪酬福利待遇:
談到薪酬不要靦腆,在現有基礎上加10%-20%都是正常范圍,只要不亂要價就行了,這里說的薪酬是指純工資,在面試時,還要考慮企業能提供的年終獎或者其他福利。對於加班的話,一般來說做IT的加班是很正常,但是要問清楚加班怎麼算,是加班費還是調休。以下幾種情況,請慎重考慮:
a. 無償加班。
b. 強制加班到x點。
c. 單休。
d. 無年終獎。
e. 除了工資以外無任何福利。
f. Offer或者合同不量化寫清楚工資數字,而是寫「和業績掛鉤」,「根據業績」等。
5.在面試之前上某准網(以前叫某智網)查一下該公司評價。
當然也可以先網路一下,如果是騙子公司,就直接可以查出來,但是有些公司內部其實很爛,但是並不是騙子公司,所以這時候就需要去某准網上搜一下評價。但是也不是每個公司都有評價,有很多小公司,在某准網上也沒有。但是抱著沒有負面評價就是好評的思路,也說的過去。如果一家企業明顯有很多負面評價,而你剛好要去這家企業面試,建議你就得好好考慮考慮了。
6、上門面試時,去衛生間看一下:
沒錯,就是去衛生間。可以提前點到,然後問一下前台衛生間,去衛生間洗個手(或者面試完成後也行),特別是看看廁紙的質量。當然,讓你去看看衛生間的環境和廁紙質量,不是在衡量以後你在這里方便的是否舒服,而是通過衛生間的狀況,可以看出企業管理者對於治理企業的態度。如果一家企業連衛生間的要求都很高,裝修比較好,衛生條件也不錯,甚至連廁紙質量都很好,那麼在其他方面,對待員工應該差不了哪裡。說來你可能不信,我見過的企業中,幾乎都滿足這一條。不好的企業衛生間一定是比較破爛,設施破損懷舊了也不會及時修理,廁紙用的最廉價的。而好的企業衛生間裝修精美,設施干凈,廁紙也是較厚較柔軟的。其實大家可以仔細留意一下,好的商場,好的學校,衛生間相對都比較高檔一些。
其實面試還是得靠自己的實力,所以技巧再多都是輔助,只有自己的技術水準達到一定的程度,才能拿下心儀的職位。
『伍』 求C和C++程序員面試秘笈 pdf
既然是面試的話。建議不要去看什麼之類的書籍了,時間也來不及,而且不一定奏效。個人在C方面的造詣不說多深,但也入行5年有餘了,建議如下:
面試前。對你要面試的公司和崗位(或行業)做一次詳細透徹的了解,記住是要透徹,技術不一定是最牛逼的,但是你要知道別人公司做什麼的,處於行業的水平是什麼樣,公司文化以及公司的優勢與劣勢,他們究竟要招什麼樣的人;
面試中。一定要別人看到你認真、執著的一面,領導喜歡這樣的員工,也不想錯過這樣的員工,也是公司培養的潛在人員,有升值空間;談吐不必過於主動,也不要太被動,自然為好,能在談吐中講一講自己曾經做過的案例更好,沒有的話,就說在學校做過那些成功的IT項目。
面試後。如果收到HR的面試通過電話,或者郵件,就按照要求准備入職,如果一周後依然沒有迴音,就客氣有禮貌的電話或者郵件回問公司,自己是是否被錄取淘汰;
可能遇到筆試或者多輪面試考核。這里嗎就看你的硬功夫了,一般就是給你多長時間設計完成一個程序,或者程序對接,程序調試,等等。
待遇問題。直接了當的說,按照公司制定的工資水平來。問清楚調薪制度、周期、幅度,或者提成計算方式,其他的福利待遇什麼五險一金,都差不多,都是按照國家標準的。另外就是工作時間這塊,是否每周五天八小時,加班怎麼考慮。很多都是看公司地點和效益來定的。
純手打,花了我十來分鍾,支持請採納!
『陸』 求C語言 .NET面試題
面試與被面試總結
我從事技術工作,
這幾年的面試與被面試總結
先說我去被面試的經驗吧。
回答清楚了2個問題,就能順利過關了。
1。為什麼要離開上一家公司。
2。公司為什麼要僱傭你。
問第一個問題的是hr(或老闆),呵呵 ,即使你技術過關,hr那裡沒有好的影響,結果是一個字,難!
如何回答呢? hr想推論出你在他的公司能呆多久。這個時候,你甚至可以明確告訴他,我在貴公司至少能呆n(n>=1)年----當然,你沒有把握的話,絕對不能亂說,社會上混,要講信用的。
有一次,我就在這個問題上吃了大虧,我看公司環境還不錯,就我自做主張回答1年,結果,hr心目中是m(m>=2)年,呵呵,結果可想而知了。要知道,技術面試都過關了,Hr面試是2選1,在回家的路上,我只能祈禱對手自動放棄或找到了其他更好的工作。:)
問第二個問題的是技術官。你要讓他知道你已經做過哪些商業作品。一定要是商業作品。在裡面負責哪方面具體工作,對於你熟悉的地方要多說。最好就是能爭取筆試或上機,因為用用口說的話,大家理解都不一樣,誤差可能很大,結果對你相當不利。在這個問題上我也吃過虧的,曾有一個我很看好的職位,認為把握很大,業務理解上也很有優勢,和技術官一談,結果是game over。要知道,在其他公司的上機和筆試中,我都能在應聘者中取得高分。
再說我去面試別人的經驗吧。
當時,我的任務是出題,給分。若你覺得題很難,那麼,請千萬不要放棄,顯然,你的對手也覺得難。只要堅持,我會認為這人有耐心很毅力,在以後的工作中也是好的合作者。題一定要做完,表現出認真的態度,若有疑問或卡殼,還可以尋求面試官的幫助,這些不會減分,相反,會增加你和他們的接觸機會,面試官會評估你的溝通能力。
有一次,有1個人來面試,題沒有完全ok,但很規范,態度很認真,他把他知道的都做上去了,我給了他技術類的高分。後來,順利進入公司,再後來進步很快,成了重要角色。
若文章對你有幫助的話,請在此討論。
祝你成功
面試題
1.鏈表和數組的區別在哪裡?
2.編寫實現鏈表排序的一種演算法。說明為什麼你會選擇用這樣的方法?
3.編寫實現數組排序的一種演算法。說明為什麼你會選擇用這樣的方法?
4.請編寫能直接實現strstr()函數功能的代碼。
5.編寫反轉字元串的程序,要求優化速度、優化空間。
6.在鏈表裡如何發現循環鏈接?
7.給出洗牌的一個演算法,並將洗好的牌存儲在一個整形數組里。
8.寫一個函數,檢查字元是否是整數,如果是,返回其整數值。(或者:怎樣只用4行代碼 ,編寫出一個從字元串到長整形的函數?)
9.給出一個函數來輸出一個字元串的所有排列。
10.請編寫實現malloc()內存分配函數功能一樣的代碼。
11.給出一個函數來復制兩個字元串A和B。字元串A的後幾個位元組和字元串B的前幾個位元組重疊。
12.怎樣編寫一個程序,把一個有序整數數組放到二叉樹中?
13.怎樣從頂部開始逐層列印二叉樹結點數據?請編程。
14.怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件並考慮空鏈表)?
另外:
一、單項選擇題:(共12題,每題2分,共24分)
1. 下面哪一個不是C++的標准數據類型? ( D)
A. int B. char
C. bool D. real
2. break關鍵字在哪一種語法結構中不能使用? (C)
A. for語句 B. switch語句
C. if語句 D. while語句
3. 類的繼承方式有幾種? (B )
A. 兩種 B. 三種
C. 四種 D. 六種
4. extern關鍵字的作用是什麼? (D)
A. 聲明外部鏈接 B. 聲明外部頭文件引用
C. 聲明使用擴展C++語句 D. 聲明外部成員函數、成員數據。
5. C庫函數strstr的功能是? (A )
A. 查找子串 B. 計算字元串長度
C. 字元串比較 D. 連結字元串
6. stl::deque是一種什麼數據類型? (A )
A. 動態數組 B. 鏈表
C. 堆棧 D. 樹
7. STL庫里含有下面的哪一種泛型演算法? (D )
A. KMP查找 B. 折半查找
C. 冒泡排序 D. 快速排序
8. 現在最快且最通用的排序演算法是什麼? (A )
A. 快速排序 B. 冒泡排序
C. 選擇排序 D. 外部排序
9. Win32下的線程的哪一種優先順序最高? ( C)
A. THREAD_PRIORITY_HIGHEST 高優先順序
B. THREAD_PRIORITY_IDLE 最低優先順序,僅在系統空閑時執行
C. THREAD_PRIORITY_TIME_CRITICAL 最高優先順序
D. THREAD_PRIORITY_ABOVE_NORMAL 高於普通優先順序
10. 下面四個選項中,哪一個不是WinMain函數的參數? (D )
A. HINSTANCE B. INT
C. LPSTR D. WPARAM
11. VC++的編譯器中,運算符new底層的實現是什麼? (B )
A. VirtualAlloc() B. HeapAlloc()
C. GlobalAlloc() D. AllocateUserPhysicalPages()
12. 下面哪一本C++參考書最厚? ( C)
A. 《Think in C++》 B. 《深入淺出MFC》
C. 《C++ Primer》 D. 《Effective C++》
13. 當調用Windows API函數InvalidateRect,將會產生什麼消息(A)
A. WM_PAINT B. WM_CREATE
C. WM_NCHITTEST D. WM_SETFOCUS
14. 關於virtual void Draw()=0,下面說法正確的有幾個(C)
(1)它是純虛函數(對)
(2)它在定義它的類中不能實現(對)
(3)定義它的類不可實例化(對)
(4)如果一個類要繼承一個ADT類,必須要實現其中的所有純虛函數(錯)//可以不實現,派生之後的類仍舊作為一個抽象類.
A. 1 B. 2
C. 3 D. 4
二、不定項選擇題:(共6題,每題3分,共18分,多選、錯選、漏選均不給分)
1. vector::iterator重載了下面哪些運算符? (ACD)
A. ++ B. >>
C. *(前置) D. ==
2. CreateFile( )的功能有哪幾個? (AB )
A. 打開文件 B. 創建新文件
C. 文件改名 D. 刪除文件
3. 下面哪些是句柄(HANDLE)? (ABCD )
A. HINSTANCE 實例句柄B. HWND 窗口句柄
C. HDC 設備描述符號句柄 D. HFONT 字體句柄
4. 下面哪些不是OpenGL標准幾何元素的繪制模式? (A )
A. GL_FOG B. GL_LINE_STRIP
C. GL_POINTS D. GL_TRIANGLE_FAN
5. 下面哪些運算符不能被重載? (ABD )
A. 做用域運算符「::」 B. 對象成員運算符「.」
C. 指針成員運算符「->」 D. 三目運算符「? :」
6. 下面哪些人曾參與了世界上第一個C++編譯器的開發? ( )
A. Bill Gates B. Stanley Lippman
C. Anderson Hejlsberg D. Bjarne Stroustrup
7. 以下說法正確的是? ( ABC)
A. 頭文件中的 ifndef/define/endif 是為了防止該頭文件被重復引用。
B. 對於#include <filename.h> ,編譯器從標准庫路徑開始搜索 filename.h
對於#include 「filename.h」 ,編譯器從用戶的工作路徑開始搜索 filename.h
C. C++語言支持函數重載,C語言不支持函數重載。函數被C++編譯後在庫中的名字與C 語言的不同。假設某個函數的原型為: void foo(int x, int y); 該函數被C編譯器編譯後在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字。C++提供了C連接交換指定符號extern「C」來解決名字匹配問題。
D. fopen函數只是把文件目錄信息調入內存。//錯,fopen是把整個文件讀入內存
三、填空題:(共8題,每題3分,共24分)
1. 一個大小為320 X 192,顏色為灰度索引色的設備相關點陣圖有______位元組。如果此點陣圖顏色為24位真彩色,則它的大小有______位元組。
2. Windows API的中文意義是____ windows應用程序介面___。
3. 計算反正弦的庫函數是__asin()____;計算浮點數絕對值的庫函數是__fabs()____;計算浮點數n次方的庫函數是__pow()____;將浮點數轉化為字元串的庫函數是___fcvt()___。
4. 如果i等於5,那麼( ++i ) - -的返回值是__6__。
5. API LoadBitmap()的功能是從__指定的模塊和或應用程序實例__中讀取點陣圖數據到內存。
6. new和__delete___對應,malloc和_free___對應,他們之間_ 不能__交叉混用。calloc的功能是__為數組動態分配內存___,realloc的功能是_改變原有內存區域的大小_。
7. SendMessage和PostMessage都會向窗體發送一個消息,但SendMessage__將一條消息發送到指定窗口,立即處理__而PostMessage__將一條消息投遞到指定窗口的消息隊列,不需要立即處理___。
8. 輸出指定圓心、半徑、邊數的圓上的點:
const int nCount = 12;
const double dOrgX = 5.0,
dOrgY = 3.0;
const double dRadius = 2.0;
for( int i = 0; i < nCount; i++ )
{
double dAngle = M_PI * 2.0 / (double)nCount * i;
cout << "第" << i << "點:X = " << ________; cout << ", Y = " << __________ << endl;
}
三、判斷題:(共12題,每題2分,共24分)
1. 一個類必須要有一個不帶參數的構造函數。 錯
2. 你不能寫一個虛的構造函數。 對
3. 類裡面所有的函數都是純虛函數時才是純虛類。 錯
4. const成員函數對於任何本類的數據成員都不能進行寫操作。 對
5. 函數中帶默認值的參數必須位於不帶默認值的參數之後。 對
6. char *p = "Test"; p[0] = 'R'; 錯
7. cout << "Test"; 對
8. stl::list不支持隨機訪問疊代器。 對
9. stl::vector的效率比stl::list高。 錯
10. VC和VC++是一回事,而VC++是一種比C++更難一些的語言。 錯
11. 理論上,new和malloc造成的內存泄露都會由操作系統回收。 錯
12. 在C++中struct和class的差別很大,所以從語法上不能混用。對
四、簡述題(共3題,每題5分,共15分)
1. 請簡述PeekMessage和GetMessage的區別。
答: Peekmessage和Getmessage都是向系統的消息隊列中取得消息,兩個函數的不同在於取不到消息的時候,若Getmessage()向消息隊列中取不到消息,則程序的主線程會被OS(操作系統)掛起,等到有合適的消息時才返回;若是用Peekmessage()在消息隊列中取不到消息,則程序會取得OS控制權,運行一段時間。
另外,在處理消息的時候,GetMessag()會將消息從隊列中刪除,而PeekMessage()可以設置最後一個參數wRemoveMsg來決定是否將消息保留在隊列中。
2. 請列出你所知道的在Windows SDK平台上,實現計時功能的方法。
答:可以使用SetTimer函數創建一個計時器,SetTimer的函數原型如下:
UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc
3. 請簡述你所知道的const的各種用法。
答: const 常量
const 修飾類的數據成員
const 修飾指針
const 應用在函數聲明中
const 應用在類成員函數
五、編程題:(共3題,第1小題7分,第2小題14分,第3小題24分)
1. 深度遍歷二叉樹。
struct Node
{
Node *Parent;
Node *Left, *Right;
};
void Through(Node *Root)
{
}
2. 二分法查找。
int DicFind( int *Array, int Count, int Value )
{
}
3. 寫出字元串類String的默認構造函數、析構函數和重載賦值運算符。
已知類String的原型為:
class String
{
public:
String( const char *pStr = NULL ); // 默認構造函數
~String( void ); // 析構函數
String &operate = ( const String &Source ); // 重載賦值運算符
private:
char *m_pData; // 指向字元串的指針
};
『柒』 程序員面試筆試寶典的目錄
前言
上篇 面試筆試經驗技巧篇
第1章 面試官箴言 2
1.1 有道無術,術可求;有術無道,止於術 2
1.2 求精不求全 3
1.3 腳踏實地,培養多種技能 4
1.4 保持空杯心態 6
1.5 職場是能者的舞台 7
1.6 學會「紙上談兵」 8
1.7 小結 8
第2章 面試心得交流 9
2.1 心態決定一切 9
2.2 假話全不說,真話不全說 10
2.3 走自己的路,讓別人去說吧 12
2.4 夯實基礎謀出路 14
2.5 書中自有編程法 15
2.6 筆試成績好,不會被鄙視 17
2.7 不要一廂情願做公司的備胎 18
2.8 小結 19
第3章 企業面試筆試攻略 20
3.1 互聯網企業 20
3.2 網路設備提供商 25
3.3 外企 29
3.4 國企 32
3.5 研究所 35
3.6 創業型企業 37
3.7 如何抉擇 41
第4章 面試筆試技巧 42
4.1 不打無准備之仗 42
4.1.1 如何獲取求職信息 42
4.1.2 如何製作一份受用人單位青睞的簡歷 43
4.1.3 如何高效地網申簡歷 47
4.1.4 面試考查什麼內容 48
4.1.5 霸王面合適嗎 50
4.1.6 非技術類筆試如何應答 50
4.1.7 什麼是職場暗語 51
4.1.8 如何克服面試中的緊張情緒 54
4.1.9 面試禮儀有哪些 55
4.1.10 面試需要准備什麼內容 56
4.1.11 女生適合做程序員嗎 57
4.1.12 程序員是吃青春飯的嗎 58
4.1.13 為什麼會被企業拒絕 58
4.1.14 如何准備集體面試 59
4.1.15 如何准備電話面試 61
4.2 從容應對 62
4.2.1 如何進行自我介紹 63
4.2.2 你對我們公司有什麼了解 64
4.2.3 如何應對自己不會回答的問題 65
4.2.4 如何應對面試官的「激將法」語言 65
4.2.5 如何處理與面試官持不同觀點的問題 66
4.2.6 如果你在這次面試中沒有被錄用,你會怎麼辦 66
4.2.7 如果你被我們錄取了,接下來你將如何開展工作 66
4.2.8 你怎麼理解你應聘的職位 67
4.2.9 你有哪些缺點 67
4.2.10 你有哪些優點 68
4.2.11 你沒有工作經驗,如何能夠勝任這個崗位 69
4.2.12 你的好朋友是如何評價你的 69
4.2.13 你與上司意見不一致時,該怎麼辦 70
4.2.14 你能說說你的家庭嗎 71
4.2.15 你認為自己最適合做什麼 72
4.2.16 你如何看待公司的加班現象 72
4.2.17 你的業余愛好是什麼 73
4.2.18 你和別人發生過爭執嗎?你怎樣解決 74
4.2.19 你如何面對壓力 74
4.2.20 你為什麼離開了原來的單位 75
4.2.21 你為什麼更傾向於我們公司 75
4.2.22 你覺得我們為什麼要錄用你 76
4.2.23 你的職業規劃是什麼 76
4.2.24 你對薪資有什麼要求 77
4.2.25 你有什麼需要問我的問題嗎 77
4.3 簽約這點事 78
4.3.1 風蕭蕭兮易水寒,offer多了怎麼辦 78
4.3.2 簽約、違約需要注意哪些事項 78
4.4 小結 81
第5章 英文面試攻略 82
5.1 注意事項 82
5.2 英文自我介紹 83
5.3 常見的英文面試問題 85
5.4 常見計算機專業詞彙 94
5.4.1 計算機專業相關課程 94
5.4.2 操作系統相關術語 95
5.4.3 演算法相關術語 96
5.4.4 數據結構相關術語 97
5.4.5 計算機網路相關術語 100
第6章 智力題攻略 102
6.1 推理類 102
6.2 博弈類 107
6.3 計算類 109
6.4 作圖類 111
6.5 倒水類 112
6.6 稱重類 113
6.7 最優化類 114
6.8 IT思想類 115
6.9 過橋類 118
6.10 概率類 119
下篇 面試筆試技術攻克篇
第7章 程序設計基礎 122
7.1 C/C++關鍵字 122
7.1.1 static(靜態)變數有什麼作用 122
7.1.2 const有哪些作用 124
7.1.3 switch語句中的case結尾是否必須添加break語句?為什麼 127
7.1.4 volatile在程序設計中有什麼作用 128
7.1.5 斷言ASSERT( )是什麼 129
7.1.6 枚舉變數的值如何計算 130
7.1.7 char str1[] = abc; char str2[] = abc; str1與str2不相等,為什麼 130
7.1.8 為什麼有時候main( )函數會帶參數?參數argc與argv的含義是什麼 131
7.1.9 C++裡面是不是所有的動作都是main( )函數引起的 132
7.1.10 *p++與(*p)++等價嗎?為什麼 132
7.1.11 前置運算與後置運算有什麼區別 132
7.1.12 a是變數,執行(a++) += a語句是否合法 133
7.1.13 如何進行float、bool、int、指針變數與「零值」的比較 134
7.1.14 new/delete與malloc/free的區別是什麼 135
7.1.15 什麼時候需要將引用作為返回值 137
7.1.16 變數名為618Software是否合法 137
7.1.17 C語言中,整型變數x小於0,是否可知x×2也小於0 138
7.1.18 exit(status)是否跟從main( )函數返回的status等價 138
7.1.19 已知String類定義,如何實現其函數體 138
7.1.20 在C++中如何實現模板函數的外部調用 140
7.1.21 在C++中,關鍵字explicit有什麼作用 140
7.1.22 C++中異常的處理方法以及使用了哪些關鍵字 141
7.1.23 如何定義和實現一個類的成員函數為回調函數 141
7.2 內存分配 142
7.2.1 內存分配的形式有哪些 142
7.2.2 什麼是內存泄露 143
7.2.3 棧空間的最大值是多少 144
7.2.4 什麼是緩沖區溢出 144
7.3 sizeof 146
7.3.1 sizeof是關鍵字嗎 146
7.3.2 strlen( )=?sizeof( )=? 146
7.3.3 對於結構體而言,為什麼sizeof返回的值一般大於期望值 148
7.3.4 指針進行強制類型轉換後與地址進行加法運算,結果是什麼 149
7.4 指針 150
7.4.1 使用指針有哪些好處 150
7.4.2 引用還是指針 150
7.4.3 指針和數組是否表示同一概念 152
7.4.4 指針是否可進行>、<、>=、<=、==運算 152
7.4.5 指針與數字相加的結果是什麼 152
7.4.6 野指針?空指針 153
7.5 預處理 154
7.5.1 C/C++頭文件中的ifndef/define/endif的作用有哪些 154
7.5.2 #include <filename.h>和#include 「filename.h」 有什麼區別 155
7.5.3 #define有哪些缺陷 155
7.5.4 如何使用define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題) 155
7.5.5 含參數的宏與函數有什麼區別 156
7.5.6 宏定義平方運算#define SQR(X) X*X是否正確 156
7.5.7 不能使用大於、小於、if語句,如何定義一個宏來比較兩個數a、b的大小 157
7.5.8 如何判斷一個變數是有符號數還是無符號數 158
7.5.9 #define TRACE(S) (printf(%s
, #S), S)是什麼意思 159
7.5.10 不使用sizeof,如何求int佔用的位元組數 160
7.5.11 如何使用宏求結構體的內存偏移地址 161
7.5.12 如何用sizeof判斷數組中有多少個元素 162
7.5.13 枚舉和define有什麼不同 162
7.5.14 typdef和define有什麼區別 162
7.5.15 C++中宏定義與內聯函數有什麼區別 164
7.5.16 定義常量誰更好?#define還是const 164
7.6 結構體與類 165
7.6.1 C語言中struct與union的區別是什麼 165
7.6.2 C和C++中struct的區別是什麼 165
7.6.3 C++中struct與class的區別是什麼 166
7.7 位操作 166
7.7.1 一些結構聲明中的冒號和數字是什麼意思 166
7.7.2 最有效的計算2乘以8的方法是什麼 167
7.7.3 如何實現位操作求兩個數的平均值 167
7.7.4 unsigned int i=3;printf(%u
,i*-1)輸出為多少 168
7.7.5 如何求解整型數的二進製表示中1的個數 169
7.7.6 不能用sizeof( )函數,如何判斷操作系統是16位還是32位的 170
7.7.7 嵌入式編程中,什麼是大端?什麼是小端 171
7.7.8 考慮n位二進制數,有多少個數中不存在兩個相鄰的1 174
7.7.9 不用除法操作符如何實現兩個正整數的除法 175
7.8 函數 179
7.8.1 怎麼樣寫一個接受可變參數的函數 179
7.8.2 函數指針與指針函數有什麼區別 179
7.8.3 C++函數傳遞參數的方式有哪些 183
7.8.4 重載與覆蓋有什麼區別 185
7.8.5 是否可以通過絕對內存地址進行參數賦值與函數調用 188
7.8.6 默認構造函數是否可以調用單參數構造函數 190
7.8.7 C++中函數調用有哪幾種方式 191
7.8.8 什麼是可重入函數?C語言中如何寫可重入函數 192
7.9 數組 192
7.9.1 int a[2][2]={{1},{2,3}},則a[0][1]的值是多少 192
7.9.2 如何合法表示二維數組 193
7.9.3 a是數組,(int*)(&a+1)表示什麼意思 193
7.9.4 不使用流程式控制制語句,如何列印出1~1000的整數 194
7.9.5 char str[1024]; scanf(%s,str)是否安全 197
7.9.6 行存儲與列存儲中哪種存儲效率高 197
7.10 變數 197
7.10.1 全局變數和靜態變數有什麼異同 197
7.10.2 局部變數需要「避諱」全局變數嗎 199
7.10.3 如何建立和理解非常復雜的聲明 199
7.10.4 變數定義與變數聲明有什麼區別 200
7.10.5 不使用第三方變數,如何交換兩個變數的值 201
7.10.6 C與C++變數初始化有什麼不同 202
7.11 字元串 202
7.11.1 不使用C/C++字元串庫函數,如何自行編寫strcpy( )函數 203
7.11.2 如何把數字轉換成字元串 205
7.11.3 如何自定義內存復制函數memcpy( ) 206
7.12 編譯 207
7.12.1 編譯和鏈接的區別是什麼 207
7.12.2 編譯型語言與解釋型語言的區別是什麼 208
7.12.3 如何判斷一段程序是由C編譯程序還是由C++編譯程序編譯的 208
7.12.4 在C++程序中調用被C編譯器編譯後的函數,為什麼要加extern 「C」 209
7.12.5 兩段代碼共存於一個文件,編譯時有選擇地編譯其中的一部分,如何實現 210
7.13 面向對象相關 210
7.13.1 面向對象與面向過程有什麼區別 210
7.13.2 面向對象的基本特徵有哪些 211
7.13.3 什麼是深復制?什麼是淺復制 212
7.13.4 什麼是友元 213
7.13.5 復制構造函數與賦值運算符的區別是什麼 214
7.13.6 基類的構造函數/析構函數是否能被派生類繼承 216
7.13.7 初始化列表和構造函數初始化的區別是什麼 216
7.13.8 類的成員變數的初始化順序是按照聲明順序嗎 217
7.13.9 當一個類為另一個類的成員變數時,如何對其進行初始化 217
7.13.10 C++能設計實現一個不能被繼承的類嗎 218
7.13.11 構造函數沒有返回值,那麼如何得知對象是否構造成功 219
7.13.12 C++中的空類默認產生哪些成員函數 219
7.13.13 如何設置類的構造函數的可見性 219
7.13.14 public繼承、protected繼承、private繼承的區別是什麼 220
7.13.15 C++提供默認參數的函數嗎 221
7.13.16 C++中有哪些情況只能用初始化列表而不能用賦值 222
7.14 虛函數 223
7.14.1 什麼是虛函數 223
7.14.2 C++如何實現多態 225
7.14.3 C++中繼承、虛函數、純虛函數分別指的是什麼 226
7.14.4 C++中的多態種類有哪幾種 226
7.14.5 什麼函數不能聲明為虛函數 227
7.14.6 是否可以把每個函數都聲明為虛函數 229
7.14.7 C++中如何阻止一個類被實例化 229
7.15 編程技巧 229
7.15.1 當while( )的循環條件是賦值語句時會出現什麼情況 229
7.15.2 不使用if/:?/switch及其他判斷語句如何找出兩個int型變數中的最大值和最小值 230
7.15.3 C語言獲取文件大小的函數是什麼 231
7.15.4 表達式a>b>c是什麼意思 231
7.15.5 如何列印自身代碼 232
7.15.6 如何實現一個最簡單病毒 232
7.15.7 如何只使用一條語句實現x是否為2的若干次冪的判斷 233
7.15.8 如何定義一對相互引用的結構 233
7.15.9 什麼是逗號表達式 234
7.15.10
是否與
等價 235
7.15.11 什麼是短路求值 235
7.15.12 已知隨機數函數rand7( ),如何構造rand10( )函數 236
7.15.13 printf(%p
,(void *)x)與printf (%p
,&x)有何區別 237
7.15.14 printf( )函數是否有返回值 237
7.15.15 不能使用任何變數,如何實現計算字元串長度函數Strlen( ) 237
7.15.16 負數除法與正數除法的運算原理是否一樣 238
7.15.17 main( )主函數執行完畢後,是否可能會再執行一段代碼 238
第8章 資料庫 240
8.1 資料庫概念 240
8.1.1 關系資料庫系統與文件資料庫系統有什麼區別 240
8.1.2 SQL語言的功能有哪些 240
8.1.3 內連接與外連接有什麼區別 242
8.1.4 什麼是事務 243
8.1.5 什麼是存儲過程?它與函數有什麼區別與聯系 244
8.1.6 什麼是主鍵?什麼是外鍵 244
8.1.7 什麼是死鎖 245
8.1.8 什麼是共享鎖?什麼是互斥鎖 245
8.1.9 一二三四範式有何區別 246
8.1.10 如何取出表中指定區間的記錄 247
8.1.11 什麼是CHECK約束 247
8.1.12 什麼是視圖 247
8.2 SQL高級應用 248
8.2.1 什麼是觸發器 248
8.2.2 什麼是索引 249
8.2.3 什麼是回滾 250
8.2.4 數據備份有哪些種類 251
8.2.5 什麼是游標 251
8.2.6 並發環境下如何保證數據的一致性 252
8.2.7 如果資料庫日誌滿了,會出現什麼情況 252
8.2.8 如何判斷誰往資料庫中插入了一行數據 252
第9章 網路與通信 254
9.1 網路模型 254
9.1.1 OSI七層模型是什麼 254
9.1.2 TCP/IP模型是什麼 255
9.1.3 B/S與C/S有什麼區別 255
9.1.4 MVC模型結構是什麼 256
9.2 網路設備 258
9.2.1 交換機與路由器有什麼區別 258
9.2.2 路由表的功能有哪些 259
9.3 網路協議 260
9.3.1 TCP和UDP的區別有哪些 260
9.3.2 什麼叫三次握手?什麼叫四次斷開 260
9.3.3 什麼是ARP/RARP 262
9.3.4 IP Phone的原理是什麼?都用了哪些協議 263
9.3.5 Ping命令是什麼 263
9.3.6 基本的HTTP流程有哪些 264
9.4 網路編程 264
9.4.1 如何使用Socket編程 264
9.4.2 阻塞模式和非阻塞模式有什麼區別 265
9.5 網路其他問題 266
9.5.1 常用的網路安全防護措施有哪些 266
9.5.2 什麼是SQL注入式攻擊 267
9.5.3 電路交換技術、報文交換技術和分組交換技術有什麼區別 268
9.5.4 相比IPv4,IPv6有什麼優點 269
第10章 操作系統 270
10.1 進程管理 270
10.1.1 進程與線程有什麼區別 270
10.1.2 線程同步有哪些機制 271
10.1.3 內核線程和用戶線程的區別 271
10.2 內存管理 272
10.2.1 內存管理有哪幾種方式 272
10.2.2 分段和分頁的區別是什麼 272
10.2.3 什麼是虛擬內存 272
10.2.4 什麼是內存碎片?什麼是內碎片?什麼是外碎片 273
10.2.5 虛擬地址、邏輯地址、線性地址、物理地址有什麼區別 273
10.2.6 Cache替換演算法有哪些 274
10.3 用戶編程介面 275
10.3.1 庫函數與系統調用有什麼不同 275
10.3.2 靜態鏈接與動態鏈接有什麼區別 276
10.3.3 靜態鏈接庫與動態鏈接庫有什麼區別 276
10.3.4 用戶態和核心態有什麼區別 276
10.3.5 用戶棧與內核棧有什麼區別 277
第11章 軟體工程 278
11.1 軟體工程過程與方法 278
11.1.1 軟體工程過程有哪些 278
11.1.2 常見的軟體開發過程模型有哪些 279
11.1.3 什麼是敏捷開發 283
11.1.4 UML中一般有哪些圖 285
11.2 軟體工程思想 285
11.2.1 什麼是軟體配置管理 285
11.2.2 什麼是CMMI 286
11.2.3 如何提高軟體質量 287
第12章 發散思維 289
12.1 設計模式 289
12.1.1 什麼是單例模式 289
12.1.2 什麼是工廠模式 290
12.1.3 什麼是適配器模式 290
12.1.4 什麼是享元模式 291
12.1.5 什麼是觀察者模式 291
12.2 新技術 291
12.2.1 什麼是雲計算 291
12.2.2 什麼是物聯網 292
12.2.3 你平時讀的專業書籍有哪些 293
第13章 數據結構與演算法 295
13.1 數組 295
13.1.1 如何用遞歸實現數組求和 295
13.1.2 如何用一個for循環列印出一個二維數組 296
13.1.3 在順序表中插入和刪除一個結點平均移動多少個結點 297
13.1.4 如何用遞歸演算法判斷一個數組是否是遞增 297
13.1.5 如何分別使用遞歸與非遞歸實現二分查找演算法 298
13.1.6 如何在排序數組中,找出給定數字出現的次數 299
13.1.7 如何計算兩個有序整型數組的交集 300
13.1.8 如何找出數組中重復次數最多的數 301
13.1.9 如何在O(n)的時間復雜度內找出數組中出現次數超過了一半的數 303
13.1.10 如何找出數組中唯一的重復元素 305
13.1.11 如何判斷一個數組中的數值是否連續相鄰 308
13.1.12 如何找出數組中出現奇數次的元素 309
13.1.13 如何找出數列中符合條件的數對的個數 311
13.1.14 如何尋找出數列中缺失的數 313
13.1.15 如何判定數組是否存在重復元素 314
13.1.16 如何重新排列數組使得數組左邊為奇數,右邊為偶數 315
13.1.17 如何把一個整型數組中重復的數字去掉 316
13.1.18 如何找出一個數組中第二大的數 318
13.1.19 如何尋找數組中的最小值和最大值 319
13.1.20 如何將數組的後面m個數移動為前面m個數 320
13.1.21 如何計算出序列的前n項數據 321
13.1.22 如何找出數組中只出現一次的數字 322
13.1.23 如何判斷一個整數x是否可以表示成n(n≥2)個連續正整數的和 324
13.2 鏈表 325
13.2.1 數組和鏈表的區別是什麼 325
13.2.2 何時選擇順序表、何時選擇鏈表作為線性表的存儲結構為宜 325
13.2.3 如何使用鏈表頭 326
13.2.4 如何實現單鏈表的插入、刪除操作 327
13.2.5 如何找出單鏈表中的倒數第k個元素 328
13.2.6 如何實現單鏈表反轉 329
13.2.7 如何從尾到頭輸出單鏈表 331
13.2.8 如何尋找單鏈表的中間結點 331
13.2.9 如何進行單鏈表排序 332
13.2.10 如何實現單鏈表交換任意兩個元素(不包括表頭) 334
13.2.11 如何檢測一個較大的單鏈表是否有環 335
13.2.12 如何判斷兩個單鏈表(無環)是否交叉 337
13.2.13 如何刪除單鏈表中的重復結點 338
13.2.14 如何合並兩個有序鏈表(非交叉) 339
13.2.15 什麼是循環鏈表 340
13.2.16 如何實現雙向鏈表的插入、刪除操作 342
13.2.17 為什麼在單循環鏈表中設置尾指針比設置頭指針更好 343
13.2.18 如何刪除結點的前驅結點 343
13.2.19 如何實現雙向循環鏈表的刪除與插入操作 343
13.2.20 如何在不知道頭指針的情況下將結點刪除 344
13.3 字元串 345
13.3.1 如何統計一行字元中有多少個單詞 345
13.3.2 如何將字元串逆序 346
13.3.3 如何找出一個字元串中第一個只出現一次的字元 350
13.3.4 如何輸出字元串的所有組合 351
13.3.5 如何檢查字元是否是整數?如果是,返回其整數值 353
13.3.6 如何查找字元串中每個字元出現的個數 353
13.4 STL容器 354
13.4.1 什麼是泛型編程 354
13.4.2 棧與隊列的區別有哪些 354
13.4.3 vector與list的區別有哪些 355
13.4.4 如何實現循環隊列 355
13.4.5 如何使用兩個棧模擬隊列操作 357
13.5 排序 359
13.5.1 如何進行選擇排序 359
13.5.2 如何進行插入排序 360
13.5.3 如何進行冒泡排序 361
13.5.4 如何進行歸並排序 364
13.5.5 如何進行快速排序 366
13.5.6 如何進行希爾排序 368
13.5.7 如何進行堆排序 369
13.5.8 各種排序演算法有什麼優劣 371
13.6 二叉樹 372
13.6.1 基礎知識 372
13.6.2 如何遞歸實現二叉樹的遍歷 373
13.6.3 已知先序遍歷和中序遍歷,如何求後序遍歷 374
13.6.4 如何非遞歸實現二叉樹的後序遍歷 376
13.6.5 如何使用非遞歸演算法求二叉樹的深度 378
13.6.6 如何判斷兩棵二叉樹是否相等 381
13.6.7 如何判斷二叉樹是否是平衡二叉樹 381
13.6.8 什麼是霍夫曼編解碼 382
13.7 圖 383
13.7.1 什麼是拓撲排序 384
13.7.2 什麼是DFS?什麼是BFS 385
13.7.3 如何求關鍵路徑 386
13.7.4 如何求最短路徑 388
第14章 海量數據處理 390
14.1 問題分析 390
14.2 基本方法 390
14.3 經典實例分析 403
14.3.1 top K問題 403
14.3.2 重復問題 405
14.3.3 排序問題 407
致謝 409
『捌』 ASP.NET程序員常見面試題有什麼
2 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
答. 1).使用QueryString, 如....?id=1; response. Redirect()....
2).使用Session變數
3).使用Server.Transfer
3. 一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞歸演算法實現。
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
4.C#中的委託是什麼?事件是不是一種委託?
答 :
委託可以把一個方法作為參數代入另一個方法。
委託可以理解為指向一個函數的引用。
是,是一種特殊的委託
5.override與重載的區別
答 :
override 與重載的區別。重載是方法的名稱相同。參數或參數類型不同,進行多次重載以適應不同的需要
Override 是進行基類中函數的重寫。為了適應需要。
6.如果在一個B/S結構的系統中需要傳遞變數值,但是又不能使用Session、Cookie、Application,您有幾種方法進行處理?
答 : QueryString、FormsAuthentication、 this.Server.Transfer
7.請編程遍歷頁面上所有TextBox控制項並給它賦值為string.Empty?
答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}
8.請編程實現一個冒泡排序演算法?
答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
9.描述一下C#中索引器的實現過程,是否只能根據數字進行索引?
答:可以用任意類型。
10.求以下表達式的值,寫出您想到的一種或幾種實現方法: 1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
12.在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}",x,y);
}
當使用new B()創建B的實例時,產生什麼輸出?
答:X=1,Y=0
13.什麼叫應用程序域?
答:應用程序域可以理解為一種輕量級進程。起到安全的作用。佔用資源小。
14.CTS、CLS、CLR分別作何解釋?
答:CTS:通用語言系統。CLS:通用語言規范。CLR:公共語言運行庫。
15.什麼是裝箱和拆箱?
答:從值類型介面轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。
16.什麼是受管制的代碼?
答:unsafe:非託管代碼。不經過CLR運行。
17.什麼是強類型系統?
答:RTTI:類型識別系統。
http://hi..com/wwwzzg/blog/item/9f68fc1e6ad9cc0c314e15cb.html
這里還有 太多 你去那看吧 還有樓上的=-=-! 你發個JAVA的出來騙分啊
『玖』 《程序員代碼面試指南第二版》pdf下載在線閱讀全文,求百度網盤雲資源
《程序員代碼面試指南第二版》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1v1uD6fUCW7MEjk9TzkmtYA
『拾』 c/c++程序員面試寶典和程序員面試寶典哪個好
前者好一點,介紹的更加詳細,有針對性,程序員面試寶典太廣泛了,短期內沒有太大的效果