C語言學習路線
05-21
C語言學習路線
推薦閱讀:
半年來的學習,也算有了初學者對C語言的一些感悟,我在此做個總結,對初學者給予一定的引導,少踩一些坑,提高學習效率。
從基礎開始
C語言的學習資料有很多,網上隨處可見,但這些資料對沒有方向的初學者來說很不友善。我列出了自己學習C語言的過程和資料。
精讀這幾本書:
- 譚浩強的《C程序設計》:非常好的C語言入門書籍,國內很有知名度
- Stephen Prata的《C Primer Plus》:國際上基本是以這本書為C語言入門書籍,有中文版。這本書既簡單易懂,又有一定的深度。
略讀這幾本書:
- K(Kernighan)&R(Ritchie)的《The C Programming Language》:這本書是C語言創始人寫的C語言入門書籍,雖然有點老,但是讀一讀對C語言的精髓有更好的理解。
- 《the standard C library》:這是C語言進階書目了,如果你想深入了解C語言庫的具體實現,這本書值得一讀。
跟完教學視頻:
- C程序設計上/下:李鳳霞教授的授課,中國大學慕課網上可以免費觀看,如果覺得看書有點難以理解,那麼這些視頻就毫無難度可言了,只要認真跟完這期視頻,完成相關練習,C語言輕鬆拿下。
多做OJ題:
編程不敲代碼是不行的,我推薦幾個online judge系統方便初學者做題:
- 北大的OpenJudge
- 浙大的ZOJ
經典C語言題目:
個人整理了一些遇到的經典C語言題,不多,但都足夠經典。如果這些題都能做出來,C語言也就掌握的差不多了。(對於有價值的題目我也會寫上一些文章來專門介紹)
- 求解一元二次方程:掌握基本語法,流程式控制制
- 貪吃的猴子 :掌握遞歸演算法
- 漢諾塔問題:掌握遞歸演算法
彭瑤:從漢諾塔問題理解迭代與遞歸
- 小蜜蜂 :掌握迭代演算法
- 分數的四則運算 :掌握分子分母的結構處理
- 零錢換整錢 :掌握暴力循環
- 數制轉換 :掌握數制原理,數制之間關係
- 掃雷 :掌握數組用法,基本數組數據處理方法
- 求最大公約數 :掌握常用演算法:輾轉相除法
- 拱豬計分 :綜合應用題,熟練編程的多情況分支處理,結構體運用,函數調用
- 鏈表排序 :掌握指針以及其應用鏈表
C語言練手小程序:
C語言的命令行不適合寫遊戲,但下面的幾個小遊戲可以嘗試下,可以參考參考我的源碼,互相交流
對於一個大一計科新生,有什麼代碼行數在500~1000的程序(c語言)可以試著寫來練手?- 貪吃蛇
- 五子棋
- 掃雷小遊戲
- 飛機大戰
- 2048
- 推箱子
- 坦克大戰
讀一讀計算機概論
在學C語言的同時可以看看計算機概論相關的書籍,這類知識對計算機小白非常重要,好好理解裡面的概念對今後學習有很大的幫助。
推薦這幾本書:
- 布魯克希爾的《計算機科學概論》
- 佛羅贊和莫沙拉夫的《計算機科學導論》
數據結構和演算法
這部分知識相當於C語言的進階知識啦,而且這些知識對所有語言是通用的,把它比作編程語言的靈魂毫不為過。
推薦這幾本書:
- 彭軍和向毅的《數據結構與演算法》
- 陳傑的《大話數據結構》
跟完教學視頻:
- 數據結構:浙江大學的國家精品慕課視頻,裡面的配套練習非常豐富,對小白也非常友好。
多做OJ題:
有關數據結構和演算法的Online Judge都是有一定的難度的,想要搞ACM的話推薦幾個Online Judge系統。
- 北京大學的Online Judge
- 杭州電子科技大學的OJ
經典數據結構和演算法題:
- 逆波蘭算術表達式 :棧的運用
- 二叉樹前序/中序/後序遍歷:二叉樹的遍歷
- 合併果子 :堆(二叉樹的一種)的運用
- 貪吃蛇最短路徑尋食:廣度優先搜索演算法(用到隊列)
- 貪吃蛇最快路徑選擇:深度優先搜索演算法(用到棧)
- 遺傳演算法計算函數零點:用到遺傳演算法的思想
安利幾個實用網站和工具
- 鳩摩搜索:電子版書籍下載網站,找不到資料的小夥伴們注意了
- BooKSC:論文、書籍下載網站
- 在線Matlab:在線版的Matlab,很實用
- DevCpp:簡易C語言編譯器
長期更新,共同進步
推薦閱讀:
※(轉)懂得全部 200 句就可以算是精通廣東話。
※Python NLTK自然語言處理:詞幹、詞形與MaxMatch演算法
※vipabc跨文化教育,多元的全球化語言學習環境
※7 個實用的自學西班牙語學習網站/播客