《C程序设计 软件工程环境》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)佛罗赞(Forouzan.B.A.),(美)吉尔伯格(Gilberg,R.F)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:7111237692
  • 页数:712 页
图书介绍:本书全面介绍了计算机科学理论和C程序设计语言,解释了基本的程序设计概念。

第1章 计算机导论 1

计算机系统 1

计算机硬件 1

计算机软件 2

计算环境 3

个人计算环境 3

分时环境 3

客户机/服务器环境 4

分布式计算 4

计算机语言 4

机器语言 4

符号语言 5

高级语言 6

创建和运行程序 6

编写和编辑程序 7

编译程序 7

连接程序 7

执行程序 8

系统开发 8

系统开发生命周期 8

程序开发 9

软件工程 13

要点和常见错误 14

关键术语 14

习题 15

复习题 15

练习 16

问题 16

第2章 C语言介绍 17

背景 17

C程序 18

C语言程序结构 18

第一个C语言程序 19

注释 20

问候程序 21

标识符 21

类型 22

void类型 23

整型数据 23

浮点型 24

类型小结 25

变量 25

变量声明 25

变量初始化 26

常量 28

常量表示 28

代码常量 30

输入/输出 32

流 32

输入/输出格式 32

程序示例 41

软件工程 47

程序文档 47

数据命名 48

数据隐藏 49

要点和常见错误 49

关键术语 50

习题 51

复习题 51

练习 52

问题 54

项目 54

第3章 C程序结构 56

表达式 56

基本表达式 57

后缀表达式 57

前缀表达式 58

单目表达式 59

二目表达式 60

优先级和结合性 64

优先级 64

结合性 65

副作用 66

表达式求值 66

不带副作用的表达式 66

带副作用的表达式 67

警告 68

类型转换 68

隐式类型转换 68

显式类型转换 71

语句 73

语句类型 73

分号的作用 75

语句和预定义常量 75

示例程序 75

软件工程 83

保持简短 83

括号 83

用户交流 83

要点和常见错误 84

关键术语 85

习题 85

复习题 85

练习 86

问题 87

项目 88

第4章 函数 90

结构化程序设计 90

C语言函数 91

用户自定义函数 94

基本函数设计 94

函数定义 98

函数声明 100

函数调用 100

函数示例 101

函数间通信 107

基本概念 107

C语言实现 108

标准函数 114

数学函数 115

随机数 117

作用域 122

全局作用域 123

局部作用域 123

编程举例——增量式开发 123

首次增量:main和getData 124

第二步增量:add 125

最终增量:打印结果 126

软件工程 127

结构图 127

结构图的规则和符号 128

函数聚合 130

自顶向下开发 131

要点和常见错误 132

关键术语 133

习题 133

复习题 133

练习 135

问题 138

项目 138

第5章 选择——作出决定 141

逻辑数据和运算符 141

C中的逻辑数据 141

逻辑操作符 142

计算逻辑表达式 142

比较运算符 144

两路选择 145

if.else 145

else空语句 146

嵌套的if语句 148

悬空的else问题 149

简化if语句 150

条件表达式 150

两路选择的例子 151

多路选择 156

switch语句 156

else-if 160

更多的标准函数 162

标准字符函数 162

分类程序 164

处理主要错误 164

增量式开发Ⅱ 165

计算器设计 165

计算器增量设计 165

软件工程 173

依赖语句 173

负逻辑 174

选择语句的规则 174

选择语句结构图 175

要点和常见错误 175

关键术语 176

习题 177

复习题 177

练习 178

程序 180

项目 181

第6章 循环 186

循环的概念 186

先判断和后判断循环 186

初始化和更新 187

循环初始化 187

循环更新 188

事件与计数器循环控制 188

事件控制循环 188

计数器控制循环 189

循环对照 189

C中的循环 189

while循环 189

for循环 193

do.while循环 196

逗号表达式 198

循环示例 200

循环相关的其他语句 209

循环的应用 211

求和 212

幂运算 212

最大和最小 213

查询 214

递归 217

迭代定义 217

递归定义 217

迭代解法 217

递归解法 218

设计递归函数 218

斐波那契数 220

递归的局限性 222

汉诺塔问题 222

汉诺塔的递归解法 223

程序设计例子——计算器 225

软件工程 227

结构图中的循环 227

测定算法效率 228

线性循环 228

对数循环 229

嵌套循环 230

大O表示法 231

标准效率尺度 231

要点和常见错误 232

关键术语 233

习题 233

复习题 233

练习 234

问题 238

项目 240

第7章 文本输入/输出 244

文件 244

文件名 245

文件信息表 245

流 245

文本流和二进制流 245

流-文件处理 245

系统创建的流 246

标准输入/输出函数 246

格式化输入/输出函数 250

流指针 250

格式控制字符串 251

输入格式(scanf与fscanf) 252

输出格式(printf和fprintf) 259

文件示例程序 264

字符输入/输出函数 270

终端字符I/O 270

终端和文件字符I/O 271

字符输入/输出示例 272

软件工程 276

测试文件 276

数据术语 278

要点和常见错误 279

关键术语 280

习题 280

复习题 280

练习 282

问题 283

项目 284

第8章 数组 286

基本概念 286

在C语言中使用数组 288

数组声明和定义 289

访问数组元素 289

数组存储 289

数组引用优先级 293

索引边界检测 293

函数间交互 295

传递单个元素 296

传递整个数组 296

数组应用 301

频率数组 301

直方图 302

随机数排列 305

排序 308

选择排序 308

冒泡排序 310

插入排序 312

排序算法测试 314

排序算法比较 314

排序小结 315

查找 315

顺序查找 316

折半查找 318

二维数组 321

声明 321

传递二维数组 325

多维数组 327

编程示例——计算平均数 329

第一步增量:main 330

第二步增量:获取数据 330

第三步增量:计算行平均数 331

第四步增量:计算列平均数 333

第五步增量:输出表 333

软件工程 335

排序测试 335

查找测试 336

排序算法分析 336

查找算法分析 338

要点和常见错误 339

关键术语 339

习题 340

复习题 340

练习 341

问题 343

项目 345

第9章 指针 350

引言 350

指针常量 350

指针值 351

指针变量 352

通过指针访问变量 353

指针声明和定义 354

声明与重定向 355

初始化指针变量 355

程序间指针交互 360

传递地址 360

返回指针的函数 361

指向指针的指针 362

兼容性 364

指针大小兼容 364

间接引用类型兼容 365

间接引用的层次兼容 366

左值和右值 367

软件工程 373

质量定义 373

质量因素 374

质量周期 376

软件工程小结 377

要点和常见错误 377

关键术语 378

习题 378

复习题 378

练习 379

问题 382

项目 382

第10章 指针应用 384

数组和指针 384

指针运算和数组 386

指针和一维数组 386

指针算术运算 388

指针运算的使用 388

指针和二维数组 390

将数组传递给函数 391

存储分配函数 394

存储器使用 394

静态存储分配 395

动态存储分配 395

存储分配函数 395

存储再分配(realloc) 397

释放存储(free) 397

指针数组 398

编程应用 398

重返选择排序 398

动态数组 402

软件工程 406

指针和函数调用 406

指针和数组 407

数组索引可交换性 407

动态存储:理论与实践 407

要点和常见错误 408

关键术语 409

习题 409

复习题 409

练习 410

问题 414

项目 415

第11章 字符串 418

字符串的概念 418

定长字符串 418

可变长字符串 419

C语言字符串 419

字符串存储 419

字符串分隔符 420

字符串字面量 420

字符串和字符 420

声明字符串 421

初始化字符串 422

字符串与赋值操作符 422

读写字符串 423

字符串输入/输出函数 423

格式化的字符串输入/输出 423

字符串输入/输出 429

示例 431

字符串数组 434

字符串操作函数 435

字符串长度 435

字符串拷贝 436

字符串的比较 440

字符串连接 442

字符串中的字符 443

在字符串中寻找子串 443

寻找字符集中的字符 444

字符串搜索——指针 444

字符串标志 444

将字符串转换为数字 445

字符串例子 447

字符串/数据转换 451

字符串到数据的转换 451

数据到字符串的转换 452

一个编程实例——Morse编码 455

软件工程 462

程序设计概念 462

信息隐藏 462

内聚性 463

软件工程小结 465

要点和常见错误 465

关键术语 466

习题 466

复习题 466

练习 467

问题 469

项目 470

第12章 枚举、结构及联合类型 472

类型定义 472

枚举类型 473

声明枚举类型 473

枚举类型的操作 473

枚举类型的转化 474

初始化枚举常量 475

匿名枚举类型:常量 475

输入和输出操作 476

结构 477

声明结构类型 477

初始化 478

访问结构 479

结构类型操作 481

复杂结构 485

结构与函数 492

传递整个结构 492

以指针的方式传递结构 495

联合 497

引用联合 497

初始化 497

联合和结构 498

Internet地址 501

编程实践 502

软件工程 510

耦合 510

数据隐藏 512

软件工程小结 512

要点和常见错误 513

关键术语 514

习题 514

复习 514

练习 515

问题 517

项目 519

第13章 二进制输入/输出 521

文本流与二进制流 521

文本文件和二进制文件 521

文本文件与二进制文件的不同 522

文件的状态 523

打开二进制文件 524

关闭二进制文件 525

文件的标准库函数 525

块输入/输出函数 525

文件状态函数 528

定位函数 529

系统文件操作 534

转换文件类型 535

由一个文本文件创建二进制文件 535

由一个二进制文件创建文本文件 538

文件编程示例 541

软件工程 547

文件更新 547

顺序文件更新 548

更新程序设计 548

错误更新 549

结构图表更新 550

更新逻辑 550

软件工程小结 551

要点和常见错误 551

关键术语 552

习题 553

复习题 553

练习 554

问题 558

项目 558

第14章 位运算符 561

确定大小的整数类型 561

逻辑位运算符 561

按位与运算符 562

按位或运算符 562

按位异或运算符 563

按位取反运算符 564

移位运算符 566

右移位运算符 566

除2运算 568

左移位运算符 568

乘2运算 569

旋转 569

掩码 571

创建掩码 571

掩码的使用 572

软件工程 578

工资单案例研究 578

程序设计步骤 579

设计结构图 579

要点和常见错误 583

关键术语 583

习题 584

复习题 584

练习 584

问题 586

项目 586

第15章 列表 589

列表的实现 589

数组实现 589

链表实现 589

一般线性表 591

插入节点 591

删除节点 594

定位线性表中的数据 596

遍历线性表 598

构建线性表 600

构建列表 600

删除节点 601

线性表测试驱动程序 602

栈 604

栈结构 605

栈算法 606

栈示例 608

队列 610

队列操作 611

队列的链表实现 611

队列函数 611

队列示例 614

树 616

树的基本概念 617

术语 617

二叉树 618

二叉查找树 622

二叉查找树示例 624

图 626

软件工程 629

原子数据和复合数据 629

数据结构 630

抽象数据类型 630

抽象数据类型模型 631

ADT数据结构 632

要点和常见错误 632

关键术语 633

习题 633

复习题 633

练习 634

问题 637

项目 638

附录A 字符集 639

附录B 关键字 646

附录C 流程图 647

附录D 计数系统 654

附录E 整数和浮点数库 667

附录F 函数库 669

附录G 预处理器命令 677

附录H 命令行参数 689

附录I void指针和函数指针 691

附录J 存储类和类型限定词 696

附录K 程序开发 704

附录L 理解复杂声明 711