
前言
FOREWORD
程序设计是高等院校重要的计算机基础课程,它以编程语言为平台,介绍程序设计的思想和方法。学生通过该课程的学习,不仅要掌握程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养求解问题和应用程序语言的能力。因此,这是一门以培养学生程序设计基本方法和技能为目标的程序设计基础课程。目前,C语言已被许多高等院校列为程序设计课程的首选语言。
C语言程序设计是一门实践性很强的课程,学生必须通过大量的编程训练,在实践中掌握程序设计语言,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。因此,培养学生的实际编程能力是课程教学的重点,教材的组织必须满足课程教学的要求。
目前,介绍C语言的教材很多,但在多年的教学实践中我们发现,比较适合程序设计入门课程教学的教材并不多。现有的许多教材一般围绕语言本身的体系展开内容,以讲解语言知识特别是语法知识为主线,辅以一些编程技巧的介绍,不利于培养学生的程序设计能力和语言应用能力。当然,C语言的案例教材也不少,但在案例分析时,问题分析和算法设计描述不够,主要突出程序代码和代码解析两个方面,因此,也不利于培养学生分析问题的逻辑思维能力。
本书较好地解决了传统教材的不足,在组织结构上包含程序设计和语言知识两条线索,以程序设计为主线,基于“阶梯递进”模式(案例分析→模仿改写→独立编程3个环节),以编程应用为驱动,通过案例和问题引入内容,重点讲解程序设计的思想和方法,并结合语言知识辅线,穿插讲解相关的语言知识。“案例分析”基于问题求解的基本过程,即问题分析、算法设计、编写程序和调试运行4个过程,以前3个过程为重点,通过经典案例,着重讲解程序设计的思想、方法和编程风格。“模仿改写”是针对本节中的相关概念和“案例分析”,在每节的模仿改写练习中给出一些难度较低的相关问题,学生可以模仿案例完成,以加深理解,提高兴趣。“独立编程”是“阶梯递进”模式的最后环节,在每章习题中给出一些难度稍大的编程问题,学生可以在前两个环节的基础上独立完成并上机调试通过。因此,本书比较适合作为程序设计入门课程教学的教材,有利于培养学生的程序设计能力和语言应用能力。
在教材的结构设计上,本书注重编程实践,让学生从第1周起就练习编程,使程序设计主线贯穿始终。前两章简单介绍一些背景知识和利用计算机求解问题的过程,然后从案例出发,介绍顺序、分支和循环3种控制结构的最简单使用形式及函数的简单使用,使学生对C语言有一个总体的了解,并学习编写简单的程序,培养学习兴趣。第3章介绍C语言的基本数据类型和表达式,为后续章节做准备。从第4章开始,逐步深入地讲解程序设计的思想和方法,并说明如何应用语言知识解决问题。
本书共有12章内容和1个附录,分成4个部分。第1部分:简单程序设计,学习编写简单程序,培养学习兴趣,包括第1~3章,第1章介绍程序与程序设计语言的知识以及利用计算机求解问题的过程;第2章从实例出发,简单介绍顺序、分支和循环3种控制结构的最简单使用形式及函数的简单使用,以及在实例程序中用到的语言知识,使学生对C语言有一个总体的了解;第3章介绍数据类型和表达式等基本语言知识,为后续章节做准备。第2部分:控制结构程序设计,基于简单数据类型,学习编写3种控制结构的程序,包括第4~6章,通过大量的案例分析,进一步介绍分支结构、循环结构以及函数结构的程序设计思想和方法,侧重基本知识和基本编程能力。第3部分:基于构造数据类型的程序设计,学习用模块化方法实现有一定复杂度的编程问题和基本算法等内容,包括第7~12章,第7章介绍数组类型的基本知识,并通过大量的案例分析,介绍模块化方法在一维数组、二维数组和字符串中的编程应用;第8章介绍指针类型的基本知识,并通过大量的案例分析,介绍模块化方法在指针与数组相结合的编程应用;第9章介绍结构类型的基本知识,并通过大量的案例分析,介绍模块化方法在结构与数组、结构与指针类型中的编程应用;第10章介绍链表的基本知识,并通过案例分析,介绍链表结构的基本操作和模块化方法在链表结构中的编程应用;第11章介绍共用体与枚举类型的基本知识,并通过案例分析,简单介绍共用体与枚举类型的编程应用;第12章介绍文件的基本知识,并通过案例分析,介绍文件结构的基本操作和模块化方法在文件结构中的编程应用。第4部分:附录,以备读者速查。附录A为常用字符与ASCII代码对照表;附录B为C库函数,分类列出ANSI C的常用标准库函数。附录C为常见错误分析,列出常见的编译错误、连接错误和运行错误,分析出错原因并给出相应的解决方法。
为了配合本书的学习,作者还编写了与本书配套的《C语言程序设计实训教程与水平考试指导》,可供读者学习时参考使用。该书由5部分组成,第1部分~第4部分为实验指导部分,第5部分为全国高等学校计算机水平考试的相关试题及参考答案。
本书由肖捷、侯家利任主编,王宁、冯能山、彭富春、陈雪芳、何文斌任副主编。全书由肖捷统稿,编写分工为:第1、2、10、11章由肖捷编写,第3章由何文斌编写,第4、5章由侯家利编写,第6、7章由肖捷、王宁共同编写,第8、9章由肖捷、彭富春共同编写,第12章由冯能山编写,附录由陈雪芳编写。东莞理工学院李勇教授和徐钦桂教授认真、仔细地审阅了全书,并提出了许多宝贵意见,在此表示衷心感谢。另外,在本书编写、修订过程中,许多老师和同学都提出了宝贵的意见和建议,在此一并表示感谢。
为了便于读者学习,本书还提供了大量的教学资源,读者可以登录东莞理工学院“C语言程序设计”课程教学网站http://172.27.2.1/cweb,共享课程教学资源。另外,读者也可以通过电话(13549379596)或E-mail(398948928@qq.com)与作者联系,获取课程教学资源。
由于编者水平有限,加之时间仓促,疏漏和不足之处在所难免,敬请读者批评指正。
编者
2015年11月