前言
21世纪,人类社会步入了高速发展的信息时代,掌握信息技术已经成为每一个人最基本的需求。信息技术的核心是计算机技术,计算机应用技能的培养离不开计算机教育。随着科教兴国战略的实施和社会信息化进程的加快,我国高等教育事业的发展驶入了快车道,计算机教育改革也日益受到更加广泛的重视,许多高等学校都把计算机教育“四年不断线”列为教育改革的方向。而计算机技术的核心是程序设计,计算机教育就是围绕程序设计展开的。程序设计的过程贯穿了阅读、判断、分析、思考、抽象、综合、工具、环境等多项技能,对计算机技能的培养至关重要。
理论研究与教学实践都已表明,大学的第一门程序设计课程必须从程序设计领域最基本、最重要的问题出发,也就是要求学生掌握最基本的概念、最基本的思考问题方式和可能使用的技术。
什么是程序设计的基本概念呢?一般来说,这些概念应该包括数据及其表示、变量的类型和值、基本命令(语句)、流程控制结构、子程序(函数与过程)抽象、循环、接口(界面)与实现的分离与相互关联、复杂数据的组织、程序的复杂性及其控制(程序组织)等。程序设计课程应该围绕这些基本概念展开,帮助学生掌握这些概念,并基于这些概念,在使用某种程序设计语言解决实际问题的过程中学习程序设计。
当然,程序设计课程的重点不是单纯地讲授程序设计语言的理论知识,而是以某种程序设计语言为工具,讲授程序设计的基本思想、方法和技术,让学生掌握用编程工具解决实际问题的能力。
对于大多数学生而言,学习程序设计语言就如同学习外语,掌握基本的语言要素(如语法、词法等)就已经比较困难了,还要灵活地使用语言,也就是听、说、读、写,当然更加困难。面对这一问题,许多学者结合教育理论和教学经验提出了多种不同的应对方法,最有影响的是案例教学法,即把程序设计的基本概念由浅入深地融入若干程序“案例”中,通过分析、设计、总结,让学生在不断尝试“编程”的同时,学习程序设计的基本知识,理解程序设计的基本思想,掌握程序设计的基本方法。案例教学突出了实践的重要性,强调让学生在编写程序的实践中逐渐增加成就感、培养学习兴趣,通过形象思维逐步加深理解、巩固知识。
目前,选择C语言作为第一门程序设计语言是最普通的做法,这得益于C语言所具有的自由的书写格式、良好的表达能力、丰富的数据结构、结构化的程序特征等优势。C语言具有与汇编语言一样的效率,便于与硬件技术的融合;具有与C++、Java等相似的风格,便于用户进一步学习。这些都促成了C语言在计算机教学中的特殊地位。
但由于C语言涉及的概念较多,语法规则比较繁杂,特别是C语言的数据类型、输入和输出等都普遍具有低级语言的特征,与计算机系统的关系密切,对于缺乏计算机基础知识的初学者来说,容易引起混乱。这也是造成C语言“难学”的主要原因之一。国内很多学者都对C语言的教学进行了研究,并在此基础上编写了许多很有价值的教材和辅导材料,取得了可喜的成绩。
本教材是作者在总结了十几年的教学经验后编写的,融合了许多对于C语言教学的认识和思考。在内容选择和结构组织上,试图体现以培养程序设计能力为核心,以C语言基础知识、算法基本概念和程序基本结构为重点的教学理念。教材中引入了大量应用实例,侧重实例分析,避免了过多地罗列C语言的语法规则。在实例选取上,既考虑了实例的典型性,又考虑了实用性和趣味性,实例分析的重点也放在了程序设计的思想方法上,力求做到引人入胜,不断增加读者的编程兴趣。当然,作为教材,本书也特别注意了内容选取的科学性和组织的有效性。
本书的前5章是基础部分,介绍C语言的基础知识和程序的基本结构。第6~12章是重点部分,侧重程序设计实践。其中,第6~8章的核心是数据的表示和处理,首先介绍了数组和指针的概念和用法,然后在第8章集中介绍字符串的处理方法,体现了C语言的优势和特点。第9~11章以函数为核心,通过程序组织、模块化设计、数据组织等的学习,培养学生应用程序设计解决实际问题的能力。第12章介绍文件的操作。出于对部分理工科专业的特殊需要的考虑,第13章介绍了C语言的位运算。
本书配套《C程序设计语言实验与习题指导》,并提供配套多媒体电子课件、习题解答和程序源代码,以利于教师备课和学生自学。请登录华信教育资源网(http://www.huaxin.edu.cn或http://www.hxedu.com.cn)注册下载。
全书共分为13章,第1~4章由于广斌老师编写,第5~8章由魏东平老师编写,第9~13章由朱连章老师编写,全书由魏东平老师统稿。中国石油大学的李宗民教授在百忙之中对全书进行了审阅。在本书编写期间,中国石油大学的葛元康、李克文、孙东海等老师提出了很多宝贵的意见和建议,电子工业出版社的王羽佳编辑在成书过程中也做了大量工作,在此一并表示感谢。
本书中的不足之处,竭诚希望得到广大读者和同行的批评指正。
作者