C语言是一种应用非常广泛的结构化高级程序设计语言,既适合于编写应用软件,又特别适合于编写系统软件。《C语言程序设计教程/21世纪高等学校规划教材·计算机科学与技术》由12章组成,按照循序渐进的原则,详细地介绍C语言的基本概念和语法规则,同时在难点的讲解上力求准确、完整。在此基础上,通过精选的典型例题分析,使得读者能够尽快掌握利用C语言进行程序设计的技巧和方法,特别是,为了使读者能够尽快利用C语言编写大型实用程序,在书中的最后一章详细分析了一个图形编辑程序的设计与实现过程,并给出了完整的源程序。 本书是作者根据多年的教学经验编写而成的,在内容编排上尽量体现出易学的特点,在文字叙述上力求条理清晰、文字简洁,以便读者阅读。 本书可作为大专院校计算机专业及其相关专业的教材或教学参考书,也可作为自学用书。
C语言是目前应用最为广泛的计算机高级程序设计语言之一,它短小精悍、功能齐全,是一种结构化程序设计语言,它能够运行于多种操作系统环境下,既适合于编写应用软件,又适合于编写系统软件。
作者多年来一直从事C语言的教学工作,同时也利用C语言来开发大型的实际课题,本书的内容就吸收了作者多年的教学经验和应用C语言的体会,既注重C语言的理论体系,又特别强调C语言的应用。
本书是在多年教学讲义的基础上,广泛听取读者和同行的建议,并参考最新材料经系统整理而成的。本书的主要特点可归纳如下:
(1) 在内容编排上,按照循序渐进的原则,逐步介绍C语言中的基本概念和理论,在章节内容的安排上,尽可能考虑初学者的接受能力,使整个学习过程按照从简单到复杂的顺序进行。
(2) 指针是C语言中的关键内容,也是初学者难以理解的部分。本书花费了大量篇幅由浅入深地介绍了指针的基本概念和应用。除了常用的一级指针之外,还详细地介绍了二级指针、二维数组与指针、二维数组与函数以及对复杂定义形式的分析等比较深奥的内容,并给出了每种复杂定义形式的具体应用过程。通过对这些内容的学习,能够使读者完整而准确地掌握C语言中的精髓内容,从而能够有效地提高读者的语言运用能力和程序设计技巧。
(3) 在讲授C语言基本理论的基础上,着重强调了C语言的应用。书中没有深奥的理论和算法,在例题中出现的每一个算法,都给出了比较详细的解释,每一章中都包含“应用举例”一节,其中的例题涉及本章讲解的主要内容,有些例题还具有一定的难度,通过阅读和分析这些例题,能使读者对本章讲授的内容及其应用有一个全面的了解。
(4) 为使读者能够尽快掌握利用C语言编写大型实用程序的方法,在本书的第12章中,详细介绍了利用C语言编写的程序规模较大的图形编辑程序Panda,在该程序中几乎包含了C语言的各个方面,其中包括菜单设计、图形处理(图形输入和图形编辑)以及文件管理等,仔细地阅读和分析此程序,无疑会在短期内提高利用C语言来编写大型程序的能力。
(5) 每章的最后都附有大量的习题,其中包括程序分析题和编程题,这些习题对于读者巩固已学习的内容大有益处。
(6) 在语言的描述上,尽量使用规范化的术语,同时,在文字叙述上力求条理清晰、简单明了,以利于读者阅读。
作者认为,要学好C语言,除了掌握C语言的基本理论之外,还必须要加强实践环节。本书中的所有例题都在微机上调试通过,读者可以边学习边上机,刚开始时可以调试本书中的例题,待学习一段时间之后,就可以调试自己编写的程序了,只有这样,才能加快学习进度,提高学习效率。
由于作者水平有限,经验不足,书中一定会有不少缺点和错误,敬请有关老师、计算机工作者和广大读者批评指正。
作者
2015年9月于大连理工大学
第1章绪言
1.1C语言简介
1.1.1C语言发展简史
1.1.2C语言的特点
1.2C语言程序的开发步骤
1.3C语言的程序结构
1.4算法的表示
1.4.1算法的流程图表示法
1.4.2算法的NS流程图表示法
1.4.3算法的伪代码表示法
习题
第2章数据、运算符和表达式
2.1基本概念
2.1.1标识符
2.1.2常量
2.1.3变量
2.1.4关键字
2.2基本数据类型
2.2.1整型变量及其常量
2.2.2浮点型变量及其常量
2.2.3字符型变量及其常量
2.2.4长整型、短整型和无符号整型
2.2.5类型定义typedef
2.3算术运算符、赋值运算符及其表达式
2.3.1算术运算符和算术表达式
2.3.2赋值运算符和赋值表达式
2.4关系运算符、逻辑运算符及其表达式
2.4.1关系运算符和关系表达式
2.4.2逻辑运算符和逻辑表达式
2.5变量的初始化
2.6不同类型的数据之间的转换
2.6.1自动类型转换
2.6.2强制类型转换
2.7sizeof运算符
2.8应用举例
习题
第3章数据的输入和输出
3.1数据的输入
3.1.1字符输入函数getchar
3.1.2格式输入函数scanf
3.2数据的输出
3.2.1字符输出函数putchar
3.2.2格式输出函数printf
3.3应用举例
习题
第4章基本语句
4.1结构化程序设计简介
4.2语句和复合语句
4.3条件语句
4.3.1if语句
4.3.2条件运算符
4.3.3switch语句
4.3.4应用举例
4.4循环语句
4.4.1while循环语句
4.4.2dowhile循环语句
4.4.3for循环语句
4.4.4break语句和continue语句
4.4.5goto语句
4.4.6逗号运算符和空操作语句
4.4.7应用举例
习题
第5章数组
5.1一维数组
5.1.1一维数组的定义和引用
5.1.2一维数组元素的初始化
5.2二维数组
5.2.1二维数组的定义和引用
5.2.2二维数组元素的初始化
5.3字符数组和字符串
5.3.1字符数组
5.3.2字符串
5.4应用举例
习题
第6章函数
6.1函数的概念
6.2函数的定义和调用
6.2.1函数的定义
6.2.2函数的调用
6.3函数的返回值
6.4函数原型
6.5函数的参数及其传递方式
6.5.1非数组作为函数参数
6.5.2数组作为函数参数
6.6函数的嵌套调用和递归调用
6.6.1函数的嵌套调用
6.6.2函数的递归调用
6.7变量的作用域及其存储类别
6.7.1局部变量及其存储类别
6.7.2全局变量及其存储类别
6.8内部函数和外部函数
6.8.1内部函数
6.8.2外部函数
6.9应用举例
习题
第7章编译预处理
7.1宏定义
7.2文件包括
7.3条件编译
7.4应用举例
习题
第8章结构和联合
8.1结构类型变量的定义
8.2结构类型变量的引用
8.3结构变量的初始化
8.4结构和函数
8.4.1结构变量作函数参数
8.4.2函数的返回值是结构类型变量
8.5结构和数组
8.5.1结构中包含数组
8.5.2结构数组
8.6结构的嵌套
8.7联合
8.8枚举
8.9应用举例
习题
第9章位运算
9.1二进制位运算
9.2位段
9.3应用举例
习题
第10章指针
10.1指针的基本概念
10.2指针变量的定义和引用
10.2.1指针变量的定义
10.2.2指针变量的引用
10.3指针和结构
10.3.1指向结构的指针
10.3.2结构中包含指针
10.3.3链表
10.3.4二叉树
10.4指针和数组
10.4.1指向数组元素的指针及其操作
10.4.2数组名和函数参数
10.4.3字符串和指针
10.4.4指针数组
10.4.5指针与++、--运算符
10.5指针和函数
10.5.1指针变量作为函数的参数
10.5.2函数的返回值是指针
10.5.3指向函数的指针
10.5.4命令行参数
10.6二级指针
10.6.1二级指针的基本概念
10.6.2二级指针与指针数组的关系
10.7二维数组与指针
10.7.1指向二维数组的指针定义
10.7.2利用指针访问二维数组元素
10.8二维数组与函数
10.8.1函数参数是二维数组
10.8.2函数的返回值是指向二维数组的指针
10.9复杂的定义形式
10.10对typedef的进一步说明
10.11应用举例
习题
第11章文件
11.1文件的基本概念
11.2文件类型指针和文件号
11.3缓冲文件系统
11.3.1文件打开函数fopen
11.3.2文件关闭函数fclose
11.3.3文件读函数fgetc,fread,fscanf
11.3.4文件写函数fputc,fwrite,fprintf
11.3.5文件定位函数rewind,fseek,ftell
11.3.6应用举例
11.4非缓冲文件系统
11.4.1文件打开函数open和文件创建函数creat
11.4.2文件关闭函数close
11.4.3文件读函数read
11.4.4文件写函数write
11.4.5文件定位函数lseek、tell
11.4.6应用举例
习题
第12章C语言综合应用
12.1图形编辑程序Panda
12.2图形库函数简介
12.3Panda的数据组织
12.4Panda的实现
12.4.1Panda的菜单设计
12.4.2Panda的图形处理
12.4.3Panda的文件操作
12.5Panda源程序清单
习题
附录A标准ASCII字符集
附录B运算符的优先级及其结合性
附录CTurbo C集成开发环境简介
附录DC语言的巴科斯范式描述