第1章 认识C语言 1
1.1 C语言源程序的基本结构 1
1.1.1 “欢迎”等三个源程序 1
1.1.2 关于程序的基本概念 2
1.1.3 源程序基本结构学习 2
1.2 程序的调试 5
1.2.1 调试步骤 5
1.2.2 在Visual C++6.0调试环境下调试第一个程序 5
习题 9
第2章 顺序结构程序设计 10
2.1 顺序结构的程序案例 10
2.2 字符集和标识符 11
2.2.1 字符集 11
2.2.2 标识符 12
2.3 变量与常量 14
2.3.1 变量 15
2.3.2 常量 16
2.4 C语言的数据类型 17
2.4.1 为什么要讨论数据类型 17
2.4.2 C语言的数据类型 18
2.4.3 基本数据类型 18
2.5 不同类型数据变量的存储方式 19
2.5.1 整型数据在内存中的存储方式 19
2.5.2 浮点数据在内存中的存储方式 20
2.5.3 字符数据在内存中的存储方式 20
2.6 不同类型数据变量的说明方式 21
2.6.1 整型变量 21
2.6.2 浮点变量 21
2.6.3 字符型变量 22
2.7 不同类型数据常量的写法 22
2.7.1 整型常量 22
2.7.2 浮点常量 22
2.7.3 字符型常量 23
2.8 不同类型数据的显示和格式输入 24
2.8.1 整型数据的显示和格式输入 24
2.8.2 浮点数据的显示和格式输入 26
2.8.3 字符型数据的显示和格式输入 27
2.8.4 用getchar输入字符和用putchar输出字符 28
2.8.5 字符串常量 30
习题 31
第3章 选择结构程序设计 34
3.1 含有if的选择结构 34
3.1.1 选择结构程序设计的案例 34
3.1.2 选择结构流程图的画法 36
3.1.3 if形式 38
3.1.4 if else形式 42
3.1.5 if else if形式 45
3.1.6 嵌套的分支语句 49
3.2 switch语句 52
3.3 条件运算符 58
习题 59
第4章 基础知识深化 63
4.1 语句与分程序 63
4.2 算术运算符与赋值运算符 65
4.2.1 算术运算符的种类及运算 65
4.2.2 算术表达式及算术运算符的优先级 66
4.2.3 算术运算符的结合性 67
4.2.4 普通赋值运算符与复合赋值运算符 67
4.2.5 复合赋值运算符 68
4.3 关系运算符与逻辑运算符 68
4.3.1 关系运算符 68
4.3.2 逻辑运算符 69
4.4 增1/减1运算符 71
4.5 不同数据类型数据间的混合运算 73
4.5.1 自动转换 73
4.5.2 强制转换 74
4.5.3 赋值表达式的类型转换 74
4.6 实例进阶 76
习题 80
第5章 循环结构程序设计 82
5.1 循环结构入门案例 82
5.2 结构化程序设计思想 83
5.2.1 结构化程序设计的三种基本结构 84
5.2.2 程序流程的不同描述方式 84
5.3 循环语句的用法 85
5.3.1 三种循环语句的语法 85
5.3.2 三种循环语句的使用特性 87
5.4 多重循环 95
5.5 break语句在循环语句中的用法 98
5.6 continue语句 100
5.6.1 continue的用法 100
5.6.2 break与continue的区别 100
5.7 实例进阶 102
5.8 文件初步 111
习题 114
第6章 函数 120
6.1 函数基础 121
6.2 函数的定义 123
6.2.1 函数的定义形式 123
6.2.2 函数的返回值 126
6.3 函数调用 128
6.3.1 函数的调用方式 128
6.3.2 函数的嵌套调用 129
6.4 函数说明 131
6.5 参数传递 133
6.5.1 形参和实参 133
6.5.2 形参的数据类型是基本数据类型 135
6.6 递归调用 136
6.7 变量的存储类别 141
6.7.1 自动变量与外部变量 142
6.7.2 静态变量 147
6.7.3 寄存器变量 149
习题 150
第7章 数组 157
7.1 数组案例 157
7.2 一维数组 158
7.2.1 一维数组的定义 158
7.2.2 一维数组的引用 160
7.2.3 一维数组的初始化 160
7.2.4 实例进阶 163
7.3 数组作为函数的参数 166
7.4 字符串与字符串函数 171
7.4.1 字符数组 171
7.4.2 字符串变量 172
7.4.3 有关输入和输出字符串变量的函数 172
7.4.4 字符串函数 174
7.4.5 实例进阶 180
7.5 二维数组及多维数组 182
7.5.1 二维数组的案例 182
7.5.2 二维数组的定义 185
7.5.3 二维数组的引用 186
7.5.4 二维数组的初始化 187
7.5.5 多维数组的案例 189
7.6 排序结果存入文件 191
习题 193
第8章 指针 198
8.1 指针案例 198
8.2 指针变量与指针运算符 199
8.2.1 指针数据类型 199
8.2.2 指针运算符&和*的使用 200
8.3 指针与一维数组 202
8.3.1 指针操作一维数组案例 202
8.3.2 指针值的算术运算 204
8.3.3 数组名及指针作为函数参数 206
8.3.4 指针与字符串 208
8.4 空间的动态分配与指针运算 211
8.4.1 动态分配的案例 211
8.4.2 存储器申请和释放 212
8.5 指针与函数 215
8.5.1 形参的数据类型是指针类型 215
8.5.2 返回指针值的函数 218
8.5.3 指向函数的指针 219
8.6 二级指针 222
8.7 指针数组 225
8.7.1 使用指针数组的案例 225
8.7.2 指针数组的定义和使用 226
8.8 命令行参数 227
习题 229
第9章 结构体、联合体与枚举 236
9.1 结构体 236
9.1.1 案例 236
9.1.2 结构体的说明和定义 237
9.1.3 结构体成员的引用 241
9.1.4 结构体的初始化 243
9.1.5 结构体数组 243
9.2 指向结构体的指针 244
9.3 结构体与函数 247
9.3.1 结构体数据作为函数的参数 247
9.3.2 返回指向结构体的指针的函数 249
9.4 联合体与枚举 252
9.4.1 案例 252
9.4.2 联合体及枚举的说明 254
9.4.3 联合体及枚举变量的定义 254
9.4.4 联合体变量成员的引用 255
9.4.5 枚举变量的使用 256
9.4.6 指向联合体变量的指针 257
9.4.7 联合体变量与函数 258
9.5 类型定义 262
9.6 奖牌榜信息存储于文件 263
习题 265
第10章 文件 271
10.1 文件操作的基本方法和相关概念 271
10.1.1 数据文件 271
10.1.2 文件类型指针 271
10.1.3 文件的打开 272
10.1.4 文件的关闭 274
10.1.5 文件操作顺序 275
10.1.6 C语言的设备文件 275
10.2 文件的读写操作 275
10.2.1 fputc函数与fgetc函数 276
10.2.2 fprintf函数与fscanf函数 280
10.2.3 fread函数与fwrite函数 281
10.2.4 fgets与fputs函数 283
10.3 文件的定位 284
10.3.1 文件的顺序存取和随机存取 284
10.3.2 rewind函数 285
10.3.3 fseek函数 285
习题 287
附录A ASCII代码与字符对照表 291
附录B 运算符的优先级和结合性 293
附录C printf函数的转换说明模式 295