第1章 C语言概述 1
1.1 C语言的发展简史和特点 1
1.1.1 C语言的产生与发展 2
1.1.2 C语言的特点 2
1.2 C程序的结构与书写规则 2
1.2.1 C程序的基本结构 2
1.2.2 如何编写可读性良好的C程序 4
1.3 C语言的语句、标识符和关键字 4
1.3.1 C语言的语句 4
1.3.2 C语言标识符 4
1.3.3 C语言关键字 5
1.4 C程序的运行与调试 5
1.4.1 C程序设计的基本步骤 5
1.4.2 如何使用Turbo C++3.0 运行与调试C程序 6
本章小结 12
练习与思考 12
实验一 C程序的运行环境和运行方法 13
第2章 基本数据类型、运算符与表达式 15
2.1 C语言的数据类型 16
2.2 常量与变量 16
2.2.1 常量 16
2.2.2 变量 17
2.3 整型数据 18
2.3.1 整型常量 19
2.3.2 整型变量 19
2.4 实型数据 20
2.4.1 实型常量 20
2.4.2 实型变量 21
2.5 字符型数据 21
2.5.1 字符常量 21
2.5.2 字符变量 22
2.5.3 字符串常量 23
2.6 各种类型数据之间的混合运算 24
2.7 运算符及其表达式 25
2.7.1 算术运算符和算术表达式 26
2.7.2 自增与自减运算符 27
2.7.3 赋值运算符和赋值表达式 28
2.7.4 关系运算符和关系表达式 30
2.7.5 逻辑运算符和逻辑表达式 31
2.7.6 逗号运算符和逗号表达式 33
2.7.7 位运算符及其表达式 33
2.8 运算符的优先级及其结合性 36
本章小结 37
练习与思考 38
实验二 基本数据类型、运算符及表达式 43
第3章 C语句和简单的C程序设计 45
3.1 C语句概述 45
3.2 程序的三种基本结构 47
3.3 赋值语句 49
3.4 数据输出 49
3.4.1 printf()—格式化输出函数 49
3.4.2 putchar()—单个字符的输出函数 54
3.4.3 scanf()—格式化输入函数 55
3.4.4 getchar()—单个字符输入函数 57
3.5 顺序结构的C程序设计举例 57
本章小结 59
练习与思考 59
实验三 简单的C程序设计 63
第4章 选择结构程序设计 65
4.1 if语句 65
4.1.1 if语句的一般格式 65
4.1.2 if语句的三种形式 66
4.1.3 if语句的嵌套 69
4.1.4 条件运算符及条件表达式 70
4.2 switch语句 72
4.3 选择结构的C程序设计举例 75
本章小结 79
练习与思考 79
实验四 选择结构程序设计 83
第5章 循环结构的C程序设计 85
5.1 循环语句 85
5.1.1 goto语句 86
5.1.2 while语句 88
5.1.3 do...while语句 89
5.1.4 for语句 91
5.2 break语句和continue语句 94
5.2.1 break语句 94
5.2.2 continue语句 94
5.2.3 break语句和continue语句的区别和联系 95
5.3 循环的嵌套 96
5.4 几种循环的比较 99
5.5 循环结构的C程序设计举例 100
本章小结 103
练习与思考 104
实验五 循环结构程序设计 109
第6章 数组和串 111
6.1 一维数组的定义和引用 112
6.1.1 一维数组的定义 112
6.1.2 一维数组元素的引用 112
6.1.3 一维数组元素的初始化 113
6.1.4 一维数组应用举例 114
6.2 二维数组的定义和引用 116
6.2.1 二维数组的定义 116
6.2.2 二维数组元素的引用 117
6.2.3 二维数组元素的初始化 118
6.2.4 二维数组应用举例 119
6.3 字符数组与字符串 121
6.3.1 字符数组的定义 121
6.3.2 字符数组的初始化 121
6.3.3 字符数组的引用 122
6.3.4 字符串 124
6.3.5 常用的字符串处理函数 124
6.4 数组应用举例 126
本章小结 130
练习与思考 131
实验六 数组与字符串的应用 134
第7章 函数 136
7.1 C程序的模块化结构 136
7.1.1 概述 136
7.1.2 函数的种类 137
7.2 库函数 138
7.2.1 C语言常用库函数 138
7.2.2 标准库函数的调用 139
7.3 函数的定义 139
7.3.1 函数的定义格式 139
7.3.2 函数的返回值与函数类型 141
7.3.3 对被调用函数的说明和函数原型 141
7.3.4 函数的形参与实参 143
7.4 函数的调用 144
7.4.1 函数的简单调用 144
7.4.2 函数的嵌套调用 145
7.4.3 函数的递归调用 146
7.5 数组作为函数参数 148
7.5.1 数组元素作为函数参数 148
7.5.2 数组名作为函数的形参和实参 149
7.6 由多个函数组成的C程序设计应用举例 151
本章小结 152
练习与思考 153
实验七 函数 157
第8章 编译预处理 158
8.1 宏定义与符号常量 159
8.1.1 无参数的宏定义 159
8.1.2 带参数的宏定义 160
8.2 文件包含 162
8.3 条件编译 163
本章小结 165
练习与思考 165
实验八 编译预处理 167
第9章 指针 168
9.1 什么是指针 168
9.2 指针和指针变量 169
9.2.1 指针变量的定义 169
9.2.2 指针变量的初始化 170
9.2.3 指针变量的引用 170
9.2.4 指针变量作函数参数 172
9.3 数组指针 174
9.3.1 指向数组元素的指针变量 174
9.3.2 通过指针引用数组元素 174
9.3.3 数组名作函数参数 177
9.4 字符串指针和指向字符串的指针变量 178
9.4.1 字符串的指针表示和引用 178
9.4.2 字符串指针作函数参数 180
9.5 函数指针 181
9.5.1 指向函数的指针变量 181
9.5.2 用函数指针调用函数 181
9.5.3 用指向函数的指针作函数参数 182
9.6 返回指针值的函数 183
9.7 指针数组和指向指针的指针 184
9.7.1 指针数组 184
9.7.2 指针数组作main()函数的形参 185
9.7.3 指向指针的指针 186
9.8 指针应用举例 187
本章小结 192
练习与思考 193
实验九 指针的应用 196
第10章 结构体、共用体、枚举体和用户自定义类型 197
10.1 结构体 197
10.1.1 结构体的类型定义 197
10.1.2 结构体变量的定义 198
10.1.3 结构体变量的引用与初始化 199
10.1.4 结构体数组 201
10.1.5 指向结构体类型数据的指针 202
10.2 共用体 203
10.2.1 共用体类型的定义 203
10.2.2 共用体类型变量定义 203
10.2.3 共用体变量的引用 203
10.3 枚举体 205
10.4 用户自定义类型 207
10.5 应用举例 208
本章小结 215
练习与思考 216
实验十 结构体和共用体 221
第11章 C语言的模块化程序设计 222
11.1 程序设计的基本方法 222
11.2 C语言对模块化程序设计的支持 224
11.2.1 内部变量、外部变量及其作用范围 224
11.2.2 变量的存储方式 226
11.2.3 内部函数和外部函数 230
11.3 多个源程序文件组成的C程序设计案例分析 232
本章小结 234
练习与思考 234
实验十一 C语言的模块化程序设计 239
第12章 文件 240
12.1 C语言文件概述 240
12.1.1 文件的概念与分类 240
12.1.2 缓冲文件系统与非缓冲文件系统 241
12.1.3 文件的操作流程 242
12.2 文件的打开与关闭 242
12.2.1 文件的打开函数fopen() 243
12.2.2 文件的关闭函数fcolse() 244
12.3 文件的读写 244
12.3.1 读/写一个字符函数 245
12.3.2 读/写一个字符串函数 247
12.3.3 读/写一个数据块函数 247
12.3.4 对文件进行格式化读/写函数 249
12.3.5 读/写函数的选用原则 250
12.4 位置指针与文件定位 250
12.4.1 随机读写与fseek()函数 250
12.4.2 返回文件当前位置的函数ftell() 251
12.4.3 位置指针复位函数rewind() 251
12.5 出错检测 252
12.5.1 ferroi()函数 252
12.5.2 clearerr()函数 252
12.6 应用举例 252
本章小结 254
练习与思考 255
实验十二 文件 259
第13章 C语言的综合应用 260
13.1 顺序表的插入与删除 260
13.2 利用结构体变量构成链表 263
13.3 绘制图形实例 269
13.4 综合应用案例分析 275
本章小结 278
练习与思考 278
实验十三 C语言的综合应用 282
附录A ASCII(美国信息交换标准编码)表 283
附录B C语言的语法提要 284
附录C 运算符的优先级与结合性 285
附录D Turbo C常用库函数 286
附录E C语言使用中的常见错误 290
参考文献 294