第1章 概述 1
1.1 C语言的发展 1
1.1.1 C语言的发展简史 1
1.1.2 C语言的特点 1
1.1.3 C语言的版本 2
1.1.4 C和C+++ 2
1.2 认识C语言程序 2
1.2.1 简单的C语言程序 2
1.2.2 C语言源程序的结构特点 5
1.2.3 C语言的字符集 6
1.2.4 C语言的词汇 6
1.3 使用开发工具编写C语言程序 8
1.3.1 C语言程序的开发步骤 8
1.3.2 使用Microsoft Visual C+++6.0编写C语言程序 9
1.3.3 编写C语言程序时应遵循的规则 15
练习题 16
第2章 数据类型、运算符和表达式 18
2.1 C语言的数据类型 18
2.2 常量与变量 18
2.2.1 常量 19
2.2.2 变量 19
2.3 整型数据 21
2.3.1 整型常量 21
2.3.2 整型变量 21
2.3.3 整型常量的类型 23
2.4 浮点型数据 24
2.4.1 浮点型常量 24
2.4.2 浮点型变量 24
2.4.3 浮点型常量的类型 26
2.5 字符型数据 26
2.5.1 字符型常量 26
2.5.2 字符型变量 28
2.5.3 字符串常量 29
2.6 C语言的运算符和表达式 30
2.6.1 C语言运算符和表达式简介 30
2.6.2 算术运算符和算术表达式 31
2.6.3 赋值运算符和赋值表达式 34
2.6.4 逗号运算符和逗号表达式 35
2.7 C语言数据类型转换 36
练习题 38
第3章 顺序结构 41
3.1 顺序程序设计 41
3.2 C语句概述 42
3.3 赋值语句 43
3.4 字符数据的输入/输出 44
3.4.1 字符输出函数putchar 44
3.4.2 字符输入函数getchar 45
3.5 格式输入与输出 46
3.5.1 格式输出函数printf 46
3.5.2 格式输入函数scanf 51
3.6 顺序结构程序设计举例 54
练习题 57
第4章 选择结构 62
4.1 关系运算符与关系表达式 62
4.1.1 关系运算符 62
4.1.2 关系表达式 63
4.2 逻辑运算符与逻辑表达式 63
4.2.1 逻辑运算符 64
4.2.2 逻辑表达式 64
4.3 if结构 65
4.3.1 单if语句 65
4.3.2 if-else语句 68
4.3.3 if-else if-else语句 70
4.4 嵌套if结构 72
4.5 switch结构 74
4.6 多重if结构和switch结构的比较 76
4.7 条件运算符 77
4.8 应用举例 78
练习题 79
第5章 循环结构 83
5.1 while语句 83
5.2 do-while语句 86
5.3 for语句 87
5.3.1 基本的for语句 88
5.3.2 各种特殊形式的for语句 89
5.4 三种循环语句的比较 91
5.5 break语句 92
5.6 continue语句 93
5.7 嵌套循环 94
5.8 应用举例 98
练习题 99
第6章 数组 104
6.1 一维数组 105
6.1.1 一维数组的定义 105
6.1.2 一维数组的初始化 106
6.1.3 一维数组的引用 107
6.1.4 一维数组的程序举例 108
6.2 二维数组 112
6.2.1 二维数组的定义 112
6.2.2 二维数组的初始化 113
6.2.3 二维数组的引用 114
6.2.4 二维数组的程序举例 114
6.3 字符数组与字符串 116
6.3.1 字符数组的定义 116
6.3.2 字符数组的初始化 116
6.3.3 字符数组的引用 117
6.3.4 字符数组的输入输出 117
6.3.5 字符串处理函数 119
6.3.6 字符数组的程序举例 122
练习题 123
第7章 函数 130
7.1 函数的分类、定义参数和返回值 131
7.1.1 函数的分类 131
7.1.2 函数的定义 132
7.1.3 函数的参数和返回值 133
7.2 函数的调用 136
7.2.1 函数调用的形式 136
7.2.2 对被调函数的声明 137
7.3 函数的嵌套调用和递归调用 139
7.3.1 函数的嵌套调用 139
7.3.2 函数的递归调用 140
7.4 数组作为函数的参数 141
7.4.1 数组元素作为函数的参数 142
7.4.2 数组名作为函数的参数 142
7.5 变量的作用域和生存期 143
7.5.1 变量的作用域 143
7.5.2 变量的存储类别和生存期 147
练习题 151
第8章 指针 155
8.1 指针的概念 155
8.2 指针变量的定义与引用 157
8.2.1 指针变量的定义 157
8.2.2 指针变量的引用 158
8.3 指针与数组 161
8.3.1 指向一维数组的指针 161
8.3.2 指向多维数组的指针 164
8.3.3 指针数组和数组指针 167
8.4 指针与字符串 168
8.5 指针与函数 170
8.5.1 指针变量作为函数参数 171
8.5.2 数组的指针作为函数参数 171
8.5.3 指向函数的指针 173
8.5.4 返回指针值的函数 175
8.6 指向指针的指针 176
8.7 指针与动态内存分配 177
8.8 应用举例 179
练习题 181
第9章 结构体 186
9.1 结构体 186
9.1.1 声明结构体 186
9.1.2 定义结构体变量 187
9.1.3 引用结构体变量 188
9.1.4 结构体变量的初始化 189
9.2 结构体数组 190
9.2.1 定义结构体数组 190
9.2.2 结构体数组的初始化 191
9.2.3 引用结构体数组元素 192
9.3 结构体指针 194
9.3.1 指向结构体变量的指针变量 194
9.3.2 指向结构体数组的指针 195
9.3.3 用结构体变量和指向结构体的指针作函数参数 196
9.4 共用体 199
9.4.1 共用体的定义 199
9.4.2 共用体变量的引用方式 200
9.4.3 共用体类型数据的特点 201
9.5 枚举类型&. 203
9.5.1 枚举类型的声明 203
9.5.2 枚举类型变量的定义 204
9.5.3 枚举类型变量的引用 205
9.6 自定义类型标识符 208
练习题 209
第10章 文件 212
10.1 C文件概述 212
10.1.1 缓冲文件系统 212
10.1.2 文件的存储方式 213
10.1.3 文件类型指针 214
10.2 文件的操作 214
10.2.1 文件的打开 214
10.2.2 文件的关闭 216
10.2.3 文件的重命名 216
10.2.4 文件的删除 217
10.3 文件的读写 217
10.3.1 字符的读取和写入 217
10.3.2 字符串的读取和写入 219
10.3.3 按格式读取和写入 220
10.3.4 数据块存取函数 221
10.4 文件的定位 222
10.4.1 rewind函数 223
10.4.2 fseek函数和随机读写 224
10.4.3 ftell函数 224
10.5 文件状态检测 225
10.6 综合应用 226
练习题 231
附录A 基本控制字符/字符与ASCII代码对照表 233
附录B 运算符的优先级和结合性 234
附录C C语言中的关键字 236
附录D C库函数 237
附录E C语言程序调试常见错误提示 242