第1章 C语言概述 1
1.1 程序和程序设计语言 1
1.2 计算机求解问题的步骤 1
1.3 C语言程序举例 2
1.3.1 一个简单的C语言程序 2
1.3.2 C语言程序的结构特点 3
1.4 C语言简介 3
1.4.1 C语言的发展简史 3
1.4.2 C语言的特点 5
1.5 C语言的词汇 7
1.5.1 字符集 7
1.5.2 关键字 8
1.5.3 标识符 8
1.5.4 运算符 9
1.5.5 分隔符 9
1.6 程序的灵魂——算法 10
1.6.1 算法的概念 10
1.6.2 算法的特性 10
1.6.3 算法的表示 11
1.7 C程序的开发集成环境 15
1.7.1 上机解题的一般步骤 15
1.7.2 Visual C++6.0集成环境 15
1.7.3 Turbo C 2.0集成环境 20
本章小结 22
习题 23
第2章 C语言程序设计初步——顺序结构 25
2.1 C语言程序基本控制结构概述 25
2.2 C语句概述 26
2.2.1 表达式语句 27
2.2.2 函数调用语句 27
2.2.3 流程控制语句 27
2.2.4 复合语句 28
2.2.5 空语句 28
2.3 一个简单的顺序结构程序 28
2.4 正确选用C语言数据类型 30
2.4.1 C语言的数据类型 30
2.4.2 常量 36
2.4.3 变量 42
2.5 使用C语言运算符与表达式 45
2.6 数据类型的转换 57
2.6.1 类型自动转换 57
2.6.2 类型强制转换 58
2.7 数据的输入/输出 59
2.7.1 数据输入/输出概述 59
2.7.2 数据输入/输出语句 60
2.7.3 格式输出函数printf 62
2.7.4 格式输入函数scanf 66
2.7.5 字符输出函数putchar 70
2.7.6 字符输入函数getchar 71
2.8 顺序结构程序应用举例 72
本章小结 75
习题 77
第3章 分支结构程序设计 81
3.1 一个简单的分支结构程序 81
3.2 关系运算与逻辑运算 82
3.2.1 关系运算符与关系表达式 82
3.2.2 逻辑运算符和逻辑表达式 83
3.3 if语句与分支处理 85
3.3.1 if语句的三种形式 85
3.3.2 if语句的嵌套 90
3.3.3 条件运算符和条件表达式 92
3.4 switch语句与分支处理 93
3.5 分支结构程序应用举例 95
本章小结 96
习题 98
第4章 循环结构程序设计 102
4.1 一个简单的循环结构程序 102
4.2 while语句与循环处理 103
4.3 do…while语句与循环处理 106
4.4 for语句与循环处理 108
4.5 几种循环的比较 110
4.6 循环的嵌套 110
4.7 循环语句中的跳转 112
4.7.1 break语句 112
4.7.2 continue语句 113
4.7.3 goto语句 113
4.8 循环结构程序应用举例 115
本章小结 118
习题 119
第5章 数组 125
5.1 一个简单的数组应用程序 125
5.2 一维数组 126
5.2.1 一维数组的定义与初始化 126
5.2.2 一维数组元素的引用 129
5.2.3 一维数组应用举例 130
5.3 二维数组 136
5.3.1 二维数组的定义与初始化 136
5.3.2 二维数组元素的引用 138
5.3.3 二维数组应用举例 139
5.4 字符数组与字符串 143
5.4.1 字符数组的定义 143
5.4.2 字符数组的赋值 144
5.4.3 字符数组的引用 145
5.4.4 字符数组与字符串 147
5.4.5 字符串处理函数 149
5.5 字符数组的应用举例 152
本章小结 155
习题 157
第6章 模块化程序设计 163
6.1 模块化程序设计概述 163
6.2 使用函数编写程序 164
6.2.1 函数声明与函数定义 165
6.2.2 函数的参数与返回值 169
6.3 函数的调用 173
6.3.1 函数调用的一般形式 174
6.3.2 函数调用的方式 174
6.4 函数的参数传递方式 178
6.4.1 值传递 178
6.4.2 地址传递 180
6.4.3 数组作为函数的参数 182
6.5 函数的嵌套调用 187
6.6 递归问题求解 189
6.7 变量与函数 193
6.7.1 局部变量和全局变量 193
6.7.2 变量的存储类型 197
6.8 语言库函数简介 202
本章小结 203
习题 205
第7章 编译预处理 208
7.1 编译预处理概述 208
7.2 宏定义 208
7.2.1 不带参数的宏 209
7.2.2 带参数的宏 211
7.3 文件包含 214
7.4 条件编译 217
7.5 其他预处理命令 222
本章小结 223
习题 223
第8章 指针 226
8.1 指针概述 226
8.1.1 地址与指针 226
8.1.2 指针变量及其定义 228
8.1.3 指针的基本运算 230
8.2 指针作为函数的参数 236
8.3 指针、数组和地址间的关系 241
8.3.1 指针与一维数组 241
8.3.2 指针与二维数组 244
8.4 指针与函数 250
8.4.1 指针作为函数参数的进一步讨论 250
8.4.2 函数的返回值为指针 254
8.4.3 指向函数的指针 255
8.5 字符串和字符指针 256
8.5.1 字符串的表示形式 256
8.5.2 字符指针作函数参数 259
8.5.3 字符指针变量与字符数组的进一步讨论 262
8.6 指针数组和指向指针的指针 264
8.6.1 指针数组 264
8.6.2 指向指针的指针 268
本章小结 270
习题 273
第9章 结构体、共用体与枚举类型 276
9.1 结构体 276
9.1.1 结构体类型与结构体变量定义 276
9.1.2 结构体变量的引用 280
9.1.3 结构体变量的初始化 282
9.2 结构体数组 284
9.2.1 结构体数组的定义 284
9.2.2 结构体数组的引用 285
9.2.3 结构体数组的初始化 286
9.3 指针和结构体 288
9.3.1 指向结构体变量的指针 288
9.3.2 指向结构体数组的指针 290
9.4 结构体与函数 292
9.4.1 结构体变量作为函数参数 292
9.4.2 结构体变量作为函数的返回值 294
9.5 链表简介 295
9.5.1 链表概述 296
9.5.2 链表的基本操作举例 302
9.6 共用体 304
9.6.1 共用体类型及共用体变量的定义 304
9.6.2 共用体变量的引用 306
9.7 枚举类型 308
9.7.1 枚举类型及枚举型变量的定义 308
9.7.2 枚举变量的赋值与引用 309
9.8 用typedef定义类型 310
本章小结 311
习题 312
第10章 文件 315
10.1 文件概述 315
10.1.1 文件的概念 315
10.1.2 文件的分类 316
10.1.3 文件类型的指针 318
10.2 文件的打开与关闭 319
10.2.1 打开文件 319
10.2.2 关闭文件 321
10.3 文件的读写 321
10.3.1 文件的字符读写 322
10.3.2 文件的字符串读写 324
10.3.3 文件的数据块读写 326
10.3.4 文件的格式化读写 328
10.4 文件的随机读写 331
10.4.1 文件的定位 331
10.4.2 文件的随机读写 333
10.5 文件检测函数 334
10.5.1 ferror函数 334
10.5.2 clearerr函数 334
本章小结 336
习题 337