c語言的四書五經
Ⅰ 數據結構(c語言版)有什麼參考書
推薦《數據結構》(c語言版)(清華大學出版社,嚴蔚敏,吳偉民編著)教材。
《清華大學計算機系列教材:數據結構(C語言版)》的第1章綜述數據、數據結構和抽象數據類型等基本概念;第2章至第7章從抽象數據類型的角度,分別討論線性表、棧、隊列、串、數組、廣義表、樹和二叉樹以及圖等基本類型的數據結構及其應用。
第9章至第11章討論查找和排序,除了介紹各種實現方法之外,並著重從時間上進行定性或定量的分析和比較;第12章介紹常用的文件結構。
本書可作為計算機類專業或信息類相關專業的本科或專科教材。
Ⅱ 求C++ 網路編程最好的書籍 謝謝了
學習編程基礎也很重要的,路要一步一步地走。不要老是想到看一本書就成為高手。我給你推薦一些書吧,你可以選一些看。其中很多都是經典之作。C++是以C為基礎的,所以你最好看一下C語言,網路方面,《計算機網路》和《TCP/IP詳解》是必看的。望採納。
1、演算法
計算機程序設計藝術-------Donald.E.Knuth----------演算法「倚天屠龍」雙劍
演算法導論-----------------Thomas H. Cormen--------演算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
2、數據結構
數據結構 C++
數據結構演算法與應用
3、C語言
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言介面與實現:創建可重用軟體的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標准程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標准C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata
6、操作系統
深入理解計算機系統(修訂版)-------RANDAL E.BRYANT
計算機操作系統(第六版)
7、編譯原理
跟我一起寫makefile
《編譯原理技術和工具》------- Alfred ------- 龍書
《現代編譯原理-C語言描述》 ----------- Andrew W. Appel ----------- 虎書
《高級編譯器設計與實現》 ----------- Steven S.Muchnick ----------- 鯨書
8、網路
計算機網路第四版中文版-----------Andrew S.Tanenbaum -------網路編程三劍客
TCP/IP詳解3卷本--------------------Richard Stevens----網路編程三劍客
UNIX網路編程2卷本--------------------Richard Stevens----網路編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網路編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
9、Linux
Linux內核設計與實現
Linux內核完全注釋
LINUX內核分析及編程
Ⅲ c語言是有什麼
C語言是一種通用的、面向過程式的計算機程序設計語言。1972 年,為了移植與開發 UNIX 操作系統,丹尼斯·里奇在貝爾電話實驗室設計開發了 C 語言。
C 語言是一種廣泛使用的計算機語言,它與 Java 編程語言一樣普及,二者在現代軟體程序員之間都得到廣泛使用。
C語言簡單例子:
(3)c語言的四書五經擴展閱讀:
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。
C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
Ⅳ C語言四書五經是哪4本書
C程序設計之四書五經
自從Dennis M.Ritchie於1973年設計並實現C語言以來,計算機程序設計領域已經發生了巨大的變化。以C語言為根基的C++、Java和C#等面向對象語言相繼誕生,並在各自領域大獲成功。今天,C及其後裔幾乎統治了計算機程序設計世界。可以這么說,C語言的誕生是現代程序語言革命的起點,它改變了程序設計語言發展的軌跡,是程序設計語言發展史中的一個里程碑。
然而,C並不僅僅是其他語言的起點和基礎,否則它早已成為程序設計語言發展過程中又一個被遺棄者。和當初發明時一樣,C語言今天依然至關重要。它的表達力、效率、簡練、緊湊、對機器的最終控制以及跨平台的高度移植性,使其在系統編程、嵌入式編程等領域一直占據著統治地位,而C99標準的制訂則再一次使C語言煥發出新的活力。下文介紹C程序設計領域中的幾本好書,其中一些堪稱經典。
1. Brian W.Kernighan, Dennis M.Ritchie,《C程序設計語言》,機械工業出版社
這是迄今為止在所有程序設計語言書籍中最廣受尊敬的一部經典,是任何一名C程序員的必讀之作。因為出自C語言的設計者Dennis M.Ritchie和著名的計算機科學家Brian W.Kernighan之手,它被昵稱為「K&R C」。是它首先引入了「Hello World!」程序,這個程序幾乎成了後來任何一本入門性程序設計語言書籍中的第一個例子。
如同C語言本身簡潔緊湊而極具威力一樣,這本書輕薄短小而極富張力。通過簡潔的描述和典型的示例,它全面、系統、准確地講述了C語言的各個特性以及C程序設計的基本方法,內容涵蓋基本概念、類型和表達式、控制流、函數與程序結構、指針與數組、結構、輸入與輸出、UNIX系統介面以及標准庫等內容。
簡潔清晰是這本書最大的特色。這本小書可以教給你許多比它厚幾倍的「大部頭」的知識。我認為那些動輒洋洋灑灑拼湊出好幾百頁乃至上千頁的技術作者應該好好向K&R學一學。對於中、高級程序員而言,如果希望迅速獲得C語言的嚴肅知識而又不願意多花費哪怕一丁點時間,這本書就是首選。
順便說一句,這本書的索引製作非常出色,極具實用價值,這可能首先要歸功於正文部分的簡明扼要。此外,盡管它看上去很像一本教程,但其實更是一本寫給專業程序員的指南。如果你不具備任何其他語言程序設計背景或基本的C語言知識,這本書也許並不適合用作你的C語言啟蒙讀物。
2. Perter Van Der LinDen,《C專家編程》,人民郵電出版社
C語言是嚴肅的程序員語言,但這並不意味著C語言書籍必須板著面孔說教。在這本被C程序員昵稱為「魚書」(封面上有一條「醜陋的」腔棘魚)的著作中,作為SUN公司編譯器和操作系統核心開發組成員之一,Peter淋漓盡致地展示了其深厚的技術沉澱、豐富的項目經驗、高超的寫作技巧以及招牌式的幽默。在這部作品中,作者以流暢的文字、詼諧的筆法將逸聞典故、智慧和幽默自然地融入技術描述中,讀來宛若一本小說,極富趣味。
本書講述了C語言的歷史、語言特性、聲明、數組、指針、連接、運行時以及內存使用等知識,揭示了C語言中許多隱晦之處,尤其深入解析了聲明、數組和指針、內存使用等方面的細節。要想成為一名專家級C程序員,這些內容都是必須掌握的。和其他滿是抽象例子的C語言書籍不同,這本書充滿了大量的來自真實世界的C程序設計實例,它們對C程序員具有很高的參照價值。另外,每一章都以極富趣味的「輕松一下」收尾,而附錄A「程序員工作面試的秘密」則是任何語言的程序員在應聘工作前增強自信的好材料。
我懷疑真正的C專家可能用不著看這本書 — 從內容到組織方式到行文風格都決定了這是一本輕松愉快的「從菜鳥到高手」的進階讀本,所以,它理應擁有更廣泛的讀者群。初級程序員往往更需要熱情的鼓勵,在閱讀這本書的過程中,你定會深深地被作者對編程的激情所感染。
世間並無完美。我認為這本書的缺陷在於,和大多數平庸的C語言書籍一樣,它畫蛇添足地加入了一章關於C++的描述。在今天看來,這個描述既不全面也有失公允。不過,鑒於作者是在1994年從一名C程序員的角度去觀察C++,這一點也就不足為奇了。
3. Samuel P. Harbison, Guy L. Steele,《C語言參考手冊(第五版)》(影印版),人民郵電出版社
在C語言參考手冊類書籍里,Samuel P. Harbison 和Guy L. Steele合著的《C: A Reference Manual》是非常出色的一本。這本手冊的第五版新增了對C99標準的介紹,以便滿足新時期C語言學習的需要。全書共分為兩大部分,第一部分專注於C語言特性,第二部分則全面討論了C標准庫。本書涵蓋C99、C89、傳統的C、所有版本的C運行庫以及編寫與C++兼容的C代碼等一切知識。
這本手冊只是中等厚度,但它比「比它更厚」的其他參考手冊更清晰地描述了C語言的現在和過去的方方面面。整本手冊技術細節描述精確,組織條理清楚,內容完備詳盡而又簡明扼要。可以這么說,它在廣度、深度和精度方面都是出類拔萃的。對於中、高級C程序員而言,這本手冊值得常備案頭,它幾乎肯定要比K&R的著作使用頻率更高。
2004年2月1日補充:我手頭有這本書的中文版:《C語言參考手冊》(機械工業出版社出版)。它在很大程度上減輕了我的查閱負擔,不過偶爾也增加了理解上的困難。
4. David Hanson,《C語言介面與實現:創建可重用軟體的技術》,機械工業出版社
C語言能夠歷經三十多年而不衰,一個重要的原因在於它的適應能力。在這「復用」、「面向對象」、「組件」、「異常處理」等先進機制漫天飛舞的年代,C語言仍然能夠憑借它小而優雅的語言特性,在相當程度上滿足現代軟體體系架構提出的要求。只不過,想要達到這個程度,必須要在C的應用功力上達到最高層次。在嵌入式、系統軟體以及對性能要求極高的系統開發中,開發人員必須達到這樣的層次,熟練掌握C語言的高級特性,才能夠同時滿足效率和靈活性、復用性的要求。可惜,雖然C語言技術圖書汗牛充棟,但是關注這個峰頂之域的作品卻是屈指可數。David Hanson的《C Interfaces and Implementations》就是個中翹楚。
David Hanson是業內大名鼎鼎的自由編譯器lcc的合作者。在這個項目中,他負責提供高度可復用的基礎架構。在不斷的實踐中,他完全使用ANSI C形成了一整套可復用組件庫。這套組件庫架構清晰,性能優異,而且提供了很多高級的特性,比如類Win32 SEH的異常處理機制,可移植的線程庫,高性能的內存池,豐富的可復用數據結構組件。David Hanson把他在創作這些組件的過程中所積累的心得以及對其源碼的精緻剖析原原本本地寫在了這本書里。這樣的著作,當然堪稱C語言領域里的銘心絕品。難怪已故著名技術作家Richard Stevens對此書贊不絕口,他說:「這本書中的技術,對於大部分C程序員來說,已經遺忘得太久了。」對於希望能在C語言應用上達到最高層次的核心程序員而言,這本書是難得的必讀之作。
其他
除了以上四本書以外,我還樂意推薦Andrew Koenig的著作《C陷阱和缺陷》(人民郵電出版社)和Deitel父子合著的《C How to Program》兩本書。
Andrew Koenig是世界上屈指可數的C++專家,他的這本書可能是最薄的一本C語言經典。它簡明扼要地講述了C程序設計中的陷阱和缺陷,包括詞法陷阱、語法陷阱、語義陷阱、連接、庫函數、預處理器以及可移植性缺陷等,最後一章還給出了關於如何減少程序錯誤的建議以及前面各章問題的參考答案。盡管這個小冊子成書於C89標准制定之前,然而,即使到了C99早已頒布的今天,書中提到的大多數陷阱和缺陷一如十五年前那樣使我們警醒。
Deitel父子合著的《C How to Program》一直是非常好的C語言入門教程,我手頭的中譯本名為《C程序設計教程》(機械工業出版社出版,原書第二版)。除了對技術的正規描述(輔以許多簡明扼要的例子)外,每一章後面都帶有小結、術語、常見的程序設計錯誤、良好的程序設計習慣、性能忠告、可移植性忠告、軟體工程評述、自我測驗練習及答案等。整書內容清晰,組織良好,易於閱讀和理解。值得一提的是,有許多入門書讀完一遍即可扔掉,而這一本是個例外。
結語
以上這幾本書很大程度上局限於描述C語言及標准庫本身,如果希望學習更專業的、領域相關的C程序設計技術,你可以在選擇閱讀這幾本書的基礎上繼續查閱專門書籍。此外,在C語言書籍領域,水平不相上下的作品有很多,這幾本只是根據我自身的閱讀體驗而做出的推薦。
我並不是一名C程序員,我的大多數時間都花在C的後裔語言尤其是C++身上了。然而,正如你知道的那樣,C++並不全是類和模板,不全是面向對象和泛型編程,在較低的層面,C++的各個實現一如既往在很大程度上兼容C。C++和C的親密關系決定了每一本C語言經典都應該是C++程序員的讀物。
這世界變化得真是太快。各色新事物層出不窮,讓人眼花繚亂、目不暇接。人們也很容易被那些五光十色的花哨玩意兒所吸引,常常會忘記構築過去、現在和未來的堅實基礎。C語言就是這樣的基礎之一。今天,世界上有許多我們看不見的重要軟體是用C語言(以及C++等)編寫而成的,正是它們在默默地支撐著這個信息世界的運轉。
Ⅳ 有什麼好的C語言編程書
先學譚浩強的《C語言程序設計》,這本書比較簡單可以入個門隨便考個全國二級
不過要想學好C語言這樣還遠遠不夠,建議多學習,精通C語言。一下是我搜集的書!!
比如《C語言之四書五經》中介紹的4本。(雖然這些書很多已經絕版了,但我相信電子版也是很有益處。況且,如果你真的想看,我相信你一定有辦法搞的到。)這些書你會在很短的時間內看完(比如一兩個月),這取決於你的基礎和悟性。之後要看那些書呢?我不妨再列幾本。Bjarne Stroustrup的《C++程序設計語言》(The C++ Programming Language)一定要看,這本書裡面對於C的一些基礎概念的定義,比我見過的其他任何C語言書都要全,都要仔細;Bjarne Stroustrup的《C++語言的設計與演化》(The Design and Evolution of C++)和David R.Hanson 的《C語言介面與實現 創建可重用軟體的技術》(C Interfaces and Implaementations Techniques for Creating Reusable Software)一定要看,這兩本書講述了如何用C來實現異常處理、實現類型的封裝和擴展等一些大的項目中經常用到的高級技術。
另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指針的重要性,
Ⅵ 關於如何學編程,請現在是程序員的你們來說說你們當初是怎麼學習的
剛接觸編程誰都是滿頭霧水的,尤其是那些曾經根本就沒用過電腦的人,這簡直就是比登天還難!!但是他既然能製造出來,難道還有學不會的道理。。。下面是我學學中的一些技巧,洗完對你有幫助:%D%A一。%D%A很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言?我是一個大學生,已經開發了很多年的程序,和很多剛剛起步的人一樣,學習的第一個計算機語言就是C語言。經過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優秀高效的程序,這簡直就是天方夜譚。為什麼C語言如此重要呢? %D%A第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述演算法,大多數的程序員願意使用C語言去描述演算法本身,所以,如果你想在程序設計方面有所建樹,就必須去學它。 %D%A第二:C語言能夠讓你深入系統底層,你知道的操作系統,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,如果你不懂C語言,怎麼可能深入到這些操作系統當中去呢?更不要說你去寫它們的內核程序了。 %D%A第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即使現在招聘程序員,考試都是考C語言,你想加入it行業,那麼就一定要掌握好C語言。 %D%A那麼究竟怎樣學習C語言呢? %D¡:工欲善其事,必先利其器 %D%A這里介紹幾個學習C語言必備的東東: %D%A一個開發環境,例如turbo C 2.0,這個曾經占據了DOS時代開發程序的大半個江山。但是現在windows時代,用turbo C有感覺不方面,編輯程序起來很吃力,並且拖放,更沒有函數變數自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。 %D%A一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。 %D%A除此以外,現在有很多輔助學習的軟體,畢竟現在是Window時代了,學習軟體多如牛毛,不象我們當初學習,只有讀書做題這么老套。我向大家推薦一個「集成學習環境(C語言)」,里邊的知識點總結和常式講解都非常好,還有題庫測試環境,據說有好幾千題,甚至還有一個windows下的trubo C,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者。還有一個「C語言學習系統」軟體,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。 %D¢:葵花寶典 %D%A學習計算機語言最好的方法是什麼?答曰:讀程序。 %D%A沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學習它們的常式。當然,對於沒有學過任何計算機語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的所有概念,然後不放過這一章中提到的所有常式,然後仔細研讀程序,直到每一行都理解了,然後找幾個編程題目,最好是和常式類似的或一樣的,自己試圖寫出這段已經讀懂的程序,不要以為常式你已經讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續研究常式,想想自己為什麼寫不出來,然後再去寫這段程序,反反復復,直到你手到擒來為止,祝賀你,你快入門了。 %D£:登峰造極 %D%A寫程序的最高境界其實就是掌握各種解決問題的手段(數據結構)和解決問題的方法(演算法)。 %D%A是不是寫出底層程序就是程序設計高手呢?非也,寫底層程序,無非是掌握了硬體的結構,況且硬體和硬體還不一樣,要給一個晶元寫驅動程序,無非就是掌握這塊晶元的各種寄存器及其組合,然後寫值讀值,僅此而已。這不過是熟悉一些io函數罷了。那麼怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個例子:你面前有10個人,找出一個叫「張三」的人,你該怎麼辦?第一種方法:直接對這10個人問:「誰叫張三」。第2種方法:你挨個去問「你是不是張三?」,直到問到的這個人就是張三。第三種方法:你去挨個問一個人「你認不認識張三,指給我看」。不要小看這個問題,你說當然會選第一種方法,沒錯恭喜你答對了,因為這個方法最快,效率最高,但是在程序設計中找到解決問題的最優方法和你用的手段卻是考驗一個程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個問題類似於數據結構和演算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用演算法,是登峰造極的必然之路。最後給大家推薦嚴尉敏的《數據結構》清華大學出版社,希望每一個想成為程序設計高手的人研讀此書。[編輯:趙晉軍] %D%A二,語言學習方法 %D%A談談偶的學習方法,拋磚引玉! %D%A學習不論講不講方法,最終都能學會。但是別人1個月學會了,而你卻100年才學會,這不就晚了么?:)所以說,學習還是要講究方法的。學習方法正確,事半功倍;學習方法不正確,事倍而功半。 %D%A什麼才是學習C語言的捷徑?我的答案是看書。書中所寫,是前人數十年經驗所寫,看十本書,就相當於汲取了前人數十年的功力,那麼你的內功也會迅速上升1甲子。:)書當然要看好書,只有好書才營養豐富。假如你花了1天時間看了一本破書,而該書介紹的知識雖然對於你來說是全新的知識,但是由於書中組織不當、或者深度不夠,使你獲取的營養很少,還不如自己研究一天來的快,這種書就不值當看了。學習C語言要看那些好書?我認為首先要把基礎書給看扎實了,比如《C語言之四書五經》中介紹的4本。(雖然這些書很多已經絕版了,但我相信電子版也是很有益處。況且,如果你真的想看,我相信你一定有辦法搞的到。)這些書你會在很短的時間內看完(比如一兩個月),這取決於你的基礎和悟性。之後要看那些書呢?我不妨再列幾本