前言
以信息技术为主要标志的第三次科技革命不仅极大地推动了人类社会经济、政治、文化领域的变革,而且也影响了人类生活方式和思维方式,作为信息技术基础的程序设计也因此成为了绝大多数高校理工科专业的基础课程。对于计算机相关专业而言,程序设计是进一步学习其他专业课程的基础;对于非计算机专业而言,程序设计是理工科专业学生所应掌握的一项基本技能,从而能利用计算机来解决本专业领域的问题。近几年来,程序设计课程“以应用为背景,以传授程序设计方法为核心,以学生计算思维能力以及问题的求解能力和语言的应用能力培养为目标,把程序设计语言从只注重理解语言语法转变为一种编程工具”的教学理念已得到了普遍的认同。本书是这一教学理念的具体实践,主要体 现在:
(1)C语言既满足了现代程序设计的基本要求,又是许多其他编程语言的基础,其精练的语法、强大的功能、广泛的应用,使得其在各类编程语言排行榜上常年占据前两名的位置,但C语言灵活丰富的语法和指针的应用也给初学者带来了困难。本书不刻意追求C语言语法知识的大而全,对不太主要的语法知识(如主函数参数、位运算、共用体、枚举类型、宏定义和条件编译等)不作介绍,对较少使用又较难的指针知识(如指向数组的指针、指针数组、二级指针等)作简要介绍,突出重点。
(2)指针类型及其应用是C语言中的难点,也是后续课程(如数据结构)的必备知识。本书将指针类型提前到数组这一章节,使学生能尽早理解指针概念并掌握其基本用法,在后续章节中注重介绍指针在数组、函数和链表中的运用,目的是使学生有一个比较长的时间来学习指针和掌握指针由易到难的应用。同时,这样使本书体系很好地反映了知识点的内在联系,增加了指针应用的机会,降低了指针学习的难度。另外,递归函数执行过程的理解是C语言中的又一个难点,本书通过独特的图示展示了递归函数执行时形参的变化过程,以帮助学生理解递归函数的执行。
(3)本书列举了大量有趣味性和应用背景的程序设计例题(书中将仅仅说明语言语法的举例称为示例,以示区别),在举例时不是先给出程序再去解释程序的算法,而是先分析问题,从中找出解决问题的思路和方法,再编写成程序,并对已有的方法提出改进的可能,举一反三,从而启发学生的思维,旨在培养学生的计算思维能力。本书中所选编的例题一方面展示了程序设计最基本的思想、方法和技巧,另一方面也展示了C语言中自增自减运算符、逻辑运算符的短路求值规则、指针变量作数组名、返回指针值的函数、指向函数的指针、静态局部变量、外部函数等语法知识的应用。
(4)本书所选配的练习题不但题型丰富,而且有针对性、贴近生活,这样一方面有利于学生对基本概念的理解,另一方面也能够激发学生学习的兴趣和积极性,从而掌握程序设计最基本的思想、方法和技巧,提高编程能力。
(5)程序设计是实践性很强的课程,该课程听不会,看不会,只能练会。学习程序设计最好的方法是勤学勤练,边看书边调试代码,先把书上的例子上机运行,再努力完成练习题中的编程题,在实践中掌握编程知识并逐步理解和掌握程序设计的思想和方法。希望初学者通过阅读附录中的常见错误分析和程序调试内容,尽快掌握程序调试的基本方法和技术,提高程序调试能力。
C语言常见的编程环境Turbo C、Borland C++、Visual C++ 6.0都是20世纪的产品,不建议使用。微软推出的开发环境Visual Studio 等是目前最流行的Windows平台应用程序开发环境,其功能强大,但体积也庞大(仅安装包就在1GB以上),因此不建议初学者使用。一些常见的免费编程工具(如Dev-C++、Code::Blocks、C-Free等)特别适合初学者,本书例题全部在Dev-C++ 5.5.3 MinGW 4.7.2编程环境下调试通过。读者可到Dev-C++的官网/projects/orwelldevcpp/下载最新版的Dev-C++编程环境。使用本书的老师若需要练习题答案和PPT文件可与清华大学出版社联系。
本书结构合理、重点突出、难点分散、图文并茂、格式规范,有利于学生的学习和培养良好的程序设计风格与习惯,适合作为各类高等学校本科、高职高专、成人教育的教材,也可作为计算机等级考试(二级C)的参考书和自学教材。
由于作者水平有限,虽然力争精准,但疏漏之处在所难免,敬请专家和读者指正。
作 者
5月于上海
more >