C语言程序设计立体化教程
¥56.00定价
作者: 黑马程序员
出版时间:2020-01
出版社:中国铁道出版社
- 中国铁道出版社
- 9787113262822
- 1-1
- 378740
- 46229906-6
- 平装
- 16开
- 2020-01
- 490
- 336
- 工学
- 软件工程
- 计算机基础
- 本科
作者简介
内容简介
本书对 C 语言知识体系进行了系统规划,对每个知识点进行了深入分析,并精心设计了相关案例。 n
全书共分 12 章,第 1 章讲解了 C 语言整体概况、C 语言开发环境与 C 程序编译过程;第 2~3 章讲解了 n
C 语言基础知识,包括关键字、标识符、常量、变量、数据类型、类型转换、数据溢出、C 语言编码风格、 n
C 语言常用运算符及表达式等;第 4~11 章讲解了 C 语言的核心知识,包括结构化程序设计、内存与指 n
针、数组、函数、字符串、结构体、预处理、文件操作等;第 12 章讲解了一个综合项目——俄罗斯方 n
块,让读者对前面所学知识融会贯通,并了解实际项目开发流程。 n
本书附有配套视频、源代码、题库、教学课件等资源,为帮助初学者更好地学习本书中的内容, n
还提供了在线答疑,希望得到更多读者的关注。 n
本书适合作为高等院校计算机相关专业 C 语言程序设计课程教材,也可作为 C 语言技术基础培训 n
教材,以及广大计算机编程爱好者的参考用书。
全书共分 12 章,第 1 章讲解了 C 语言整体概况、C 语言开发环境与 C 程序编译过程;第 2~3 章讲解了 n
C 语言基础知识,包括关键字、标识符、常量、变量、数据类型、类型转换、数据溢出、C 语言编码风格、 n
C 语言常用运算符及表达式等;第 4~11 章讲解了 C 语言的核心知识,包括结构化程序设计、内存与指 n
针、数组、函数、字符串、结构体、预处理、文件操作等;第 12 章讲解了一个综合项目——俄罗斯方 n
块,让读者对前面所学知识融会贯通,并了解实际项目开发流程。 n
本书附有配套视频、源代码、题库、教学课件等资源,为帮助初学者更好地学习本书中的内容, n
还提供了在线答疑,希望得到更多读者的关注。 n
本书适合作为高等院校计算机相关专业 C 语言程序设计课程教材,也可作为 C 语言技术基础培训 n
教材,以及广大计算机编程爱好者的参考用书。
目录
第 1 章 C 语言概述 1
11 认识 C 语言 1
111 C 语言的起源 1
112 C 语言标准 2
12 C 语言应用领域 2
13 C 语言的特点 4
14 C 语言开发环境搭建 5
15 使用 Visual Studio 编写 C 程序 8
151 个 C 语言程序 8
152 C 程序编译过程 11
小结 13
习题 13
第 2 章 C 语言数据类型 15
21 C 语言基础概念 15
211 关键字 15
212 标识符 18
213 常量 19
214 变量 21
215 不同的关键字修饰变量 21
22 数据类型 23
221 基本类型 23
222 数据溢出 27
223 指针类型 29
224 构造类型 29
23 数据类型转换 33
231 隐式类型转换 33
232 显式类型转换 33
24 格式化输入 / 输出 35
241 printf 函数 35
242 scanf 函数 38
25 C 语言编程风格 39
251 程序格式 39
252 程序注释 42
253 命名规则 43
小结 43
习题 44
第 3 章 运算符与表达式45
31 运算符与表达式的概念 45
32 赋值运算符与赋值表达式 46
33 算术运算符与算术表达式 47
34 关系运算符与关系表达式 49
35 逻辑运算符与逻辑表达式 50
36 条件运算符与条件表达式 51
37 位运算符 51
38 sizeof 运算符 54
39 运算优先级 54
小结 56
习题 56
第 4 章 结构化程序设计58
41 程序流程图 58
42 顺序结构 60
43 选择结构 61
431 if 条件语句 61
432 switch 条件语句 66
44 循环结构 69
441 while 循环 70
442 dowhile 循环 71
443 for 循环 73
444 循环嵌套 75
45 跳转语句 76
451 break 77
452 continue 78
453 goto 79
小结 79
习题 79
目 录 III
第 5 章 指针82
51 认识计算机内存 82
52 认识指针 84
521 指针的概念 84
522 指针变量的类型及大小 85
53 指针的运算 86
531 取地址运算 86
532 指针间接访问 88
533 指针算术运算 88
54 特殊类型指针 90
541 空指针 90
542 野指针 91
543 void 指针 91
55 内存操作函数 92
551 堆内存申请函数 92
552 堆内存释放 93
553 其他内存操作函数 93
56 指针与 const 修饰符 94
561 常量指针 94
562 指针常量 94
563 常量的常指针 95
57 二级指针 95
小结 98
习题 98
第6章 数组 100
61 一维数组的定义与初始化 100
62 数组三要素 102
621 数组索引 102
622 数组类型 102
623 数组大小 103
63 数组内存分析 104
631 数组的起始地址 104
632 数组的步长 105
633 数组边界 106
64 数组遍历 108
65 数组排序 109
651 冒泡排序 109
652 选择排序 112
653 插入排序 114
66 二维数组 117
661 二维数组定义与初始化 118
662 二维数组元素访问 120
67 二维数组内存分析 121
68 变长数组与动态数组 124
681 变长数组 124
682 动态数组 125
69 数组和指针 128
691 数组名和指针 128
692 数组指针 129
693 指针数组 132
小结 135
习题 135
第 7 章 函数 137
71 函数的概念 137
72 函数的定义 138
73 函数三要素 141
731 函数名 141
732 参数列表 141
733 返回值类型 143
74 函数调用 145
741 函数调用过程 145
742 函数调用方式 146
75 函数的参数传递 148
751 值传递 148
752 址传递 149
753 const 修饰参数 150
754 可变参数函数 152
76 递归函数 155
761 递归函数的概念 155
762 递归函数的应用 157
77 内联函数 159
78 变量作用域 161
目 录 V
781 局部变量 161
782 全局变量 162
79 多文件之间变量引用与函数调用 162
791 多文件之间的变量引用 162
792 多文件之间的函数调用 164
710 函数与指针 167
7101 函数指针 167
7102 回调函数 168
7103 指针函数 169
711 C 语言常用的标准库 171
7111 stdioh 171
7112 stdlibh 172
7113 stddefh 172
7114 stringh 173
7115 mathh 173
7116 timeh 173
7117 ctypeh 173
小结 174
习题 174
第 8 章 字符串 176
81 字符数组与字符串 176
811 字符数组 176
812 字符串 177
813 字符串与指针 178
82 字符串的输入 / 输出 181
821 gets 函数 181
822 puts 函数 182
83 标准库字符串操作函数 183
831 字符串长度计算函数 183
832 字符串比较函数 184
833 字符串连接函数 185
834 字符串查找函数 186
835 字符串复制函数 187
84 自定义字符串处理函数 189
841 自定义函数计算字符串长度 189
842 自定义函数比较字符串 190
843 自定义函数连接字符串 191
844 自定义字符串查找函数 193
小结 194
习题 194
第 9 章 结构体197
91 结构体类型的定义 197
92 结构体变量的定义与初始化 198
921 结构体变量的定义 199
922 结构体变量的初始化 200
923 结构体变量的存储方式 201
93 结构体变量的成员访问 203
931 直接访问结构体变量的成员 203
932 通过指针访问结构体变量的成员 204
94 结构体嵌套 205
941 访问嵌套结构体变量成员 206
942 嵌套结构体的内存管理 207
95 结构体数组 209
951 结构体数组的定义与初始化 209
952 结构体数组的访问 211
96 将结构体作为函数参数 212
961 结构体变量作为函数参数 212
962 结构体数组作为函数参数 213
963 结构体指针作为函数参数 215
97 typedef——给数据类型取别名 216
小结 217
习题 217
第 10 章 预处理 220
101 宏定义 220
1011 不带参数的宏定义 220
1012 带参数的宏定义 222
1013 取消宏定义 225
102 条件编译 226
1021 #if#else#endif 226
1022 #ifdef 227
1023 #ifndef 228
103 文件包含 232
104 断言 233
目 录 VII
1041 断言的作用 234
1042 断言与 debug 235
105 #pragma 236
小结 238
习题 238
第 11 章 文件操作 240
111 文件概述 240
1111 计算机中的流 240
1112 文件的概念 241
1113 文件的分类 242
1114 文件指针 243
1115 文件位置指针 244
112 文件的相关操作 245
1121 文件打开与关闭 245
1122 文件写入 247
1123 文件读取 252
1124 文件访问 257
1125 文件重命名与文件删除 259
113 文件检测函数 261
1131 perror 函数 261
1132 ferror 函数 262
1133 feof 函数 263
1134 clearerr 函数 264
114 缓冲区函数 266
1141 fflush 函数 266
1142 setbuf 函数 266
1143 setvbuf 函数 267
小结 268
习题 268
第 12 章 综合项目——俄罗斯方块 271
121 项目分析 271
1211 项目需求分析 271
1212 项目设计 275
122 项目实现 279
1221 窗口构建模块的实现 279
1222 俄罗斯方块生成模块的实现 283
1223 游戏规则制定模块的实现 287
1224 分数保存查看模块的实现 295
1225 main 函数实现 296
123 效果显示 297
124 程序调试 301
1241 设置断点 301
1242 单步调试 303
1243 观察变量 305
1244 项目调试 307
125 项目心得 308
小结 309
附录 A ASCII 码表 310 附录 B stdioh 标准库常用函数 312 附录 C stdlibh 标准库常用函数 315 附录 D stringh 标准库常用函数 317 附录 E mathh 标准库常用函数 319 附录 F timeh 标准库常用函数 321 附录 G ctypeh 标准库常用函数
11 认识 C 语言 1
111 C 语言的起源 1
112 C 语言标准 2
12 C 语言应用领域 2
13 C 语言的特点 4
14 C 语言开发环境搭建 5
15 使用 Visual Studio 编写 C 程序 8
151 个 C 语言程序 8
152 C 程序编译过程 11
小结 13
习题 13
第 2 章 C 语言数据类型 15
21 C 语言基础概念 15
211 关键字 15
212 标识符 18
213 常量 19
214 变量 21
215 不同的关键字修饰变量 21
22 数据类型 23
221 基本类型 23
222 数据溢出 27
223 指针类型 29
224 构造类型 29
23 数据类型转换 33
231 隐式类型转换 33
232 显式类型转换 33
24 格式化输入 / 输出 35
241 printf 函数 35
242 scanf 函数 38
25 C 语言编程风格 39
251 程序格式 39
252 程序注释 42
253 命名规则 43
小结 43
习题 44
第 3 章 运算符与表达式45
31 运算符与表达式的概念 45
32 赋值运算符与赋值表达式 46
33 算术运算符与算术表达式 47
34 关系运算符与关系表达式 49
35 逻辑运算符与逻辑表达式 50
36 条件运算符与条件表达式 51
37 位运算符 51
38 sizeof 运算符 54
39 运算优先级 54
小结 56
习题 56
第 4 章 结构化程序设计58
41 程序流程图 58
42 顺序结构 60
43 选择结构 61
431 if 条件语句 61
432 switch 条件语句 66
44 循环结构 69
441 while 循环 70
442 dowhile 循环 71
443 for 循环 73
444 循环嵌套 75
45 跳转语句 76
451 break 77
452 continue 78
453 goto 79
小结 79
习题 79
目 录 III
第 5 章 指针82
51 认识计算机内存 82
52 认识指针 84
521 指针的概念 84
522 指针变量的类型及大小 85
53 指针的运算 86
531 取地址运算 86
532 指针间接访问 88
533 指针算术运算 88
54 特殊类型指针 90
541 空指针 90
542 野指针 91
543 void 指针 91
55 内存操作函数 92
551 堆内存申请函数 92
552 堆内存释放 93
553 其他内存操作函数 93
56 指针与 const 修饰符 94
561 常量指针 94
562 指针常量 94
563 常量的常指针 95
57 二级指针 95
小结 98
习题 98
第6章 数组 100
61 一维数组的定义与初始化 100
62 数组三要素 102
621 数组索引 102
622 数组类型 102
623 数组大小 103
63 数组内存分析 104
631 数组的起始地址 104
632 数组的步长 105
633 数组边界 106
64 数组遍历 108
65 数组排序 109
651 冒泡排序 109
652 选择排序 112
653 插入排序 114
66 二维数组 117
661 二维数组定义与初始化 118
662 二维数组元素访问 120
67 二维数组内存分析 121
68 变长数组与动态数组 124
681 变长数组 124
682 动态数组 125
69 数组和指针 128
691 数组名和指针 128
692 数组指针 129
693 指针数组 132
小结 135
习题 135
第 7 章 函数 137
71 函数的概念 137
72 函数的定义 138
73 函数三要素 141
731 函数名 141
732 参数列表 141
733 返回值类型 143
74 函数调用 145
741 函数调用过程 145
742 函数调用方式 146
75 函数的参数传递 148
751 值传递 148
752 址传递 149
753 const 修饰参数 150
754 可变参数函数 152
76 递归函数 155
761 递归函数的概念 155
762 递归函数的应用 157
77 内联函数 159
78 变量作用域 161
目 录 V
781 局部变量 161
782 全局变量 162
79 多文件之间变量引用与函数调用 162
791 多文件之间的变量引用 162
792 多文件之间的函数调用 164
710 函数与指针 167
7101 函数指针 167
7102 回调函数 168
7103 指针函数 169
711 C 语言常用的标准库 171
7111 stdioh 171
7112 stdlibh 172
7113 stddefh 172
7114 stringh 173
7115 mathh 173
7116 timeh 173
7117 ctypeh 173
小结 174
习题 174
第 8 章 字符串 176
81 字符数组与字符串 176
811 字符数组 176
812 字符串 177
813 字符串与指针 178
82 字符串的输入 / 输出 181
821 gets 函数 181
822 puts 函数 182
83 标准库字符串操作函数 183
831 字符串长度计算函数 183
832 字符串比较函数 184
833 字符串连接函数 185
834 字符串查找函数 186
835 字符串复制函数 187
84 自定义字符串处理函数 189
841 自定义函数计算字符串长度 189
842 自定义函数比较字符串 190
843 自定义函数连接字符串 191
844 自定义字符串查找函数 193
小结 194
习题 194
第 9 章 结构体197
91 结构体类型的定义 197
92 结构体变量的定义与初始化 198
921 结构体变量的定义 199
922 结构体变量的初始化 200
923 结构体变量的存储方式 201
93 结构体变量的成员访问 203
931 直接访问结构体变量的成员 203
932 通过指针访问结构体变量的成员 204
94 结构体嵌套 205
941 访问嵌套结构体变量成员 206
942 嵌套结构体的内存管理 207
95 结构体数组 209
951 结构体数组的定义与初始化 209
952 结构体数组的访问 211
96 将结构体作为函数参数 212
961 结构体变量作为函数参数 212
962 结构体数组作为函数参数 213
963 结构体指针作为函数参数 215
97 typedef——给数据类型取别名 216
小结 217
习题 217
第 10 章 预处理 220
101 宏定义 220
1011 不带参数的宏定义 220
1012 带参数的宏定义 222
1013 取消宏定义 225
102 条件编译 226
1021 #if#else#endif 226
1022 #ifdef 227
1023 #ifndef 228
103 文件包含 232
104 断言 233
目 录 VII
1041 断言的作用 234
1042 断言与 debug 235
105 #pragma 236
小结 238
习题 238
第 11 章 文件操作 240
111 文件概述 240
1111 计算机中的流 240
1112 文件的概念 241
1113 文件的分类 242
1114 文件指针 243
1115 文件位置指针 244
112 文件的相关操作 245
1121 文件打开与关闭 245
1122 文件写入 247
1123 文件读取 252
1124 文件访问 257
1125 文件重命名与文件删除 259
113 文件检测函数 261
1131 perror 函数 261
1132 ferror 函数 262
1133 feof 函数 263
1134 clearerr 函数 264
114 缓冲区函数 266
1141 fflush 函数 266
1142 setbuf 函数 266
1143 setvbuf 函数 267
小结 268
习题 268
第 12 章 综合项目——俄罗斯方块 271
121 项目分析 271
1211 项目需求分析 271
1212 项目设计 275
122 项目实现 279
1221 窗口构建模块的实现 279
1222 俄罗斯方块生成模块的实现 283
1223 游戏规则制定模块的实现 287
1224 分数保存查看模块的实现 295
1225 main 函数实现 296
123 效果显示 297
124 程序调试 301
1241 设置断点 301
1242 单步调试 303
1243 观察变量 305
1244 项目调试 307
125 项目心得 308
小结 309
附录 A ASCII 码表 310 附录 B stdioh 标准库常用函数 312 附录 C stdlibh 标准库常用函数 315 附录 D stringh 标准库常用函数 317 附录 E mathh 标准库常用函数 319 附录 F timeh 标准库常用函数 321 附录 G ctypeh 标准库常用函数