《C程序设计实例教程》编写的目的是期望帮助程序设计初学者快速入门,并迅速提高。多年来,编者一直思考、研究并付诸教学实践的问题就是帮助学生解决程序设计快速入门的难题; *终,在二十余年程序设计教学经验、软件开发心得的基础上,花费了近五年的时间写成了这本教材。学习程序设计的基本条件是具有较强的逻辑思维能力和一定的数学基础。程序设计是学习计算机应用与开发的基础,因此,程序设计课程的重要地位不言而喻。C语言是学习系统开发、应用开发的*基础语言,其灵活而简洁的表达方式已被多种程序设计语言所借用(如C++、C#、Java、PHP、FPGA开发语言等),现在所有计算机及相关专业都将C语言作为基础课程,学好了C语言再学其他程序设计语言就驾轻就熟了。程序设计用来解决实际问题,是软件开发的基础,而程序设计语言就是一份产品的使��说明书。可是很多教材对语法纠缠不休,使读者陷入了语法规则的泥潭中,却难以解决根本问题。经验表明,初学者通常会遇到以下几个困难问题:
不清楚计算机是如何工作的,不知如何设计解决问题的步骤;不清楚C语言到底能做什么事,感觉无从下手;不清楚应该先学什么后学什么,即使记住了语法规则也不知用在何处;解决问题的逻辑关系混乱。经典的教科书都强调解决问题的方法和步骤,即算法,这很重要。倘若初学者还不知道计算机如何工作,又何谈算法呢? 我们认为,对计算机语言的学习是没有先后顺序的,从解决小问题入手,通过模仿再熟悉语法规则,在此基础上也可阅读语法规则以解决更难的问题。《C程序设计实例教程》把语法规则放到附录中就是这个道理,建议初学者经常查阅。本教材有以下几点特色。
通过固定模式引导入门: 用“输入处理输出”模式强化入门训练。
使用任务教学驱动语法学习: 用实例讲解语法,同一个问题用不同的知识点分别实现。
利用合适的分析图帮助理解算法: **应用PAD框图。
分散难点、由浅入深、实战提高: 把函数、指针分散讲解,再系统归纳总结。
综合训练,提高设计能力: 专门用一章讲授综合应用,实现软件工程的初步训练。本教材通过大量实例,在解决实际问题的过程中覆盖主要的语法知识点。每个例子由5部分构成: 问题、分析、程序、运行、说明。其中“分析”部分包括对解决问题的方法、原理以及用C语言如何实现的具体分析; “说明”部分讲解语法知识、注意事项、书写习惯、程序改进等。通过这种方式,教材将从以下9个方面解决程序设计入门和提高的问题。
(1) C程序的基本结构。编写程序时,初学者都应该先写出基本结构,既可以解决初学者对程序设计的畏难情绪,又使初学者能理解计算机工作的流程。
(2) 熟练默写并理解几个小程序。比如求两个数的*大值、交换两个变量的值,这样的小问题理解上并不难,但已经涉及到基本程序设计的语法点。
(3) 从固定的思维模式入手。输入、处理、输出是程序的3个部分。对一个问题可以分解为输入什么、如何实现; 输出什么,如何实现; 在输出之前必须为输出做哪些准备,即处理。“输入处理输出”的顺序不能颠倒。输入是为处理做准备、处理是为输出做准备的,没有上一步的准备就无法转向下一步继续执行。
(4) 学习控制结构和数据结构。学习控制结构,即顺序、选择和循环结构; 学习数据结构,则主要从数据存储、数据在内存中的变化等方面展开,初步掌握结构体、共用体及链表的使用,从而提高程序设计的能力。前言C程序设计实例教程
(5) 多记多理解经典算法,着重讲解解决问题的方法。
(6) 学习过程契合认识过程,先背,再模仿,*后自主设计。
(7) 从实际问题入手。将每一个问题解决的过程中涉及的新语法知识点或新方法在程序后面给予说明,在解决实际问题的同时,讲解语法、熟悉语法、灵活运用语法。
(8) 对初学者强调书写习惯。提倡利用PAD图帮助学生理解程序的层次关系,培养书写习惯,掌握层次(锯齿型)书写以及适当添加注释以增加程序的可读性等。
(9) 通过课程综合设计,提供软件工程方法和步骤的初步训练,以及综合应用C语言设计较大的应用程序。总之,《C程序设计实例教程》的教学思想是: 轻语法、重应用、摒弃“想当然”。所谓想当然,一是教师想当然,例如,程序是一行一行地串行执行,而有的学生恰好有一点不成熟的“多CPU”和“CPU时间片”的概念,就误认为程序在并行执行,尤其是在函数调用的时候,想当然地认为主调函数和被调函数同时都在执行,这是错误的,而教师想当然认为学生应该明白; 二是学生想当然,例如,加、减、乘、除的运算符与数学上的符号几乎一样,于是想当然地认为“相等”的符号也应该一样,殊不知这个“=”被用作赋值了,而C语言又多了一个赋值表达式的概念,于是就把“==”错误地写成“=”了。程序设计是实践性很强的课程,建议一般学校至少用72学时的课堂讲授,并另外安排尽量多的上机课时,特别是课程项目训练和工程实践。编者也建议把课时分散到两个学期使用,让学生有更多的时间理解、适应程序设计的思维方式,可以阅读更多的程序、解决更多的基本问题以提高程序设计的能力。本教材以Microsoft Visual C++ 6.0为开发平台讲解程序,在与标准C有差异之处都有说明,因此,程序可以在任何上机环境中调试通过。第1~3章,由梁立编写; 第4章和第5章由肖斓楠、徐天伟共同编写; 第6章和第7章由杨德强、肖飞共同编写; 第8章、第9章、附录及全书的算法框图由解敏完成。全书由梁立、解敏统筹。感谢许多研究生及本科生对教材的编写提出的宝贵意见; 感谢高丽金为书稿的整理付出的辛勤劳动; 特别感谢胡国梁教授的鼓励与关怀。感谢清华大学出版社对教材编写工作的建议及全程支持。感谢全国高等师范学校计算机教育研究会的专家给予的建议。感谢《C程序设计实例教程》所引用参考文献的作者和出版社。由于水平所限,纵使编者想努力做到**,《C程序设计实例教程》的不足之处也在所难免,敬请读者不吝赐教。