帮我妹一 jio 踹开了 C 语言的大门,从此学习的路上不再迷茫不再彷徨(史上最强 C语言学习路线)

简介: 帮我妹一 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 浏览器还提供了及时翻译功能,点击地址栏的翻译小图标就可以翻译成中文了,阅读体验真不错。


image.png


下面是翻译后的内容,感觉翻译得挺舒适的。


image.png


这个网站底部还提供了在线练习的功能,更改完示例代码后,点击「Run」按钮就可以直接运行,及时看到输出结果。


image.png


爱了爱了。网站链接我贴一下,速去收藏。


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

第十五周


大一这么下劲的学习,是为了什么?


我想很大一部分读者和我妹不太一样,她只想找份工作,哈哈哈,我对她要求也没那么严苛。


大家可能想要在大学毕业后顺利进入大厂工作(不想拿命换钱的可以选择银行的科技岗),那想要进入大厂的话,就需要趁早把算法题刷一刷,算法厉害的人进大厂还是相对容易些。


我之前整理了一份 GitHub 上开源的一本刷题笔记,作者是谷歌的一名员工,实力非常强劲,他写的这本算法笔记的质量更是没得说。代码是 C++ 写的,C 语言入门后学习起来的曲线就很平缓了。大家刚好可以趁着学习完 C 语言的热情大刷特刷一波,趁早建立起优势。


看完谷歌学长的刷题笔记,我决定 2021 年手撕这101道 Leetcode 算法题


网盘链接:https://pan.baidu.com/s/1ojBerkBfgMFpYcj-JfDKlw 提取码:5ttz


我是沉默王二,喜欢这篇内容的读者可以给个赞(一键三连最好了),顺带关注下我,从此学习路上不再孤单寂寞冷,欧耶。


相关文章
|
15天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
24 5
|
6月前
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
495 1
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
20 0
|
2月前
|
存储 程序员 编译器
初识C语言,计算机语言的基石
初识C语言,计算机语言的基石
|
4月前
|
编译器 C语言
C语言函数的学习
掌握函数的使用是学习C语言的关键一环,理解和应用这些基本的函数概念将使你能够更有效地利用C语言的强大功能。
27 0
|
6月前
|
存储 程序员 Go
|
6月前
|
存储 编译器 C语言
c语言学习历程【1】
c语言学习历程【1】
84 1
|
6月前
|
算法 Java 程序员
面向对象编程(OOP)通过对象组合构建软件,C语言虽是过程式语言,但可通过结构体、函数指针模拟OOP特性
【6月更文挑战第15天】面向对象编程(OOP)通过对象组合构建软件,C语言虽是过程式语言,但可通过结构体、函数指针模拟OOP特性。封装可使用结构体封装数据和方法,如模拟矩形对象。继承则通过结构体嵌套实现静态继承。多态可通过函数指针模拟,但C不支持虚函数表,实现复杂。C语言能体现OOP思想,但不如C++、Java等语言原生支持。
68 7
|
6月前
|
C语言 C++ 编译器
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
|
6月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
52 1