C语言程序设计(含实验与习题指导)(第四版)
¥92.00定价
作者: 林菲
出版时间:2023-06
出版社:科学出版社
- 科学出版社
- 9787030755957
- 4版
- 540233
- 49252511-8
- 2023-06
- 通识课
- 本科
目录
目录
第1章 C语言程序设计基础知识 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.1.3 程序执行 3
1.2 C语言程序基本结构 4
1.2.1 简单C语言程序示例 4
1.2.2 C语言程序的结构 6
1.3 Dev C++集成开发环境 7
1.3.1 集成开发环境定义 7
1.3.2 在Dev C++环境下开发C语言程序 8
1.3.3 C程序在计算机上的执行过程 12
本章小结 13
习题 14
第2章 基本数据类型与常用库函数 15
2.1 字符集与标识符 15
2.2 基本数据类型 16
2.2.1 整型数据 17
2.2.2 实型数据 17
2.2.3 字符型数据 18
2.3 常量与变量 18
2.3.1 常量 18
2.3.2 变量 21
2.4 输入/输出函数 22
2.4.1 格式化输入/输出函数 22
2.4.2 单个字符的输入/输出函数 28
2.5 常用函数 29
2.5.1 常用数学函数 30
2.5.2 常用字符函数 31
2.5.3 其他常用函数 32
本章小结 33
习题 33
第3章 表达式 36
3.1 算术表达式 36
3.1.1 算术运算符 36
3.1.2 自增、自减运算 37
3.2 赋值表达式 38
3.3 关系表达式 40
3.4 逻辑表达式 41
3.5 条件表达式 43
3.6 逗号表达式 44
3.7 位运算 45
3.7.1 位运算符 45
3.7.2 位运算符的优先级 49
3.8 多种类型混合运算 50
3.8.1 运算符优先级 50
3.8.2 运算符结合方向 51
3.8.3 混合运算的类型转换 52
本章小结 53
习题 53
第4章 控制结构与语句 57
4.1 结构化程序设计 57
4.1.1 程序的3种基本结构 57
4.1.2 程序设计过程 58
4.1.3 结构化程序设计的一般思想及方法 60
4.2 顺序结构 61
4.2.1 顺序结构组成 61
4.2.2 复合语句与空语句 62
4.3 选择结构 62
4.3.1 if语句 63
4.3.2 switch语句 68
4.3.3 用选择语句编写程序 70
4.4 循环结构 72
4.4.1 while语句 72
4.4.2 dowhile语句 74
4.4.3 for语句 75
4.4.4 用循环编程序 78
4.5 转向语句 81
4.5.1 break语句与continue语句 81
4.5.2 goto语句 85
4.6 综合实例----英文文本词频统计 85
4.6.1 程序设计背景和功能 85
4.6.2 源程序及说明 86
本章小结 88
习题 88
第5章 数组 94
5.1 一维数组 94
5.1.1 一维数组概述 94
5.1.2 一维数组引用 95
5.1.3 用一维数组编写程序 96
5.1.4 查找与排序 98
5.2 二维数组 103
5.2.1 二维数组概述 103
5.2.2 二维数组引用 104
5.2.3 用二维数组编写程序 106
5.3 字符串 109
5.3.1 字符串的存储 109
5.3.2 字符串的输入/输出 110
5.3.3 字符串应用 112
5.3.4 多字符串处理 114
5.4 综合实例----英文文本词频统计 116
5.4.1 功能改进和扩展 116
5.4.2 源程序及说明 117
本章小结 120
习题 120
第6章 函数 127
6.1 函数定义 127
6.1.1 函数概述 127
6.1.2 函数定义形式 128
6.2 函数调用 129
6.2.1 函数调用概述 130
6.2.2 传值调用的特点 131
6.2.3 函数调用的方式 133
6.2.4 用函数编程序 133
6.3 函数嵌套与递归 134
6.3.1 模块化程序设计 134
6.3.2 函数嵌套调用 137
6.3.3 函数递归调用 138
6.3.4 参数求值顺序 142
6.4 函数与变量 143
6.4.1 全局变量和局部变量 143
6.4.2 变量的生命期与变量的存储类别 146
6.5 数组与函数 148
6.5.1 数组元素作为函数参数 148
6.5.2 数组作为函数参数 149
6.5.3 字符串作为函数参数 155
6.6 综合实例----英文文本词频统计 155
6.6.1 程序结构的改进 156
6.6.2 源程序及说明 156
本章小结 159
习题 160
第7章 指针 169
7.1 指针的基础知识 169
7.1.1 内存单元、内存地址及指针 169
7.1.2 指针变量定义 170
7.1.3 指针基本操作 171
7.1.4 指针作函数的参数 172
7.2 指针与数组 175
7.2.1 指针与一维数组 175
7.2.2 一维数组作函数的参数 177
7.2.3 指针在数组上的运算 179
7.2.4 指针与二维数组 179
7.2.5 行指针作函数参数 181
7.3 指针与字符串 183
7.3.1 字符串指针 184
7.3.2 字符串指针作函数参数 186
7.3.3 常用字符串函数 187
7.4 指针数组与多级指针 190
7.4.1 指针数组与多字符串 190
7.4.2 指向指针的指针 193
7.4.3 main()函数的参数 195
7.5 指针与函数 197
7.5.1 指针作为函数的返回值 197
7.5.2 指向函数的指针 199
7.6 综合实例----英文文本词频统计 201
7.6.1 程序的改进和功能扩展 201
7.6.2 源程序及说明 202
7.7 指针的应用 205
本章小结 206
习题 207
第8章 结构体 213
8.1 结构体概念 213
8.1.1 结构体类型定义 213
8.1.2 结构体变量定义 214
8.1.3 结构体变量引用 216
8.1.4 结构体变量作函数参数 218
8.1.5 结构体数据作为函数返回值 219
8.2 结构体数组 220
8.2.1 结构体数组定义 220
8.2.2 结构体数组引用 221
8.3 结构体指针 223
8.3.1 结构体指针概念 223
8.3.2 结构体指针应用 223
8.3.3 结构体指针作函数参数 225
8.4 单向链表 226
8.4.1 链表的概念 226
8.4.2 单向链表的定义 227
8.4.3 动态内存分配库函数 227
8.4.4 单向链表的基本操作 228
8.5 综合实例----英文文本词频统计 236
8.5.1 用结构体类型改进程序 236
8.5.2 用单向链表改进程序 239
本章小结 244
习题 244
第9章 文件 250
9.1 文件概述 250
9.1.1 文本文件和二进制文件 251
9.1.2 文件类型指针 252
9.2 打开文件与关闭文件 253
9.2.1 打开文件 253
9.2.2 关闭文件 254
9.3 文本文件读/写 255
9.3.1 单个字符读/写 255
9.3.2 格式化的数据读/写 259
9.3.3 用文件编程序 261
9.4 二进制文件的数据块读/写 264
9.5 文件定位函数 264
9.6 文件操作的出错检测 267
9.7 综合实例----英文文本词频统计 267
9.7.1 用文件操作改进程序 267
9.7.2 源程序及说明 268
本章小结 269
习题 270
第10章 多文件编程 274
10.1 模块化设计概念 274
10.2 编译预处理命令 275
10.2.1 宏定义 275
10.2.2 文件包含 278
10.3 条件编译 278
10.4 综合实例----英文文本词频统计 280
10.4.1 用多文件编程改进程序 280
10.4.2 在Dev C++环境下多文件编程 281
10.4.3 源程序及说明 282
本章小结 284
习题 285
参考文献 287
附录 288
第1章 C语言程序设计基础知识 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.1.3 程序执行 3
1.2 C语言程序基本结构 4
1.2.1 简单C语言程序示例 4
1.2.2 C语言程序的结构 6
1.3 Dev C++集成开发环境 7
1.3.1 集成开发环境定义 7
1.3.2 在Dev C++环境下开发C语言程序 8
1.3.3 C程序在计算机上的执行过程 12
本章小结 13
习题 14
第2章 基本数据类型与常用库函数 15
2.1 字符集与标识符 15
2.2 基本数据类型 16
2.2.1 整型数据 17
2.2.2 实型数据 17
2.2.3 字符型数据 18
2.3 常量与变量 18
2.3.1 常量 18
2.3.2 变量 21
2.4 输入/输出函数 22
2.4.1 格式化输入/输出函数 22
2.4.2 单个字符的输入/输出函数 28
2.5 常用函数 29
2.5.1 常用数学函数 30
2.5.2 常用字符函数 31
2.5.3 其他常用函数 32
本章小结 33
习题 33
第3章 表达式 36
3.1 算术表达式 36
3.1.1 算术运算符 36
3.1.2 自增、自减运算 37
3.2 赋值表达式 38
3.3 关系表达式 40
3.4 逻辑表达式 41
3.5 条件表达式 43
3.6 逗号表达式 44
3.7 位运算 45
3.7.1 位运算符 45
3.7.2 位运算符的优先级 49
3.8 多种类型混合运算 50
3.8.1 运算符优先级 50
3.8.2 运算符结合方向 51
3.8.3 混合运算的类型转换 52
本章小结 53
习题 53
第4章 控制结构与语句 57
4.1 结构化程序设计 57
4.1.1 程序的3种基本结构 57
4.1.2 程序设计过程 58
4.1.3 结构化程序设计的一般思想及方法 60
4.2 顺序结构 61
4.2.1 顺序结构组成 61
4.2.2 复合语句与空语句 62
4.3 选择结构 62
4.3.1 if语句 63
4.3.2 switch语句 68
4.3.3 用选择语句编写程序 70
4.4 循环结构 72
4.4.1 while语句 72
4.4.2 dowhile语句 74
4.4.3 for语句 75
4.4.4 用循环编程序 78
4.5 转向语句 81
4.5.1 break语句与continue语句 81
4.5.2 goto语句 85
4.6 综合实例----英文文本词频统计 85
4.6.1 程序设计背景和功能 85
4.6.2 源程序及说明 86
本章小结 88
习题 88
第5章 数组 94
5.1 一维数组 94
5.1.1 一维数组概述 94
5.1.2 一维数组引用 95
5.1.3 用一维数组编写程序 96
5.1.4 查找与排序 98
5.2 二维数组 103
5.2.1 二维数组概述 103
5.2.2 二维数组引用 104
5.2.3 用二维数组编写程序 106
5.3 字符串 109
5.3.1 字符串的存储 109
5.3.2 字符串的输入/输出 110
5.3.3 字符串应用 112
5.3.4 多字符串处理 114
5.4 综合实例----英文文本词频统计 116
5.4.1 功能改进和扩展 116
5.4.2 源程序及说明 117
本章小结 120
习题 120
第6章 函数 127
6.1 函数定义 127
6.1.1 函数概述 127
6.1.2 函数定义形式 128
6.2 函数调用 129
6.2.1 函数调用概述 130
6.2.2 传值调用的特点 131
6.2.3 函数调用的方式 133
6.2.4 用函数编程序 133
6.3 函数嵌套与递归 134
6.3.1 模块化程序设计 134
6.3.2 函数嵌套调用 137
6.3.3 函数递归调用 138
6.3.4 参数求值顺序 142
6.4 函数与变量 143
6.4.1 全局变量和局部变量 143
6.4.2 变量的生命期与变量的存储类别 146
6.5 数组与函数 148
6.5.1 数组元素作为函数参数 148
6.5.2 数组作为函数参数 149
6.5.3 字符串作为函数参数 155
6.6 综合实例----英文文本词频统计 155
6.6.1 程序结构的改进 156
6.6.2 源程序及说明 156
本章小结 159
习题 160
第7章 指针 169
7.1 指针的基础知识 169
7.1.1 内存单元、内存地址及指针 169
7.1.2 指针变量定义 170
7.1.3 指针基本操作 171
7.1.4 指针作函数的参数 172
7.2 指针与数组 175
7.2.1 指针与一维数组 175
7.2.2 一维数组作函数的参数 177
7.2.3 指针在数组上的运算 179
7.2.4 指针与二维数组 179
7.2.5 行指针作函数参数 181
7.3 指针与字符串 183
7.3.1 字符串指针 184
7.3.2 字符串指针作函数参数 186
7.3.3 常用字符串函数 187
7.4 指针数组与多级指针 190
7.4.1 指针数组与多字符串 190
7.4.2 指向指针的指针 193
7.4.3 main()函数的参数 195
7.5 指针与函数 197
7.5.1 指针作为函数的返回值 197
7.5.2 指向函数的指针 199
7.6 综合实例----英文文本词频统计 201
7.6.1 程序的改进和功能扩展 201
7.6.2 源程序及说明 202
7.7 指针的应用 205
本章小结 206
习题 207
第8章 结构体 213
8.1 结构体概念 213
8.1.1 结构体类型定义 213
8.1.2 结构体变量定义 214
8.1.3 结构体变量引用 216
8.1.4 结构体变量作函数参数 218
8.1.5 结构体数据作为函数返回值 219
8.2 结构体数组 220
8.2.1 结构体数组定义 220
8.2.2 结构体数组引用 221
8.3 结构体指针 223
8.3.1 结构体指针概念 223
8.3.2 结构体指针应用 223
8.3.3 结构体指针作函数参数 225
8.4 单向链表 226
8.4.1 链表的概念 226
8.4.2 单向链表的定义 227
8.4.3 动态内存分配库函数 227
8.4.4 单向链表的基本操作 228
8.5 综合实例----英文文本词频统计 236
8.5.1 用结构体类型改进程序 236
8.5.2 用单向链表改进程序 239
本章小结 244
习题 244
第9章 文件 250
9.1 文件概述 250
9.1.1 文本文件和二进制文件 251
9.1.2 文件类型指针 252
9.2 打开文件与关闭文件 253
9.2.1 打开文件 253
9.2.2 关闭文件 254
9.3 文本文件读/写 255
9.3.1 单个字符读/写 255
9.3.2 格式化的数据读/写 259
9.3.3 用文件编程序 261
9.4 二进制文件的数据块读/写 264
9.5 文件定位函数 264
9.6 文件操作的出错检测 267
9.7 综合实例----英文文本词频统计 267
9.7.1 用文件操作改进程序 267
9.7.2 源程序及说明 268
本章小结 269
习题 270
第10章 多文件编程 274
10.1 模块化设计概念 274
10.2 编译预处理命令 275
10.2.1 宏定义 275
10.2.2 文件包含 278
10.3 条件编译 278
10.4 综合实例----英文文本词频统计 280
10.4.1 用多文件编程改进程序 280
10.4.2 在Dev C++环境下多文件编程 281
10.4.3 源程序及说明 282
本章小结 284
习题 285
参考文献 287
附录 288