第1章 引言 1
1.1计算机程序的基本概念 1
1.2计算机程序设计的步骤与方法 1
1.2.1计算机程序设计的步骤 1
1.2.2计算机结构化程序设计方法 2
1.3算法及其表示 4
1.3.1算法的概念与特点 4
1.3.2算法的表示 5
1.4计算机程序设计语言 7
1.4.1计算机程序设计语言简介 7
1.4.2 C语言简介 9
1.4.3 C语言程序的基本结构 11
1.5 C语言程序的执行过程 13
1.6 C语言程序开发环境 14
小结 14
习题一 14
第2章 数据类型、运算符及表达式 16
2.1 C语言的基本词法 16
2.1.1字符集 16
2.1.2保留字 17
2.1.3标识符 17
2.1.4 C语言的词类 17
2.2常量和变量 18
2.2.1常量和符号常量 18
2.2.2变量 19
2.3 C语言的基本数据类型 20
2.3.1 C语言的数据类型 20
2.3.2整型数据 21
2.3.3实型数据 26
2.3.4字符型数据 28
2.4运算符及表达式 33
2.4.1 C语言的运算符与表达式简介 33
2.4.2算术运算符及算术表达式 34
2.4.3赋值运算符及赋值表达式 39
2.4.4逗号运算符及逗号表达式 43
2.5类型转换 44
2.5.1不同数据类型数据间的混合运算 44
2.5.2强制类型转换 45
小结 45
习题二 46
第3章 顺序结构程序设计 48
3.1 C语言的基本语句 48
3.1.1表达式语句 48
3.1.2函数调用语句 49
3.1.3程序控制语句 49
3.1.4空语句 50
3.1.5复合语句 50
3.2常用输出与输入函数 50
3.2.1输出函数 51
3.2.2输入函数 56
3.3顺序结构程序举例 59
小结 63
习题三 63
第4章 选择结构程序设计 65
4.1关系运算、逻辑运算及表达式 65
4.1.1关系运算符及关系表达式 65
4.1.2逻辑运算符及逻辑表达式 66
4.2 if语句 68
4.2.1 if形式 68
4.2.2 if else形式 70
4.2.3嵌套的if语句 72
4.3 switch语句 76
4.4条件运算符 79
4.5选择结构程序举例 80
小结 83
习题四 84
第5章 循环结构程序设计 85
5.1 while循环语句 85
5.1.1 while语句的基本格式 85
5.1.2while语句的应用 86
5.2 do-while循环语句 89
5.2.1 do-while语句的基本格式 89
5.2.2 do-while语句的应用 90
5.3 for循环语句 92
5.3.1 for语句的基本格式 92
5.3.2for语句的应用 95
5.4多重循环 96
5.5 break语句和continue语句 98
5.5.1 break语句 98
5.5.2 continue语句 99
5.5.3 continue语句与break语句的比较 100
5.6几种循环语句的比较 101
5.7循环结构程序举例 105
5.7.1循环程序设计方法 105
5.7.2循环程序举例 105
小结 113
习题五 113
第6章 数组 115
6.1一维数组 115
6.1.1一维数组的定义 115
6.1.2一维数组的初始化 116
6.1.3一维数组元素的引用 117
6.1.4一维数组程序设计举例 118
6.2多维数组 121
6.2.1多维数组的定义 121
6.2.2多维数组的初始化 122
6.2.3多维数组元素的引用 124
6.2.4多维数组程序设计举例 125
6.3字符数组与字符串 127
6.3.1字符数组 127
6.3.2字符串与字符数组 129
6.3.3字符串处理函数 132
6.3.4字符串数组程序设计举例 136
6.4数组类型程序举例 137
小结 142
习题六 142
第7章 指针类型 144
7.1指针和指针变量 144
7.1.1指针 144
7.1.2指针变量 146
7.2指针变量的定义、初始化和引用 147
7.2.1指针变量的定义和初始化 147
7.2.2指针变量的引用方式 148
7.3指针变量的使用 149
7.3.1指向变量的指针变量的使用 150
7.3.2指向一维数组的指针变量的使用 151
7.3.3指向字符串的指针变量的使用 154
7.3.4指向二维数组的指针变量的使用 156
7.4指针数组和多级指针 158
7.4.1指针数组 158
7.4.2多级指针 159
7.5指针类型程序举例 162
小结 164
习题七 165
第8章 函数和变量的存储类型 167
8.1函数的引入 167
8.1.1 C程序的总体结构 167
8.1.2函数的类别 168
8.2函数的定义、调用和声明 169
8.2.1函数的定义 169
8.2.2函数的调用 171
8.2.3函数声明 174
8.3函数调用中的数据传递方式 176
8.3.1值传递方式 176
8.3.2地址传递方式 177
8.3.3返回值方式 179
8.3.4应用举例 180
8.4函数的嵌套调用和递归调用 181
8.4.1嵌套调用 181
8.4.2递归调用 183
8.5函数应用程序设计举例 186
8.5.1数组名及指针作为函数参数(参数的地址传递方式) 186
8.5.2指针函数(返回指针值的函数) 187
8.6局部变量和全局变量 188
8.6.1局部变量 188
8.6.2全局变量 189
8.7动态存储变量与静态存储变量 192
8.7.1变量的存储类别 192
8.7.2局部变量的存储类别 193
8.7.3全局变量的存储类别 195
8.7.4存储类别小结 198
8.8内部函数和外部函数 199
8.8.1外部函数 199
8.8.2内部函数(静态函数) 199
小结 200
习题八 201
第9章 结构体、联合体和枚举类型 203
9.1结构体类型 203
9.1.1结构体类型的定义和说明 203
9.1.2结构体变量的定义 204
9.1.3结构体变量的初始化 206
9.1.4结构体变量成员的引用 207
9.2结构体数组 209
9.2.1结构体数组的定义 209
9.2.2结构体数组成员的初始化和引用 210
9.3结构体指针 212
9.3.1结构体指针变量的定义 212
9.3.2用结构体指针访问结构体变量及结构体数组 213
9.4结构体变量与函数 214
9.4.1结构体变量作为函数的参数 214
9.4.2函数的返回值类型为结构体 215
9.5联合体 217
9.5.1联合体类型的定义和说明 217
9.5.2联合体变量的定义 217
9.5.3联合体变量成员的引用 218
9.6枚举类型 220
9.6.1枚举类型的定义 220
9.6.2枚举变量的定义 220
9.6.3枚举变量的使用 221
9.7用户自定义类型——typedef 222
9.7.1为基本数据类型定义新的类型名 222
9.7.2为复杂的数据类型定义简单的类型名 222
9.8程序举例 223
小结 228
习题九 228
第10章 编译预处理 230
10.1宏定义命令#define 230
10.1.1无参宏定义 230
10.1.2有参宏定义 233
10.1.3有参宏与函数的区别 237
10.1.4宏定义的解除和重新定义宏 238
10.2文件包含命令#include 239
10.2.1文件包含的格式 239
10.2.2文件包含的功能 239
10.3条件编译 240
10.3.1条件编译命令的形式 240
10.3.2条件编译的功能 243
10.4编译预处理程序举例 243
小结 246
习题十 247
第11章 位运算 248
11.1数字系统、位和字节 248
11.1.1数字系统 248
11.1.2位和字节 251
11.2位运算符与位运算 252
11.2.1位逻辑运算符与运算 252
11.2.2位移位运算符与运算 257
11.3位段 259
11.3.1位段结构类型 259
11.3.2位段结构类型变量的定义与引用 261
11.4位运算程序举例 262
小结 264
习题十一 264
第12章 文件 266
12.1 C语言文件概述 266
12.1.1概念 266
12.1.2数据流 267
12.1.3文件类型指针 267
12.2文件操作函数——文件的打开与关闭 269
12.2.1文件的打开(fopen函数) 269
12.2.2文件的关闭(fclose函数) 270
12.3文件操作函数——文件的读与写 270
12.3.1 fgetc函数与fputc函数 271
12.3.2 fputs函数与fgets函数 272
12.3.3 fprintf函数与fscanf函数 274
12.3.4 fwrite函数与fread函数 275
12.4文件操作函数——文件的定位 277
12.4.1 rewind函数 277
12.4.2 fseek函数 277
12.4.3 ftell函数 277
12.5文件处理的其他函数 279
12.6文件程序举例 279
小结 282
习题十二 283
第13章 常见错误分析 284
附录A ASCII码表 298
附录B 运算符优先级 299
附录C 常用库函数 300
参考文献 302