第1章 C语言概述 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.2 C语言发展概述和主要特点 3
1.2.1 C语言的发展历史 3
1.2.2 C语言的主要特点 3
1.3 C程序的基本结构 4
1.4 程序的调试 7
1.4.1 调试步骤 7
1.4.2 Turbo C集成开发环境 8
1.4.3 Visual C++集成开发环境 11
本章小结 15
习题1 15
第2章 C语言的基本知识 16
2.1 C语言的数据类型 16
2.2 变量与常量 17
2.2.1 变量 17
2.2.2 常量 19
2.3 整型数据 20
2.3.1 整型变量 20
2.3.2 整型常量 22
2.3.3 用printf()输出整型数据 23
2.3.4 用scanf()输入整型数据 27
2.4 浮点数 30
2.4.1 浮点变量 30
2.4.2 浮点常量 31
2.4.3 用printf()输出浮点数据 32
2.4.4 用scanf()输入浮点数据 34
2.5 字符型数据 35
2.5.1 字符变量 35
2.5.2 字符常量 36
2.5.3 用printf()输出字符 37
2.5.4 用scanf()输入字符 37
2.5.5 用getchar()输入字符和用putchar()输出字符 38
2.5.6 字符串常量 40
本章小结 41
习题2 42
第3章 运算符和表达式 44
3.1 表达式 44
3.2 算术运算符 46
3.3 赋值运算符 47
3.3.1 普通赋值运算符 47
3.3.2 复合赋值运算符 48
3.4 不同数据类型数据间的混合运算 49
3.4.1 自动类型转换 49
3.4.2 强制类型转换 50
3.4.3 赋值表达式的类型转换 51
3.5 自增、自减运算符 53
3.6 逗号运算符 55
3.7 其他运算符 56
本章小结 57
习题3 58
第4章 顺序和选择结构程序设计 60
4.1 C语句概述 60
4.2 算法基本知识 62
4.2.1 算法的特性和要素 62
4.2.2 算法的描述 63
4.3 顺序结构程序设计 65
4.4 关系运算与逻辑运算 66
4.4.1 关系运算 66
4.4.2 逻辑运算 67
4.4.3 程序中对条件的描述 70
4.5 if语句 70
4.5.1 if语句的基本形式 70
4.5.2 缺省else结构的if语句 72
4.6 if语句的嵌套 75
4.7 条件运算符 78
4.8 switch语句 79
4.9 选择结构程序设计举例 82
本章小结 85
习题4 86
第5章 循环结构程序设计 87
5.1 while语句 87
5.2 do…while语句 91
5.3 for语句 93
5.4 break语句与continue语句 97
5.4.1 break语句 97
5.4.2 continue语句 98
5.5 循环的嵌套 100
5.6 用if和goto语句构成的循环结构 103
5.7 程序举例 104
本章小结 108
习题5 108
第6章 数组 110
6.1 一维数组 110
6.1.1 一维数组的定义 110
6.1.2 一维数组的引用 111
6.1.3 一维数组的初始化 113
6.1.4 一维数组的程序举例 114
6.2 二维数组 119
6.2.1 二维数组的定义 119
6.2.2 二维数组的引用 120
6.2.3 二维数组的初始化 121
6.2.4 二维数组的程序举例 122
6.3 字符数组与字符串 125
6.3.1 字符数组 125
6.3.2 用字符数组存储字符串 127
6.3.3 字符串输入输出 128
6.3.4 字符串处理函数 130
6.3.5 字符串应用举例 133
本章小结 135
习题6 136
第7章 函数 138
7.1 函数概述 138
7.2 函数的定义和调用 139
7.2.1 函数定义 139
7.2.2 函数调用 141
7.2.3 形式参数和实际参数 142
7.2.4 函数的值 145
7.3 函数的嵌套调用 146
7.4 函数的递归调用 149
7.5 局部变量和全局变量 150
7.5.1 局部变量 151
7.5.2 全局变量 151
7.6 数据的存储类别 153
7.6.1 动态存储与静态存储 153
7.6.2 auto变量 154
7.6.3 register变量 154
7.6.4 static变量 154
7.6.5 extern变量 155
7.7 内部函数与外部函数 157
本章小结 157
习题7 158
第8章 指针 161
8.1 地址与指针 161
8.2 指针变量 163
8.2.1 指针的定义 163
8.2.2 指针变量的引用 163
8.2.3 指针变量的使用 164
8.3 指针与数组 167
8.3.1 通过指针访问一维数组 167
8.3.2 通过指针访问二维数组 170
8.3.3 指针的基本运算 172
8.4 指针与字符串 174
8.4.1 字符数组与字符指针 174
8.4.2 字符指针举例 175
8.5 指针与函数 177
8.5.1 指针作函数的参数 177
8.5.2 数组名作函数的参数 181
8.5.3 函数返回值是指针 186
8.5.4 指向函数的指针 187
8.6 指针数组 188
8.6.1 指针数组 188
8.6.2 main()函数的参数 189
8.7 多级指针 190
本章小结 192
习题8 193
第9章 结构体与其他数据类型 195
9.1 结构体类型 195
9.1.1 声明结构体类型 196
9.1.2 结构体变量的定义 197
9.1.3 结构体变量的引用 199
9.1.4 结构体变量的初始化 201
9.2 结构体数组 202
9.3 指向结构体类型数据的指针 203
9.4 共用体 205
9.4.1 共用体概念 205
9.4.2 共用体类型的应用 207
9.5 枚举类型 209
9.6 用typedef定义类型 211
本章小结 212
习题9 213
第10章 文件 214
10.1 C文件概述 214
10.2 文件指针 215
10.3 文件的打开与关闭 215
10.3.1 文件的打开 215
10.3.2 文件的关闭 217
10.4 文件的读写 217
10.4.1 fputc()函数和fgetc()函数 217
10.4.2 fputs()函数和fgets()函数 219
10.4.3 fprintf()函数和fscanf()函数 220
10.4.4 fread()函数和fwrite()函数 220
10.5 文件的定位 222
本章小结 224
习题10 224
第11章 预处理命令 225
11.1 宏定义 225
11.1.1 无参数的宏定义 225
11.1.2 带参数的宏定义 227
11.2 文件包含 228
11.3 条件编译 230
本章小结 232
习题11 232
第12章 位运算 234
12.1 位运算符和位运算 234
12.1.1 按位与运算符 235
12.1.2 按位或运算符 236
12.1.3 异或运算符 237
12.1.4 取反运算符 238
12.1.5 左移运算符 238
12.1.6 右移运算符 238
12.1.7 位运算赋值运算符 239
12.1.8 不同长度的数据进行位运算 239
12.2 位运算举例 240
12.3 位段 241
本章小结 242
习题12 243
附录A ASCII代码与字符对照表 244
附录B 运算符的优先级和结合性 245
附录C C语言库函数 246
参考文献 250