第1章 C语言概述 1
1.1程序与程序设计 1
1.2 C语言简介 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3简单的C程序 3
1.4算法 5
1.4.1算法概述 5
1.4.2算法图示表示法 6
小结 8
习题1 8
第2章 数据类型、运算符与表达式 9
2.1 C语言的数据类型 9
2.2常量与变量 10
2.2.1直接常量 10
2.2.2符号常量 10
2.2.3变量的定义 11
2.2.4变量的赋值与初始化 12
2.3基本数据类型 13
2.3.1整型数据 13
2.3.2实型数据 15
2.3.3字符型数据 16
2.3.4枚举类型数据 19
2.3.5自定义类型名typedef 21
2.4各种类型数据之间的混合运算 21
2.5运算符与表达式 22
2.5.1运算符与表达式简介 23
2.5.2算术运算符与算术表达式 24
2.5.3赋值运算符与赋值表达式 26
2.5.4逗号运算符与逗号表达式 28
2.5.5位运算符 29
小结 32
习题2 32
第3章 顺序程序设计 35
3.1 C语句概述 35
3.2赋值语句 38
3.3数据输入输出的概念及在C语言中的实现 39
3.4字符数据的输入输出 40
3.4.1字符输出函数putchar函数 40
3.4.2字符输入函数getchar函数 41
3.5格式输入与输出 42
3.5.1格式输出函数printf 42
3.5.2格式输入函数scanf 48
3.6编译预处理 51
3.6.1宏定义 51
3.6.2“文件包含”处理 52
3.6.3“条件编译”处理 54
3.7顺序结构程序设计举例 55
小结 57
习题3 57
第4章 选择结构程序设计 62
4.1关系运算符和关系表达式 62
4.2逻辑运算符和逻辑表达式 63
4.3 if语句 68
4.3.1 if语句的三种形式 68
4.3.2 if语句的嵌套 77
4.3.3条件运算符和条件表达式 81
4.4 switch语句 84
小结 89
习题4 89
第5章 循环控制 94
5.1 goto语句以及用goto语句构成循环 94
5.2 while语句 96
5.3 do-while语句 99
5.4 for语句 102
5.5循环的嵌套 105
5.6几种循环的比较 108
5.7 break和continue语句 112
5.7.1 break语句 112
5.7.2 continue语句 116
小结 118
习题5 118
第6章 数组 126
6.1一维数组 126
6.1.1一维数组的定义与引用 126
6.1.2一维数组的初始化 129
6.1.3一维数组程序举例 130
6.2二维数组 134
6.2.1二维数组的定义与引用 134
6.2.2二维数组的初始化 136
6.2.3二维数组程序举例 137
6.3字符数组与字符串 142
6.3.1字符数组的定义与引用 142
6.3.2字符数组的初始化 144
6.3.3字符串处理函数 145
6.3.4字符数组举例 149
小结 152
习题6 152
第7章 函数 160
7.1函数概述 160
7.2函数的定义与调用 161
7.2.1函数的定义 161
7.2.2函数的返回值 162
7.2.3函数声明 163
7.2.4函数的调用 165
7.2.5参数传递 167
7.3函数的嵌套调用和递归调用 170
7.3.1函数的嵌套调用 170
7.3.2函数的递归调用 171
7.4变量的作用域与存储类别 173
7.4.1变量的作用域 173
7.4.2变量的存储类别 176
7.5函数的作用范围 179
小结 181
习题7 181
第8章 结构体与共用体 185
8.1结构体 185
8.1.1结构体概述及定义 185
8.1.2结构体变量定义及使用 186
8.2共用体 192
8.2.1共用体定义 193
8.2.2共用体变量定义及使用 193
8.3结构体与共用体区别 194
小结 195
习题8 196
第9章 指针与链表 201
9.1指针概述 201
9.2指针变量及定义 201
9.3使用指针变量 202
9.3.1指针运算符 202
9.3.2二级指针与多级指针 205
9.4指针与数组 207
9.4.1一维数组与指针 207
9.4.2二维数组与指针 212
9.4.3字符串与指针 216
9.4.4指针数组 220
9.4.5带参数的主函数 223
9.5指针与函数 225
9.5.1指针做函数参数 225
9.5.2返回指针的函数 230
9.5.3指向函数的指针 231
9.6指针与结构体 233
9.6.1指向结构体变量的指针 233
9.6.2指向结构体数组的指针 235
9.6.3结构体指针变量做函数参数 236
9.7链表 237
9.7.1链表概述 237
9.7.2动态存储分配 238
9.7.3单向链表的基本操作 241
小结 252
习题9 253
第10章 文件 261
10.1文件概述 261
10.2文件的打开与关闭 262
10.2.1文件的打开函数fopen 262
10.2.2文件的关闭函数fclose 263
10.3文件的读写 264
10.3.1字符方式文件读写函数fgetc()和fputc() 264
10.3.2字符串方式文件读写函数fputs()和fgets() 266
10.3.3格式化方式文件读写函数fscanf()和fprintf() 268
10.3.4数据块方式文件读写函数fread()和fwrite() 269
10.4文件的定位 271
10.4.1 rewind()函数 272
10.4.2 fseek()函数 272
10.4.3 ftell()函数 272
小结 272
习题10 273
附录A ASCII码表 276
附录B C语言关键字 277
附录C C语言运算符 278
附录D C语言常用库函数 279
参考文献 284