(第六版) Bradley L. Jones, Peler Aitken 著(zhù). 信達工作室 譯. 人民郵電出版社 這本書(shū)對初學(xué)者很好, 如果有點(diǎn)基礎那就更好了. 建議選擇譚浩強譚老師的書(shū),簡(jiǎn)單易學(xué),理論與實(shí)踐結合的很好,而且如果能認真學(xué)的話(huà),你會(huì )發(fā)現你的C語(yǔ)言基礎非常的實(shí)。
也不是說(shuō)其他的書(shū)不好,但是有些書(shū)只是為了讓讀者入門(mén),沒(méi)有前途呀。 先讀譚浩強的《C語(yǔ)言程序設計》,這是公認的中文入門(mén)級教材。
但是書(shū)中的代碼風(fēng)格不敢恭維。看完這本,推薦《21天學(xué)通C語(yǔ)言》,這本書(shū)比較好,個(gè)人感覺(jué)。
看完這兩本,你就可以進(jìn)階C++了。 C語(yǔ)言只要把基礎打好就好,你要是想精通的話(huà),最好是精通C++,這樣比較有前途。
但不要操之過(guò)急。
如果是想通過(guò)計算機等級考試 就買(mǎi)一本全國計算機等級考試二級試題認真做就可以了 當然也要加強上機實(shí)踐。
怎樣才能學(xué)好C語(yǔ)言
第一:C語(yǔ)言語(yǔ)法結構很簡(jiǎn)潔精妙,寫(xiě)出的程序也很高效,很便于描述算法,大多數的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設計方面有所建樹(shù),就必須去學(xué)它。
第二:C語(yǔ)言能夠讓你深入系統底層,你知道的操作系統,哪一個(gè)不是C語(yǔ)言寫(xiě)的?所有的indows, Unix, Linux, Mac, os/2,沒(méi)有一個(gè)里外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統當中去呢?更不要說(shuō)你去寫(xiě)它們的內核程序了。
第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C++,Java,C#,J#,perl。哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門(mén)語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習,你就可以用這些新型的語(yǔ)言去開(kāi)發(fā)了,這個(gè)再一次驗證了C語(yǔ)言是程序設計的重要基礎。還有啊,多說(shuō)一點(diǎn):即使現在招聘程序員,考試都是考C語(yǔ)言,你想加入it行業(yè),那么就一定要掌握好C語(yǔ)言。
那么究竟怎樣學(xué)習C語(yǔ)言呢?
1:工欲善其事,必先利其器
這里介紹幾個(gè)學(xué)習C語(yǔ)言必備的東東:
一個(gè)開(kāi)發(fā)環(huán)境,例如turbo C 2.0,這個(gè)曾經(jīng)占據了DOS時(shí)代開(kāi)發(fā)程序的大半個(gè)江山。但是現在windows時(shí)代,用turbo C有感覺(jué)不方面,編輯程序起來(lái)很吃力,并且拖放,更沒(méi)有函數變量自動(dòng)感應功能,查詢(xún)參考資料也不方便。建議使用Visual C++,這個(gè)東西雖然比較大塊頭,但是一旦安裝好了,用起來(lái)很方便。
一本學(xué)習教程,現在C語(yǔ)言教材多如牛毛,但推薦大家使用《C語(yǔ)言程序設計》譚浩強主編 第二版 清華大學(xué)出版社,此書(shū)編寫(xiě)的很適合初學(xué)者,并且內容也很精到。
除此以外,現在有很多輔助學(xué)習的軟件,畢竟現在是Window時(shí)代了,學(xué)習軟件多如牛毛,不象我們當初學(xué)習,只有讀書(shū)做題這么老套。我向大家推薦一個(gè)“集成學(xué)習環(huán)境(C語(yǔ)言)”,里邊的知識點(diǎn)總結和例程講解都非常好,還有題庫測試環(huán)境,據說(shuō)有好幾千題,甚至還有一個(gè)windows下的trubo C,初學(xué)者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學(xué)者。還有一個(gè)“C語(yǔ)言學(xué)習系統”軟件,不過(guò)感覺(jué)只是一個(gè)題庫系統,如果你覺(jué)得題做的不夠,不妨也可以試試。
2:葵花寶典
學(xué)習計算機語(yǔ)言最好的方法是什么?答曰:讀程序。
沒(méi)錯,讀程序是學(xué)習C語(yǔ)言入門(mén)最快,也是最好的方法。如同我,現在學(xué)習新的J#,C#等其他語(yǔ)言,不再是抱著(zhù)書(shū)本逐行啃,而是學(xué)習它們的例程。當然,對于沒(méi)有學(xué)過(guò)任何計算機語(yǔ)言的初學(xué)者,最好還是先閱讀教程,學(xué)習完每一章,都要認真體會(huì )這一章的所有概念,然后不放過(guò)這一章中提到的所有例程,然后仔細研讀程序,直到每一行都理解了,然后找幾個(gè)編程題目,最好是和例程類(lèi)似的或一樣的,自己試圖寫(xiě)出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫(xiě)出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫(xiě)不出來(lái),也不要著(zhù)急,回過(guò)頭來(lái)再繼續研究例程,想想自己為什么寫(xiě)不出來(lái),然后再去寫(xiě)這段程序,反反復復,直到你手到擒來(lái)為止,祝賀你,你快入門(mén)了。
3:登峰造極
寫(xiě)程序的最高境界其實(shí)就是掌握各種解決問(wèn)題的手段(數據結構)和解決問(wèn)題的方法(算法)。
是不是寫(xiě)出底層程序就是程序設計高手呢?非也,寫(xiě)底層程序,無(wú)非是掌握了硬件的結構,況且硬件和硬件還不一樣,要給一個(gè)芯片寫(xiě)驅動(dòng)程序,無(wú)非就是掌握這塊芯片的各種寄存器及其組合,然后寫(xiě)值讀值,僅此而已。這不過(guò)是熟悉一些io函數罷了。那么怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個(gè)例子:你面前有10個(gè)人,找出一個(gè)叫“張三”的人,你該怎么辦?第一種方法:直接對這10個(gè)人問(wèn):“誰(shuí)叫張三”。第2種方法:你挨個(gè)去問(wèn)“你是不是張三?”,直到問(wèn)到的這個(gè)人就是張三。第三種方法:你去挨個(gè)問(wèn)一個(gè)人“你認不認識張三,指給我看”。不要小看這個(gè)問(wèn)題,你說(shuō)當然會(huì )選第一種方法,沒(méi)錯恭喜你答對了,因為這個(gè)方法最快,效率最高,但是在程序設計中找到解決問(wèn)題的最優(yōu)方法和你用的手段卻是考驗一個(gè)程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個(gè)問(wèn)題類(lèi)似于數據結構和算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用算法,是登峰造極的必然之路。最后給大家推薦嚴尉敏的《數據結構》清華大學(xué)出版社,希望每一個(gè)想成為程序設計高手的人研讀此書(shū)。
零基礎學(xué)c語(yǔ)言教程內容:按照日期來(lái)看就行了,零基礎班主要講一些基礎,適合入門(mén)學(xué)習。
1.C語(yǔ)言概述,學(xué)習方法,開(kāi)發(fā)環(huán)境搭建,HelloWorld案例分析,常量與變量;2.數據類(lèi)型,數據類(lèi)型轉換,數據輸入與輸出;3.C語(yǔ)言運算符,C語(yǔ)言操作符;4.C語(yǔ)言表達式,表達式優(yōu)先級;5.C語(yǔ)言流程控制,分支,順序,循環(huán)邏輯控制;6.函數概述與引用,簡(jiǎn)單遞歸,簡(jiǎn)單嵌套,C語(yǔ)言調用函數示例;7.數組,二維數組,高維數組,詳細案例;8.指針,指針與地址,指針與數組;9.指針與字符串,指針與函數,多重指針;10.結構體,共用體,枚舉,typedef;11.宏定義,預編譯,文件包含,條件編譯;12.內存分析,作用域,生存期,可見(jiàn)域;13.C語(yǔ)言調試,排錯,分析技巧;14.簡(jiǎn)單鏈表;15.綜合復習型測試。
1:工欲善其事,必先利其器這里介紹幾個(gè)學(xué)習C語(yǔ)言必備的東東:一個(gè)開(kāi)發(fā)環(huán)境,例如turbo C 2.0,這個(gè)曾經(jīng)占據了DOS時(shí)代開(kāi)發(fā)程序的大半個(gè)江山。
但是現在windows時(shí)代,用turbo C有感覺(jué)不方面,編輯程序起來(lái)很吃力,并且拖放,更沒(méi)有函數變量自動(dòng)感應功能,查詢(xún)參考資料也不方便。建議使用Visual C++,這個(gè)東西雖然比較大塊頭,但是一旦安裝好了,用起來(lái)很方便。
一本學(xué)習教程,現在C語(yǔ)言教材多如牛毛,但推薦大家使用《C語(yǔ)言程序設計》譚浩強主編 第二版 清華大學(xué)出版社,此書(shū)編寫(xiě)的很適合初學(xué)者,并且內容也很精到。除此以外,現在有很多輔助學(xué)習的軟件,畢竟現在是Window時(shí)代了,學(xué)習軟件多如牛毛,不象我們當初學(xué)習,只有讀書(shū)做題這么老套。
我向大家推薦一個(gè)“集成學(xué)習環(huán)境(C語(yǔ)言)”,里邊的知識點(diǎn)總結和例程講解都非常好,還有題庫測試環(huán)境,據說(shuō)有好幾千題,甚至還有一個(gè)windows下的trubo C,初學(xué)者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學(xué)者。還有一個(gè)“C語(yǔ)言學(xué)習系統”軟件,不過(guò)感覺(jué)只是一個(gè)題庫系統,如果你覺(jué)得題做的不夠,不妨也可以試試。
2:葵花寶典學(xué)習計算機語(yǔ)言最好的方法是什么?答曰:讀程序。沒(méi)錯,讀程序是學(xué)習C語(yǔ)言入門(mén)最快,也是最好的方法。
如同我,現在學(xué)習新的J#,C#等其他語(yǔ)言,不再是抱著(zhù)書(shū)本逐行啃,而是學(xué)習它們的例程。當然,對于沒(méi)有學(xué)過(guò)任何計算機語(yǔ)言的初學(xué)者,最好還是先閱讀教程,學(xué)習完每一章,都要認真體會(huì )這一章的所有概念,然后不放過(guò)這一章中提到的所有例程,然后仔細研讀程序,直到每一行都理解了,然后找幾個(gè)編程題目,最好是和例程類(lèi)似的或一樣的,自己試圖寫(xiě)出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫(xiě)出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫(xiě)不出來(lái),也不要著(zhù)急,回過(guò)頭來(lái)再繼續研究例程,想想自己為什么寫(xiě)不出來(lái),然后再去寫(xiě)這段程序,反反復復,直到你手到擒來(lái)為止,祝賀你,你快入門(mén)了。
3:登峰造極寫(xiě)程序的最高境界其實(shí)就是掌握各種解決問(wèn)題的手段(數據結構)和解決問(wèn)題的方法(算法)。是不是寫(xiě)出底層程序就是程序設計高手呢?非也,寫(xiě)底層程序,無(wú)非是掌握了硬件的結構,況且硬件和硬件還不一樣,要給一個(gè)芯片寫(xiě)驅動(dòng)程序,無(wú)非就是掌握這塊芯片的各種寄存器及其組合,然后寫(xiě)值讀值,僅此而已。
這不過(guò)是熟悉一些io函數罷了。那么怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個(gè)例子:你面前有10個(gè)人,找出一個(gè)叫“張三”的人,你該怎么辦?第一種方法:直接對這10個(gè)人問(wèn):“誰(shuí)叫張三”。
第2種方法:你挨個(gè)去問(wèn)“你是不是張三?”,直到問(wèn)到的這個(gè)人就是張三。第三種方法:你去挨個(gè)問(wèn)一個(gè)人“你認不認識張三,指給我看”。
不要小看這個(gè)問(wèn)題,你說(shuō)當然會(huì )選第一種方法,沒(méi)錯恭喜你答對了,因為這個(gè)方法最快,效率最高,但是在程序設計中找到解決問(wèn)題的最優(yōu)方法和你用的手段卻是考驗一個(gè)程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個(gè)問(wèn)題類(lèi)似于數據結構和算法中的:Map數據結構,窮舉查找和折半查找。
所以掌握好數據結構和一些常用算法,是登峰造極的必然之路。最后給大家推薦嚴尉敏的《數據結構》清華大學(xué)出版社,希望每一個(gè)想成為程序設計高手的人研讀此書(shū)。
二,語(yǔ)言學(xué)習方法談?wù)勁嫉膶W(xué)習方法,拋磚引玉!學(xué)習不論講不講方法,最終都能學(xué)會(huì )。但是別人1個(gè)月學(xué)會(huì )了,而你卻100年才學(xué)會(huì ),這不就晚了么?:)所以說(shuō),學(xué)習還是要講究方法的。
學(xué)習方法正確,事半功倍;學(xué)習方法不正確,事倍而功半。什么才是學(xué)習C語(yǔ)言的捷徑?我的答案是看書(shū)。
書(shū)中所寫(xiě),是前人數十年經(jīng)驗所寫(xiě),看十本書(shū),就相當于汲取了前人數十年的功力,那么你的內功也會(huì )迅速上升1甲子。:)書(shū)當然要看好書(shū),只有好書(shū)才營(yíng)養豐富。
假如你花了1天時(shí)間看了一本破書(shū),而該書(shū)介紹的知識雖然對于你來(lái)說(shuō)是全新的知識,但是由于書(shū)中組織不當、或者深度不夠,使你獲取的營(yíng)養很少,還不如自己研究一天來(lái)的快,這種書(shū)就不值當看了。學(xué)習C語(yǔ)言要看那些好書(shū)?我認為首先要把基礎書(shū)給看扎實(shí)了,比如《C語(yǔ)言之四書(shū)五經(jīng)》中介紹的4本。
(雖然這些書(shū)很多已經(jīng)絕版了,但我相信電子版也是很有益處。況且,如果你真的想看,我相信你一定有辦法搞的到。)
這些書(shū)你會(huì )在很短的時(shí)間內看完(比如一兩個(gè)月),這取決于你的基礎和悟性。之后要看那些書(shū)呢?我不妨再列幾本。
Bjarne Stroustrup的《C++程序設計語(yǔ)言》(The C++ Programming Language)一定要看,這本書(shū)里面對于C的一些基礎概念的定義,比我見(jiàn)過(guò)的其他任何C語(yǔ)言書(shū)都要全,都要仔細;Bjarne Stroustrup的《C++語(yǔ)言的設計與演化》(The Design and Evolution of C++)和David R.Hanson 的《C語(yǔ)言接口與實(shí)現 創(chuàng )建可重用軟件的技術(shù)》(C Interfaces and Implaementations Techniques for Creating Reusable Software)一定要看,這兩本書(shū)講述了如何用C來(lái)實(shí)現異常處理、實(shí)現類(lèi)型的封裝和擴展等一些大的項目中經(jīng)常用到的高級技術(shù)。其他的書(shū),操作系統的要看,編譯原理的要看,算法的。
C 語(yǔ)言屬于易學(xué)難精的一門(mén)計算機語(yǔ)言。
如果只是簡(jiǎn)單學(xué)習C語(yǔ)言,那么符合以下條件即可開(kāi)始學(xué)習:
1、識字,可以閱讀C語(yǔ)言教材;
2、認識英文字母,標點(diǎn)符合,阿拉伯數字,并可以在電腦上打出來(lái)。
如果要想把C語(yǔ)言學(xué)的精通,那么如果有如下基礎,則相對更容易一些:
1、數學(xué)基礎。
C語(yǔ)言中很多方面涉及數學(xué)模型,所以數學(xué)好對C的學(xué)習幫助很大。
2、英文基礎。
流暢的英文閱讀能力,可以輔助C語(yǔ)言學(xué)習。
3、基本的硬件知識。
C語(yǔ)言是一門(mén)直接面向底層,可以操作硬件的計算機編程語(yǔ)言,如果可以了解部分硬件知識,對指令集,內存的訪(fǎng)問(wèn)等有一定了解,那么更容易深入學(xué)習C語(yǔ)言本質(zhì)。
4、算法及數據結構。
編程離不開(kāi)算法。剛學(xué)編程可以一點(diǎn)算法不懂,但一個(gè)精通C語(yǔ)言的人是必須要學(xué)習算法的。
學(xué)習C語(yǔ)言不是一朝一夕的事情,但也不需要花費十年時(shí)間才能精通。
1、要讀就讀好書(shū),否則不如不讀
所有初學(xué)者面臨的第一個(gè)問(wèn)題便是:如何選擇教材,好的開(kāi)始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會(huì )指定一本很差勁的C語(yǔ)言課本;而幸運的是,你還可以再次選擇,比如:
《C語(yǔ)言程序設計》
《C程序設計語(yǔ)言》
《C語(yǔ)言參考手冊》
《C和指針》
《Pointers on C》
2、初學(xué)者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學(xué)習環(huán)境,而且千萬(wàn)不要在IDE的使用技巧上過(guò)多糾纏,因為今后一定要轉向Unix環(huán)境的。
Visual C++ 6.0使用很方便,調試也很直觀(guān),但其默認的編譯器對C標準的支持并不好,而Dev C++使用gcc編譯器,對C99的標準都支持良好。
3、書(shū)已選定,環(huán)境配置完成,正所謂萬(wàn)事俱備,只欠自己的努力了。
請從書(shū)的前言開(kāi)始,仔細地閱讀手頭的教材,很多人看書(shū)喜歡直接從第一章開(kāi)始看,這是錯誤的做法。前言是作者對整本書(shū)的大體介紹,作者一般會(huì )告訴你需要什么基礎才能夠順利閱讀本書(shū),這可以幫助你檢驗自己的基礎知識是否已經(jīng)具備。看完前言,還要瀏覽一下目錄,了解一下書(shū)的整體結構,順便給自己安排一下學(xué)習計劃。
4、學(xué)習C語(yǔ)言,必需注意每一個(gè)細節,書(shū)上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書(shū)上說(shuō)的一致才能算是學(xué)完了一個(gè)例子,如果不一致,就要仔細找原因。出了書(shū)本上有的例子,自己還要“創(chuàng )造”一些例子,比如學(xué)習運算符優(yōu)先級的時(shí)候,可以寫(xiě)幾個(gè)相同的表達式,在不同的位置加上括號,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書(shū)上的例子以及改造之后的例子,還有自己“創(chuàng )造”的例子,都應該仔細地歸類(lèi)保存,并且要在源代碼中寫(xiě)上簡(jiǎn)短的注釋?zhuān)U述這個(gè)例子的意圖。
5、仔細讀書(shū)、認真抄寫(xiě)源代碼、獨立完成習題外加更進(jìn)一步的實(shí)驗,最后將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學(xué)習需要精通的技術(shù),如果不是學(xué)習C語(yǔ)言,你還要具體情況具體分析。
6、最后,還有非常非常重要的一點(diǎn)沒(méi)有提及──代碼風(fēng)格,從最開(kāi)始學(xué)習就必須強迫自己模仿最優(yōu)秀的代碼風(fēng)格。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.653秒