《C++程序设计教程详解 过程化编程》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:钱能著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302358657
  • 页数:637 页
图书介绍:过程化编程共分9章三个部分,以C++问题分析求解展开,阐述程序设计的初级方法。书中经常比照C语言,对C++饮水思源,介绍C++的改进缘由和特征,以使读者不致因C++的优越感而迷失。书中始终围绕内部特性与抽象编程两条主线,以使读者学到更深刻的问题求解技巧和程序组织要诀。内部特性在于体现C++的编程技巧性特征,抽象编程在于充分发挥C++灵活的编程方法和技术。

第一部分 初涉编程 3

第1章 编程认识 3

1.1编程语言 3

1.1.1语言与编程 3

1.1.2程序翻译 5

1.1.3语言影响编程 7

1.2操作与环境 9

1.2.1文件种类 9

1.2.2操作流程 10

1.2.3控制台编程 11

1.2.4 C++++环境 12

1.3从最小程序切入 13

1.3.1带输出的最小程序 13

1.3.2程序解释 13

1.3.3比照C程序 15

1.3.4实现与实践 16

1.4语句编排 16

1.4.1程序构成要素 16

1.4.2变量与处理 20

1.4.3空格与注释 23

1.4.4编排技巧 24

1.4.5正确性问题 29

1.5重复执行问题 31

1.5.1重复与循环 31

1.5.2简单循环控制 32

1.5.3重复执行语句集合 36

1.6规范问题描述 37

1.6.1问题求解中的循环控制 37

1.6.2问题求解模式 38

1.6.3循环输出字符矩形 39

1.6.4循环输出 41

1.7目的归纳 41

1.7.1编程语言 41

1.7.2操作与环境 42

1.7.3从最小程序切入 42

1.7.4语句编排 42

1.7.5重复输出问题 42

1.7.6规范问题描述 43

1.8练习 43

A.一个@字符矩形(1163) 43

B.一个#字符正方形(1164) 44

C.一个字符三角形(1165) 44

D.正方形面积(1167) 45

E.A-B(1166) 45

第2章 过程控制 46

2.1简单for循环 46

2.1.1 for循环结构 46

2.1.2次数控制方式 49

2.1.3输入控制方式 51

2.2分支语句 53

2.2.1 if语句 53

2.2.2 switch语句 57

2.2.3 if与switch 61

2.3循环语句 67

2.3.1 for循环嵌套 67

2.3.2 while循环 71

2.3.3 for与while 77

2.3.4 do-while循环 82

2.4转移语句 90

2.4.1 break语句 90

2.4.2 continue语句 94

2.4.3 goto语句 97

2.5初涉函数 100

2.5.1函数使用三部曲 100

2.5.2分类与表达 104

2.6输入/输出初步 106

2.6.1标准输入/输出 106

2.6.2输入流 108

2.6.3输出流控制 108

2.6.4 printf格式控制 113

2.6.5 scanf格式控制 119

2.7目的归纳 122

2.7.1简单for循环 122

2.7.2分支语句 122

2.7.3循环语句 122

2.7.4转移语句 123

2.7.5初涉函数 123

2.7.6输入/输出 123

2.7.7归纳 123

2.8练习 124

A.字母三角形(1138) 124

B.字符菱形(1169) 125

C.背靠背字符三角形(1170) 125

D.交替字符倒三角形(1171) 126

E.格式阵列一(1172) 127

F.格式阵列二(1173) 127

第3章 数据类型 129

3.1整型 129

3.1.1内部表示原理 130

3.1.2整型长度与范围 133

3.1.3整型数 136

3.1.4整型操作 138

3.1.5整数问题 140

3.2整型子类 145

3.2.1字符型 145

3.2.2枚举型 150

3.2.3布尔型 152

3.3浮点型 153

3.3.1浮点型数 153

3.3.2十进制小数 158

3.3.3 32位浮点数 160

3.3.4三种浮点型 167

3.3.5浮点数问题 170

3.4 C字串 174

3.4.1 C串表示 174

3.4.2 C串操作 178

3.5 string字串 186

3.5.1 string串 186

3.5.2 string流 194

3.6输入方式 199

3.6.1基本输入 199

3.6.2文件输入 200

3.6.3控制台输入 203

3.6.4标准键盘输入 204

3.6.5读入行 205

3.6.6读入字符 207

3.7目的归纳 208

3.7.1整型数 209

3.7.2浮点型 209

3.7.3 C串 209

3.7.4 string 210

3.7.5输入方式 210

3.8练习 210

A.l!到n!的和(1174) 210

B.等比数列(1175) 211

C.平均数(1179) 211

D.级数求和(1180) 211

E.整数内码(1183) 212

F.算菜价(1700) 212

G.去掉双斜杠注释(1216) 213

第二部分 拓展技巧 217

第4章 数组与结构 217

4.1一维数组 217

4.1.1定义与初始化 217

4.1.2空间与元素 221

4.1.3数组意义 223

4.2一维数组应用 225

4.2.1可用数组解决 225

4.2.2用数组更高效 232

4.2.3通常用数组解决 237

4.3多维数组 243

4.3.1定义与初始化 243

4.3.2多维数组应用 246

4.4结构 252

4.4.1结构概念 252

4.4.2结构定义 253

4.4.3结构操作 254

4.5结构数组 258

4.5.1定义与使用 258

4.5.2结构数组应用 262

4.6目的归纳 273

4.6.1一维数组 273

4.6.2一维数组应用 273

4.6.3多维数组 273

4.6.4结构 274

4.6.5结构数组 274

4.7练习 274

A.“顺”序列(1198) 274

B.数星星(1008) 275

C.组合数(1086) 275

D.折纸游戏(1087) 276

E.倒杨辉三角形(1197) 277

F.文件名排序(1383) 277

G.最少拦截系统(1099) 278

第5章 文法及表达 279

5.1文法浅释 279

5.1.1文法概述 279

5.1.2文法描述 283

5.1.3文法约束 288

5.2词法理解 289

5.2.1词法 289

5.2.2标识符 289

5.2.3关键字 291

5.2.4字面值 292

5.2.5操作符 295

5.3实体与类型 297

5.3.1实体属性 297

5.3.2实体类型 298

5.3.3常量 301

5.3.4左值和右值 303

5.4数值类型转换 304

5.4.1隐式转换 304

5.4.2显式转换 306

5.5表达式 308

5.5.1概念 308

5.5.2赋值表达式 309

5.5.3关系表达式 311

5.5.4逻辑表达式 314

5.5.5选择表达式 316

5.5.6逗号表达式 317

5.6位逻辑 319

5.6.1位操作 319

5.6.2整除判断问题 321

5.6.3人员选派问题 324

5.7表达式的副作用 329

5.7.1操作数求值顺序 329

5.7.2编译器相关 331

5.7.3副作用现象 331

5.7.4消除副作用 332

5.7.5追根溯源 333

5.8目的归纳 334

5.8.1文法浅释 334

5.8.2词法理解 334

5.8.3实体与类型 334

5.8.4类型转换 335

5.8.5表达式 335

5.8.6位逻辑 335

5.8.7表达式副作用 335

5.9练习 336

A.三位对称素数(1181) 336

B.十-二进制转换(1185) 336

C.斐波那契数的余数(1090) 337

D.五位以内对称素数(1187) 337

E.统计天数(1188) 338

F.整除3、 5、 7(1184) 338

第6章 数据指针 340

6.1指针本质 340

6.1.1原始概念 340

6.1.2内存地址 341

6.1.3定义与性质 342

6.1.4间接访问 346

6.1.5类型转换 350

6.2指针限定 353

6.2.1实体与名字对应 353

6.2.2限定指针 354

6.3数组的指针性 359

6.3.1数组实体 359

6.3.2访问元素 365

6.3.3指针与数组的差别 369

6.4数组类型蜕变 372

6.4.1数组传递 372

6.4.2数组传递实例 376

6.5动态内存 379

6.5.1概念 379

6.5.2申请与释放 381

6.5.3堆空间管理 388

6.5.4内存泄漏与溢出 390

6.6指针与结构 394

6.6.1结构指针 394

6.6.2链结构 398

6.6.3链表操作 403

6.7目的归纳 413

6.7.1指针本质 413

6.7.2指针限定 413

6.7.3数组的指针性 414

6.7.4数组类型蜕变 414

6.7.5动态内存 414

6.7.6指针与结构 415

6.8练习 415

A.浮点数位码(1193) 415

B.半数跳海(1080) 416

C.歌词字数排序 417

D.仿内存管理 418

E.机器人排序 419

第三部分 组织程序 423

第7章 函数初步 423

7.1函数参数 423

7.1.1参数概念 423

7.1.2参数传递 425

7.1.3类型匹配 428

7.1.4参数默认 429

7.2指针参数 433

7.2.1指针参数的作用 433

7.2.2传递安全性 436

7.2.3指针参数的作用 437

7.3引用参数 438

7.3.1引用 438

7.3.2引用匹配 441

7.3.3引用本质 443

7.4函数返回 447

7.4.1函数的返回 447

7.4.2返回指针 449

7.4.3返回引用 452

7.5函数重载 455

7.5.1重载概述 455

7.5.2重载识别 458

7.5.3重载技术 461

7.5.4重载抑或参数默认 462

7.6函数指针 465

7.6.1函数类型 465

7.6.2指向函数的指针 467

7.6.3作为参数 470

7.6.4类型名 474

7.6.5函数指针数组 477

7.6.6函数类型蜕化 478

7.6.7函数指针意义 480

7.7目的归纳 481

7.7.1函数参数 481

7.7.2指针参数 481

7.7.3引用参数 481

7.7.4函数返回 481

7.7.5函数重载 482

7.7.6函数指针 482

7.8练习 482

A.对称素数(1194) 482

B.n!的位数(1215) 483

C.12!配对(1191) 483

D.大数和(1222) 483

E.大数乘(1225) 484

F.排列对称串(1218) 484

第8章 函数进阶 486

8.1函数栈 486

8.1.1运行内存布局 486

8.1.2栈机制 490

8.1.3栈区演绎 494

8.2函数驱动问题 498

8.2.1函数驱动说明 498

8.2.2驱动的制约因素 499

8.2.3栈中腾挪问题 499

8.3 main函数 501

8.3.1命令驱动 501

8.3.2 main参数 503

8.3.3 main返回 508

8.4递归原理 510

8.4.1递归概念 510

8.4.2递归函数设计要领 512

8.4.3消去递归 515

8.5函数设计 518

8.5.1一般设计原则 518

8.5.2函数模块理论 526

8.6语言设计 530

8.6.1函数黑盒性 530

8.6.2折中设计 533

8.6.3函数副作用 535

8.7目的归纳 538

8.7.1函数栈 538

8.7.2函数驱动 538

8.7.3 main函数 539

8.7.4递归函数 539

8.7.5函数设计 539

8.7.6语言设计 540

8.8练习 540

A.最大公约数(1177) 540

B.密钥加密(1195) 540

C.斐波那契数(1219) 541

D.整数模(1227) 542

E.最近的两点(1223) 542

F.整数的因子数(1192) 543

第9章 程序构造 545

9.1程序概述 545

9.1.1静态描述 545

9.1.2动态描述 551

9.2程序组织 554

9.2.1逻辑设计 554

9.2.2代码组织 556

9.2.3数据布局 563

9.3设计实例 567

9.3.1 Josephus问题 567

9.3.2再析Josephus问题 576

9.4名字时效 584

9.4.1作用域 584

9.4.2生命期 595

9.4.3名空间 597

9.5编译实现 605

9.5.1编译指令 605

9.5.2编译链接 613

9.5.3编译错误 617

9.6目的归纳 629

9.6.1程序概述 629

9.6.2程序组织 629

9.6.3设计实例 630

9.6.4名字时效 630

9.6.5编译实现 630

9.7练习 630

A.大数四则运算 630

B.小计算器 631

参考文献 636