第1章 C语言概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C语言程序的基本结构 2
1.3 C语言程序上机调试的步骤和方法 3
1.4 算法 4
1.4.1 算法的概念 4
1.4.2 算法的特性 5
1.4.3 算法的表示方法 5
1.4.4 结构化程序设计方法 10
1.5 本章小结 11
习题 11
第2章 C语言程序设计的初步知识 13
2.1 C语言的数据类型 13
2.2 标识符、常量和变量 14
2.2.1 标识符 14
2.2.2 常量 15
2.2.3 变量 15
2.3 整型数据 16
2.3.1 整型常量 16
2.3.2 整型变量 16
2.4 实型数据 17
2.4.1 实型常量 17
2.4.2 实型变量 17
2.5 字符型数据 18
2.5.1 字符常量 18
2.5.2 字符变量 19
2.5.3 字符串常量 20
2.6 算术运算符和算术表达式 20
2.6.1 基本的算术运算符和算术表达式 20
2.6.2 算术运算符的优先级与结合性 21
2.7 赋值运算符和赋值表达式 21
2.7.1 基本赋值运算符 21
2.7.2 复合赋值运算符 22
2.7.3 赋值表达式 22
2.8 逗号运算符和逗号表达式 22
2.9 自增运算符、自减运算符及C语言运算符的优先级 23
2.9.1 自增运算符 23
2.9.2 自减运算符 23
2.9.3 C语言运算符的优先级与结合性 24
2.10 不同类型数据间的混合运算 25
2.11 典型例题解析 26
2.12 本章小结 28
习题 28
第3章 顺序结构程序设计 31
3.1 C语句 31
3.2 数据的输出 32
3.2.1 字符输出函数(putchar()函数) 33
3.2.2 格式输出函数(printf()函数) 33
3.3 数据的输入 36
3.3.1 字符输入函数(getchar()函数) 36
3.3.2 格式输入函数(scanf()函数) 36
3.4 典型例题解析 38
3.5 本章小结 40
习题 40
第4章 选择结构程序设计 44
4.1 关系运算符和关系表达式 44
4.1.1 关系运算符及其优先级 44
4.1.2 关系表达式 44
4.2 逻辑运算符和逻辑表达式 45
4.2.1 逻辑运算符及其优先级 45
4.2.2 逻辑表达式 46
4.3 条件运算符和条件表达式 47
4.4 if语句 47
4.4.1 if语句的三种形式 47
4.4.2 if语句的嵌套 50
4.5 switch语句 51
4.5.1 多分支switch语句 51
4.5.2 break语句 53
4.6 典型例题解析 54
4.7 本章小结 56
习题 57
第5章 循环结构程序设计 60
5.1 while语句 60
5.1.1 while循环的一般格式 60
5.1.2 while循环的执行过程 60
5.2 do-while语句 62
5.2.1 do-while循环的一般格式 62
5.2.2 do-while循环的执行过程 62
5.3 for语句 63
5.3.1 for循环的一般格式 63
5.3.2 for循环的执行过程 64
5.4 break语句和continue语句在循环体中的作用 66
5.4.1 break语句在循环体中的作用 66
5.4.2 continue语句在循环体中的作用 66
5.5 语句标号和goto语句 67
5.5.1 语句标号 67
5.5.2 goto语句 67
5.6 循环结构的嵌套 68
5.7 典型例题解析 70
5.8 本章小结 72
习题 73
第6章 数组 78
6.1 一维数组 78
6.1.1 一维数组的定义 78
6.1.2 一维数组元素的引用 79
6.1.3 一维数组的初始化 80
6.1.4 一维数组的应用 81
6.2 二维数组 83
6.2.1 二维数组的定义 83
6.2.2 二维数组元素的引用 83
6.2.3 二维数组的初始化 84
6.2.4 二维数组的应用 84
6.3 字符数组 86
6.3.1 字符数组的定义及初始化 86
6.3.2 字符数组的引用 87
6.3.3 字符串处理函数 88
6.3.4 字符串数组 91
6.4 典型例题解析 93
6.5 本章小结 96
习题 96
第7章 函数 100
7.1 函数的概念 100
7.1.1 库函数的使用 101
7.1.2 函数的定义 102
7.2 函数的参数和返回值 103
7.2.1 函数的参数 103
7.2.2 函数的返回值 104
7.2.3 函数的声明 104
7.3 函数的参数传递方式 105
7.3.1 值传递方式 105
7.3.2 地址传递方式 106
7.4 函数的调用 108
7.4.1 函数的一般调用 108
7.4.2 函数的嵌套调用 109
7.4.3 函数的递归调用 111
7.5 变量的作用域和存储方式 113
7.5.1 变量的作用域 114
7.5.2 变量的存储方式 116
7.6 函数的作用范围 122
7.6.1 内部函数 122
7.6.2 外部函数 123
7.7 典型例题解析 124
7.8 本章小结 127
习题 127
第8章 编译预处理 132
8.1 宏定义 132
8.1.1 不带参数的宏定义 132
8.1.2 带参数的宏定义 133
8.1.3 终止宏定义 135
8.2 文件包含命令 136
8.3 条件编译 137
8.4 典型例题解析 140
8.5 本章小结 141
习题 142
第9章 指针 145
9.1 指针概述 145
9.2 指针变量 146
9.2.1 指针变量的定义 146
9.2.2 指针变量的引用 147
9.2.3 指针变量的运算 150
9.3 指针与数组 151
9.3.1 指针与一维数组 151
9.3.2 指针与二维数组 153
9.3.3 指向行指针的指针变量 154
9.4 指针与字符串 155
9.5 指针数组 157
9.6 指针与函数 159
9.6.1 指针变量作为函数的参数 159
9.6.2 数组名作为函数的参数 161
9.6.3 函数的返回值为指针 162
9.6.4 指向函数的指针 163
9.6.5 指向函数的指针作为函数的参数 165
9.7 指向指针的指针 166
9.8 main()函数的形参和void指针 167
9.8.1 指针数组作为main()函数的形参 167
9.8.2 指向void的指针变量 169
9.8.3 动态存储分配 170
9.9 典型例题解析 172
9.10 本章小结 174
习题 175
第10章 构造数据类型 179
10.1 结构体 179
10.1.1 结构体定义 179
10.1.2 结构体变量 180
10.1.3 结构体变量的使用 182
10.2 结构体与函数 185
10.2.1 结构体变量与数组结构作函数参数 186
10.2.2 结构体变量作为函数的返回值 187
10.3 结构体与指针 188
10.3.1 结构体变量指针 188
10.3.2 结构体数组指针 189
10.4 链表 190
10.4.1 链表概述 191
10.4.2 链表的基本操作 192
10.5 共用体 198
10.6 枚举类型 200
10.7 typedf类型声明 202
10.8 典型例题解析 203
10.9 本章小结 206
习题 207
第11章 文件 212
11.1 文件概述 212
11.2 文件类型指针 214
11.3 文件的基本操作 215
11.3.1 文件的打开 215
11.3.2 文件的关闭 217
11.3.3 文件的读函数 218
11.3.4 文件的写函数 221
11.4 文件的定位函数 225
11.5 文件出错检测函数 227
11.6 典型例题解析 228
11.7 本章小结 231
习题 231
附录 235
附录A C语言中的关键字 235
附录B 常用字符与ASCII代码对照表 235
附录C Turbo C(V2.0)编译错误信息 236
参考文献 243