第1章 C语言概述 1
1.1计算机语言简介 1
1.2 C语言的发展及特点 3
1.2.1 C语言的发展 3
1.2.2 C语言的特点 3
1.3 C语言的基本结构 5
1.4 C语言程序的运行 8
1.5 C语言的学习建议 9
本章小结 10
第2章 数据类型、运算符及表达式 11
2.1 C语言的数据类型 11
2.2标识符、常量与变量 12
2.2.1标识符 12
2.2.2常量 13
2.2.3变量 14
2.3整型数据 15
2.3.1整型数据在内存中的存放形式 15
2.3.2整型常量 15
2.3.3整型变量的分类 16
2.3.4整型变量的定义 17
2.4实型数据 18
2.4.1实型数据在内存中的存放形式 18
2.4.2实型常量 18
2.4.3实型变量 19
2.5字符型数据 20
2.5.1字符常量 20
2.5.2字符型变量 21
2.5.3字符串常量 22
2.6运算符和表达式 23
2.6.1运算符、表达式概述 23
2.6.2算术运算符及其表达式 24
2.6.3关系运算符及其表达式 24
2.6.4逻辑运算符和逻辑表达式 25
2.6.5赋值运算符和赋值表达式 27
2.6.6自增、自减运算符 28
2.6.7逗号运算符和逗号表达式 29
2.6.8位运算符和位运算 29
2.6.9条件运算符与条件表达式 32
2.6.10求字节运算符 33
2.7数据类型转换 33
2.7.1自动类型转换 33
2.7.2强制类型转换 37
2.8常见错误 38
本章小结 40
第3章 顺序结构程序设计 41
3.1结构化程序设计的基本知识 41
3.1.1语句的概念 41
3.1.2 C程序的三种基本结构 42
3.2数据的输入/输出 43
3.2.1格式输出函数printf() 44
3.2.2格式输入函数scanf() 48
3.3顺序结构程序设计举例 51
本章小结 55
第4章 选择结构程序设计 57
4.1 if语句的两种形式 57
4.1.1 if语句 58
4.1.2 if-else语句 59
4.1.3嵌套的if语句 60
4.2 switch语句 61
4.3选择结构程序设计举例 65
本章小结 69
第5章 循环结构程序设计 70
5.1循环语句 70
5.1.1 for语句 71
5.1.2 while语句 72
5.1.3 do-while语句 73
5.2 break语句、continue语句和goto语句 74
5.2.1 break语句 74
5.2.2 continue语句 75
5.2.3 goto语句 76
5.3几种循环的比较 78
5.4循环结构的嵌套 78
本章小结 81
第6章 数组 82
6.1一维数组 85
6.1.1一维数组的定义 85
6.1.2一维数组元素的引用 85
6.1.3一维数组的初始化 88
6.2字符串操作 91
6.2.1字符串概念 93
6.2.2字符串的输入输出 94
6.2.3字符串处理函数 97
6.3二维数组 99
6.3.1二维数组的定义 100
6.3.2二维数组元素的引用 100
6.3.3二维数组的初始化 103
6.4综合应用实例 106
6.4.1一维数组应用 106
6.4.2二维数组应用 112
本章小结 116
第7章 指针 118
7.1指针基础 119
7.1.1地址的概念 119
7.1.2数据访问形式 120
7.1.3指针与指针变量 121
7.2指针变量 121
7.2.1指针变量的定义与引用 121
7.2.2二级指针变量 126
7.3指针与一维数组 127
7.3.1一维数组与数组元素的地址 127
7.3.2指针变量的移动和比较 128
7.3.3一维数组元素的引用 130
7.4指针与字符串 133
7.4.1字符串的存储与引用 133
7.4.2字符指针程序举例 137
7.5指针与二维数组 139
7.5.1二维数组的行地址与列地址 139
7.5.2数组名法引用二维数组元素 140
7.5.3指针变量法引用二维数组元素 141
7.6指针数组与多字符串 145
本章小结 150
第8章 函数 153
8.1爱因斯坦的数学题 153
8.2函数的分类 154
8.3函数的定义 155
8.4函数的原型声明 158
8.5函数的返回值 158
8.6函数的调用 158
8.6.1函数调用的形式和过程 158
8.6.2参数传递 162
8.7函数的嵌套调用和递归调用 175
8.7.1程序解析 175
8.7.2函数的嵌套调用 177
8.7.3函数的递归调用 178
8.8变量与函数 181
8.8.1局部变量和全局变量 181
8.8.2动态存储变量和静态存储变量 183
8.8.3外部函数和内部函数 186
本章小结 188
第9章 预处理 190
9.1宏定义 190
9.1.1无参宏定义 191
9.1.2有参宏定义 193
9.1.3终止宏定义 196
9.2文件包含 197
9.2.1文件包含的一般格式 197
9.2.2文件包含使用说明 198
9.3条件编译 198
本章小结 201
第10章 结构体与共用体 202
10.1结构体 202
10.1.1什么是结构体 202
10.1.2结构体类型的定义 202
10.1.3结构体变量的定义 204
10.1.4结构体变量的引用 206
10.1.5结构体变量的初始化 206
10.2结构体数组 208
10.2.1结构体数组的定义 208
10.2.2结构体数组的初始化 209
10.2.3结构体数组的引用 209
10.2.4结构体数组应用举例 209
10.3指向结构体类型数据的指针 210
10.3.1指向结构体变量的指针 211
10.3.2指向结构体数组的指针 212
10.4结构体与函数 214
10.4.1结构体变量和结构体成员作为函数参数 214
10.4.2指向结构体的指针作函数参数 216
10.4.3结构体变量作为函数返回值 217
10.5链表 218
10.6共用体 221
10.6.1什么是共用体 221
10.6.2共用体类型的说明和变量定义、初始化及引用 222
10.7枚举类型 224
10.7.1什么是枚举类型 224
10.7.2枚举类型的定义 224
10.7.3枚举变量的定义 225
10.7.4有关枚举型数据的操作 225
10.8用typedef定义数据类型 226
本章小结 227
第11章 文件 229
11.1文件概述 229
11.1.1文件及其分类 229
11.1.2文件指针与文件位置指针 231
11.2文件的打开与关闭 232
11.2.1文件的打开函数fopen() 232
11.2.2文件的关闭函数fclose() 234
11.2.3文件的操作顺序 235
11.3文件的顺序读写 235
11.3.1字符读函数fgetc()和写函数fputc() 236
11.3.2字符串读函数fgets()和写函数fputs() 239
11.3.3数据块读函数fread()和写函数fwrite() 242
11.3.4格式化读函数fprintf()和写函数fscanf() 247
11.3.5文件读写函数的选用原则 249
11.4文件的定位 249
11.4.1重返文件头函数rewind() 249
11.4.2改变位置函数fseek() 251
11.4.3取得当前位置函数ftell() 253
11.5文件的出错检测 253
11.5.1文件读写错误检测函数ferror() 253
11.5.2清除文件错误标志函数clearerr() 253
本章小结 254
附录 257
附录A C语言的关键字 257
附录B C语言的运算符 258
附录C常用的ASCII码字符 259
附录D常用的ANSI C语言标准库函数 260