天天看點

幫我妹一 jio 踹開了 C 語言的大門,從此學習的路上不再迷茫不再彷徨(史上最強 C語言學習路線)

關注我比較久的讀者都知道了,我妹今年上大一,學校安排的程式設計語言是 C 語言,這對于一個初學程式設計的小白來說,并不容易!作為她親哥的我,肩膀上抗着巨大的責任,那就是盡全力幫助她入門。

前段時間為了她專門調研了一波 IDE(有我倆的合影,快去瞧瞧),最後我比較鐘情 Visual Studio Code,輕量級,高顔值。

我妹給我回報說,學校老師安排的課程跟不上,上課經常走神,學的雲裡霧裡,問我有什麼好的辦法沒?不想就這麼白白浪費了時間(還是有點覺悟哈)。

既然學校老師的課聽不懂,那不妨聽聽網上的課,比如我之前推薦的浙大翁恺教授的 C 語言課程,在 B 站上可以找得到。現在還有,不知道以後還會不會下架,因為涉及到一些版權的問題。侯捷老師的 C++ 視訊課都已經全部下架了,是以早點去白嫖,千萬别後悔。

位址我這裡再貼一下:

https://www.bilibili.com/video/BV19W411B7w1

要學習 C 語言的讀者抓緊時間去看一下,建議 1.5 倍速食用。我就是按照這麼一個速度去看的,感覺不愧是浙大的教授,語言的表達能力,以及對程式的認知能力,尤其是對底層知識的一些講解,确實配得上一個字——“彩”!

我按照這個視訊的目錄整理了一條以周為機關時間的學習路線,希望我妹在開學後能按照這個進度去學習一遍。讀者朋友們也可以參照。可能有些知識學習起來比較困難,比如說二進制這種涉及到底層方面的内容,建議多次食用。

當然了,學習任何一門程式設計語言都不容易,看一遍視訊是不夠的,可能有些知識點吸收不了。那就多看幾遍,反正我就打算再看一遍,然後把涉及到程式在電腦上敲一遍,然後記錄一些筆記,釋出到我的部落格上。

我之前有學習 Java 的經驗加持,是以肯定會比我妹學起來容易得多,但說句實在話,不是我謙虛,這第一遍視訊仍然有很多我之前沒有掌握到的知識點。

程式設計語言都是相通的,C 語言作為 Java 語言的母胎,還是非常值得去學習一下打打基礎的。好了,接下來來看一下我整理的學習路線,大部分來源于視訊的目錄,我稍作了删減。

第一周

1、計算機和程式設計語言

2、計算機的思維方式

3、為什麼選擇 C 語言

4、C 語言的簡單曆史

5、C 語言的程式設計軟體

6、第一個 C 語言的小程式

7、詳解第一個 C 語言的小程式

8、簡單計算

9、macOS 作業系統下如何在指令行進行代碼編輯和源代碼編譯

第二周

1、變量如何定義

2、變量的指派和初始化

3、C語言的程式輸入

4、常量和變量

5、浮點數

6、表達式

7、運算符的優先級

8、交換兩個變量的值

9、複合指派符和遞增遞減

第三周

1、0 和 o 的顯示差別

2、if 語句

3、關系運算符

4、注釋

5、else 語句

6、嵌套的 if-else 語句

7、級聯的 if-else-if 語句

8、switch 語句

第四周

1、while 循環

2、do-while 循環

3、for 循環

4、break 關鍵字

5、continue 關鍵字

6、嵌套循環

7、goto 語句

第五周(練習題)

1、前 N 項求和

2、逆反數字

3、求最大公約數(輾轉相除法)

4、求符合給定條件的整數集

5、求水仙花數

6、九九乘法表

7、 素數求和

8、猜數遊戲

第六周

1、資料類型

2、整數的位數

3、整數與二進制

4、整數的範圍

5、整數的格式化

6、八進制和十六進制

7、如何選擇整數類型

8、浮點數:double 和 float

9、浮點數的範圍與精度

10、字元類型

11、逃逸字元

12、類型轉換

13、bool 類型

14、邏輯運算符

第七周

1、函數的定義和調用

2、函數的傳回值

3、函數的順序及原型

4、函數的參數及傳遞

5、本地變量

第八周

1、數組的定義

2、數組的下标

3、二維數組

4、&運算符

5、指針

6、 指針與數組

7、指針與 const

8、指針運算

9、動态記憶體配置設定

10、可變數組

第九周

1、字元串變量

2、字元串輸入輸出

3、字元串數組

4、單字元輸入輸出

5、字元串函數 strlen

6、字元串函數 strcmp

7、字元串函數 strcat

8、字元串搜尋函數

第十周

1、枚舉

2、結構類型

3、結構與函數

4、結構中的結構

5、類型定義

6、全局變量

7、靜态本地變量

第十一周

1、宏定義

2、帶參數的宏

3、頭檔案

4、格式化輸入輸出

5、檔案輸入輸出

6、二進制檔案

7、按位運算

8、移位運算

第十二周

1、連結清單

2、連結清單的函數

3、連結清單的搜尋

4、連結清單的删除

第十三周

到了這一周,基本上 C 語言的理論知識就學完了,接下來就到了實踐出真知的階段了。到底有沒有學會,就看能不能自己動手根據需求寫出符合要求的代碼。很多初學者吃虧就吃虧在這個方面,敲的代碼太少,導緻看代碼的時候感覺自己像個程式員,要主動寫代碼的時候就感覺還沒有入門。原因很簡單,就是因為敲的代碼太少了,甚至可以說,有些小套路的代碼是要背會的。

那到哪找習題做呢?有沒有一些經典的例子呢?比如說第五周提到的求最大公約數、求水仙花數、九九乘法表這些?

當然有,runoob.com 上有一百道經典的題目,并且給出了參考答案,我看了一下,還真不錯。

如果能把這些習題全部做出來的話,那基本上可以自信的拍拍胸膛,信誓旦旦地說,自己是一名合格的 C 語言程式員了。下面是網址。

https://www.runoob.com/cprogramming/c-100-examples.html

除了上面這些,我再列舉一些經典的(來源于 CSDN)題目,供大家參考。可以說不管是學哪門子程式設計語言,這些例子都是繞不開的。我當年學 Java 的時候就敲過這些例子,敲完後感覺自己的嘴角洋溢着自信的笑容。

1、斐波那契數列

2、判斷 101-200 之間有多少個素數,并輸出所有素數及素數的個數。

3、找出 1000 以内的所有完數。

4、楊輝三角。

5、字元串反轉。

6、用指針變量輸出結構體數組元素。

7、建立一個有三個結點的簡單連結清單。

有更多經典的例子,大家可以在評論區給出哈。

第十四周

有些讀者喜歡看視訊學習,有些知友可能更喜歡線上學習網站,那能不能推薦一些呢?好的,你稍等,這就來,我已經給大家準備好了。

雖然是英文版的學習網站,但隻要保持着高中時期的詞彙量,閱讀是沒有問題的。即便是有問題,借助一下翻譯工具就完全沒有問題了。最新的 Safari 浏覽器還提供了及時翻譯功能,點選位址欄的翻譯小圖示就可以翻譯成中文了,閱讀體驗真不錯。

幫我妹一 jio 踹開了 C 語言的大門,從此學習的路上不再迷茫不再彷徨(史上最強 C語言學習路線)

下面是翻譯後的内容,感覺翻譯得挺舒适的。

幫我妹一 jio 踹開了 C 語言的大門,從此學習的路上不再迷茫不再彷徨(史上最強 C語言學習路線)

這個網站底部還提供了線上練習的功能,更改完示例代碼後,點選「Run」按鈕就可以直接運作,及時看到輸出結果。

幫我妹一 jio 踹開了 C 語言的大門,從此學習的路上不再迷茫不再彷徨(史上最強 C語言學習路線)

愛了愛了。網站連結我貼一下,速去收藏。

https://www.learn-c.org/

第十五周

大一這麼下勁的學習,是為了什麼?

我想很大一部分讀者和我妹不太一樣,她隻想找份工作,哈哈哈,我對她要求也沒那麼嚴苛。

大家可能想要在大學畢業後順利進入大廠工作(不想拿命換錢的可以選擇銀行的科技崗),那想要進入大廠的話,就需要趁早把算法題刷一刷,算法厲害的人進大廠還是相對容易些。

我之前整理了一份 GitHub 上開源的一本刷題筆記,作者是谷歌的一名員工,實力非常強勁,他寫的這本算法筆記的品質更是沒得說。代碼是 C++ 寫的,C 語言入門後學習起來的曲線就很平緩了。大家剛好可以趁着學習完 C 語言的熱情大刷特刷一波,趁早建立起優勢。

看完谷歌學長的刷題筆記,我決定 2021 年手撕這101道 Leetcode 算法題

網盤連結:https://pan.baidu.com/s/1ojBerkBfgMFpYcj-JfDKlw 提取碼:5ttz

我是沉默王二,喜歡這篇内容的讀者可以給個贊(一鍵三連最好了),順帶關注下我,從此學習路上不再孤單寂寞冷,歐耶。