前言 1. 编写背景 C语言是一种结构化程序设计语言,其功能强大,使用灵活,用途广泛,是一种面向过程的编程语言。它既可以用来编写应用软件,又可以用来编写较为底层的系统软件及控制硬件的驱动程序,是程序设计人员和大学生学习其他编程语言的基础。 由于C语言可使用范围广泛,众多高校都将C语言作为专业基础课,是计算机及信息专业学生的关键课程。C语言数据类型丰富,运算符较为全面,规则性强,表达简洁、紧凑,使用方便、灵活,因此不容易掌握,初学者在学习的初始阶段会有一定的困难。基于此,我们编写了这本C语言程序设计教材,主要满足学习计算机程序设计语言的初学者和具有其他程序设计语言基础的学习者,适合作为高等学校“高级语言程序设计”和“C语言程序设计”课程的教材。 2. 本书特色 (1) 本书以激发学生求知、探索性学习研究兴趣为目的,从新的思维学习、研究学习、探索式学习角度,将C语言编程的诸多知识点和编程细节贯穿于各个大小案例之中,通过大量知识点的分析和实例的训练,启发学生从多角度思考解题思路,培养学生的编程思维和程序设计能力。本书内容结构合理,注重点、面、空间的结合和拓展,大小案例驱动演绎,发散思维点拨激活,知识能力交汇升级,是本书区别于其他类似教材的具体体现。 (2) 本书所有作者均是常年承担大学本科C语言程序设计教学的教师,具有丰富的C语言教学经验。本书对C语言的基础知识、规则方法进行了较为详尽的介绍,并根据多年教学过程中学习者可能遇到的理解难点,采用小贴士的方式进行了解释说明与知识拓展。 (3) 教辅资料立体配套,在学银在线平台(https://xueyinonline.com/)有与本书配套的国家级一流本科课程“高级语言程序设计”教学视频和相关教辅资料。使用本书作为教材的教师,可以联系清华大学出版社申请教学课件和习题参考答案。 3. 主要内容 第1章介绍程序设计语言基础。通过简单的C语言程序实例说明C语言的特点、基本结构和开发环境。 第2章介绍C语言的基本数据类型、运算符和表达式等基本语法知识,主要包括C语言的数据类型、常量与变量、整型数据、实型数据、字符型数据、变量赋初值、各类数据间的混合运算、算术运算符和算术表达式、赋值运算符和赋值表达式等。 第3章首先简要介绍程序设计算法的概念、特点和表示方法;接着介绍程序的3种基本结构,计算机解题过程,结构化程序设计与模块化程序设计的思想。通过对赋值表达式和赋值语句,数据的输入/输出在C语言中的实现,输入/输出格式控制等知识点的讲解与实例分析,读者能够掌握顺序结构程序设计方法。 第4章介绍关系运算符和表达式、逻辑运算符和表达式的表示方法和运算规则,着重讲解如何用if语句实现选择结构,用switch语句实现多分支选择结构,帮助读者掌握选择结构程序设计方法。 第5章介绍循环的概念,着重讲解如何用while语句、dowhile语句和for语句实现循环,并深入介绍循环的嵌套、break语句和continue语句的使用。通过对几种循环的比较与实例分析,读者能够掌握循环结构程序设计方法。 第6章首先介绍数组的概念;接着介绍一维数组、二维数组的定义与使用方式,数组在内存中存储的方法。通过程序案例讲解与数组有关的算法,读者能够运用数组存储数据并设计相应的程序。 第7章首先介绍函数的概念、定义与使用方式,重点讲述函数的参数传递机制、调用过程、递归调用机制和算法思想;接着介绍变量和函数的分类、存储类别、多文件编程、编译预处理及相关语句、文件包含、宏定义,帮助读者掌握函数的基本知识和使用方法,并对模块化的程序设计思想有更为全面深入的理解。 第8章首先介绍地址与指针的概念,通过将指针与前面章节知识点结合,重点讲解如何用指针处理数组与字符串;接着介绍指向函数的指针、返回指针值的函数、指针数组和指向指针的指针变量等较为高级的指针使用方式,帮助读者理解并掌握指针的使用方法。 第9章首先介绍结构体的概念、定义与使用方式,重点讲解结构体指针变量与结构体数组、结构体作为函数的参数及传递机制。通过运用结构体指针建立动态链表,读者能够掌握动态链表的建立,结点的查找、删除、插入等基本操作;接着简单介绍共用体的定义及使用方式。通过比较结构体与共用体的异同,读者可以对两者有更深的理解。 第10章介绍文件的概念与分类、基本操作、C语言文件的打开与关闭。通过实例讲解顺序文件的操作(读数据、写数据等)、流式文件的操作(读数据、写数据),读者能够掌握文件的使用方法。 第11章从软件工程角度,综合运用C语言各方面知识来设计并实现一个小型的产品信息管理系统。这个系统阐释了各个基本功能的简单开发过程,为读者运用计算机语言进行实际软件开发做一个简单而有效的尝试。 4. 编写分工 本书第1章由龙慧云编写,第2章由张永军编写,第3~5章和第10章由罗为编写,第6~7章由王翔编写,第8~9章由邓少勋编写,第11章由秦永彬编写。 感谢读者选择使用本书,在本书的编写过程中,难免存在疏漏或不足之处,恳请广大读者批评、指正,并提出宝贵意见,我们将不胜感激。 编者 2024年1月