第1章 引论 1
1.1计算机语言与程序设计的概念 1
1.2C语言概述 2
1.2.1C语言的发展简史 2
1.2.2C语言的特点 3
1.2.3C语言程序的格式和结构特点 4
1.3C程序的上机步骤 7
1.3.1用Turbo C运行C程序 7
1.3.2在Linux操作系统下运行C程序的步骤 10
思考与练习一 10
第2章 基本数据类型与运算 12
2.1C语言的数据类型 12
2.2常量、变量和标识符 13
2.2.1常量 13
2.2.2变量 14
2.2.3标识符 14
2.3整型数据 15
2.3.1整型常量 15
2.3.2整型变量 16
2.4实型数据 18
2.4.1实型常量的表示方法 18
2.4.2实型变量 18
2.5字符型数据 20
2.5.1字符常量 20
2.5.2字符变量及定义 21
2.5.3字符数据在内存中的存储形式及其使用方法 21
2.5.4字符串常量 22
2.6算术运算符和算术表达式 23
2.6.1C运算符简介 23
2.6.2算术运算符和算术表达式 23
2.7赋值运算符和赋值表达式 25
2.8逗号运算符和逗号表达式 27
2.9不同类型数据间的混合运算 28
思考与练习二 32
第3章 数据的输入与输出 34
3.1C语句概述 34
3.2数据输入输出的概念及在语言中的实现 36
3.3字符数据的输入输出 37
3.3.1putchar函数——字符输出函数 38
3.3.2getchar函数——字符输入函数 38
3.4格式输入与输出函数 39
3.4.1printf函数——格式输出函数 39
3.4.2scanf函数——格式输入函数 43
3.5数据的输入与输出应用举例 46
思考与练习三 48
第4章 C程序流程设计 50
4.1程序的流程控制基础 50
4.1.1算法与算法的表达方法 50
4.1.2程序结构 53
4.2顺序结构程序设计 53
4.2.1顺序结构的流程图表示 54
4.2.2顺序结构的应用实例 54
4.3选择结构程序设计 55
4.3.1关系运算和逻辑运算 55
4.3.2选择结构的流程图表示及语句形式 58
4.3.3选择结构的应用实例 62
4.4循环结构程序设计 65
4.4.1循环结构的流程图表示及语句形式 66
4.4.2嵌套循环 69
4.4.3循环结构的应用实例 69
4.5改变程序流程语句 72
4.5.1break语句 72
4.5.2continue语句 73
4.5.3goto语句 73
思考与练习四 74
第5章 函数 77
5.1模块化程序设计方法 77
5.2函数 78
5.2.1定义函数 78
5.2.2函数的返回值 79
5.2.3函数的调用与参数传递 80
5.3变量的作用域 84
5.3.1局部变量 85
5.3.2全局变量 86
5.4变量的存储类别 88
5.4.1动态存储和静态存储 88
5.4.2动态变量 89
5.4.3静态变量 90
5.5内部函数和外部函数 93
5.5.1内部函数 93
5.5.2外部函数 93
5.6函数的嵌套调用和递归调用 94
5.6.1函数的嵌套调用 94
5.6.2函数的递归调用 96
5.7编译预处理 98
5.7.1文件包含:include 98
5.7.2宏定义:#define 100
5.7.3条件编译:ifdef 102
思考与练习五 104
第6章 数组 107
6.1数组的概念 107
6.2一维数组 107
6.2.1一维数组的定义 107
6.2.2一维数组的初始化 108
6.2.3一维数组的引用 108
6.2.4一维数组的应用举例 109
6.3二维数组 113
6.3.1二维数组的定义 113
6.3.2二维数组的初始化 113
6.3.3二维数组的引用 114
6.3.4二维数组应用举例 114
6.4字符数组 117
6.4.1字符数组的定义、初始化和引用 117
6.4.2字符数组与字符串 118
6.4.3字符数组的输入和输出 119
6.4.4字符串处理函数 120
6.5数组作为函数参数 123
思考与练习六 124
第7章 指针 126
7.1指针和指针变量 126
7.2指针变量的定义与引用 128
7.2.1指针变量的定义 128
7.2.2指针变量的引用 129
7.3指针变量作为函数参数 131
7.4指针变量和数组 136
7.4.1指向数组元素的指针变量 136
7.4.2通过指针引用数组元素 136
7.4.3用数组名和指针变量作函数参数 139
7.4.4多维数组与指针 140
7.5字符串与指针 146
7.5.1字符串的表示形式和引用 146
7.5.2字符串指针作函数参数 148
7.5.3使用字符串指针变量与字符数组的区别 150
7.6返回指针值的函数 151
7.7指向函数的指针 152
7.7.1用函数指针变量调用函数 152
7.7.2用指向函数的指针作函数参数 154
7.8指针数组和多级指针 156
7.8.1指针数组的定义和引用 156
7.8.2多级指针 159
7.8.3main函数的参数 160
7.9指针数据类型和指针运算小结 161
7.9.1指针数据类型小结 161
7.9.2指针运算小结 161
7.9.3使用指针编程中的常见错误 162
思考与练习七 165
第8章 结构体与共用体 168
8.1结构体类型的定义 168
8.2结构体类型变量的定义和初始化 170
8.2.1结构体类型变量的定义 170
8.2.2结构体变量的初始化 172
8.3结构体变量的引用 172
8.4结构体数组 175
8.5结构体与函数 177
8.5.1向函数传递结构体变量成员 177
8.5.2结构体作为函数参数 178
8.5.3结构体作为函数返回值 179
8.6结构体指针变量 180
8.6.1指向结构体变量的指针变量 180
8.6.2指向结构体数组的指针 181
8.6.3结构体指针变量作函数参数和返回值 182
8.7动态存储分配 185
8.8链表的概念 187
8.9共用体(union) 197
8.9.1共用体的概念 197
8.9.2共用体变量的引用方式 198
8.9.3共用体类型数据的特点 198
8.10枚举类型 199
8.11类型定义符typedef 201
思考与练习八 204
第9章 文件 207
9.1C文件概述 207
9.2文件指针 208
9.3文件的打开与关闭 208
9.3.1文件的打开(fopen函数) 208
9.3.2文件的关闭(fclose函数) 210
9.4文件的读写 211
9.4.1字符读写函数fgetc和fputc 211
9.4.2字符串读写函数fgets和fputs 214
9.4.3数据块读写函数fread和fwrite 216
9.4.4格式化读写函数fscanf和fprintf 217
9.5文件定位和文件的随机读写 219
9.6出错的检测 220
9.7文件输入输出小结 221
思考与练习九 221
附录A ASCII字符代码表 223
附录B C语言中的关键字 224
附录C 运算符和结合性 225
附录D 标准库函数 226
参考文献 233