第1章 绪论及C语言简介 1
1.1 绪论 1
1.1.1 软件产业的兴旺和辛酸 1
1.1.2 软件危机产生的根本原因 2
1.1.3 解决应用软件成功率低下的途径 3
1.1.4 程序设计的重要性 4
1.2 C语言简介 4
1.2.1 C语言的沿革 4
1.2.2 C语言的特点 5
1.2.3 C语言程序设计教材的特点 5
第2章 数据类型、运算符和表达式 7
2.1 标志符 7
2.2 C语言中的基本数据类型 7
2.3 常量 8
2.3.1 数值常量 8
2.3.2 字符常量 9
2.3.3 字符串常量 10
2.3.4 符号常量 10
2.4 变量 11
2.4.1 变量的定义 11
2.4.2 变量值 11
2.5 枚举类型 11
2.5.1 枚举类型和枚举变量 12
2.5.2 枚举类型的操作 13
2.6 运算符和表达式 13
2.6.1 算术运算符和算术表达式 13
2.6.2 表达式中数据间的混合运算与类型转换 15
2.6.3 赋值运算符与赋值表达式 16
2.6.4 关系运算符和关系表达式 17
2.6.5 逻辑运算符和逻辑表达式 17
2.6.6 位操作运算符及表达式 18
2.6.7 条件运算符和条件表达式 20
2.6.8 逗号运算符和逗号表达式 20
2.6.9 sizeof运算符 20
2.7 运算符的优先级和结合性 21
小结 22
习题 22
第3章 简单程序设计 25
3.1 程序的三种基本结构 25
3.2 语句与顺序结构 25
3.3 C语言的程序结构及特点 26
3.4 数据的输入/输出 28
3.4.1 格式化输出函数printf() 29
3.4.2 格式化输入函数scanf() 31
3.4.3 字符输入输出函数getchar()和putchar() 34
3.4.4 字符串输入输出函数gets()和puts() 35
3.5 简单程序设计 35
3.6 源程序执行过程 36
3.7 Turbo C2.0集成开发环境 37
3.7.1 在Turbo C2.0下运行C程序的步骤 37
3.7.2 Turbo C2.0的菜单系统及其使用 38
小结 42
习题 43
第4章 数组 45
4.1 一维数组 45
4.1.1 一维数组的定义 45
4.1.2 一维数组元素的引用 46
4.1.3 一维数组元素的初始化和赋值 46
4.2 二维数组 47
4.2.1 二维数组的定义 47
4.2.2 二维数组元素的引用 48
4.2.3 二维数组的初始化和赋值 48
4.3 字符数组 50
4.3.1 字符数组的定义 50
4.3.2 字符数组的初始化和赋值 50
4.3.3 字符数组的输入输出 51
4.3.4 字符串处理函数 53
小结 56
习题 56
第5章 基本语句 59
5.1 赋值语句 59
5.1.1 简单赋值语句 59
5.1.2 特殊赋值语句 62
5.1.3 连续赋值语句 63
5.2 条件语句和分支(或选择)结构 63
5.2.1 条件语句 63
5.2.2 条件赋值语句 69
5.2.3 嵌套的条件语句 70
5.2.4 开关语句 73
5.3 循环语句 75
5.3.1 步长型循环语句 75
5.3.2 while语句 82
5.3.3 do-while循环语句 85
5.3.4 循环嵌套 87
小结 92
习题 93
第6章 程序设计方法 95
6.1 尝试法及其程序模块结构 95
6.2 递推算法程序选讲 103
6.3 迭代算法及程序选例 113
6.4 难例精选 116
小结 122
习题 123
第7章 函数 125
7.1 函数的定义和调用 125
7.1.1 函数的定义 125
7.1.2 函数的返回值与函数类型 127
7.1.3 函数调用 128
7.2 函数的数据传递 132
7.2.1 数值作为函数参数 132
7.2.2 数组作为函数参数 134
7.3 函数的嵌套调用与递归调用 137
7.3.1 函数的嵌套调用 137
7.3.2 递归调用 138
7.4 函数举例 140
7.5 变量的作用域、存储类型和生存期 145
7.5.1 变量的作用域 145
7.5.2 变量的存储类型和生存期 146
7.6 编译预处理 149
7.6.1 宏替换 149
7.6.2 文件包含 151
7.6.3 条件编译 152
小结 154
习题 154
第8章 指针 159
8.1 指针与地址 159
8.2 指针变量的使用 160
8.2.1 指针变量的定义及赋值 160
8.2.2 指针的类型 161
8.2.3 指针运算符 161
8.2.4 指针常量 164
8.3 指针与数组 165
8.3.1 指针与数组名之间的关系 165
8.3.2 定义指向数组元素的指针变量 165
8.3.3 指针的运算 166
8.3.4 指针与一维数组 168
8.3.5 指针与二维数组 170
8.4 指针在函数中的使用 174
8.4.1 指针作为函数参数 174
8.4.2 指针作为函数的返回值 177
8.5 指针和字符串 179
8.5.1 字符串常量与字符指针变量 179
8.5.2 字符串指针作为函数参数 180
8.6 指针数组与多级指针 181
8.6.1 指针数组 181
8.6.2 多级指针 183
8.6.3 main()函数的参数 184
8.7 函数指针 185
8.7.1 函数指针的定义 185
8.7.2 函数指针的使用 185
小结 187
习题 187
第9章 结构体与共用体 193
9.1 结构体 193
9.1.1 结构体类型的说明及结构体变量的定义 193
9.1.2 结构体变量的使用 195
9.2 结构体数组 197
9.3 指向结构体类型的指针 198
9.3.1 结构体指针变量的定义 198
9.3.2 利用结构体指针变量对所指对象成员的引用 199
9.3.3 指向结构体自己的指针作为结构体成员的方式 200
9.4 共用体 200
9.4.1 共用体类型的声明及变量的定义 201
9.4.2 共用体变量的使用 201
小结 203
习题 203
第10章 文件 206
10.1 文件概述 206
10.1.1 文件的定义 206
10.1.2 文件的分类 206
10.1.3 文件的操作流程 207
10.1.4 文件缓冲区 207
10.2 文件的打开与关闭 208
10.2.1 文件指针 208
10.2.2 文件的打开 208
10.2.3 文件的关闭 210
10.3 文件的顺序读写操作 210
10.3.1 文件的字符级读写 210
10.3.2 文件对字符串的读写 213
10.3.3 文件的格式化读写 215
10.4 文件的随机读写 216
10.4.1 文件位置指针的定位 216
10.4.2 文件的随机读写 217
小结 218
习题 218
上机实习 219
实习1 C程序录入、编辑和运行 220
实习2 if语句和嵌套的if语句 220
实习3 判定树问题及程序设计 221
实习4 规范for型循环 223
实习5 while型循环和do-while循环 223
实习6 多重循环语句 224
实习7 带自定义函数的程序设计 226
实习8 尝试法(1) 226
实习9 尝试法(2) 227
实习10 特殊排序 228
实习11 综合问题1 229
实习12 综合问题2 229
附录A C语言中的关键字 231
附录B 部分字符与ASCII代码对照表 232
附录C TURBO C常用库函数 233
C1 数学函数(函数原型包含在math.h、stdlib.h中) 233
C2 字符函数(函数原型包含在ctype.h中) 234
C3 字符串函数(函数原型包含在string.h、stdlib.h中) 234
C4 输入输出函数(函数原型包含在stdio.h中) 235
C5 堆空间分配函数(函数原型包含在alloc.h、malloc.h中) 236
C6 内存存储函数(函数原型包含在mem.h、string.h中) 237
参考文献 238