C语言程序设计(慕课版) / 高等学校公共基础课系列教材
¥43.00定价
作者: 罗雪梅
出版时间:2024-04
出版社:西安电子科技大学出版社
- 西安电子科技大学出版社
- 9787560672687
- 1-1
- 531097
- 16开
- 2024-04
- 自动化技术、计算机技术
- 本科
目录
第1章 程序设计与C语言 1
1.1 引言 1
1.2 程序设计概述 1
1.2.1 程序设计方法 1
1.2.2 程序设计语言 3
1.2.3 语言实现及开发环境 4
1.3 C语言概述 5
1.3.1 C语言历史 6
1.3.2 C语言特点 6
1.3.3 第一个C语言程序 7
习题1 11
第2章 数据对象与计算 12
2.1 引言 12
2.2 数据对象表示 13
2.2.1 C语言基本语法元素 13
2.2.2 变量 14
2.3 计算过程 20
2.3.1 运算符 21
2.3.2 表达式 22
2.4 用户交互 25
2.4.1 格式化输出函数printf 26
2.4.2 格式化输入函数scanf 31
习题2 35
第3章 程序流程控制 36
3.1 引言 36
3.2 如何表示条件 37
3.2.1 关系表达式 37
3.2.2 逻辑表达式 38
3.3 结构化程序设计基础 40
3.4 顺序结构 41
3.4.1 表达式语句 41
3.4.2 复合语句 43
3.4.3 空语句 43
3.5 选择结构 44
3.5.1 if语句 44
3.5.2 switch语句 50
3.5.3 选择结构应用示例 53
3.6 循环结构 55
3.6.1 while语句 55
3.6.2 do-while语句 57
3.6.3 for语句 59
3.6.4 while语句与for语句的比较 60
3.6.5 循环结构的特殊控制 63
3.6.6 循环结构的嵌套 65
3.6.7 循环结构应用示例 68
习题3 71
第4章 函数 73
4.1 引言 73
4.2 函数的定义和声明 75
4.2.1 定义函数的目的 75
4.2.2 函数定义的形式 75
4.2.3 函数返回值 76
4.2.4 函数参数 78
4.2.5 函数的分类 79
4.3 函数调用 80
4.3.1 函数调用方法 80
4.3.2 函数的嵌套调用 82
4.3.3 参数传递机制 84
4.3.4 函数应用示例 85
4.4 C语言常用库函数 89
4.4.1 输入/输出函数 90
4.4.2 数学函数 92
4.4.3 字符处理函数 92
4.4.4 时间处理函数 93
4.4.5 其他实用工具函数 94
4.5 函数与递归 96
4.5.1 递归函数的分类 96
4.5.2 递归函数的作用及调用过程 97
4.5.3 使用递归函数的条件 99
4.5.4 递归的优缺点 101
4.6 变量和函数的时空性 105
4.6.1 变量的分类 105
4.6.2 变量的作用域 106
4.6.3 变量的生命周期 109
4.6.4 内部函数和外部函数 112
习题4 114
第5章 数组 115
5.1 引言 115
5.2 一维数组 116
5.2.1 一维数组的定义及元素标识 116
5.2.2 一维数组的存储 117
5.2.3 一维数组的初始化 118
5.2.4 数组下标越界问题 119
5.2.5 一维数组的应用 119
5.3 排序和查找 124
5.3.1 排序算法 124
5.3.2 查找算法 131
5.4 二维和多维数组 133
5.4.1 二维数组的定义及元素标识 133
5.4.2 二维数组的存储 133
5.4.3 二维数组的初始化 134
5.4.4 二维数组的应用 135
5.4.5 多维数组 139
5.5 字符数组和字符串 139
5.5.1 字符数组 140
5.5.2 字符串 141
5.5.3 字符串处理函数 144
5.6 数组与函数 147
5.6.1 数组元素作为函数参数 148
5.6.2 一维数组作为函数参数 148
5.6.3 二维数组作为函数参数 149
习题5 150
第6章 指针 152
6.1 引言 152
6.2 内存、地址与指针 153
6.3 取地址与间接寻址 155
6.3.1 取地址运算 155
6.3.2 间接寻址运算 156
6.4 指针与数组 157
6.4.1 指针与一维数组 157
6.4.2 指针的算术运算 158
6.4.3 通过指针访问数组元素 159
6.5 指针与函数 160
6.5.1 函数形参为指针类型 160
6.5.2 数组作为函数参数 163
6.6 指针与字符串 164
6.7 动态存储管理 171
6.7.1 申请堆内存空间 172
6.7.2 释放堆内存空间 175
6.7.3 内存泄漏和悬空指针 176
6.8 指针类型初探 177
6.8.1 指针类型 177
6.8.2 指向指针的指针 178
6.8.3 指向函数的指针 179
习题6 183
第7章 结构体 184
7.1 引言 184
7.2 为什么要定义结构体类型 185
7.3 结构体的定义与使用 188
7.3.1 声明结构体模板 188
7.3.2 定义结构体变量 189
7.3.3 结构体的嵌套 190
7.3.4 结构体变量的使用 190
7.3.5 指向结构体变量的指针 193
7.3.6 结构体数组 193
7.4 结构体在复杂工程案例中的应用 196
7.4.1 案例需求分析 196
7.4.2 系统接口设计 196
7.4.3 系统功能实现 199
习题7 206
第8章 文件 207
8.1 引言 207
8.2 文件的基本概念 208
8.2.1 什么是文件 208
8.2.2 文件类型 209
8.2.3 文件指针 209
8.3 文件的打开与关闭 210
8.3.1 打开文件 211
8.3.2 关闭文件 213
8.3.3 文件状态检测 214
8.3.4 文件指针定位 216
8.4 文件的读写 218
8.4.1 面向字符的文件读写 219
8.4.2 面向文本行的文件读写 220
8.4.3 面向格式化输入/输出的文件读写 221
8.4.4 面向信息块的文件读写 223
习题8 226
第9章 C语言开发环境 227
9.1 引言 227
9.2 Dev C++环境 227
9.2.1 Dev C++的使用 227
9.2.2 调试程序 231
9.3 Code::Blocks环境 235
9.3.1 Code::Blocks的使用 235
9.3.2 调试程序 239
9.4 Visual Studio环境 241
9.4.1 Visual Studio2019的使用 242
9.4.2 调试程序 245
附录 ASCII码字符对照表 248
参考文献 252
1.1 引言 1
1.2 程序设计概述 1
1.2.1 程序设计方法 1
1.2.2 程序设计语言 3
1.2.3 语言实现及开发环境 4
1.3 C语言概述 5
1.3.1 C语言历史 6
1.3.2 C语言特点 6
1.3.3 第一个C语言程序 7
习题1 11
第2章 数据对象与计算 12
2.1 引言 12
2.2 数据对象表示 13
2.2.1 C语言基本语法元素 13
2.2.2 变量 14
2.3 计算过程 20
2.3.1 运算符 21
2.3.2 表达式 22
2.4 用户交互 25
2.4.1 格式化输出函数printf 26
2.4.2 格式化输入函数scanf 31
习题2 35
第3章 程序流程控制 36
3.1 引言 36
3.2 如何表示条件 37
3.2.1 关系表达式 37
3.2.2 逻辑表达式 38
3.3 结构化程序设计基础 40
3.4 顺序结构 41
3.4.1 表达式语句 41
3.4.2 复合语句 43
3.4.3 空语句 43
3.5 选择结构 44
3.5.1 if语句 44
3.5.2 switch语句 50
3.5.3 选择结构应用示例 53
3.6 循环结构 55
3.6.1 while语句 55
3.6.2 do-while语句 57
3.6.3 for语句 59
3.6.4 while语句与for语句的比较 60
3.6.5 循环结构的特殊控制 63
3.6.6 循环结构的嵌套 65
3.6.7 循环结构应用示例 68
习题3 71
第4章 函数 73
4.1 引言 73
4.2 函数的定义和声明 75
4.2.1 定义函数的目的 75
4.2.2 函数定义的形式 75
4.2.3 函数返回值 76
4.2.4 函数参数 78
4.2.5 函数的分类 79
4.3 函数调用 80
4.3.1 函数调用方法 80
4.3.2 函数的嵌套调用 82
4.3.3 参数传递机制 84
4.3.4 函数应用示例 85
4.4 C语言常用库函数 89
4.4.1 输入/输出函数 90
4.4.2 数学函数 92
4.4.3 字符处理函数 92
4.4.4 时间处理函数 93
4.4.5 其他实用工具函数 94
4.5 函数与递归 96
4.5.1 递归函数的分类 96
4.5.2 递归函数的作用及调用过程 97
4.5.3 使用递归函数的条件 99
4.5.4 递归的优缺点 101
4.6 变量和函数的时空性 105
4.6.1 变量的分类 105
4.6.2 变量的作用域 106
4.6.3 变量的生命周期 109
4.6.4 内部函数和外部函数 112
习题4 114
第5章 数组 115
5.1 引言 115
5.2 一维数组 116
5.2.1 一维数组的定义及元素标识 116
5.2.2 一维数组的存储 117
5.2.3 一维数组的初始化 118
5.2.4 数组下标越界问题 119
5.2.5 一维数组的应用 119
5.3 排序和查找 124
5.3.1 排序算法 124
5.3.2 查找算法 131
5.4 二维和多维数组 133
5.4.1 二维数组的定义及元素标识 133
5.4.2 二维数组的存储 133
5.4.3 二维数组的初始化 134
5.4.4 二维数组的应用 135
5.4.5 多维数组 139
5.5 字符数组和字符串 139
5.5.1 字符数组 140
5.5.2 字符串 141
5.5.3 字符串处理函数 144
5.6 数组与函数 147
5.6.1 数组元素作为函数参数 148
5.6.2 一维数组作为函数参数 148
5.6.3 二维数组作为函数参数 149
习题5 150
第6章 指针 152
6.1 引言 152
6.2 内存、地址与指针 153
6.3 取地址与间接寻址 155
6.3.1 取地址运算 155
6.3.2 间接寻址运算 156
6.4 指针与数组 157
6.4.1 指针与一维数组 157
6.4.2 指针的算术运算 158
6.4.3 通过指针访问数组元素 159
6.5 指针与函数 160
6.5.1 函数形参为指针类型 160
6.5.2 数组作为函数参数 163
6.6 指针与字符串 164
6.7 动态存储管理 171
6.7.1 申请堆内存空间 172
6.7.2 释放堆内存空间 175
6.7.3 内存泄漏和悬空指针 176
6.8 指针类型初探 177
6.8.1 指针类型 177
6.8.2 指向指针的指针 178
6.8.3 指向函数的指针 179
习题6 183
第7章 结构体 184
7.1 引言 184
7.2 为什么要定义结构体类型 185
7.3 结构体的定义与使用 188
7.3.1 声明结构体模板 188
7.3.2 定义结构体变量 189
7.3.3 结构体的嵌套 190
7.3.4 结构体变量的使用 190
7.3.5 指向结构体变量的指针 193
7.3.6 结构体数组 193
7.4 结构体在复杂工程案例中的应用 196
7.4.1 案例需求分析 196
7.4.2 系统接口设计 196
7.4.3 系统功能实现 199
习题7 206
第8章 文件 207
8.1 引言 207
8.2 文件的基本概念 208
8.2.1 什么是文件 208
8.2.2 文件类型 209
8.2.3 文件指针 209
8.3 文件的打开与关闭 210
8.3.1 打开文件 211
8.3.2 关闭文件 213
8.3.3 文件状态检测 214
8.3.4 文件指针定位 216
8.4 文件的读写 218
8.4.1 面向字符的文件读写 219
8.4.2 面向文本行的文件读写 220
8.4.3 面向格式化输入/输出的文件读写 221
8.4.4 面向信息块的文件读写 223
习题8 226
第9章 C语言开发环境 227
9.1 引言 227
9.2 Dev C++环境 227
9.2.1 Dev C++的使用 227
9.2.2 调试程序 231
9.3 Code::Blocks环境 235
9.3.1 Code::Blocks的使用 235
9.3.2 调试程序 239
9.4 Visual Studio环境 241
9.4.1 Visual Studio2019的使用 242
9.4.2 调试程序 245
附录 ASCII码字符对照表 248
参考文献 252