第1章 C语言概述 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 1
目录 1
1.2 C语言发展概述和主要特点 3
1.2.1 C语言的发展历史 3
1.2.2 C语言的主要特点 4
1.3 C语言的基本结构 5
1.3.1 第一个程序 5
1.3.2 第二个程序 6
1.3.3 printf使用初步 6
1.4 C程序的调试 7
1.4.1 调试步骤 7
1.3.4 第三个程序 7
1.4.2 Turbo C集成开发环境 8
本章小结 11
习题 11
第2章 C语言的基本知识 13
2.1 字符集和标识符 13
2.1.1 字符集 13
2.1.2 标识符 13
2.2 变量与常量 14
2.2.1 变量 14
2.2.2 常量 15
2.3 C语言的数据类型 16
2.3.1 C语言有哪些数据类型 16
2.3.2 基本数据类型 16
2.4.1 整型变量 17
2.4 整型数据 17
2.4.2 整型常量 18
2.4.3 用printf显示整型数据 19
2.4.4 用scanf输入整型数据 20
2.5 浮点数 22
2.5.1 浮点变量 22
2.5.2 浮点常量 22
2.5.3 用printf显示浮点数据 23
2.5.4 用scanf输入浮点数 24
2.6 字符型数据 24
2.6.1 字符变量 24
2.6.2 字符常量 24
2.6.3 用printf显示字符 25
2.6.4 用scanf输入字符 25
2.6.5 用getchar输入字符和用putchar输出字符 26
2.6.6 字符串常量 27
本章小结 27
习题 28
第3章 运算符和表达式 31
3.1 表达式 31
3.1.1 表达式的概念 31
3.1.2 表达式与简单语句 31
3.2 算术运算符 31
3.2.1 种类及运算 31
3.2.2 算术表达式及算术运算符的优先级 32
3.2.3 算术运算符的结合性 33
3.3 赋值运算符 33
3.3.1 普通赋值运算符 33
3.4 不同数据类型数据间的混合运算 34
3.4.1 自动转换 34
3.3.2 复合赋值运算符 34
3.4.2 强制转换 35
3.4.3 赋值表达式的类型转换 35
3.5 关系运算符 38
3.6 逻辑运算符 40
3.7 增1/减1运算符 42
3.8 位逻辑运算符 42
3.9 其他运算符 44
3.9.1 逗号运算符 44
3.9.2 求字节数运算符 45
本章小结 47
习题 47
4.1 结构化程序设计 50
4.1.1 结构化程序设计思想的产生 50
第4章 顺序和选择结构程序设计 50
4.1.2 结构化程序设计的三种基本结构 51
4.2 语句与分程序 55
4.3 顺序结构程序设计 56
4.4 选择结构程序设计 58
4.4.1 问题的提出 58
4.4.2 if形式 58
4.4.3 ifelse形式 61
4.4.4 else if形式 64
4.4.5 嵌套的if语句 66
4.5 switch语句 69
4.6 条件运算符 73
4.7 程序举例 75
本章小结 78
习题 78
5.1 问题的提出 83
第5章 循环结构程序设计 83
5.2.1 while语句的语法和框图 84
5.2.2 使用while语句解决问题 84
5.2 while语句 84
5.2.3 使用while语句需要注意的问题 86
5.3 do while语句 88
5.3.1 do while语句的语法和框图 88
5.3.2 使用do while语句解决问题 88
5.3.3 使用do while语句需要注意的问题 90
5.4 for语句 91
5.4.1 for语句的语法和框图 91
5.4.2 使用for语句解决问题 92
5.4.3 使用for语句需要注意的问题 93
5.5 多重循环 93
5.6 break语句在循环语句中的用法 95
5.7.1 continue语句的用法 97
5.7 continue语句 97
5.7.2 break与continue的区别 98
5.8 程序举例 99
本章小结 102
习题 103
第6章 数组 107
6.1 问题的提出 107
6.2 一维数组 108
6.2.1 一维数组的定义 108
6.2.2 一维数组的引用 109
6.2.3 一维数组的初始化 111
6.2.4 程序举例 112
6.3 二维数组 116
6.3.1 二维数组的定义 116
6.3.2 二维数组的引用 118
6.3.3 二维数组的初始化 119
6.3.4 程序举例 120
6.4 字符串与字符串函数 122
6.4.1 字符数组 122
6.4.2 字符串变量 123
6.4.3 字符串变量的输入与输出 124
6.4.4 字符串函数 126
6.4.5 程序举例 127
本章小结 133
习题 133
第7章 函数 137
7.1 问题的提出 137
7.2 函数基础 138
7.3.1 函数的定义形式 139
7.3 函数的定义 139
7.3.2 函数的返回值 140
7.3.3 函数的形式参数 141
7.3.4 函数定义的规则 141
7.4 函数说明 141
7.5 函数调用 143
7.5.1 函数的调用形式 143
7.5.2 函数的调用方式 143
7.5.3 嵌套调用 144
7.6 参数传递 145
7.6.1 形参和实参 145
7.6.2 单个元素作为参数 146
7.6.3 数组名作为参数 148
7.7 程序举例 151
7.8 递归调用 154
7.9 变量的存储类别 158
7.9.1 自动变量 159
7.9.2 外部变量 162
7.9.3 静态变量 164
7.9.4 寄存器变量 166
本章小结 168
习题 168
第8章 指针 173
8.1 指针的基本概念和运算 173
8.1.1 指针概念 173
8.1.2 指针运算符&和 175
8.1.3 空指针 176
8.1.4 指针值的算术运算 176
8.1.5 存储器申请与释放 178
8.2.1 指针作为函数的参数 181
8.2 指针与函数 181
8.2.2 返回指针值的函数 184
8.2.3 指向函数的指针 185
8.3 指针与一维数组 188
8.3.1 基本概念 188
8.3.2 数组名及指针作为函数参数 190
8.3.3 指针与字符串 192
8.3.4 动态数组的使用 193
8.4 二级指针 194
8.5 指针数组 197
8.6 指针与二维数组 200
8.6.1 用指针方法操作二维数组 200
8.6.2 动态的二维数组 201
8.6.3 用指向数组的指针操作二维数组 202
8.7 命令行参数 204
习题 208
本章小结 208
第9章 结构体与其他数据类型 213
9.1 结构体 213
9.1.1 结构体的说明 213
9.1.2 结构体变量的定义 214
9.1.3 结构体成员的引用 215
9.1.4 结构体的初始化 216
9.2 结构体与数组 217
9.2.1 结构体包含数组 217
9.2.2 结构体数组 218
9.3 结构体与指针 219
9.3.1 指向结构体的指针 219
9.3.2 结构体中的成员包含指针 222
9.3.3 用结构体类型指针建立链表 224
9.4.1 结构体数据作为函数的参数 229
9.4 结构体与函数 229
9.4.2 返回指向结构体的指针的函数 230
9.4.3 用函数实现动态链表的插入和删除 231
9.5 联合体 237
9.5.1 联合体的说明 237
9.5.2 联合体变量的定义 237
9.5.3 联合体变量成员的引用 238
9.5.4 指向联合体变量的指针 239
9.5.5 联合体变量与函数 240
9.5.6 程序举例 241
9.6 枚举 242
9.6.1 枚举的说明和枚举变量的定义 242
9.6.2 枚举变量的使用 243
9.7 类型定义 244
9.8 程序举例 245
本章小结 247
习题 248
第10章 文件 253
10.1 文件概述 253
10.1.1 数据文件 253
10.1.2 缓冲文件系统 254
10.1.3 C语言的设备文件 255
10.2 文件的打开与关闭 255
10.2.1 文件类型指针 255
10.2.2 文件的打开 256
10.2.3 文件的关闭 257
10.2.4 文件操作顺序 258
10.3 文件的读写操作 258
10.3.1 fputc函数与fgetc函数 258
10.3.2 fprintf函数与fscanf函数 262
10.3.3 fread函数与fwrite函数 265
10.3.4 fgets和fputs 268
10.4 文件的定位 269
10.4.1 文件的顺序存取和随机存取 269
10.4.2 rewind函数 269
10.4.3 fseek函数 270
10.4.4 ftell函数和feof函数 271
10.5 程序举例 271
本章小结 275
习题 276
附录A ASCII代码与字符对照表 278
附录B 运算符的优先级和结合性 280
附录C printf函数的转换说明模式 281
附录D 预处理命令的使用 283
参考文献 288