前言
未来的世界是自动化一统天下的时代,智能控制离不开程序,由于C语言是所有高级程序设计语言中最接近硬件且可移植性较好的高效编程语言,其在系统编程和嵌入式开发中具有不可比拟的优势。而且学习C语言是进一步学习其他高级编程语言,如C++和Java的基础。
【本书主要内容】
本书共分为11章,内容包括C语言概述、顺序结构程序设计、运算符与表达式、分支结构、循环结构、数组、函数、指针、自定义类型、输入和输出、预处理和位操作等。
本教材在讲解C语言基础知识时,力求简单、明了,并均有对应实例。而对于C语言的精髓部分,如函数、指针、自定义类型等做了由浅入深的详细讲解,并设计了大量的例题和实例。
从文件中获取数据进行处理,然后把处理的结果保存到文件中,这可能是多数读者通过学习C语言渴望掌握的技能。故本教材把“输入和输出”作为非常重要的章节,该章节涉及对整本教材的复习巩固提高。该章配以大量的常用实例,提高读者的学习兴趣。
第11章“预处理和位操作”通常是被C语言读者忽略的部分,而该部分在实际的程序开发中占有非常重要的地位,如涉及带参、无参宏定义,以及如何使用预处理命令避免头文件的重复包含等问题。如果能使用位运算代替程序中的乘除等算术运算,将提高运算效率,且能体现掌握C语言的深度。
【本书特色】
(1) 把枯燥、复杂的语法概念简单化、实例化。本教材几乎对涉及的所有知识点均设计实例进行讲解,通俗易懂,便于读者自学。
(2) 例题设计具有代表性,把在实际程序开发过程中经常遇到的错误及不规范的语法,均以例题的形式进行分析总结,分析思路详尽,所有实例均提供了源代码,便于读者使用。
(3) 每一节讲解完均有对应的复习思考题,便于对本节重点知识及时巩固提高。
(4) 分章节分知识点设计的课后习题结构,几乎覆盖了所有重要知识点,且均是在例题及复习思考题基础上的提升,能够让读者由浅入深地加深对知识点的理解,便于及时复习巩固知识点的学习。
(5) 本教材所有例题、习题均严格遵守业界较通用的编程规范,设计结构合理,思路清晰,注重程序的可读性和健壮性。
(6) 每章小结均以表格的形式列出本章的重点、难点及常见易错点,结构清晰,便于读者复习把握。
【C语言学习的误区】
(1) 只注重功能实现,不注重编程规范,导致代码的可读性及可维护性较差。
(2) 认为只要编写的代码在编译阶段没有错误,且能运行出正确结果就万事大吉了。编译器不是万能的,尤其是C编译器语法检查不够严格,有些潜在的风险难以发现。且由于测试用例的有限性和片面性,一两次的正确运行结果不能保证程序的绝对正确性。
(3) 不注重代码调试。当发现编译错误时,根据编译器的提示很容易发现并修改,出现结果错误时,采用从前往后逐条分析代码的方法排查错误,认为掌握这种方法和具备这种能力已足够了,而不采用科学的代码调试工具进行排查错误。
(4) 仅为了等级考试,死记硬背枯燥的知识点、套题型,造成学习枯燥,所掌握的全是零散的、片面的知识点的堆砌,只见树木不见森林。
【C语言学习的建议】
(1) 在学习C语言的过程中始终要围绕着锻炼编程思维和解决问题的能力,注重编程素养的提高而进行。
(2) 注重读写。多读程序,不仅只读规范的好程序,从而借鉴优秀程序的优点,还要以批判的精神对不规范,可读性、健壮性差的程序提出修改意见。多写程序,在写程序之前一定要有清晰的算法设计思路,选择好的数据结构和程序结构。运行正确后,要思考改进,久而久之,使用C语言解决问题的能力会得到进一步提高。
(3) 注重调试能力。程序设计中出现错误在所难免,这里所指的错误不仅是C语法错误,还包括逻辑错误。而后者是比较难发现和解决的,要使用调试工具,通过设置断点,进行代码走读,逐步缩小错误源的范围,最终找到并解决。
本书全部章节均由孙海洋编写,在编写过程中得到了黄润生院长、赵志宏院长及其他教师的大力帮助和支持,在此一并向他们表示衷心的感谢!
由于编者水平有限、时间仓促,书中疏漏和不足之处在所难免,恳请专家、读者批评指正。
编著者2018年于南京大学金陵学院