用户工具

站点工具


侧边栏

program:c:noobs

C语言从入门到进阶

酷码STEM实验室设计的编程成长总路线图是ScratchPythonC/C++。[2021更新]美国西点军校 Suzanne J. Mathews 等编写的最新教科书 Dive into Systems 致力于面向具有计算机科学入门知识并熟悉 Python 的学生介绍计算机系统的底层知识,包括计算机系统、计算机组织、操作系统和并行计算,以及 C 语言和汇编语言。此教材也证实了以上路线图的可行性。

如果要从C/C++直接入门编程,难度会大一些,类似形体训练(少儿舞蹈课)或者弹钢琴,通常是强迫课程+等待学生培养兴趣+悟性发现的过程;否则,比较容易出现“从入门到放弃”的结果。

编程是孩子们应对未来挑战的基本能力之一。编程教学一定要有趣、好玩、能与物理实体相关联,这样才能吸引学生主动参与。Arduino使用C/C++编写程序,因此优选结合此开源硬件学习C/C++。

以下以C++为例说明。如果其他老师告诉你:C语言的基本概念和设计方法相对比较容易理解,初学者应该从它入手,没有问题:开发环境相同,学习相应的关键语法即可。

开发环境

Windows 下如何选择 IDE?

Dev-C++

NOI、NOIP指定的C/C++集成开发环境是Dev-C++和Code::Blocks。

NOI 是National Olympiad in Informatics的缩写,译为“全国青少年信息学奥林匹克竞赛”;NOIP 是National Olympiad in informatics in Provinces的缩写,译为“全国青少年信息学奥林匹克联赛”。NOI、NOIP 都是奥林匹克竞赛的一种,参加者多为高中生,获奖者将被保送到名牌大学或者得到高考加分资格。

Dev-C++是一套用于开发C/C++的自由的集成开发环境,并以GPL作为散布许可。使用MinGW及GDB作为编译系统与调试系统。Dev-C++的IDE是利用Delphi开发的。其实,Dev-C++的更新开发和维护已经停滞(2006年),移植到Linux的项目也被暂停。

Code::Blocks是一个免费、开源、跨平台的整合式开发环境,主要针对开发C/C++程式而设计。自2021年9月1日启用的比赛用标准环境NOI Linux 2.0版(基于Ubuntu 20.04.1)中,Code::Blocks是主要的C/C++集成开发环境。

Code::Blocks

Code::Blocks 界面比 Dev-C++ 稍复杂,也是一款开源、跨平台、免费的 C/C++ IDE。

Visual Studio

Windows 下的标准 IDE,实际开发中常用,但对初学者不友好。

Linux 下如何选择 IDE?

Linux 下可以不使用 IDE,只使用 GCC 编译器和一个文本编辑器(例如 Gedit)即可,这样对初学者理解C语言程序的生成过程非常有帮助。 如果希望使用 IDE,那么可以选择 CodeLite、Code::Blocks、Anjuta、Eclipse、NetBeans 等。

Linux 是超级计算系统上的主要操作系统,GNU 编译器可以说是当今最常用的 C 编译器,因此,很多的例程推荐使用 GNU C 编译器编译并在 Linux 操作系统上运行。

Mac OS 下如何选择 IDE?

推荐使用 Apple 官方开发的 Xcode,Visual Studio 也推出了 Mac 版本。

C++程序的基本结构

Visual Studio Code(简称VS Code)是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器,它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段和代码重构等,该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,同时还在编辑器中内置了扩展程序管理的功能。

C++程序的基本结构

int main()
{
  return 0;
}

C++程序编译与运行

通过编译器将源程序.cpp文件编译成计算机可以识别的二进制格式的.exe目标文件。

执行这个.exe文件就是程序的运行。

图书推荐

虽然我们前面介绍过The C Programming Language(《C程序设计语言》)这本“白皮书”,但强烈不推荐用其入门。

入门经典书籍

《C语言小白变怪兽》

既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。

《C语言小白变怪兽》是一套网络教程,发布在C语言中文网,由站长亲自编写,这套教程最大的特点是通俗易懂,深入浅出,既适合小白入门,也适合后期进阶。

书籍链接:http://c.biancheng.net/cpp/u/jiaocheng/

《啊哈C语言》

适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。

这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。

这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。

《明解C语言》

适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。

日本人的作品,最大的特点是插图很多,生动有趣,让人一目了然。

其实真正的《明解C语言》一共有三部,分别是《明解C语言·入门篇》《明解C语言·中级篇》《明解C语言·实践篇》。

进阶经典书籍

《C Primer Plus》

适合有编程基础的读者,对计算机一窍不通的纯小白请忽略。

畅销 30 余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。

信息量大,涉及的知识面广,书也比较厚,得有耐心才行。

《C程序设计语言,The C Programming Language》

C语言创始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的著作,和《C Primer Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。

《C专家编程》

这貌似是一本吐槽C语言的书,基本上介绍了大多数C语言的坑,有不少精髓,在C语言界久负盛名,想进阶的一定要看。

《C陷阱与缺陷》

c语言的“四书五经”之首。和《C专家编程》类似,也是给C语言挑刺的,阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍。

高阶经典书籍

《程序员的自我修养 – 链接、装载与库》

这真是一本深入骨髓的书,让你彻底明白程序的编译、链接、装载和运行的全过程,你会从此上天,拉开和别人的差距,看任何问题都有了深度和高度。

program/c/noobs.txt · 最后更改: 2023/07/21 15:56 由 culmart