前言
C语言由于其卓越的优点,在国内外得到了广泛的应用,几乎所有的理工科大学都开设了“C语言程序设计”这门公共基础课。通过学习这门课程,使学生掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够使用C语言进行程序设计并具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。
在多年非计算机专业的计算机系列课程教学工作中,我们深切地感到多数学习者总停留在“学会C语言的基本语法、理论,编写简单的C语言程序,通过书面考试”的水平上; 并且,虽然目前介绍C语言的教材很多,但大多是围绕编程语言本身的体系展开内容,以讲解语言知识为主,特别是语法知识,辅以一些编程技巧的介绍,不利于培养学生的程序设计能力和语言应用能力。
作为首批“卓越工程师教育培养计划”试点的本科专业,要求培养具备大学本科基础知识,并有一定的实践能力与应用能力的高级技术人才,强化工程能力和创新能力。“卓越工程师教育培养计划”旨在培养掌握实际操作技能、能为企业创造更多实际价值的人才。因此,C语言程序设计课程的教学重点应该是培养学生的实际编程能力,教材也要以程序设计为中心来组织内容,学习者必须通过大量的编程训练,在实践中掌握语法知识,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。
在深入研究了卓越工程师的培养要求的基础上,结合多年来应用型本科人才培养的经验,我们深切体会到了重新编写一本适合“卓越计划试点专业”教材的必要性和迫切性。本书以程序设计思想的掌握为主线,以编程应用为驱动,通过案例和问题引入内容,由浅入深,重点训练学生的编程思想,提高学生应用C语言的能力。
本教材与同类教材相比,具有以下特点。
(1) 一本适合卓越计划试点专业的C语言程序设计教材。根据卓越计划试点专业的培养要求和计划,C语言程序设计课程课时为48至64学时,所以,本教材为重应用的少学时教材,需要分清重点、难点。本书将顺序、选择、循环三种结构,一维数组、函数、指针作为重点内容; 简单介绍用户自定义类型、宏定义、文件和语法,其他如有需要可参考其他书籍。本书强调实践编程能力,重应用、轻语法。
(2) 以实用技能为核心。卓越工程师的重中之重,是要具备实际工程技能和创新能力。因此,本书不是一本介绍语法的书,而是帮助读者通过大量实例了解怎么设计和运用算法,怎样用语言工具和编程环境去实现编程,从而处理实际问题。在教材编写上,不求语法面面俱到,而是结合企业需求,以实用技能为核心,重点讲解在实际编程中经常使用的一些核心技术,对于其他语法内容则少讲或不讲,需要的可以参考附录或者其他参考书。
(3) 以案例为主线。与传统的教材编排方式不同,在基本遵循C语言教学体系的情况下,本书将所有教学内容用例题组织。即根据要介绍的内容精心编写相应的例题,将大量的、正确的、规范的程序介绍给学生,在讲解例题的过程中,使学生学习语法、了解概念、掌握算法。
(4) 以实践能力为突破点。按传统教材的教学方式,很多学生C语言语法学得很好,但却不会自己编程。而在本书的结构设计上,强调实践和动手能力,使学生从第一堂课起就练习编程,并贯穿始终: 从模仿程序,到改写程序,最后自己编写程序。在整个教材编写和教学过程中,都要求学生“动手、动手、再动手”,要让学生敢于编程、乐于编程、大量编程,不要把学习重点放在语法规则上,而是要提高动手能力,积累实际的编程经验。
(5) 多形式分层次的练习题目。为了鼓励学生多思考、多练习、多动手,提高学生的学习效果,本书各章节都配有大量的例题解析和习题。多种形式的习题从多角度检验知识的掌握程度: 选择题检验C语言语法基础知识的掌握程度; 编程题检验学生动手编程的能力。为了满足不同层次学生的学习需要,编程题也层次多样: 有些题目难度较低,学生根据本章节讲解的知识点就可以轻松完成;有些题目难度加大,要求学生认真思考、调试才能完成; 还有些题目难度更大,一般为综合运用题,不止检验一两个知识点,要求学生综合所学的知识,从多个知识点和角度考虑,是对学有余力的学生提出的思考题,能够充分提高学生的编程能力,锻炼学生的工程能力和创新能力,鼓励学生利用所学C语言知识解决专业的具体问题。
(6) 提供了跨平台的DevC++的编程环境。目前绝大多数的教材,程序调试都是在Turbo C或者Visual C++ 6.0环境下编译执行的,但现在流行的Windows7系统跟Visual C++ 6.0环境不兼容,有的安装不成功,有的程序执行会随机出错。因此,本书特别增加了“C语言常用编程环境”一章,介绍了经典的Visual C++ 6.0编程环境和跨平台的DevC++编程环境,既满足等级考试的需要,也满足学生自主学习的需要。
全书共12章,主要包括: 算法及结构化程序设计思想,基本数据类型及常用输入输出函数,三种基本结构(顺序、选择、循环)、函数、数组、指针、自定义数据类型及其程序设计,文件的存取等。第1章介绍C语言的特点和实现过程; 第2章介绍了经典的Visual C++ 6.0编程环境和跨平台的DevC++编程环境; 第3章从实例出发,简单介绍顺序、分支和循环三种控制结构的初步使用,以及在实例程序中用到的语法知识; 第4章讲解分支结构程序设计的思路和方法; 第5章讲解循环结构程序设计的思路和方法; 第6章介绍数据类型等一些语法知识; 第7章讲解数组的用法; 第8章讲解函数定义与调用; 第9章讲解指针的用法; 第10章讲解自定义的数据类型及其用法; 第11章讲解宏定义、文件包含与条件编译的用法; 第12章讲解文件的操作。为了与程序语言相一致,本书公式中所有字母符号均采用正体。
本书由潘勇、赵毅、黄容共同编写,潘勇、赵毅担任主编并统稿。陈强教授、王明衍教授以及教研室多位同事对本书的初稿进行了审阅,上海工程技术大学电子电气工程学院的领导和专家也对本书悉心指导并提出了许多宝贵的修改意见。此外,本书的编写还得到了各级领导和出版社编辑的关心和支持,在此一并表示感谢!
由于编者水平有限,书中难免有不妥之处,衷心希望得到广大读者的批评指正。
编者2016年1月