1. 學習C語言有什麼書適合新手看
學習c語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是「最小的代價」,也絕不是什麼捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經歷艱苦的過程。
一、要讀就讀好書,否則不如不讀
所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。
大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以網路一下:)
Kernighan和 Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫「精通C語言」了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如Visual Studio,而Unix程序員更加鍾愛Makefile與控制台。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制台操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉 Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。
對於一個只懂得Windows基本操作、連 DOS是什麼都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注於C 語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。
所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而Dev C++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標准幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過那過於復雜了)。
等你學完一本C語言的教材,你一定要轉向Unix平台繼續學習,幾乎所有的C語言高級教程都是基於Unix平台的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同於Windows平台的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格(說到代碼風格,我會專門寫一篇文章詳細敘述)。
歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在准備向「高手」方向努力時,請先轉向Unix平台。
三、萬事俱備,你就是東風
書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。
學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要「創造」一些例子,比如學習運算符優先順序的時候,可以寫幾個相同的表達式,在不同的位置加上括弧,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之後的例子,還有自己「創造」的例子,都應該仔細地歸類保存,並且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。
例子之後就是習題了,我建議初學者把所有的習題都獨立做一遍,然後對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。
也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清 Windows的系統編程了,但只要花幾分鍾翻出以前的代碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。
仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最後將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。
寫到最後,還有非常非常重要的一點沒有提及──代碼風格,從最開始學習就必須強迫自己模仿最優秀的代碼風格。因為代碼風格太重要內容也太多,我會用專門的一篇文章來詳細討論,請大家關注《程序員之路──關於代碼風格》。
2. C語言進階學習有哪些經典書籍
《C語言程序設計》
作者:郭有強 編
出 版 社:清華大學出版社
評價:書很利索,該有的都有,如果你還沒有一本滿意的C語言課本,買它沒錯。(也可以閱讀外國的經典C語言書籍)
《C和指針》
POINTERS ON C Kenneth A.Reek、
徐波 人民郵電出版社
評價:不算厚的書,糾正對指針的錯誤理解,這是必讀經典,相信會帶給你很多思考。(單單一本還不夠,繼續往後看)
《C陷阱與缺陷》
Andrew Koenig、 高巍
人民郵電出版社
評價:172頁,應當1-2天看完,讀完豁然開朗,對C語言常見的陷阱進行剖析,必須經典。
《C專家編程》
Expert C Programming Deep C Secrets Peter Van
Der Linden 人民郵電出版社 (2008-02出版)
評價:200多頁,應當2天左右看完,本書讀起來很舒坦,不可多得的好書,帶你領略語法之外的奧秘,必讀經典。
②數據結構與演算法:
《清華大學計算機系列教材•數據結構(C語言版)(附光碟1張)》
吳偉民、 嚴蔚敏
清華大學出版社
評價:數據結構都是類C的偽代碼描述,初次接觸編程的同學可能理解不了,我也一樣。我是看嚴蔚敏視頻學會的數據結構,希望這個辦法對你們也同樣有效。
《計算機演算法設計與分析(第3版)》
王曉東
電子工業出版社
評價:這是我們的課本,不過的確是學習它才把數據結構和演算法入門了,為後面進階做了鋪墊。
《演算法藝術與信息學競賽•演算法競賽入門經典》
劉汝佳
清華大學出版社
評價:了解數據結構怎麼用,常用演算法與思想,書不厚,但很給力。初學可能有障礙,但這的確是入門經典書籍,請不要放棄。
《演算法導論(原書第2版)》
科曼(Cormen T.H.)、等、 潘金貴
機械工業出版社 (2006-09出版)
評價:經典中的經典,無需多說,不要問我看哪些內容,負責任的說:有能力就多看點,其實都能看懂,書中的內容與思想將會終身受用。
《編程之美:微軟技術面試心得 》
《編程之美》小組
電子工業出版社
評價:微軟出品,像是一本小故事集,將數學和編程之美展露無疑,學起來很輕松,反復回顧收獲頗豐。
《編程珠璣(第2版)》
Jon Bentley、黃倩、 錢麗艷
人民郵電出版社
評價:主要是數據結構和演算法,都是常用的內容,不過作者思維新奇,跟隨作者一起思考會碰撞出不少火花,評價非常高的一本書,本人沒有順序閱讀,感興趣的內容翻了翻。
《演算法藝術與信息學競賽 》
劉汝佳
清華大學出版社
評價:放在最後,因為此書的確很專業,我這點智商也駕馭不了,信息學競賽必備。
《程序員面試寶典(第3版)》
歐立奇、劉洋、 段韜
電子工業出版社
評價:這本書很神奇,大二下學期的時候我就買了並看完了,等到大三找工作的時候發現里邊的提到的陷阱題目還是有點意思的,C語言掌握的怎麼樣拿這本書驗一驗就知道了。
《數學之美》
(《浪潮之巔》作者吳軍最新力作,李開復作序推薦,Google黑板報百萬點擊)
3. 大家在大學學習C語言用的是那本教材啊,是誰編寫的,可以推薦一本好的學習C語言的書嗎
譚浩強的是給新手看的,裡面的內容算是通俗易懂,比較容易學習,如果只是想混個學分可以買本看一下,但是譚的書對內存分配,指針,容器等重要的問題都沒有很好的描述清楚。如果想精通的話推薦你學《C Primer Plus》還有些國外翻譯本《c程序設計語言》。
4. C語言哪本書最好
潭浩強
清華大學出版社
學C語言的99%都用他的書
以下在網路上看到對他的書的評價
按∶
譚浩強
教授編寫的
《C程序設計
》一書受到廣泛的歡迎和高度評價。下面刊登幾所大學講授C語言
課程
的老師對《C程序設計》一書的評價意見。
清華大學計算機與信息管理中心
承擔著清華大學非
計算機專業
的「計算機軟體技術基礎」課,自1994年起選用清華大學出版的譚浩強教授編寫的《C程序設計》一書作為本課程教材,取得了很好的教學效果,深受師生們的歡迎,現正使用第二版作為
教材
。此書的特點及對教學的
促進作用
主要表現在以下幾方面:
1.內容全面,實用性強
此書涵蓋了程序設計
基礎知識
及C語言程序設計的全部內容,並介紹了大量常用
演算法
。通過學習此教材,初學程序設計的學生可以達到熟練運用C語言進行小規模應用開發的能力。
2.講解透徹,深入淺出
此書對
概念
講解透徹,使初學
計算機程序設計
的學生不僅學習了一種
高級語言
,而且能夠對相關基礎知識有準確深入的理解,例如在介紹
變數
的存儲類型時、介紹指針時都對
計算機
的
存儲管理
做了清楚的論述,使讀者知其然也知期所以然。廣大非計算機專業的學生學習
計算機課程
的學時很少,沒有足夠的
時間系統
地學習計算機專業基礎知識。因此像這樣將必要的基礎知識融會貫通到程序設計課程中,對學生的
知識結構
建設以及今後的深造和提高都大有裨益。
3.通俗易懂,易於自學
此書的一個突出優點就是,語言優美、舉例生動、
淺顯易懂
。學生在學習C語言之前,普遍有些畏難情緒,因為聽說C語言比較難學。的確C語言最初是面向專業
開發人員
的。但是讀了
這本書
之後,學生們不再懼怕C語言。很多學生說,讀這本書不僅
學會
了C語言,而且讀的
過程
本身就是一種享受,不像有些專業書籍,堆砌大量技術
名詞
,艱澀難懂。由於這本書易於自學,給我們的教學工作帶來很大幫助,使我們可以達到精講多練,逐步實現教師指導下的學生自主式
學習模式
。
4.結構清晰,循序漸進
由於本書結構清晰,
知識點
明確,循序漸進的內容組織方式非常符合
初學者
的認知
規律
,因此給教師組織
課堂教學
提供了很好的指導。我們按照這本書的內容結構組織教學,取得了學生和
教務處
的一致好評。
5.習題豐富,利於復習
計算機程序設計是一門實踐性很強的課程,因此僅僅通過閱讀教科書或聽課是不可能掌握的,學習程序設計的最重要環節就是實踐。本書每章都附有大量習題,並且有配套的習題解答,非常有利於學生復習鞏固課上所學的知識。也便於教師設計
實驗課
的
教學內容
。
5. 嘉應學院c語言程序實驗設計書(1). 學生基本信息及成績所選科目成績的錄入。 (
printf("C語言幫你搞定:QQ:563337217")
6. 學習C語言用的書
和其他語言相比(例如C++),C語言是一門比較「小」的語言,可以在較短的時間內入門,但是由於C的很強的表達能力和太多的細枝末節,要想精通比較困難。想精通有3種途徑:1)閱讀經典書籍,只讀經典。2)多看優良的源代碼。3)學習軟體設計,並應用於日常編程。C語言比較經典的書也就那麼幾本,全部看下來也花不了很多時間。語言的優劣問題更像是一個信仰的問題,沒有太多討論的必要,而且大多編程原則適用於任何語言。在這里只討論我視野所及的C語言書籍。
舉報.
推薦 15人 全部圖書(8)
2009-10-19 07:44:50添加 1. C語言程序設計
作者: 譚浩強
出版社: 清華大學出版社
評語 : 第0本 《C語言程序設計》譚浩強我們很少有學C語言的啟蒙書不是用這本的。如果你從來沒接觸過C語言,這本書還是適合作為入門的。盡管大學畢業之後就不再碰這本書,但是還記得當初這本書看了3遍、指針那部分看了至少5遍的那種心情。以後看了其它的書,才對C語言中的一些內容有更深的理解。相信大多數第一次接觸C語言的人都有類似的感覺。不要期望一本啟蒙的書帶給你想要的一切,一切才剛剛開始。
加入購書單 已在購書單
2009-10-19 07:48:08添加 2. C程序設計語言
作者: Brian W.Kernighan/Dennis M.Ritchie
出版社: 清華大學出版社
評語 : 第1本 《C程序設計語言》 Brian W. Kernighan / Dennis M. Ritchie 這本書又稱為 R&K C,還有誰能比C語言之父對C語言更有發言權的呢?推薦看英文版。你會驚訝於在短短不到200頁的篇幅內,這兩位牛人將C語言描述的這么清晰。即使不專門學C語言的人也可以拿出來翻翻
加入購書單 已在購書單
2009-10-19 07:44:50添加 3. C陷阱與缺陷
作者: 凱尼格
出版社: 人民郵電出版社
評語 : 第2本 《C陷阱與缺陷》Andrew Koenig Andrew Koenig的成名作,能幫助初學者減少90%的錯誤。一些錯誤(比如賦值符、運算符優先順序等)還是不時的會在自己的程序里出現,只是已經打過預防針了,很容易發現。另外作者寫了一本《Accelerated C++》,據說是C++的最佳入門書,狠贊!!
加入購書單 已在購書單
2009-10-19 07:44:50添加 4. C專家編程
作者: Peter Van Der Linden
出版社: 人民郵電出版社
評語 : 第3本 《C專家編程》(LinDen,P.V.D)一看書名就知道這丫不能拿來入門用的,第一次看的時候夠折磨大腦的。作者聲稱,編程的唯一原因是因為樂趣。相比之前的幾本書,這本書還介紹C語言運行的環境,更全面地考察了C語言。深入分析了C語言中一些容易混淆的概念,如復雜的聲明和定義、數組和指針、鏈接和運行時庫、內存等。很值得一讀。順便一提:鏈接庫可參考《深入理解計算機系統》的動態鏈接庫一章,寫得更易讀
加入購書單 已在購書單
2009-10-19 07:44:50添加 5. 編程精粹
作者: Steve Maguire
出版社: 人民郵電出版社
評語 : 第4本 《編程精粹:編寫高質量C語言代碼》 《Writing Solid Code》 Steve Maguire 這是我讀到C語言書中最驚嘆的一本,盡管寫出沒有bug的程序不太可能,但按照作者提供的方法,可以離這個目標很近。本書關注的更多是怎麼使用C語言開發工業級產品的問題。這本書源自作者十幾年不斷的追問自己兩個簡單的問題: 1)怎樣才能自動地查出這個錯誤? 2)怎樣才能避免這個錯誤? 「他的另一部名著Debugging the Development Process(中文版《微軟
加入購書單 已在購書單
2009-10-19 07:44:50添加 6. C Interfaces and Implementations
作者: David R. Hanson
出版社: Addison-Wesley Professional
評語 : 第5本 《C Interfaces and Implementations》 David R. Hanson 這本據說為唯一一本能和R&K C並駕齊驅的書,可惜中文版眾口一致說太爛,無處可載電子版,影印版跳票多年,原版USD 54.99實在承受不起,囊中羞澀,奈何奈何。想念多年,至今不能一睹芳容,深以為憾。
加入購書單 已在購書單
2009-10-19 07:44:50添加 7. C標准庫
作者: P. J. Plauger
出版社: 人民郵電出版社
評語 : 前面5本差不多夠了,另外推薦兩本,精力過剩的可以翻翻第6本 《C標准庫》P. J. Plauger 本書介紹C標准庫的實現,書中有較為詳盡的代碼。雖然這本書年代久遠,現在的實現肯定和以前也有差別,但是還是很有參考價值,特別是對C標准庫的實現有興趣的人。中文版太貴,英文電子版看得太累,還是以後有地方借的時候再繼續看。
加入購書單 已在購書單
2009-10-19 07:44:50添加 8. C語言參考手冊
作者: 哈比森
出版社: 機械工業出版社
評語 : 第7本 《C語言參考手冊》拿來備查的,C語言的任何細節幾乎都能在其中找到借到。書的第一部分介紹C語言語法細節。第二部分介紹運行時庫,可以和《C標准庫》參考閱讀。
7. 大學C語言程序設計實驗報告,求程序步驟。
#include<stdio.h>
void main()
{ float f=555.5678,ff;
int a[10]={ 0,1,2,3,4,5,6,7,8,9 },b[10],i;
FILE *fp;
if ( fp=fopen("TEXT.dat","wb+") )
{ fwrite(&f,sizeof(float),1,fp);
for ( i=0;i<10;i++ ) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
} else printf("無法建立文件。\n"); goto ERROREND;
if ( fp=fopen("TEXT.dat","rb") )
{ fread(&ff,sizeof(float),1,fp);
for ( i=0;i<10;i++ ) fread(&b[i],sizeof(int),1,fp);
fclose(fp);
} else printf("無法打開文件。\n"); goto ERROREND;
printf("%.2f ",ff); for ( i=0;i<10;i++ ) printf("%d ",b[i]); printf("\n");
ERROREND:;
}
8. 大一新生學習c語言,有什麼必看的書籍,或者有什麼建議
C語言入門到精通清華出版社出版的 C語言程序設計譚浩強,一般是大學教材 CPrimerPlus很多版本 CPrimerPlus5thEdition(ENG) C語言入門經典(第4版) 相關的電子書: 密碼:zj45
9. 現在大學生學的C語言是哪本書
現在大學配套的C語言書籍 跟不上 最新標准了。
我推薦學習C語言的書籍是: C Primer Plus中文版
開發工具是: VS2008 或者 VS2010
你也網路一下, 80X86匯編小站 網站裡面有篇文章是寫給C/C++語言初學者的.標題是:
如何正確的入門Windows系統下C/C++學習領域.
希望這篇文章對你有幫助,其實入門學習C語言,重要的是選擇一本好書和一個好的開發工具,如果有條件可以配備一個老師,這樣你學習效率將會有很大的提升,當然最重要還是你的學習態度 和 毅力.
10. 求大一第二學期C語言實驗四五的實驗報告!
.實驗報告規范實驗報告內容包括:1.實驗目的:說明實驗所驗證的知識點。2.需求分析:以無歧義的陳述說明程序設計的任務、約束條件、輸入輸出要求、對功能的規定及模型。3.邏輯設計:說明本程序中用到的所有抽象數據類型的定義、主程序的流程以及各程序模塊之間的層次調用關系。4.詳細設計:邏輯設計中定義的所有數據類型的實現,核心演算法的設計描述、人機界面設計、函數之間調用關系的描述,主要功能的演算法框架,測試數據設計。5.測試分析:測試結果的分析與討論,測試過程中遇到的主要問題及採取的解決措施。6.心得:軟體設計與實現過程中的經驗與體會,進一步改進的設想。7.程序清單:源程序中應有足夠的注釋。如果提交源程序軟盤,列出程序文件名。