《C语言从入门到精通 第4版》PDF电子书免费下载

作者:  李岚

出版社: 人民邮电出版社

出版年: 2021年07月

ISBN: 9787115548351

~~滚到底部有网盘下载链接~~

内容简介

目录

第 0 章 学习攻略

0.1 编程的魔力 002

0.2 C语言的起源及特点 002

0.3 C语言的用途 004

0.4 C语言实现的人机交互 004

0.5 C语言的学习方法 005

第 Ⅰ 篇基础知识

第 1 章 步入C语言的世界——Hello C

1.1 C语言的开发环境 009

1.1.1 C语言常用的开发环境 009

1.1.2 Code::Blocks开发环境 010

1.1.3 手机编译器 011

1.2 开始C编程—我的第 一个C程序 012

1.2.1 程序编写及运行流程 012

1.2.2 在Code::Blocks中开发C程序 013

1.2.3 在手机编译器中开发C程序 015

1.3 高手点拨 016

1.4 实战练习 016

第 2 章 C程序的结构

2.1 引例 018

2.2 声明区 018

2.2.1 头文件 018

2.2.2 函数声明 019

2.2.3 变量声明 019

2.3 主函数 020

2.4 函数定义区 020

2.5 注释 021

2.6 书写代码的规则 021

2.7 高手点拨 022

2.8 实战练习 022

第 3 章 C语言的基本构成元素

3.1 标识符和关键字 024

3.1.1 标识符 024

3.1.2 关键字 024

3.2 常量 024

3.3 常量的类别 025

3.3.1 数值常量 025

3.3.2 字符常量 026

3.3.3 字符串常量 028

3.3.4 符号常量 028

3.4 综合应用——常量与符号常量 028

3.5 高手点拨 029

3.6 实战练习 030

第 4 章 变量

4.1 变量概述 032

4.1.1 变量的定义 032

4.1.2 变量的定义与声明 033

4.2 变量的初始化和赋值 033

4.3 变量的输入和输出 034

4.3.1 格式化输出函数——printf() 034

4.3.2 格式控制符 035

4.3.3 格式化输入函数——scanf() 040

4.4 字符的输入和输出 042

4.4.1 字符输出函数——putchar() 043

4.4.2 字符输入函数——getchar() 043

4.5 综合应用——对变量的操作 044

4.6 高手点拨 046

4.7 实战练习 046

第 5 章 计算机中的数制系统

5.1 二进制 048

5.2 八进制 049

5.3 十进制 049

5.4 十六进制 050

5.5 数制间的转换 050

5.6 综合应用——数制转换 051

5.7 高手点拨 052

5.8 实战练习 052

第 6 章 数据的种类——数据类型

6.1 数据类型的分类 054

6.1.1 基本类型 054

6.1.2 构造类型 054

6.1.3 指针类型 054

6.1.4 空类型 054

6.2 整型 055

6.3 字符型 057

6.4 浮点型 059

6.5 类型转换 060

6.5.1 隐式转换 060

6.5.2 显式转换 061

6.6 综合应用——数据类型转换 062

6.7 高手点拨 063

6.8 实战练习 064

第 7 章 C 语言中的运算符和表达式

7.1 运算符和表达式 066

7.1.1 运算符 066

7.1.2 表达式 066

7.2 算术运算符和表达式 067

7.2.1 算术运算符 067

7.2.2 算术表达式 067

7.2.3 应用举例 067

7.3 关系运算符和表达式 069

7.3.1 关系运算符 069

7.3.2 关系表达式 069

7.3.3 应用举例 069

7.4 逻辑运算符和表达式 070

7.4.1 逻辑运算符 070

7.4.2 逻辑表达式 071

7.4.3 应用举例 071

7.5 条件运算符和表达式 073

7.6 赋值运算符和表达式 074

7.6.1 赋值运算符 074

7.6.2 赋值表达式 074

7.6.3 应用举例 075

7.7 自增、自减运算符 076

7.8 逗号运算符和表达式 077

7.9 位运算符 078

7.9.1 按位与运算符 078

7.9.2 按位或运算符 079

7.9.3 按位异或运算符 079

7.9.4 按位取反运算符 080

7.9.5 左移运算符 080

7.9.6 右移运算符 081

7.9.7 位运算赋值运算符 082

7.9.8 位运算应用 082

7.10 运算符的优先级和结合性 085

7.10.1 算术运算符 085

7.10.2 关系运算符 085

7.10.3 逻辑运算符 085

7.10.4 赋值运算符 085

7.11 综合应用——条件运算符的应用 086

7.12 高手点拨 087

7.13 实战练习 088

第 8 章 程序的灵魂——算法

8.1 算法概述 090

8.1.1 算法的定义 090

8.1.2 算法的特性 090

8.1.3 简单算法举例——解方程 091

8.2 如何表示一个算法 092

8.2.1 自然语言表示算法 092

8.2.2 流程图表示算法 094

8.2.3 N-S 流程图表示算法 098

8.2.4 伪代码表示算法 100

8.2.5 计算机语言表示算法 101

8.3 结构化程序设计方法 101

8.4 衡量程序质量的标准 102

8.5 综合应用——求解一元二次方程的根 103

8.6 高手点拨 104

8.7 实战练习 104

第 9 章 顺序结构与选择结构

9.1 语句 106

9.1.1 表达式语句 106

9.1.2 控制语句 106

9.1.3 空语句和复合语句 106

9.1.4 函数调用语句 107

9.2 顺序结构 107

9.3 选择结构 109

9.3.1 选择结构的定义 109

9.3.2 二分支选择结构——if 语句 109

9.3.3 二分支选择结构——if-else 语句 111

9.3.4 二分支选择结构——if-else 的嵌套形式 112

9.3.5 多分支选择结构——switch 语句 116

9.4 综合应用—计算奖金 118

9.5 高手点拨 119

9.6 实战练习 120

第 10章 循环结构与转向语句

10.1 循环结构 122

10.1.1 循环结构的定义 122

10.1.2 for 语句 123

10.1.3 while 语句 126

10.1.4 do-while 语句 127

10.1.5 循环的嵌套 129

10.2 转向语句 132

10.2.1 goto 语句 132

10.2.2 break 语句 133

10.2.3 continue 语句 135

10.3 综合应用——简单计算器的设计 136

10.4 高手点拨 138

10.5 实战练习 138

第 11章 数组

11.1 数组概述 140

11.2 一维数组 140

11.2.1 一维数组的定义 140

11.2.2 一维数组的初始化 142

11.2.3 一维数组元素的引用 143

11.2.4 一维数组的应用举例 145

11.3 二维数组 147

11.3.1 二维数组的定义 148

11.3.2 二维数组的初始化 148

11.3.3 二维数组元素的引用 149

11.3.4 二维数组的应用举例 149

11.4 综合应用——杨辉三角 151

11.5 高手点拨 152

11.6 实战练习 153

第 12章 字符数组和字符串

12.1 字符数组概述 156

12.2 字符数组 156

12.2.1 字符数组的定义 156

12.2.2 字符数组的初始化 156

12.2.3 字符数组的引用 157

12.2.4 字符数组的输入与输出 157

12.3 字符串 158

12.3.1 字符串和字符数组 159

12.3.2 字符串的输入和输出 160

12.3.3 字符串应用举例 162

12.4 综合应用——自动分类字符 164

12.5 高手点拨 165

12.6 实战练习 166

第 Ⅱ 篇 核心技术——函数

第 13章 函数

13.1 函数概述 169

13.1.1 什么是函数 169

13.1.2 函数的分类 170

13.2 函数功能 171

13.3 函数的返回值及类型 173

13.3.1 函数的返回值 173

13.3.2 函数返回值的类型 174

13.4 函数的参数及传递方式 177

13.4.1 函数的参数 177

13.4.2 函数参数的传递方式 179

13.4.3 带参数的主函数 182

13.5 函数的调用 183

13.5.1 函数调用方式 184

13.5.2 函数的声明 185

13.5.3 函数的嵌套调用 187

13.5.4 函数的递归调用 188

13.6 内部函数和外部函数 193

13.6.1 内部函数 193

13.6.2 外部函数 193

13.7 综合应用——用截弦法求方程的根 195

13.8 高手点拨 196

13.9 实战练习 197

第 14章 变量的作用范围和存储类型

14.1 变量的作用范围 200

14.1.1 局部变量 200

14.1.2 全局变量 201

14.2 变量的存储类型 203

14.2.1 自动类型 204

14.2.2 寄存器类型 204

14.2.3 静态类型 205

14.2.4 外部类型 207

14.3 综合应用——根据日期判断是该年第几天 208

14.4 高手点拨 209

14.5 实战练习 210

第 15章 库函数

15.1 C 标准函数库 212

15.2 数学函数 212

15.2.1 值函数 213

15.2.2 幂函数和开平方函数 213

15.2.3 指数函数和对数函数 214

15.2.4 三角函数 214

15.2.5 取整函数和取余函数 215

15.3 字符串处理函数 216

15.3.1 字符串长度函数 216

15.3.2 字符串连接函数 216

15.3.3 字符串复制函数 217

15.3.4 字符串比较函数 218

15.3.5 字符串查找函数 219

15.3.6 字符串填充函数 220

15.4 字符处理函数 220

15.4.1 字符类型判断函数 221

15.4.2 字符大小写转换函数 222

15.5 数据类型转换和存储管理函数 222

15.5.1 数据类型转换函数 222

15.5.2 存储管理函数 223

15.6 随机函数 225

15.6.1 初识随机函数 225

15.6.2 使用随机函数 226

15.7 日期和时间处理函数 227

15.8 诊断函数 228

15.9 其他函数 229

15.9.1 exit()函数 229

15.9.2 qsort()函数 230

15.10 综合应用——猜数字游戏 231

15.11 高手点拨 233

15.12 实战练习 233

第 16章 结构体和联合体

16.1 结构体 236

16.1.1 结构体类型的定义 236

16.1.2 结构体变量的定义 236

16.1.3 结构体变量的初始化 237

16.1.4 结构体变量的引用 238

16.2 结构体数组 238

16.2.1 结构体数组的定义 239

16.2.2 结构体数组的初始化 239

16.2.3 结构体数组元素的引用 240

16.3 结构体与函数 241

16.3.1 结构体变量作为函数的参数——传值调用方式 241

16.3.2 结构体作为函数的返回值 242

16.4 联合体 243

16.4.1 联合体类型的定义 243

16.4.2 联合体变量的定义 244

16.4.3 联合体变量的初始化 244

16.4.4 联合体变量的引用 246

16.5 结构体和联合体的区别与联系 247

16.6 综合应用——计算学生平均成绩 247

16.7 高手点拨 249

16.8 实战练习 249

第 17章 枚举

17.1 枚举类型 252

17.1.1 枚举类型的定义 252

17.1.2 枚举类型的应用 253

17.2 高手点拨 254

17.3 实战练习 254

第 Ⅲ 篇高级应用——指针及文件

第 18章 指针

18.1 指针概述 257

18.1.1 指针类型的变量和定义 257

18.1.2 指针所指向变量的类型 257

18.1.3 指针的值 257

18.1.4 指针所占内存 257

18.2 指针的算术运算 258

18.2.1 指针与整数的运算 258

18.2.2 指针与指针的运算 259

18.3 &和*运算符 260

18.4 指针表达式 262

18.5 综合应用——使用指针进行排序 262

18.6 高手点拨 263

18.7 实战练习 263

第 19章 指针与数组

19.1 数组指针 266

19.2 数组指针作为函数参数 266

19.3 指针与字符数组 267

19.4 指针数组与指针的指针 267

19.5 综合应用——报数游戏(约瑟夫环) 269

19.6 高手点拨 270

19.7 实战练习 270

第 20章 指针与函数

20.1 函数指针 272

20.1.1 函数指针的定义 272

20.1.2 函数指针的赋值 272

20.1.3 通过函数指针调用函数 272

20.2 指针函数 273

20.3 指向函数的指针作为函数参数 275

20.4 综合应用——根据当年第几天输出该天的日期 276

20.5 高手点拨 277

20.6 实战练习 278

第 21章 指针与字符串

21.1 字符串指针 280

21.1.1 字符串指针的定义 280

21.1.2 字符串指针的应用 281

21.2 字符串指针作为函数参数 284

21.3 字符串指针与字符数组的区别 285

21.4 综合应用——“回文”问题 286

21.5 实战练习 287

第 22章 指针与结构体

22.1 结构体指针 290

22.1.1 结构体指针的定义 290

22.1.2 结构体指针的初始化 290

22.1.3 使用指针访问结构体成员 290

22.1.4 给结构体指针赋值 291

22.2 指向结构体数组的指针 292

22.3 结构体指针作为函数参数 294

22.4 综合应用——利用结构体创建单链表 295

22.5 高手点拨 296

22.6 实战练习 296

第 23章 指针的高级应用与技巧

23.1 指向指针的指针 298

23.2 void指针 299

23.3 内存操作 301

23.4 指针的传递 304

23.5 综合应用——数值的降序排列 304

23.6 高手点拨 305

23.7 实战练习 306

第 24章 文件

24.1 文件概述 308

24.1.1 文件类型 308

24.1.2 C如何操作文件——文件指针 308

24.1.3 文件缓冲区 309

24.2 文件的打开和关闭 309

24.2.1 文件的打开函数——fopen() 309

24.2.2 文件的关闭函数——fclose() 310

24.2.3 文件结束检测函数——feof() 311

24.3 文件的顺序读写 311

24.3.1 文本文件中字符的输入/输出 311

24.3.2 文本文件中字符串的输入/输出 313

24.3.3 文本文件中数据的格式化输入/输出 315

24.3.4 二进制文件的输入/输出——数据块读写 317

24.4 文件的随机读写 319

24.5 综合应用——文件操作 320

24.6 高手点拨 321

24.7 实战练习 322

第 Ⅳ 篇数据结构及C语言中的常用算法

第 25章 数据管理者——数据结构

25.1 数据结构概述 325

25.1.1 逻辑结构 325

25.1.2 存储结构 326

25.1.3 数据的运算 326

25.2 线性表 326

25.2.1 线性表的定义 326

25.2.2 线性表的主要操作 327

25.2.3 顺序表 327

25.2.4 单链表 329

25.3 栈 332

25.3.1 栈的定义 332

25.3.2 栈的主要操作 333

25.3.3 顺序栈 333

25.3.4 链式栈 333

25.4 队列 334

25.4.1 队列的定义 334

25.4.2 队列的主要操作 334

25.4.3 顺序队列 334

25.4.4 链队列 335

25.5 树和二叉树 335

25.5.1 树和二叉树的定义 336

25.5.2 二叉树的主要操作 336

25.5.3 二叉树的存储表示 336

25.5.4 二叉树的遍历 338

25.6 图 338

25.6.1 图的定义 338

25.6.2 图的主要操作 338

25.6.3 图的存储表示 338

25.6.4 图的遍历 339

25.7 综合应用——链表的反转 342

25.8 高手点拨 343

25.9 实战练习 344

第 26章 C语言中的高级算法

26.1 模拟算法 346

26.2 简单动态规划 347

26.3 用递归实现回溯算法 350

26.4 短路径算法 352

26.4.1 只有五行的算法——Floyd-Warshall 352

26.4.2 Dijkstra 算法——单源短边 352

26.4.3 Bellman-Ford算法——解决负权边 353

26.4.4 Bellman-Ford 的队列优化算法 353

26.4.5 短路径算法对比分析 353

26.5 分治算法 356

26.6 贪心算法 358

26.7 综合应用——镖局运镖 359

26.8 高手点拨 361

26.9 实战练习 361

第 27章 数学问题算法

27.1 质因数分解 364

27.2 公约数的欧几里得算法 365

27.3 加法原理与乘法原理 366

27.4 排列与组合 367

27.5 综合应用——进站方案 368

27.6 高手点拨 369

27.7 实战练习 370

第 28章 排序问题算法

28.1 插入排序法 372

28.2 选择排序法 373

28.3 冒泡排序法 375

28.4 快速排序法 376

28.5 桶排序法 378

28.6 高手点拨 379

28.7 实战练习 380

第 29章 查找问题算法

29.1 顺序查找法 382

29.2 折半查找法 384

29.3 高手点拨 386

29.4 实战练习 386

第30章 算法竞赛实例

30.1 Hilbert曲线 388

30.2 四色问题 390

30.3 跳马问题 391

30.4 生成全部排列及其应用 392

30.5 贪吃蛇游戏 393

30.6 幻方 394

30.7 高精度计算 395

30.8 高手点拨 396

30.9 实战练习 396

第 Ⅴ 篇趣味解题

第31章 歌手比赛评分系统

31.1 问题描述 399

31.2 问题分析及实现 399

31.2.1 问题分析 399

31.2.2 问题实现 399

31.2.3 程序运行 403

31.3 开发过程常见问题及解决方案 406

第32章 哥德巴赫猜想

32.1 问题描述 408

32.2 问题分析及实现 408

32.2.1 问题分析 408

32.2.2 问题实现 408

32.2.3 程序运行 410

32.3 开发过程常见问题及解决方案 410

第33章 打印日历

33.1 问题描述 412

33.2 问题分析及实现 412

33.2.1 问题分析 412

33.2.2 问题实现 412

33.2.3 程序运行 413

33.3 开发过程常见问题及解决方案 414

第34章 背包问题

34.1 问题描述 416

34.2 问题分析及实现 416

34.2.1 问题分析 416

34.2.2 问题实现 416

34.2.3 程序运行 419

34.3 开发过程常见问题及解决方案 419

第35章 火车车厢重排

35.1 问题描述 422

35.2 问题分析及实现 422

35.2.1 问题分析 422

35.2.2 问题实现 422

35.2.3 程序运行 425

35.3 开发过程常见问题及解决方案 426

第36章 商人过河

36.1 问题描述 428

36.2 问题分析及实现 428

36.2.1 问题分析 428

36.2.2 问题实现 428

36.2.3 程序运行 430

36.3 开发过程常见问题及解决方案 430

第37章 K阶斐波那契数列的实现

37.1 问题描述 432

37.2 问题分析及实现 432

37.2.1 问题分析 432

37.2.2 问题实现 432

37.2.3 程序运行 433

37.3 开发过程常见问题及解决方案 434
显示部分信息

下载价格:免费
立即下载
登入/注册
知识就是力量
没有账号? 忘记密码?