《C语言从入门到精通》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张春燕,邓淼磊,赵晨阳,周锋,卞金洪编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2019
  • ISBN:9787115506719
  • 页数:434 页
图书介绍:本书第1篇“基础入门”和第2篇“基础知识”主要讲解C语言基本语法、数据的输入输出、结构化程序设计、数组以及模块化设计—函数等内容;第3篇“进阶提高”主要介绍指针、结构体与联合体、链表、编译预处理、文件以及调试等内容;第4篇“高级应用”主要介绍数据结构、常用算法、高级编程技术以及网络编程等内容;第5篇“项目实战”主要介绍停车场收费管理系统、小型超市进销存管理系统以及在线考试服务应用系统等内容。

第Ⅰ篇 基础入门 3

第1章 C语言概述 3

1.1 初学编程首选C语言 3

1.1.1 程序设计语言 3

1.1.2 C语言在计算机领域的地位 3

1.1.3 C语言的特点和应用领域 4

1.1.4 C语言学习路线 4

1.2 快速学会看懂C程序 5

1.2.1 一个简单的C程序 5

1.2.2 C程序的基本结构 6

1.2.3 C程序从编写到运行的过程 8

第2章 C程序开发环境和开发步骤 10

2.1 Windows下开发C程序 10

2.1.1 安装配置运行环境 10

2.1.2 使用Visual Studio 2015编写、运行C程序 16

2.1.3 使用Code::Blocks编写和运行C程序 18

2.2 Linux下开发C程序 19

2.2.1 GCC使用介绍 19

2.2.2 GCC编译C程序 19

2.3 制作我的第一个C程序 21

第Ⅱ篇 基础知识 25

第3章 C语言基本语法 25

3.1 标识符和关键字 25

3.1.1 标识符 25

3.1.2 关键字 25

3.2 数据类型 25

3.2.1 常量 26

3.2.2 变量 29

3.2.3 整型数据 31

3.2.4 实型数据 33

3.2.5 字符型数据 34

3.2.6 数据类型转换 35

3.3 运算符与表达式 38

3.3.1 运算符 38

3.3.2 表达式 39

3.3.3 算术运算符和表达式 39

3.3.4 关系运算符和表达式 40

3.3.5 逻辑运算符和表达式 41

3.3.6 赋值运算符 43

3.3.7 自增、自减运算符 44

3.3.8 逗号运算符 45

3.3.9 条件运算符 46

3.3.10 位运算符 47

3.4 运算符的优先级与结合方向 52

3.4.1 算术运算符的优先级和结合性 52

3.4.2 关系运算符的优先级和结合性 52

3.4.3 逻辑运算符的优先级和结合性 53

3.4.4 赋值运算符的优先级和结合性 53

3.5 综合案例——四则运算计算器 53

3.6 疑难解答 54

第4章 养成良好的编程习惯 56

4.1 C程序的格式 56

4.2 良好的编程风格 57

4.2.1 命名规则 57

4.2.2 程序的版式 59

4.2.3 表达式和基本语句 61

4.2.4 函数 65

4.2.5 内存管理 66

4.2.6 注释 67

第5章 数据的输入和输出 70

5.1 C语句介绍 70

5.2 赋值语句 71

5.3 输入和输出 73

5.3.1 字符输入和输出函数 73

5.3.2 格式输入和输出函数 75

5.4 综合案例——学生基本信息的输入和输出 83

5.5 疑难解答 84

第6章 结构化程序设计 86

6.1 结构化程序开发的过程 86

6.1.1 核心思想 86

6.1.2 流程图 86

6.2 顺序结构程序设计 88

6.3 选择结构程序设计 90

6.3.1 单分支结构语句 90

6.3.2 双分支结构语句 92

6.3.3 多分支结构语句 93

6.3.4 分支语句的嵌套 95

6.3.5 switch选择语句 96

6.4 循环结构程序设计 98

6.4.1 while循环结构与执行流程 98

6.4.2 for循环结构与执行流程 100

6.4.3 do-while循环结构与执行流程 104

6.4.4 循环结构嵌套 106

6.4.5 辅助语句break和continue 107

6.5 综合案例——改良版的计算器 110

6.6 疑难解答 113

第7章 数组 116

7.1 数组概述 116

7.2 一维数组 116

7.2.1 一维数组的定义 116

7.2.2 一维数组的初始化 118

7.2.3 一维数组元素的操作 118

7.2.4 一维数组应用举例 122

7.3 二维数组 125

7.3.1 二维数组的定义 125

7.3.2 二维数组的初始化 127

7.3.3 二维数组元素的操作 127

7.3.4 二维数组应用举例 129

7.3.5 多维数组 131

7.4 字符数组 132

7.4.1 字符数组的定义与初始化 132

7.4.2 字符串和字符串结束标志 134

7.4.3 字符数组的输入与输出 135

7.4.4 字符串处理函数 137

7.4.5 字符数组应用举例 141

7.5 综合案例——加减运算考试程序 142

7.6 疑难解答 144

第8章 模块化设计——函数 146

8.1 为什么使用函数 146

8.2 函数的定义与分类 146

8.2.1 函数的定义 146

8.2.2 函数的分类 147

8.2.3 无参函数 148

8.2.4 有参函数 148

8.3 函数的参数和返回值 149

8.3.1 实参与形参 149

8.3.2 函数的返回值 152

8.4 函数的调用 153

8.4.1 函数原型 154

8.4.2 函数的一般调用 155

8.4.3 函数的嵌套调用 156

8.4.4 函数的递归调用 158

8.5 数组作为函数参数 161

8.5.1 数组元素作为函数参数 161

8.5.2 数组名作为函数参数 162

8.6 变量的作用域 163

8.6.1 局部变量 164

8.6.2 全局变量 164

8.7 变量的存储类别 165

8.7.1 自动变量 165

8.7.2 静态变量 166

8.7.3 寄存器变量 168

8.7.4 外部变量 168

8.8 内部函数和外部函数 169

8.9 综合案例——在给定区间内解方程 171

8.10 疑难解答 172

第Ⅲ篇 进阶提高 177

第9章 内存的快捷方式——指针 177

9.1 指针和地址 177

9.1.1 指针的含义 177

9.1.2 目标单元与间接存取 177

9.2 指针变量 178

9.2.1 定义指针变量 179

9.2.2 引用指针变量 181

9.2.3 指针变量作为函数参数 183

9.3 指针与数组 184

9.3.1 指向数组元素的指针 184

9.3.2 指向数组的指针 185

9.3.3 通过指针引用多维数组 186

9.3.4 指向数组的指针作为函数参数 187

9.4 指针与字符串 188

9.4.1 字符串指针 188

9.4.2 指针访问字符串 190

9.4.3 字符串指针作为函数参数 193

9.5 指针与函数 194

9.5.1 函数指针 194

9.5.2 指针型函数 196

9.5.3 函数指针作为函数参数 197

9.5.4 void指针 199

9.6 指针的指针 200

9.7 使用const修饰指针变量 201

9.8 使用指针的注意事项 202

9.9 综合案例——数值排序 202

9.10 疑难解答 204

第10章 结构体与联合体 206

10.1 结构体的使用场景 206

10.2 结构体类型与结构体变量 206

10.2.1 定义结构体类型 207

10.2.2 结构体变量的定义 208

10.2.3 结构体变量的初始化 210

10.2.4 结构体变量的引用 211

10.2.5 指向结构体变量的指针 213

10.3 结构体数组 215

10.3.1 结构体数组的定义 215

10.3.2 结构体数组的初始化和引用 217

10.3.3 指向结构体数组的指针 219

10.4 结构体与函数 221

10.4.1 结构体作为函数的参数 221

10.4.2 结构体作为函数的返回值 223

10.5 联合体 224

10.5.1 联合体类型 224

10.5.2 联合体变量的定义 225

10.5.3 联合体变量的引用 226

10.6 枚举类型的定义和使用 228

10.7 综合案例——教师基本信息的组织与管理 230

10.8 疑难解答 232

第11章 链表 234

11.1 链表的特点和原理 234

11.1.1 为什么使用链表 234

11.1.2 动态内存分配 235

11.2 链表的定义 238

11.3 单链表的操作 239

11.3.1 创建链表 240

11.3.2 输出链表 242

11.3.3 查找操作 242

11.3.4 插入操作 243

11.3.5 删除操作 245

11.4 综合案例——学生信息管理系统 245

11.5 疑难解答 250

第12章 编译预处理 252

12.1 什么是预处理指令 252

12.2 宏定义 252

12.2.1 变量式宏定义 252

12.2.2 宏定义嵌套 256

12.2.3 宏定义范围 257

12.2.4 函数式宏定义 258

12.2.5 多行宏定义 259

12.3 文件包含 260

12.3.1 什么是文件包含 260

12.3.2 使用文件包含 261

12.3.3 文件包含说明 262

12.4 条件编译 262

12.4.1 条件编译形式 263

12.4.2 调试中使用条件编译 266

12.4.3 文件嵌套包含和条件编译 266

12.5 综合案例——根据月用电量计算用户应缴电费 266

12.6 疑难解答 267

第13章 文件 270

13.1 文件的概念 270

13.1.1 文本流与二进制流 270

13.1.2 文件类型指针 271

13.2 文件的打开和关闭 271

13.3 文件的顺序读写 273

13.3.1 文件读写字符 273

13.3.2 文件读写字符串 275

13.3.3 格式化方式读写文件 278

13.3.4 二进制文件的读写 279

13.4 文件的随机读写 283

13.5 综合案例——对文件进行加解密 285

13.6 疑难解答 288

第14章 常见错误及调试 290

14.1 常见错误的类型 290

14.1.1 语法错误 290

14.1.2 语义错误 293

14.1.3 内存错误 296

14.2 使用Visual Studio 2015调试C程序 299

14.3 使用Code::Blocks调试C程序 301

14.4 常用调试技巧及纠错 304

第Ⅳ篇 高级应用 309

第15章 简单的数据结构 309

15.1 数据结构概述 309

15.2 栈 310

15.2.1 栈的基本运算 310

15.2.2 顺序栈 310

15.2.3 链栈 311

15.2.4 栈的应用 311

15.3 队列 316

15.3.1 队列的基本运算 316

15.3.2 顺序队列 316

15.3.3 链队列 317

15.3.4 队列的应用 317

15.4 树 321

15.4.1 树的基本概念 321

15.4.2 二叉树及其基本性质 322

15.4.3 二叉树的遍历 322

15.5 查找 324

15.5.1 顺序查找 324

15.5.2 折半查找 326

15.5.3 二叉查找树 328

15.6 排序 330

15.6.1 冒泡排序 330

15.6.2 快速排序 331

15.6.3 堆排序 333

15.7 综合案例——利用栈进行数据的遍历、排序等操作 335

15.8 疑难解答 338

第16章 常用算法 340

16.1 算法的概念 340

16.1.1 算法的特征 340

16.1.2 算法设计的基本方法 340

16.1.3 算法的描述 340

16.2 算法复杂度 342

16.2.1 时间复杂度 342

16.2.2 空间复杂度 343

16.3 递归算法及示例 344

16.4 穷举算法及示例 345

16.5 分治算法及示例 346

16.6 贪心算法及示例 348

16.7 动态规划算法及示例 352

第17章 高级编程技术 356

17.1 屏幕文本输出 356

17.1.1 文本方式的控制 356

17.1.2 窗口设置和文本输出 356

17.1.3 清屏和光标控制 359

17.1.4 文本移动和存取 359

17.2 图形编程 361

17.2.1 图形系统初始化 361

17.2.2 基本图形函数 364

17.2.3 颜色函数 370

17.2.4 填充函数 373

17.3 中断 376

17.3.1 编写中断服务程序 376

17.3.2 安装中断服务程序 377

17.3.3 中断服务程序的激活 377

第18章 网络编程 380

18.1 网络基础知识 380

18.1.1 计算机网络 380

18.1.2 TCP/IP协议 380

18.1.3 端口 382

18.1.4 套接字 382

18.2 基于TCP的网络编程 383

18.2.1 服务器端实现 384

18.2.2 客户端实现 384

18.3 基于UDP的网络编程 386

18.3.1 服务器端实现 387

18.3.2 客户端实现 387

第Ⅴ篇 项目实战 393

第19章 停车场收费管理系统 393

19.1 需求分析 393

19.2 概要设计 393

19.2.1 系统目标 393

19.2.2 功能结构 393

19.2.3 数据结构 394

19.3 详细设计 394

19.3.1 主函数模块 395

19.3.2 停车管理模块 397

19.3.3 取车管理模块 399

19.3.4 收费标准管理模块 401

19.3.5 查询统计模块 402

19.4 程序调试及系统测试 407

第20章 小型超市进销存管理系统 410

20.1 需求分析 410

20.2 概要设计 410

20.2.1 系统目标 410

20.2.2 功能结构 410

20.2.3 数据结构 410

20.3 详细设计 412

20.3.1 主函数模块 413

20.3.2 用户管理模块 417

20.3.3 进货管理模块 422

20.3.4 销售管理模块 425

20.3.5 库存管理模块 429

20.3.6 查询统计模块 430

20.4 程序调试及系统测试 433