当前位置:首页 > 工业技术
明明白白学通C语言  二维码版
明明白白学通C语言  二维码版

明明白白学通C语言 二维码版PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:唐峻,高旭光,李淳,唐小莉编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302395744
  • 页数:514 页
图书介绍:本书是一本不同于以往的C语言图书。主要针对针年轻的编程群体,本书以全新的模式来分析和讲解C语言,以期带给读者不同的编程学习体验。本书结合现在读者的生活习惯,将智能手机巧妙应用到C语言的学习中。因此读者可以随时随地的拿出手机,进行C语言的学习和编程训练。同时在练习上,本书遵循了记忆曲线,在各节适当的位置处安排了习题,因此读者可以快速科学的上手练习,从而以最少的时间掌握书中的各项内容。
《明明白白学通C语言 二维码版》目录
标签:编著 语言

第1篇 程序的基石——数据 2

第1章 C语言概述 2

1.0 写在最前面的——如何使用本书 2

1.1 语言 3

1.1.1 “语言”的定义 3

1.1.2 计算机语言发展历程 4

1.1.3 C语言 4

1.2 编程方法 5

1.2.1 数据处理示例 5

1.2.2 第一步:分析问题 5

1.2.3 第二步:设想实现方法 5

1.2.4 第三步:编写程序代码 6

1.3 开发环境 7

1.3.1 电脑上的开发环境 7

1.3.2 手机上的开发环境 10

1.4 编写第一个C语言的程序 10

1.4.1 在电脑上编写第一个程序 11

1.4.2 在手机上编写第一个程序 15

1.5 EGE——简易图形库 16

1.6 如何学习C语言 17

1.6.1 技巧一:多看、多想、多练习 17

1.6.2 技巧二:多沟通、多扩展视野 18

1.7 小结 19

第2章 数据的表示 20

2.1 计算机中的数据表示 20

2.1.1 二进制 20

2.1.2 整数 21

2.1.3 小数 22

2.1.4 文本 24

2.1.5 练习 26

2.2 程序中的数据表示 26

2.2.1 整数 26

2.2.2 小数 30

2.2.3 文本 31

2.2.4 练习 33

2.3 数据的分类——数据类型 34

2.3.1 整数类型 34

2.3.2 浮点类型 35

2.3.3 字符类型 37

2.4 小结 37

2.5 习题 37

第3章 指代数据 39

3.1 为什么要指代数据 39

3.1.1 变化的数据 39

3.1.2 未知的数据 40

3.2 指代的名称 40

3.2.1 名称的命名规范 40

3.2.2 不能使用的名称——关键字 41

3.3 让名称更有效——见名知意 41

3.3.1 不使用拼音命名 41

3.3.2 英文命名方式 42

3.4 指代数据需要考虑的问题 43

3.4.1 范围 43

3.4.2 精度 43

3.5 程序中的指代 44

3.5.1 从问题中找到需要指代的数据 44

3.5.2 如何在程序中指代 45

3.6 特殊的指代——不变的量 46

3.6.1 为什么要指代不变的量 46

3.6.2 常数 47

3.6.3 常量 47

3.7 小结 48

3.8 习题 48

第2篇 程序的本质——处理数据 52

第4章 运算符和表达式 52

4.1 关联变量和数据 52

4.1.1 引入“=” 52

4.1.2 变量的初始化 53

4.1.3 表达式 54

4.1.4 类型匹配 54

4.1.5 练习 57

4.2 运算符一览 57

4.3 算术运算符 58

4.3.1 概述 58

4.3.2 除法“/” 61

4.3.3 取余“%” 62

4.3.4 练习 64

4.4 复合运算符 64

4.4.1 概述 64

4.4.2 复合运算符出现的意义 65

4.4.3 优先级 65

4.4.4 练习 66

4.5 自增自减运算符 66

4.5.1 概述 66

4.5.2 自增自减运算符出现的意义 67

4.5.3 优先级 68

4.5.4 练习 69

4.6 小结 69

4.7 习题 69

第5章 语句 70

5.1 输入输出I/O 70

5.1.1 格式化输入scanf() 70

5.1.2 scanf()的使用说明 71

5.1.3 其他输入方式 76

5.1.4 格式化输出printf() 77

5.1.5 printf()的使用说明 79

5.1.6 其他输出方式 81

5.1.7 练习 83

5.2 常见语句 85

5.2.1 赋值语句 85

5.2.2 空语句 85

5.2.3 复合语句 86

5.3 变量的作用域 86

5.3.1 局部变量 87

5.3.2 全局变量 88

5.3.3 练习 89

5.4 语句执行顺序 89

5.4.1 代码手段 89

5.4.2 工具手段 91

5.4.3 流程图 93

5.5 小结 93

5.6 习题 94

第6章 选择结构 95

6.1 顺序执行遇到的麻烦 95

6.1.1 顺序执行的程序 95

6.1.2 无法顺序执行 96

6.1.3 设想解决方案 97

6.2 条件判断依据 97

6.3 构建单一条件 98

6.3.1 关系运算 98

6.3.2 左右操作数类型不一致 99

6.3.3 关系运算符优先级 100

6.3.4 练习 102

6.4 构建多个条件 102

6.4.1 逻辑运算 102

6.4.2 逻辑运算符优先级 104

6.4.3 短路的逻辑运算符 105

6.4.4 练习 106

6.5 构建选择路径之if 107

6.5.1 流程图 107

6.5.2 if结构 107

6.5.3 if-else结构 110

6.5.4 if嵌套结构 112

6.5.5 练习 121

6.6 构建选择路径之switch 122

6.6.1 switch结构 122

6.6.2 比较if结构和switch结构 127

6.6.3 练习 129

6.7 小结 130

6.8 习题 130

第7章 循环结构 132

7.1 重复执行的语句 132

7.1.1 什么是重复执行 132

7.1.2 执行2~3次 133

7.1.3 执行有限次 133

7.1.4 执行不确定次 134

7.2 for循环 135

7.2.1 概述 135

7.2.2 逗号表达式 136

7.2.3 循环执行相同的语句 137

7.2.4 循环执行类似的语句 139

7.2.5 练习 142

7.3 其他循环 144

7.3.1 while循环 144

7.3.2 do-while循环 146

7.3.3 不同循环机制间的比较 147

7.3.4 练习 150

7.4 跳出循环 152

7.4.1 continue语句 152

7.4.2 break语句 154

7.4.3 goto语句 157

7.4.4 练习 160

7.5 循环中的循环——嵌套 161

7.5.1 嵌套实例一 161

7.5.2 嵌套实例二 164

7.5.3 嵌套实例三 166

7.5.4 练习 167

7.6 小结 167

7.7 习题 168

第8章 函数 172

8.1 循环无法解决的重复 172

8.1.1 循环的经典应用和局限 172

8.1.2 循环结构无法解决的重复问题 173

8.1.3 练习 174

8.2 完全重复——无参函数 175

8.2.1 定义无参函数 175

8.2.2 函数的返回值 176

8.2.3 使用无参函数 176

8.2.4 返回值的类型转换 177

8.2.5 函数多return语句处理 179

8.2.6 声明无参函数 180

8.2.7 函数体中的变量 181

8.2.8 练习 183

8.3 不完全重复——有参函数 186

8.3.1 定义有参函数 186

8.3.2 声明有参函数 188

8.3.3 练习 190

8.4 函数体中有函数 192

8.4.1 调用其他函数——嵌套函数 192

8.4.2 调用函数本身——递归函数 195

8.4.3 练习 203

8.5 库函数 205

8.5.1 如何使用库函数 205

8.5.2 文件包含的扩展应用 206

8.5.3 两种包含方式的不同 207

8.5.4 分类 209

8.5.5 库函数应用示例——猜大小 210

8.5.6 练习 214

8.6 小结 215

8.7 习题 215

第3篇 处理大量数据 222

第9章 同类型数据的集合——数组 222

9.1 大量数据的处理 222

9.2 基本数组 223

9.2.1 定义数组 223

9.2.2 使用数组 225

9.2.3 初始化数组 225

9.2.4 为数组赋值 227

9.2.5 数组的简单应用 228

9.3 数组排序 232

9.3.1 冒泡排序 232

9.3.2 选择排序 235

9.3.3 练习 238

9.4 二维数组 240

9.4.1 二维数组的本质——嵌套的数组 240

9.4.2 定义二维数组 241

9.4.3 使用二维数组 242

9.4.4 初始化二维数组 242

9.4.5 特殊的初始化方式 243

9.4.6 为二维数组赋值 244

9.4.7 二维数组的应用 244

9.4.8 练习 246

9.5 多维数组 247

9.6 小结 249

9.7 习题 249

第10章 指针 252

10.1 指针及其使用 252

10.1.1 指针是什么 252

10.1.2 定义指针变量 252

10.1.3 为指针变量赋值 254

10.1.4 通过指针访问数据 255

10.1.5 使用scanf()给指针赋值 256

10.1.6 练习 257

10.2 处理所指向的数据 258

10.2.1 四则运算 258

10.2.2 自增自减运算 258

10.2.3 指向常量的指针 259

10.2.4 定义指针为常量 260

10.3 指向一维数组的指针 262

10.3.1 为指针赋数组数据的地址 262

10.3.2 使用数组名为指针赋值 263

10.3.3 指向数组的指针的加减运算 264

10.3.4 指向同一数组的指针 264

10.3.5 指向二维数组的指针 266

10.4 保存指针的数组 269

10.4.1 定义指针数组 269

10.4.2 二维数组的特性 270

10.4.3 练习 271

10.5 指针在函数中的应用 273

10.5.1 指针作为函数参数 274

10.5.2 指针作为函数返回值 276

10.5.3 指向函数的指针 278

10.5.4 练习 281

10.6 二级指针 284

10.6.1 概述 285

10.6.2 在二维数组中的应用 286

10.6.3 练习 287

10.7 小结 288

10.8 习题 288

第11章 结构 292

11.1 结构概述 292

11.1.1 为什么要有结构 292

11.1.2 结构的构造及其变量的赋值 294

11.1.3 使用typedef简化结构类型名 297

11.1.4 练习 298

11.2 结构的使用 300

11.2.1 结构与指针 300

11.2.2 结构与数组 303

11.2.3 结构与函数 305

11.2.4 练习 308

11.3 结构的应用——链表 311

11.3.1 结构的成员是指向本结构的指针 312

11.3.2 数组与链表 314

11.3.3 链表概述 316

11.3.4 创建动态链表 317

11.3.5 练习 324

11.4 链表操作 327

11.4.1 插入结点到链表 327

11.4.2 删除链表中的结点 336

11.4.3 链表操作综合应用 341

11.4.4 练习 349

11.5 小结 354

11.6 习题 354

第12章 联合与枚举 356

12.1 结构遇到的困扰 356

12.1.1 引起困惑的小示例 356

12.1.2 困惑什么 357

12.1.3 设想的解决方案 358

12.2 联合概述 358

12.2.1 构造联合类型 358

12.2.2 定义联合类型的变量 359

12.2.3 引用联合类型变量成员 360

12.2.4 联合类型变量的赋值 360

12.2.5 练习 361

12.3 联合类型变量的特殊性 361

12.3.1 通过示例来发现 362

12.3.2 数据去哪儿了 362

12.3.3 看似不相干的成员变量 362

12.3.4 总结:联合类型变量的特殊性 363

12.3.5 解决结构遇到的困惑 364

12.3.6 练习 368

12.4 联合类型变量的简单使用 369

12.4.1 使用于函数的联合类型变量 369

12.4.2 指向联合类型变量的指针 371

12.5 枚举 372

12.5.1 枚举概述 373

12.5.2 枚举类型的使用 375

12.5.3 枚举类型应用 378

12.5.4 练习 382

12.6 小结 382

12.7 习题 383

第13章 字符串 387

13.1 概述 387

13.1.1 了解字符串 387

13.1.2 字符串数据的存储 387

13.1.3 字符串的赋值 389

13.1.4 练习 390

13.2 字符串的输出和输入 391

13.2.1 字符串的输出 391

13.2.2 字符串的输入 392

13.2.3 练习 394

13.3 指向字符串的指针 396

13.3.1 指针操作 396

13.3.2 二维字符数组与字符指针数组 398

13.3.3 main()的参数 399

13.3.4 练习 404

13.4 常见的字符串操作 405

13.4.1 “赋值” 405

13.4.2 “加法” 406

13.4.3 修改 407

13.4.4 “比较” 408

13.4.5 其他操作 410

13.4.6 练习 415

13.5 小结 420

13.6 习题 420

第14章 文件 422

14.1 两个亟待解决的问题 422

14.1.1 不得不再次运行程序 422

14.1.2 不得不重新输入数据 423

14.2 文件概述 424

14.2.1 文件 424

14.2.2 存储为文件的数据形式 425

14.2.3 程序读写文件数据的过程 425

14.3 文件的打开和关闭 427

14.3.1 操作文件前的准备 427

14.3.2 打开文件 428

14.3.3 关闭文件 432

14.3.4 练习 433

14.4 文件读写操作 435

14.4.1 必备基础知识 435

14.4.2 写入数据 436

14.4.3 读取数据 442

14.4.4 解决问题一:避免再次运行程序 449

14.4.5 练习 450

14.5 辅助功能 452

14.5.1 位置指针重定位 452

14.5.2 检测文件操作状态 457

14.5.3 解决问题二:避免重新输入数据 460

14.5.4 练习 465

14.6 二进制文件的位操作 468

14.6.1 位操作需求 468

14.6.2 实现位操作的方法——位运算 470

14.6.3 位运算符的使用方法 471

14.6.4 位操作实现 478

14.6.5 练习 483

14.7 小结 485

14.8 习题 485

第15章 预编译 490

15.1 概述 490

15.1.1 预编译指令 490

15.1.2 练习 490

15.2 宏 491

15.2.1 为什么需要宏 491

15.2.2 不带参数的宏 492

15.2.3 带参数的宏 496

15.2.4 取消宏 499

15.2.5 标准宏对象 499

15.2.6 练习 500

15.3 条件编译 502

15.3.1 为什么需要条件编译 502

15.3.2 #if指令 503

15.3.3 #ifdef指令 504

15.3.4 #ifndef指令 505

15.3.5 练习 505

15.4 文件包含 506

15.4.1 概述 506

15.4.2 定义自己的库函数 507

15.4.3 总结 512

15.5 小结 512

15.6 习题 512

相关图书
作者其它书籍
返回顶部