第1章 C语言概述 1
1.1 C语言简介 1
1.2 简单的C程序介绍 3
1.2.1 C语言程序的总体结构 3
1.2.2 C语言程序的书写格式 5
1.3 C程序的上机步骤 6
1.3.1 从输入到运行一个C语言程序的一般过程 6
1.3.2 在Turbo C下运行C程序的步骤 6
1.4 小结 10
1.5 实训 10
1.5.1 实训目的 10
1.5.2 实训内容 10
1.5.3 实训过程 11
1.5.4 实训总结 11
思考与习题 11
第2章 数据类型、运算符及表达式 13
2.1 常量和变量 13
2.1.1 常量与符号常量 13
2.1.2 变量 14
2.2 C语言的基本数据类型 15
2.2.1 整型数据 15
2.2.2 实型数据 17
2.2.3 字符型数据 18
2.3 运算符和表达式 21
2.3.1 C运算符简介 21
2.3.2 算术运算符和算术表达式 21
2.3.3 自增自减运算符及表达式 23
2.3.4 逗号运算符和逗号表达式 24
2.3.5 赋值运算符与赋值表达式 25
2.3.6 关系与逻辑运算符及表达式 25
2.3.7 条件运算符与条件表达式 27
2.4 小结 28
2.5 实训 28
2.5.1 实训目的 28
2.5.2 实训内容 28
2.5.3 实训过程 28
2.5.4 实训总结 29
思考与习题 29
第3章 顺序结构程序设计 31
3.1 C语句概述 31
3.1.1 表达式语句 31
3.1.2 函数调用语句 31
3.1.3 空语句 32
3.1.4 复合语句 32
3.1.5 流程控制语句 33
3.2 程序的三种基本结构 33
3.2.1 顺序结构 33
3.2.2 选择结构 34
3.2.3 循环结构 34
3.3 数据的输入输出 35
3.3.1 数据输出语句 35
3.3.2 数据输入语句 38
3.4 顺序结构程序设计举例 42
3.5 小结 43
3.6 实训 43
3.6.1 实训目的 43
3.6.2 实训内容 44
3.6.3 实训过程 44
3.6.4 实训总结 44
思考与习题 44
第4章 选择结构程序设计 48
4.1 if语句 48
4.1.1 if语句三种形式 48
4.1.2 if语句的嵌套 51
4.2 switch语句 53
4.2.1 switch语句的一般形式 54
4.2.2 switch语句的执行过程 54
4.2.3 switch语句应用举例 54
4.3 选择结构程序设计举例 56
4.4 小结 58
4.5 实训 59
4.5.1 实训目的 59
4.5.2 实训内容 59
4.5.3 实训过程 59
4.5.4 实训总结 62
思考与习题 62
第5章 循环结构程序设计 66
5.1 while语句 66
5.2 do while语句 67
5.3 for语句 69
5.4 多重循环 72
5.4.1 多重循环的概念 72
5.4.2 多重循环的结构 74
5.5 break、continue和goto语句 74
5.5.1 break语句 74
5.5.2 continue语句 76
5.5.3 goto语句 77
5.6 循环结构程序设计举例 78
5.7 小结 82
5.8 实训 82
5.8.1 实训目的 82
5.8.2 实训内容 83
5.8.3 实训过程 83
5.8.4 实训总结 85
思考与习题 85
第6章 数组 88
6.1 数组的概念 88
6.2 一维数组 88
6.2.1 一维数组的定义 88
6.2.2 一维数组元素的引用 89
6.2.3 一维数组元素的初始化 90
6.3 排序和查找 91
6.3.1 排序 92
6.3.2 查找 94
6.4 二维数组 95
6.4.1 二维数组的定义 95
6.4.2 二维数组元素的引用 96
6.4.3 二维数组的初始化 97
6.5 字符数组和字符串 99
6.5.1 字符数组的定义 99
6.5.2 字符数组的初始化 99
6.5.3 字符串的输入和输出 100
6.5.4 字符串处理函数 102
6.6 小结 107
6.7 实训 107
6.7.1 实训目的 107
6.7.2 实训内容 107
6.7.3 实训过程 107
6.7.4 实训总结 109
思考与习题 109
第7章 函数与编译预处理 112
7.1 函数的定义 112
7.1.1 函数概述 112
7.1.2 函数定义 113
7.2 函数的参数和返回值 114
7.2.1 形式参数和实际参数 114
7.2.2 函数的返回值 115
7.3 函数的调用 116
7.3.1 函数调用的一般形式 116
7.3.2 函数调用的方式 117
7.3.3 库函数的调用 117
7.3.4 自定义函数的调用 118
7.3.5 函数的嵌套调用 119
7.3.6 函数的递归调用 120
7.4 变量 124
7.4.1 变量分类 124
7.4.2 局部变量和全局变量 125
7.4.3 变量的存储类型 127
7.4.4 内部函数和外部函数 132
7.5 编译预处理命令 134
7.5.1 文件包含 135
7.5.2 宏定义 135
7.5.3 条件编译 137
7.6 小结 139
7.7 实训 139
7.7.1 实训目的 139
7.7.2 实训内容 139
7.7.3 实训过程 139
7.7.4 实训总结 140
思考与习题 140
第8章 指针 143
8.1 指针的概念 143
8.1.1 变量存储的相关概念 143
8.1.2 变量的访问方式 144
8.2 指向变量的指针变量 145
8.2.1 指针变量的定义及初始化 145
8.2.2 指针变量的引用 146
8.2.3 指针变量做函数参数 150
8.3 指向一维数组的指针变量 154
8.3.1 一维数组指针的概念 154
8.3.2 一维数组的指针表示方法 154
8.3.3 一维数组元素的引用方法 155
8.3.4 通过指针引用数组元素 156
8.4 指向字符串的指针变量 157
8.5 小结 160
8.6 实训 160
8.6.1 实训目的 160
8.6.2 实训内容 160
8.6.3 实训过程 161
8.6.4 实训总结 161
思考与习题 161
第9章 结构体与共用体 165
9.1 构造结构体类型 165
9.2 结构体变量的定义、初始化及引用 166
9.2.1 结构体变量的定义 166
9.2.2 结构体变量的初始化 168
9.2.3 结构体变量的引用 168
9.3 结构体数组 169
9.3.1 定义结构体数组及结构体数组的初始化 169
9.3.2 结构体数组应用举例 171
9.4 指向结构体数据的指针 172
9.4.1 指向结构体变量的指针 172
9.4.2 指向结构体数组的指针 173
9.4.3 用结构体变量和指向结构体的指针做函数参数 174
9.5 共用体 176
9.5.1 共用体的概念 176
9.5.2 共用体的引用方式 177
9.5.3 共用体类型数据的特点 177
9.6 小结 178
9.7 实训 178
9.7.1 实训目的 178
9.7.2 实训内容 178
9.7.3 实训过程 179
9.7.4 实训总结 180
思考与习题 180
第10章 文件 182
10.1 文件概述 182
10.1.1 文件及文件名 182
10.1.2 文件分类 182
10.1.3 构成文件的基本单元与流式文件 183
10.1.4 ANSIC的缓冲文件系统 183
10.2 文件的打开与关闭 184
10.2.1 缓冲型文件类型 184
10.2.2 非缓冲型文件类型 187
10.3 文件的读写函数 189
10.3.1 按字符读写的函数 189
10.3.2 按字符串读写的函数 190
10.3.3 按格式要求读写的函数 191
10.3.4 按数据块读写的函数 193
10.3.5 文件的其他常用函数 194
10.4 小结 195
10.5 实训 195
10.5.1 实训目的 195
10.5.2 实训内容 195
10.5.3 实训过程 195
10.5.4 实训总结 197
思考与习题 197
第11章 综合实训 200
11.1 成绩管理系统 200
11.1.1 成绩管理系统问题描述 200
11.1.2 成绩管理系统设计 200
11.1.3 成绩管理系统实施阶段 201
11.2 电话簿管理系统 205
11.2.1 电话簿管理系统问题描述 205
11.2.2 电话簿管理系统设计 206
11.2.3 电话簿管理系统实施阶段 207
11.3 小结 218
思考与习题 219
附录A 常用字符与ASCII编码对照表 220
附录B C语言中的关键字 222
附录C 运算符和结合性 223
附录D C语言常用库函数 224
参考文献 228