第1章 概述 1
1.1 引例 1
1.1.1 C语言程序的结构特点 2
1.1.2 C语言程序的发展史 3
1.1.3 C语言程序的特点 3
1.2 C语言的基本字符与关键字 4
1.2.1 字符集 4
1.2.2 关键字 4
1.2.3 用户标识符 5
1.2.4 ASCII字符集 5
1.3 算法及其表示 5
1.3.1 算法的概念和特征 5
1.3.2 算法的组成要素 6
1.3.3 算法的表示 6
1.4 C语言程序的开发与运行 8
1.4.1 C语言程序的开发过程 8
1.4.2 Microsoft Visual C++6.0的集成开发环境 9
1.5 实训 12
习题 13
第2章 数据类型、运算符与表达式 15
2.1 引例 15
2.2 常量与变量 16
2.2.1 常量 17
2.2.2 变量 17
2.3 整型数据 18
2.3.1 整型常量 18
2.3.2 整型变量 18
2.3.3 整型变量的使用 19
2.4 实型数据 20
2.4.1 实型常量 20
2.4.2 实型变量 21
2.5 字符型数据 22
2.5.1 字符常量 22
2.5.2 字符变量 23
2.5.3 字符串常量 23
2.6 运算符与表达式 24
2.6.1 算术运算符与算术表达式 25
2.6.2 赋值运算符和赋值表达式 27
2.6.3 关系运算符和关系表达式 29
2.6.4 逻辑运算符和逻辑表达式 29
2.6.5 逗号运算符和逗号表达式 31
2.6.6 位运算符 31
2.7 数据类型转换 33
2.7.1 自动类型转换 33
2.7.2 强制类型转换 34
2.8 实训 34
习题 35
第3章 顺序结构程序设计 37
3.1 引例 37
3.2 C语言的基本语句 38
3.3 字符数据的输入与输出 39
3.3.1 putchar()函数 40
3.3.2 getchar()函数 40
3.4 格式输入与输出 41
3.4.1 printf()函数 41
3.4.2 scanf()函数 47
3.5 程序设计举例 50
3.6 实训 52
习题 54
第4章 选择结构程序设计 58
4.1 引例 58
4.2 if语句 60
4.2.1 if语句 60
4.2.2 if语句的嵌套 66
4.2.3 条件运算符 68
4.3 switch语句 68
4.4 程序设计举例 70
4.5 实训 74
习题 77
第5章 循环结构程序设计 82
5.1 引例 82
5.2 while语句 84
5.3 do-while语句 86
5.4 for语句 88
5.5 循环的嵌套 90
5.6 break语句和continue语句 92
5.6.1 break语句 93
5.6.2 continue语句 93
5.7 程序设计举例 94
5.8 实训 97
习题 101
第6章 数组 108
6.1 引例 108
6.2 一维数组 109
6.2.1 一维数组的定义 109
6.2.2 一维数组中元素的引用 110
6.2.3 一维数组元素的初始化 110
6.2.4 一维数组的应用 111
6.3 二维数组 115
6.3.1 二维数组的定义 115
6.3.2 二维数组元素的引用 115
6.3.3 二维数组的初始化 116
6.3.4 二维数组的应用 117
6.4 字符数组与字符串 119
6.4.1 字符数组的定义和初始化 119
6.4.2 字符数组的输入/输出 119
6.4.3 字符串处理函数 121
6.4.4 字符数组应用举例 126
6.5 实训 127
习题 130
第7章 函数 137
7.1 引例 137
7.2 函数的定义与调用 138
7.2.1 函数的定义 138
7.2.2 函数的返回值与函数类型 140
7.2.3 对被调用函数的说明和函数原型 141
7.2.4 函数的调用 141
7.2.5 函数的形参与实参 142
7.3 函数的嵌套调用和递归调用 143
7.3.1 函数的嵌套调用 143
7.3.2 函数的递归调用 144
7.4 数组作为函数参数 146
7.4.1 数组元素作为函数参数 146
7.4.2 数组名作为函数的形参和实参 147
7.5 局部变量与全局变量 148
7.5.1 局部变量 148
7.5.2 全局变量 149
7.6 变量的动态存储与静态存储简介 150
7.6.1 静态变量 150
7.6.2 自动变量 150
7.6.3 寄存器变量 151
7.6.4 外部变量 152
7.7 实训 152
习题 156
第8章 编译预处理 164
8.1 引例 164
8.2 宏定义 165
8.2.1 无参宏定义 165
8.2.2 有参宏定义 166
8.3 文件包含 167
8.3.1 文件包含处理命令的格式 167
8.3.2 文件包含的优点 168
8.4 条件编译 169
8.4.1 #ifdef命令 169
8.4.2 #ifndef命令 170
8.4.3 #if命令 170
8.4.4 #undef命令 171
8.5 实训 173
习题 174
第9章 指针 177
9.1 引例 177
9.2 指针变量的定义与应用 178
9.2.1 指针变量的定义 178
9.2.2 指针变量作函数参数 181
9.3 数组的指针和指向数组的指针变量 183
9.3.1 概念 183
9.3.2 一维数组元素的引用 183
9.3.3 对指向数组的指针变量进行算术运算和关系运算 184
9.3.4 数组名作函数参数 184
9.3.5 二维数组的指针及其指针变量 186
9.3.6 二维数组指针作函数参数 189
9.4 字符串的指针和指向字符串的指针变量 189
9.5 返回指针值的函数 191
9.6 指针数组与主函数main()的形参 191
9.6.1 指针数组 191
9.6.2 主函数main()的形参 193
9.6.3 指向指针的指针变量 193
9.7 函数的指针和指向函数的指针变量简介 195
9.7.1 指向函数的指针变量的定义 195
9.7.2 用指向函数的指针变量调用函数 195
9.8 指针小结 196
9.9 实训 197
习题 201
第10章 结构体与链表 206
10.1 引例 206
10.2 结构体类型及其变量 208
10.2.1 结构体类型与结构体变量的定义 208
10.2.2 结构体变量的引用与初始化 210
10.3 结构体数组 211
10.4 指向结构体类型数据的指针 213
10.4.1 指向结构体变量的指针 213
10.4.2 指向结构体数组的指针 214
10.5 链表处理 214
10.5.1 链表结构 214
10.5.2 对链表的基本操作 218
10.6 共用体和枚举类型 221
10.6.1 共用体 221
10.6.2 枚举类型 224
10.7 定义已有类型的别名 224
10.8 实训 225
习题 229
第11章 文件 233
11.1 引例 233
11.2 C语言文件概述 234
11.2.1 文件的概念 234
11.2.2 ANSI C的缓冲文件系统 235
11.3 文件的打开与关闭 235
11.3.1 文件的打开——fopen()函数 236
11.3.2 文件的关闭——fcolse()函数 237
11.4 文件的读写操作 237
11.4.1 读写字符 237
11.4.2 读写字符串 240
11.4.3 读写数据块 241
11.4.4 对文件进行格式化读写 242
11.5 位置指针与文件定位 244
11.5.1 位置指针复位——rewind()函数 244
11.5.2 随机读写——fseek()函数 244
11.5.3 返回文件当前位置——ftell()函数 245
11.6 出错检测 245
11.6.1 ferror()函数 245
11.6.2 clearerr()函数 246
11.7 实训 246
习题 250
第12章 C语言程序开发实例 253
12.1 应用程序设计步骤 253
12.2 应用程序设计实例 254
12.2.1 学生成绩管理系统 254
12.2.2 单位员工通讯录管理系统 262
附录1 常用字符与ASCII代码对照表 267
附录2 运算符的优先级及其结合性 268
附录3 常用的C库函数 269
参考文献 272