第一章 C语言概述 1
1.1 C语言的发展及特点 1
1.2 C程序 2
1.3 C程序的构成及程序开发 5
1.3.1 C程序的构成 5
1.3.2 函数的构成 6
1.3.3 库函数 6
1.3.4 C程序的开发流程 7
第二章 C程序设计初步 9
2.1 数据类型、常量及变量 9
2.1.1 数据类型 9
2.1.2 常量 9
2.1.3 变量 10
2.2 整型数据 11
2.2.1 整型常量 11
2.2.2 整型变量 11
2.2.3 整型表达式 12
2.3 实型数据 13
2.3.1 实型常量 13
2.3.2 实型变量 13
2.3.3 实型表达式 14
2.3.4 整型和实型的混合表达式 14
2.4 运算符和表达式 15
2.4.1 C运算符简介 15
2.4.2 算术表达式 16
2.4.3 赋值运算符和赋值表达式 18
2.5 数据输入和输出 21
2.5.1 数据输入输出函数 21
2.5.2 scanf函数(格式输入函数) 21
2.5.3 printf函数(格式输出函数) 24
2.5.4 其他输入输出函数 27
2.6 注意点 28
2.6.1 几个要点 28
2.6.2 常见错误 30
第三章 逻辑运算和选择结构 32
3.1 C语言中的真假值 32
3.2 关系表达式 32
3.2.1 关系运算符及其优先级 32
3.2.2 关系表达式 33
3.3 逻辑表达式 33
3.3.1 逻辑运算符及其优先级 34
3.3.2 逻辑表达式 34
3.4 if语句 36
3.4.1 C语言的三种if语句形式 36
3.4.2 if语句的嵌套 39
3.5 条件运算符 41
3.6 switch语句 44
3.7 注意点 46
3.7.1 几个要点 46
3.7.2 常见错误 48
第四章 循环结构 51
4.1 for循环 51
4.2 While循环 54
4.3 do-While循环 55
4.4 循环的嵌套 59
4.5 注意点 61
4.5.1 几种循环的比较 61
4.5.2 使用循环语句要注意的问题 62
4.5.3 常见错误 63
第五章 其他控制结构 65
5.1 goto语句 65
5.2 break语句 67
5.3 continue语句 67
5.4 注意点 68
第六章 数组和指针 71
6.1 数组的说明及使用 71
6.1.1 一维数组的定义和引用 71
6.1.2 二维数组的定义和引用 75
6.2 指针 79
6.2.1 指针的概念 79
6.2.2 指针变量的定义 80
6.2.3 指针变量的引用 81
6.2.4 指针表达式 83
6.3 数组和指针的关系 85
6.3.1 指向数组元素的指针 85
6.3.2 通过指针引用数组元素 86
6.3.3 指向多维数组的指针 89
6.4 注意点 91
6.4.1 几个要点 91
6.4.2 几个常见错误 92
第七章 函数 95
7.1 函数的引入 95
7.2 函数的定义 98
7.3 函数的调用 100
7.3.1 函数调用的一般形式 100
7.3.2 函数调用的方式 102
7.3.3 函数的返回值 104
7.4 函数的嵌套调用 107
7.5 函数的递归调用 107
7.6 函数的其他调用方式 112
7.6.1 main()函数的参数 112
7.6.2 指针作函数的形参 113
7.6.3 数组作函数的实参 115
7.6.4 函数的指针和函数作函数的实参 119
7.6.5 返回指针的函数 124
7.7 注意点 126
7.7.1 何时定义函数 126
7.7.2 使用函数中的常见错误 128
第八章 程序的组织 132
8.1 C程序的结构与组织 132
8.1.1 C程序的结构 132
8.1.2 C程序的组织 133
8.2 程序变量的种类 137
8.2.1 局部变量和全局变量 137
8.2.2 动态存储变量和静态存储变量 141
8.3 函数的组织 150
8.3.1 内部函数和外部函数 150
8.3.2 厍函数 151
8.3.3 函数的原型 154
8.4 注意点 156
8.4.1 几个要点 156
8.4.2 常见错误 158
第九章 字符型数据和字符串 160
9.1 字符型数据 160
9.1.1 字符常量 160
9.1.2 字符变量 161
9.1.3 字符表达式 164
9.1.4 字符型数据的输入输出 164
9.2 有关字符的函数 165
9.3 字符串和字符数组 168
9.3.1 字符串 168
9.3.2 字符数组 170
9.3.3 字符串的输入输出 174
9.4 字符串和指向字符串的指针 177
9.4.1 字符指针的定义 177
9.4.2 用字符指针处理字符串 180
9.4.3 字符指针作函数参数 184
9.5 有关字符串的函数 189
9.5.1 字符串连接 189
9.5.2 字符串复制 191
9.5.3 字符串比较 192
9.5.4 字符串长度 193
9.5.5 字符串中的字符查找 193
9.5.6 字符串中查找字符串 194
9.5.7 字符串初始化 195
9.5.8 字符串转换 196
9.6 注意点 197
9.6.1 几个要点 197
9.6.2 常见错误 203
第十章 结构类型、联合类型和枚举类型 206
10.1 结构类型 206
10.2 结构类型定义与结构变量 208
10.2.1 结构类型的一般定义形式 208
10.2.2 结构变量的定义 209
10.2.3 结构变量的初始化 213
10.3 结构类型变量的引用 215
10.4 结构类型数组 217
10.5 指向结构的指针 224
10.5.1 指向结构变量的指针 224
10.5.2 指向结构数组的指针 226
10.5.3 用结构指针作函数实参 229
10.6 联合类型 231
10.6.1 联合类型和联合类型变量的定义 232
10.6.2 联合变量的引用 233
10.7 枚举类型 239
10.8 用typedef定义类型 241
10.9 注意点 244
第十一章 文件 247
11.1 C文件概述 247
11.1.1 文件的一般概念 247
11.1.2 C文件 249
11.2 文件的打开与关闭 250
11.2.1 文件打开函数fopen() 250
11.2.2 文件关闭函数fclose() 253
11.3 文件的读写 253
11.3.1 fputc函数和fgetc函数 254
11.3.2 fread函数和fwrite函数 256
11.3.3 fprintf函数和fscanf函数 259
11.3.4 其他读写函数 259
11.4 文件的其他操作 261
11.4.1 文件的定位 261
11.4.2 文件的检测 263
11.5 注意点 264
第十二章 C语言的其他成分 266
12.1 位运算 266
12.1.1 数的机内表示 266
12.1.2 位运算符 267
12.2 逗号运算 271
12.3 强制类型转换运算 272
12.4 sizeof运算符 273
12.5 编译预处理 274
12.5.1 宏定义(#define) 275
12.5.2 “文件包含”处理(#include) 279
12.5.3 条件编译(#if、#ifdef、#ifndef、#else、#endif) 280
附录A C语言的关键字 283
附录B 常用C库函数 284
附录C 常用字符的ASCII码表 296
参考文献 301