C语言入门经典(第5版)  内容简介:

C语言是每一位程序员都应该掌握的基础语言。C语言是微软.NET编程中使用的C#语言的基础;C语言是iPhone、iPad和其他苹果设备编程中使用的Objective-C语言的基础;C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础。C语言也是Linux操作系统及其很多功能的基础。学习C语言可以给编程职业生涯提供牢固的基础,也有助于更好地理解更为现代的语言(如Java)。

《C语言入门经典(第5版)》主要介绍最基础的计算机语言之一——C语言。

《C语言入门经典(第5版)》从最基础的内容开始,步步深入讲解作为一位称职的C语言程序员应该具备的知识和技能。

主要内容

◆ 阐述C语言的核心特征,例如循环和分支

◆ 如何使用指针和指令动态管理内存

◆ 如何使用头文件和函数模块化代码

◆ 程序如何通过键盘、显示器和数据文件读写数据

◆ 如何通过预处理命令在编译时优化代码

◆ 如何使用结构有效地管理输入数据

《C语言入门经典(第5版)》完整地介绍了一个C应用程序的开发过程,这样你在阅读过程中可以结合实际的应用场景提高编程技能。书中的样例提供了实验的基础,可以通过修改其中的部分代码来对比前后程序运行的结果。后面的练习题用来测试对新知识、新技能的掌握情况,如果需要练习题答案,可以网上下载。

阅读完本书,你应该有能力和信心开发自己的C应用程序,并且具备在大型项目中应用C语言思想的技能。第5版详细介绍了C语言的最新国际标准,并且修订涵盖了语言编译器新支持的C11功能。

C语言入门经典(第5版) 目录:

第1章 C语言编程        1

1.1 C语言        1

1.2 标准库        2

1.3 学习C        2

1.4 创建C程序        2

1.4.1 编辑        2

1.4.2 编译        3

1.4.3 链接        4

1.4.4 执行        4

1.5 创建第一个程序        5

1.6 编辑第一个程序        5

1.7 处理错误        6

1.8 剖析一个简单的程序        7

1.8.1 注释        7

1.8.2 预处理指令        8

1.8.3 定义main()函数        9

1.8.4 关键字        10

1.8.5 函数体        10

1.8.6 输出信息        11

1.8.7 参数        11

1.8.8 控制符        11

1.8.9 三字母序列        13

1.9 预处理器        14

1.10 用C语言开发程序        14

1.10.1 了解问题        14

1.10.2 详细设计        15

1.10.3 实施        15

1.10.4 测试        15

1.11 函数及模块化编程        16

1.12 常见错误        19

1.13 要点        19

1.14 小结        20

1.15 习题        20

第2章 编程初步        21

2.1 计算机的内存        21

2.2 什么是变量        23

2.3 存储整数的变量        24

2.3.1 变量的使用        28

2.3.2 变量的初始化        29

2.4 变量与内存        36

2.4.1 带符号的整数类型        36

2.4.2 无符号的整数类型        37

2.4.3 指定整数常量        37

2.5 使用浮点数        39

2.6 浮点数变量        41

2.6.1 使用浮点数完成除法运算        42

2.6.2 控制输出中的小数位数        43

2.6.3 控制输出的字段宽度        43

2.7 较复杂的表达式        44

2.8 定义命名常量        46

2.8.1 极限值        49

2.8.2 sizeof运算符        51

2.9 选择正确的类型        52

2.10 强制类型转换        55

2.10.1 自动转换类型        56

2.10.2 隐式类型转换的规则        56

2.10.3 赋值语句中的隐式类型转换        57

2.11 再谈数值数据类型        58

2.11.1 字符类型        58

2.11.2 字符的输入输出        59

2.11.3 枚举        62

2.11.4 存储布尔值的变量        64

2.12 赋值操作的op=形式        65

2.13 数学函数        66

2.14 设计一个程序        67

2.14.1 问题        68

2.14.2 分析        68

2.14.3 解决方案        70

2.15 小结        73

2.16 练习        74

第3章 条件判断        75

3.1 判断过程        75

3.1.1 算术比较        75

3.1.2 基本的if语句        76

3.1.3 扩展if语句:if-else        79

3.1.4 在if语句中使用代码块        82

3.1.5 嵌套的if语句        83

3.1.6 测试字符        85

3.1.7 逻辑运算符        88

3.1.8 条件运算符        91

3.1.9 运算符的优先级        94

3.2 多项选择问题        98

3.2.1 给多项选择使用else-if语句        98

3.2.2 switch语句        99

3.2.3 goto语句        107

3.3 按位运算符        108

3.3.1 按位运算符的op=用法        110

3.3.2 使用按位运算符        111

3.4 设计程序        114

3.4.1 问题        114

3.4.2 分析        114

3.4.3 解决方案        114

3.5 小结        118

3.6 练习        118

第4章 循环        119

4.1 循环        119

4.2 递增和递减运算符        120

4.3 for循环        120

4.4 for循环的一般语法        124

4.5 再谈递增和递减运算符        125

4.5.1 递增运算符        125

4.5.2 递增运算符的前置和后置形式        125

4.5.3 递减运算符        126

4.6 再论for循环        127

4.6.1 修改for循环变量        129

4.6.2 没有参数的for循环        129

4.6.3 循环内的break语句        130

4.6.4 使用for循环限制输入        132

4.6.5 生成伪随机整数        135

4.6.6 再谈循环控制选项        137

4.6.7 浮点类型的循环控制变量        137

4.7 while循环        138

4.8 嵌套循环        140

4.9 嵌套循环和goto语句        146

4.10 do-while循环        147

4.11 continue语句        149

4.12 设计程序        150

4.12.1 问题        150

4.12.2 分析        150

4.12.3 解决方案        151

4.13 小结        162

4.14 习题        163

第5章 数组        165

5.1 数组简介        165

5.1.1 不用数组的程序        165

5.1.2 什么是数组        167

5.1.3 使用数组        168

5.2 寻址运算符        171

5.3 数组和地址        173

5.4 数组的初始化        174

5.5 确定数组的大小        175

5.6 多维数组        176

5.7 多维数组的初始化        178

5.8 变长数组        184

5.9 设计一个程序        186

5.9.1 问题        186

5.9.2 分析        186

5.9.3 解决方案        187

5.10 小结        193

5.11 习题        193

第6章 字符串和文本的应用        195

6.1 什么是字符串        195

6.2 存储字符串的变量        197

6.3 字符串操作        202

6.3.1 检查对C11的支持        202

6.3.2 确定字符串的长度        203

6.3.3 复制字符串        204

6.3.4 连接字符串        204

6.3.5 比较字符串        208

6.3.6 搜索字符串        211

6.3.7 单元化字符串        215

6.3.8 将换行符读入字符串        219

6.4 分析和转换字符串        221

6.4.1 转换字符的大小写形式        223

6.4.2 将字符串转换成数值        225

6.5 设计一个程序        227

6.5.1 问题        227

6.5.2 分析        227

6.5.3 解决方案        228

6.6 小结        233

6.7 习题        233

第7章 指针        235

7.1 指针初探        235

7.1.1 声明指针        236

7.1.2 通过指针访问值        237

7.1.3 使用指针        240

7.1.4 指向常量的指针        244

7.1.5 常量指针        244

7.1.6 指针的命名        245

7.2 数组和指针        245

7.3 多维数组        248

7.3.1 多维数组和指针        252

7.3.2 访问数组元素        253

7.4 内存的使用        256

7.4.1 动态内存分配:malloc()函数        256

7.4.2 释放动态分配的内存        257

7.4.3 用calloc()函数分配内存        261

7.4.4 扩展动态分配的内存        262

7.5 使用指针处理字符串        265

7.5.1 使用指针数组        266

7.5.2 指针和数组记号        272

7.6 设计程序        276

7.6.1 问题        276

7.6.2 分析        277

7.6.3 解决方案        277

7.7 小结        284

7.8 习题        285

第8章 编程的结构        287

8.1 程序的结构        287

8.1.1 变量的作用域和生存期        288

8.1.2 变量的作用域和函数        291

8.2 函数        291

8.2.1 定义函数        291

8.2.2 return语句        294

8.3 按值传递机制        299

8.4 函数原型        300

8.5 指针用作参数和返回值        301

8.5.1 常量参数        302

8.5.2 返回指针的风险        307

8.6 小结        310

8.7 习题        310

第9章 函数再探        313

9.1 函数指针        313

9.1.1 声明函数指针        313

9.1.2 通过函数指针调用函数        314

9.1.3 函数指针的数组        316

9.1.4 作为变元的函数指针        319

9.2 函数中的变量        321

9.2.1 静态变量:函数内部的追踪        321

9.2.2 在函数之间共享变量        323

9.3 调用自己的函数:递归        325

9.4 变元个数可变的函数        328

9.4.1 复制va_list        331

9.4.2 长度可变的变元列表的基本规则        331

9.5 main()函数        332

9.6 结束程序        333

9.6.1 abort()函数        333

9.6.2 exit()和atexit()函数        333

9.6.3 _Exit()函数        334

9.6.4 quick_exit()和at_quick_exit()函数        334

9.7 提高性能        335

9.7.1 内联声明函数        335

9.7.2 使用restrict关键字        335

9.7.3 _Noreturn函数限定符        336

9.8 设计程序        336

9.8.1 问题        336

9.8.2 分析        337

9.8.3 解决方案        338

9.9 小结        351

9.10 习题        352

第10章 基本输入和输出操作        353

10.1 输入和输出流        353

10.2 标准流        354

10.3 键盘输入        354

10.3.1 格式化键盘输入        355

10.3.2 输入格式控制字符串        355

10.3.3 输入格式字符串中的字符        360

10.3.4 输入浮点数的各种变化        362

10.3.5 读取十六进制和八进制值        363

10.3.6 用scanf_s()读取字符        364

10.3.7 从键盘上输入字符串        366

10.3.8 单个字符的键盘输入        367

10.4 屏幕输出        372

10.4.1 使用printf_s()的格式化输出        372

10.4.2 转义序列        375

10.4.3 整数输出        375

10.4.4 输出浮点数        378

10.4.5 字符输出        379

10.5 其他输出函数        380

10.5.1 屏幕的非格式化输出        381

10.5.2 数组的格式化输出        381

10.5.3 数组的格式化输入        382

10.6 小结        382

10.7 习题        383

第11章 结构化数据        385

11.1 数据结构:使用struct        385

11.1.1 定义结构类型和结构变量        387

11.1.2 访问结构成员        388

11.1.3 未命名的结构        390

11.1.4 结构数组        391

11.1.5 表达式中的结构成员        393

11.1.6 结构指针        393

11.1.7 为结构动态分配内存        394

11.2 再探结构成员        397

11.2.1 将一个结构作为另一个结构的成员        397

11.2.2 声明结构中的结构        398

11.2.3 将结构指针用作结构成员        399

11.2.4 双向链表        403

11.2.5 结构中的位字段        406

11.3 结构与函数        407

11.3.1 结构作为函数的变元        407

11.3.2 结构指针作为函数变元        408

11.3.3 作为函数返回值的结构        409

11.3.4 二叉树        414

11.4 共享内存        421

11.5 设计程序        425

11.5.1 问题        425

11.5.2 分析        426

11.5.3 解决方案        426

11.6 小结        438

11.7 习题        438

第12章 处理文件        441

12.1 文件的概念        441

12.1.1 文件中的位置        442

12.1.2 文件流        442

12.2 文件访问        442

12.2.1 打开文件        443

12.2.2 缓存文件操作        445

12.2.3 文件重命名        446

12.2.4 关闭文件        447

12.2.5 删除文件        447

12.3 写入文本文件        448

12.4 读取文本文件        449

12.5 在文本文件中读写字符串        452

12.6 格式化文件的输入输出        456

12.6.1 格式化文件输出        456

12.6.2 格式化文件输入        457

12.7 错误处理        459

12.8 再探文本文件操作模式        460

12.9 freopen_s()函数        461

12.10 二进制文件的输入输出        462

12.10.1 以二进制模式打开文件        462

12.10.2 写入二进制文件        463

12.10.3 读取二进制文件        464

12.11 在文件中移动        469

12.11.1 文件定位操作        469

12.11.2 找出我们在文件中的位置        470

12.11.3 在文件中设定位置        471

12.12 使用临时文件        477

12.12.1 创建临时文件        477

12.12.2 创建唯一的文件名        478

12.13 更新二进制文件        479

12.13.1 修改文件的内容        484

12.13.2 从键盘输入创建记录        485

12.13.3 将记录写入文件        486

12.13.4 从文件中读取记录        486

12.13.5 写入文件        487

12.13.6 列出文件内容        488

12.13.7 更新已有的文件内容        489

12.14 文件打开模式小结        495

12.15 设计程序        496

12.15.1 问题        496

12.15.2 分析        496

12.15.3 解决方案        496

12.16 小结        501

12.17 习题        501

第13章 支持功能        503

13.1 预处理        503

13.1.1 在程序中包含头文件        503

13.1.2 定义自己的头文件        504

13.1.3 管理多个源文件        504

13.1.4 外部变量        505

13.1.5 静态函数        505

13.1.6 替换程序源代码        506

13.2 宏        507

13.2.1 看起来像函数的宏        507

13.2.2 字符串作为宏参数        509

13.2.3 在宏展开式中结合两个变元        510

13.3 多行上的预处理器指令        510

13.3.1 预处理器逻辑指令        511

13.3.2 条件编译        511

13.3.3 测试多个条件        512

13.3.4 取消定义的标识符        512

13.3.5 测试标识符的指定值的指令        512

13.3.6 多项选择        513

13.3.7 标准预处理宏        514

13.4 调试方法        515

13.4.1 集成的调试器        515

13.4.2 调试阶段的预处理器        515

13.4.3 断言        519

13.5 日期和时间函数        521

13.5.1 获取时间值        522

13.5.2 获取日期        525

13.5.3 确定某一天是星期几        529

13.6 小结        531

13.7 习题        531

第14章 高级专用主题        533

14.1 使用国际字符集        533

14.1.1 理解Unicode        533

14.1.2 设置区域        534

14.1.3 宽字符类型wchar_t        535

14.1.4 宽字符串的操作        537

14.1.5 宽字符的文件流操作        540

14.1.6 存储Unicode字符的固定大小类型        541

14.2 用于可移植性的专用整数类型        545

14.2.1 固定宽度的整型        545

14.2.2 最小宽度的整型        545

14.2.3 最大宽度的整型        546

14.3 复数类型        546

14.3.1 复数基础        546

14.3.2 复数类型和操作        547

14.4 用线程编程        550

14.4.1 创建线程        550

14.4.2 退出线程        551

14.4.3 把一个线程连接到另一个线程上        552

14.4.4 挂起线程        555

14.4.5 管理线程对数据的访问        555

14.5 小结        561

附录A 计算机中的数学知识        563

附录B ASCII字符代码定义        571

附录C C语言中的保留字        575

附录D 输入输出格式说明符        577

附录E 标准库头文件        583

c语言入门经典第五版自学,C语言入门经典(第5版) PDF扫描[103MB]相关推荐

  1. c4droid用c语言画爱心,【图片】[自学C语言第五天]发一个作品【c4droid吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //受CGL范例启发,写了一个纯C的自动弹球机,可以用来研究反射情况. //#include #include #define xx 33 #define ...

  2. 李丽娟c语言第四版教师书_来,把自学C语言经历的那些苦,都踩在脚下

    曾经,一口气买了一套各大语言的入门教程, 现在,我精通了各种语言的hello world: 曾经,心高气傲的以为能轻易编写程序或游戏, 现在,几道初级编程题就足以让我自闭: 曾经,觉得以自己的智商听老 ...

  3. 机器学习入门笔记(五):决策树

    文章目录 一.决策树模型与学习 1.1 决策树模型 1.2 决策树与 if-then 规则 1.3 决策树与条件概率分布 1.4 决策树的学习 二.特征选择 2.1 信息增益 2.2 例题:利用信息增 ...

  4. 自学C语言/C++到底难在哪里?

    一. 自学C语言,为什么又累又没效率? 自学C语言很久了,为什么还是感觉没多少进度?--很多人自学又累又没效率,是因为自学是非常不容易的事情. 首先,分享一个典型C程序所需要的知识图: 复杂.繁琐,是 ...

  5. 5个元素排序java,运用java语言,从键盘输入五个数,给这5个数从小到大排列

    运用java语言,从键盘输入五个数,给这5个数从小到大排列 mip版  关注:99  答案:1  悬赏:40 解决时间 2021-01-23 14:56 已解决 2021-01-23 02:02 运用 ...

  6. XML入门经典(第五版)

    2019独角兽企业重金招聘Python工程师标准>>> XML入门经典(第五版) 本书对全部内容进行了更新,涵盖了XML的最新技术,如XOuery.RSS.Atom.Aiax等.在讲 ...

  7. 【C语言】C语言从入门到精通|第1章 C语言概述—自学笔记

    前言 本篇是本人自学C语言过程进行编辑的文章笔记,如果对大家有用,点赞加收藏吧. 注:笔记基于<C语言从入门到精通(第3版)>明日科技编著,清华大学出版社出版的. 目录 一.C语言发展史 ...

  8. HTML5 CSS3编程入门经典 ((美)Rob Larsen) pdf扫描版

    HTML和CSS是构建网页所需要了解的两种核心编程语言,拉尔森编著的这本<HTML5&CSS3编程入门经典>详细介绍了这两种语言. <HTML5&CSS3编程入门经典 ...

  9. sql数据库教程百度云_绘画自学零基础入门教程|五天学会绘画pdf百度云下载!...

    绘画自学零基础入门教程|五天学会绘画pdf百度云下载!画画是可以让人留存记忆的事情.我自己就很喜欢画画来记录生活中一些特别的日子.场景还有我的家人朋友们.有时候,比照片更有故事感和纪念意义-有空拿出来 ...

最新文章

  1. R语言xgboost模型构建:基于prima糖尿病数据集
  2. o oia ospf 路由优先_动态路由OSPF中注入默认路由,原来都是这么玩的,进去看看...
  3. Oracle 好书 02 ( 安装oracle 10g软件及创建数据库 )
  4. CentOS 7配置LNMP开发环境及配置文件管理详解
  5. OTA江湖浪潮再起,世界邦的出境定制自由行之路难以亨通?
  6. python教程:getattr函数和hasattr函数的用法
  7. 在Airtest中如何使用无线模式控制手机
  8. python 爬虫工具 butter_GitHub - TheButterflyOdor/proxy_pool: Python爬虫代理IP池(proxy pool)
  9. BugkuCTF-MISC题blind_injection
  10. js parseInt()和Number()区别
  11. 如何同时配置GitHub和gitlab的SSH
  12. 简单的java图像裁减
  13. 无法连接到SQL SERVER数据库
  14. 北卡州立大学计算机科学硕士,北卡罗莱纳州立大学计算机科学专业研究生申请条件有哪些?...
  15. 1949-2017闰年 c语言,1949年到2017年里有多少个闰年,多少个平年
  16. teamview 局域网内使用
  17. C语言实现人民币小写转大写
  18. 余世维《有效沟通》听课笔记
  19. 如何解决Win11系统显示你的账户已被停用
  20. 要想走向比目前更为理想的境况

热门文章

  1. 2023.1.31 机械系统中应用的零部件
  2. java设计中期检查表_毕业实习中期检查表以附件形式上传
  3. 查找IT行业报告网站
  4. 单片微型计算机原理及应用实验报告,小学期单片机实验报告_相关文章专题_写写帮文库...
  5. 【语音识别】基于mfcc特征模板匹配算法实现声纹识别matlab源码含GUI
  6. 一步步带你用Java实现双向链表(超详细)
  7. android教程 kotlin,Kotlin for Android使用教程(一)
  8. 当RS485隔离遇见Freemodbus,你碰到问题了吗?
  9. clob在java里的类型_Java对Oracle中Clob类型数据的读取和写入(转)
  10. 怎么下载2.5维虚拟城市地图