图书目录

第1章计算机系统概述1

1.1计算工具的进步轨迹1

1.1.1算盘和算筹的贡献——软件与硬件的起源1

1.1.2提花机的启示与巴贝奇分析机——内程序计算机的发展轨迹4

1.1.3帕斯卡加法器——第一台内动力计算机7

1.1.4从八卦图到布尔代数——电子数字计算机的运算基础11

1.1.5电子数字计算机体系的确立19

1.20、1编码23

1.2.1数字系统中的信息单位与量级23

1.2.2十进制数与二进制数的转换24

1.2.3八进制、十六进制和二十进制25

1.2.4原码、反码、补码和移码26

1.2.5浮点数与定点数30

1.2.6声音的0、1编码31

1.2.7图形图像的0、1编码32

1.2.8文字的0、1编码35

1.2.9指令的0、1编码与计算机程序设计语言38

1.2.10数据传输中的差错检验40

1.3电子数字计算机工作原理简述43

1.3.1电子数字计算机的运算器43

1.3.2计算机存储器46

1.3.3计算机控制器工作原理简述49

1.3.4总线52

1.3.5计算机工作的时序控制52

1.4计算机系统的主要性能指标55

1.4.1机器字长55

1.4.2存储容量55

1.4.3运算速度55

1.4.4可靠性、可用性和RASIS特性58

1.4.5效能和环保性58

1.4.6计算机硬件的其他性能指标58

1.5操作系统与计算机系统结构59

1.5.1用操作系统实现计算机的自我管理59

1.5.2操作系统的功能60

1.5.3计算机从裸机走向虚拟机61

1.5.4现代计算机系统的模块结构62

1.5.5现代计算机系统的层次结构62

1.6计算机系统进展63

1.6.1Nathan软件第一定律64

1.6.2摩尔定律64

1.6.3冯·诺依曼体系结构的局限64

1.6.4基于冯·诺依曼体系的改进65

1.6.5另辟蹊径——非冯·诺依曼体系结构70

习题72

第2章存储系统75

2.1主存储器基本原理75

2.1.1ROM基本原理75

2.1.2SRAM基本原理77

2.1.3DRAM基本原理80

2.2主存储器结构83

2.2.1存储体的扩展方式83

2.2.2Bank84

2.2.3内存条及其基本组成86

2.2.4并行存储器88

2.2.5并行处理机的主存储器91

2.3DRAM内部操作与性能参数92

2.3.1SDRAM的主要引脚92

2.3.2SDRAM的读写时序93

2.3.3突发传输95

2.3.4数据掩码96

2.3.5DRAM的动态刷新97

2.3.6芯片初始化与预充电100

2.3.7存储器控制器102

2.3.8RAM的一般性能参数102

2.3.9DDR SDRAM与RDRAM105

2.4磁盘存储器106

2.4.1磁表面存储原理107

2.4.2硬磁盘存储器的存储结构109

2.4.3磁盘格式化110

2.4.4硬磁盘存储器与主机的连接113

2.4.5硬磁盘存储器的技术参数115

2.4.6磁盘阵列RAID117

2.5光盘存储器120

2.5.1光盘的技术特点与类型120

2.5.2可擦写型光盘读写原理121

2.5.3光盘规格122

2.6闪速存储器125

2.6.1闪存原理125

2.6.2固态硬盘126

2.7存储体系128

2.7.1多级存储体系的建立128

2.7.2多级存储体系的性能参数130

2.7.3cache—主存机制131

2.7.4虚拟存储器136

2.8未来存储元件139

2.8.1磁随机存取存储器139

2.8.2铁电随机存取存储器140

2.8.3相变随机存取存储器141

2.8.4阻变随机存取存储器141

习题142

第3章输入输出系统146

3.1I/O设备146

3.1.1I/O设备及其发展146

3.1.2键盘149

3.1.3打印设备152

3.1.4鼠标157

3.1.5显示器158

3.1.6触摸屏164

3.1.7虚拟现实设备165

3.2I/O接口167

3.2.1影响I/O设备与计算机连接的主要因素168

3.2.2缓冲169

3.2.3I/O接口及其逻辑171

3.2.4I/O端口172

3.2.5可编程并行接口8255A173

3.2.6可编程串行接口8251175

3.3I/O过程的程序直接控制176

3.3.1I/O过程的程序无条件传送控制方式176

3.3.2I/O过程的程序查询控制方式177

3.4I/O过程的程序中断控制178

3.4.1程序中断控制的核心概念178

3.4.2中断关键技术181

3.4.3中断接口185

3.4.4多重中断187

3.5I/O数据传送的DMA控制187

3.5.1DMA的基本概念187

3.5.2DMA与CPU共享存储器冲突的解决方案188

3.5.3DMA控制器190

3.5.4DMA传送过程191

3.5.5DMA与中断方式比较193

3.6I/O过程的通道控制193

3.6.1通道控制及其特点193

3.6.2通道控制原理195

3.6.3通道类型198

3.7I/O管理199

3.7.1设备驱动程序199

3.7.2ROM BIOS200

3.7.3I/O设备分配202

习题204

第4章总线与主板207

4.1总线的概念207

4.1.1总线及其规范207

4.1.2总线分类208

4.1.3总线的性能指标210

4.1.4标准总线212

4.2总线工作原理212

4.2.1总线的组成与基本传输过程212

4.2.2总线的争用与仲裁213

4.2.3总线通信中主从之间的时序控制216

4.3几种标准系统总线分析220

4.3.1ISA总线220

4.3.2PCI总线222

4.3.3AGP总线225

4.3.4PCIExpress总线226

4.4几种标准I/O总线分析228

4.4.1ATA与SATA总线 228

4.4.2SCSI与SAS总线230

4.4.3USB总线232

4.4.4光纤通道总线236

4.5微型计算机主板236

4.5.1主板的概念236

4.5.2主板的组成237

4.5.3主板分类242

4.5.4智慧型主板243

习题245

第5章控制器逻辑247

5.1处理器的外特性——指令系统247

5.1.1指令与指令系统247

5.1.2寻址方式250

5.1.3Intel 8086指令简介255

5.1.4RISC与CISC262

5.1.5指令系统的设计内容266

5.2组合逻辑控制器267

5.2.1指令的微操作分析267

5.2.2指令的时序控制与时序部件269

5.2.3组合逻辑控制器设计举例271

5.3微程序控制器274

5.3.1概述274

5.3.2微程序操作控制部件的组成274

5.3.3微程序操作控制部件设计举例275

习题278

第6章处理器架构281

6.1流水线技术281

6.1.1指令流水线281

6.1.2运算流水线283

6.1.3流水线中的相关冲突284

6.1.4流水线中的多发射技术286

6.1.5Pentium CPU288

6.1.6流水线向量处理机291

6.2多处理器系统295

6.2.1多计算机系统与多处理器系统295

6.2.2SMP架构296

6.2.3多处理器操作系统299

6.3多线程处理器300

6.3.1多线程处理器架构的提出300

6.3.2同时多线程技术302

6.3.3超线程处理器303

6.4多核处理器307

6.4.1多核处理器及其特点307

6.4.2多核+多线程——CMT技术308

6.5关于处理器并行性开发的讨论309

6.5.1并行性及其级别309

6.5.2基于并行性的处理器体系Flynn分类310

6.5.3处理器并行性开发的思路和途径312

习题314

第7章未来计算机展望316

7.1数据流计算机316

7.1.1从控制流驱动到数据流驱动316

7.1.2数据流程图及其操作规则317

7.1.3数据流计算机指令的组成与执行过程318

7.1.4静态数据流计算机与动态数据流计算机318

7.2归约机320

7.2.1需求驱动320

7.2.2FFP归约机结构321

7.2.3FFP工作过程321

7.3智能计算机322

7.3.1智能计算机及其性能特点322

7.3.2智能计算机的一般结构323

7.3.3智能计算机的解题过程325

7.4神经网络计算机325

7.4.1神经元与神经网络325

7.4.2人工神经网络327

7.4.3神经网络计算机的实现技术 329

7.5基于非电子器件的计算机展望330

7.5.1关于摩尔定律寿命的讨论330

7.5.2纳米电子器件331

7.5.3量子计算机333

7.5.4光学计算机335

7.5.5超导技术337

7.5.6生物计算机338

7.5习题340

附录A国内外常用二进制逻辑元件图形符号对照图341

参考文献343

1.1.1算盘和算筹的启示1

1.1.2从提花机到巴贝奇分析机——内程序计算机的发展轨迹4

1.1.3从帕斯卡加法器说起——内动力计算机的进步轨迹7

1.1.4从八卦图到布尔代数——数字计算机运算机制的形成轨迹11

1.1.5现代数字电子计算机体系结构的确立19

1.1.6操作系统——计算机的自我管理23

1.1.7计算机系统结构25

1.20、1编码27

1.2.1数字系统中的信息单位与量级27

1.2.2十进制数与二进制数的转换28

1.2.3八进制、十六进制和二十进制29

1.2.4机器数30

1.2.5声音的0、1编码35

1.2.6图形图像的0、1编码36

1.2.7文字的0、1编码39

1.2.8指令的0、1编码与计算机程序设计语言42

1.2.9数据传输中的差错检验44

1.3电子数字计算机工作原理简述47

1.3.1电子数字计算机的运算器47

1.3.2计算机存储器50

1.3.3计算机控制器工作原理简述53

1.3.4总线56

1.3.5计算机工作的时序控制56

1.4计算机系统的主要性能指标59

1.4.1机器字长59

1.4.2存储容量59

1.4.3运算速度60

1.4.4可靠性、可用性和RASIS特性61

1.4.5效能和环保性62

1.4.6计算机硬件的其他性能指标63

1.5计算机系统进展63

1.5.1Nathan软件第一定律64

1.5.2摩尔定律64

1.5.3诺依曼体系结构的局限64

1.5.4并行与共享——基于冯·诺依曼体系的改进65

1.5.5哈佛结构和拟态计算机69

1.5.6计算机虚拟化70

1.5.7另辟蹊径——非冯·诺依曼体系结构70

习题72

第2章存储系统76

2.1主存储器基本原理76

2.1.1ROM基本原理76

2.1.2SRAM基本原理78

2.1.3DRAM基本原理81

2.2主存储器结构84

2.2.1存储体的扩展方式84

2.2.2Bank85

2.2.3内存条及其基本组成87

2.2.4并行存储器89

2.3DRAM内部操作与性能参数93

2.3.1SDRAM的主要引脚93

2.3.2SDRAM的读写时序94

2.3.3突发传输96

2.3.4数据掩码97

2.3.5DRAM的动态刷新98

2.3.6芯片初始化与预充电101

2.3.7存储器控制器103

2.3.8RAM的一般性能参数103

2.3.9DDR SDRAM与RDRAM106

2.4磁盘存储器107

2.4.1磁表面存储原理108

2.4.2硬磁盘存储器的存储结构110

2.4.3磁盘格式化111

2.4.4硬磁盘存储器与主机的连接114

2.4.5硬磁盘存储器的技术参数116

2.4.6磁盘阵列RAID118

2.5光盘存储器121

2.5.1光盘的技术特点与类型121

2.5.2可擦写型光盘读写原理121

2.5.3光盘规格122

2.6闪速存储器125

2.6.1闪存及其特点125

2.6.2闪存原理125

2.6.3闪存类型126

2.7存储体系126

2.7.1多级存储体系的建立126

2.7.2多级存储体系的性能参数128

2.7.3Cache—主存机制129

2.7.4虚拟存储器134

2.8未来记忆元件138

2.8.1磁随机存取存储器MRAM 138

2.8.2铁电随机存取存储器139

2.8.3相变随机存取存储器139

2.8.4阻变随机存取存储器140

习题141

第3章输入输出系统144

3.1I/O设备144

3.1.1I/O设备及其发展144

3.1.2键盘147

3.1.3打印设备150

3.1.4鼠标157

3.1.5显示器157

3.1.6触摸屏162

3.1.7虚拟现实设备164

3.2I/O接口166

3.2.1影响I/O设备与计算机连接的主要因素166

3.2.2缓冲168

3.2.3I/O接口及其逻辑170

3.2.4I/O端口171

3.2.5可编程并行接口8255A172

3.2.6可编程串行接口8251175

3.2.7标准计算机I/O接口176

3.3I/O过程的程序直接控制177

3.3.1I/O过程的程序无条件传送控制方式177

3.3.2I/O过程的程序查询控制方式178

3.4I/O过程的程序中断控制179

3.4.1程序中断控制的概念179

3.4.2中断过程及其管理182

3.4.3中断接口186

3.4.4多重中断187

3.5I/O数据传送的DMA控制188

3.5.1DMA的基本概念188

3.5.2DMA与CPU共享存储器冲突的解决方案189

3.5.3DMA控制器191

3.5.4DMA传送过程192

3.5.5DMA与中断方式比较193

3.6I/O过程的通道控制194

3.6.1通道控制及其特点194

3.6.2通道控制原理196

3.6.3通道类型198

3.7I/O管理199

3.7.1设备驱动程序199

3.7.2ROM BIOS201

3.7.3I/O设备分配202

习题204

第4章总线与主板208

4.1总线的概念208

4.1.1总线及其规范208

4.1.2总线分类209

4.1.3总线的性能指标211

4.1.4标准总线213

4.2总线工作原理213

4.2.1总线的组成与基本传输过程213

4.2.2总线的争用与仲裁214

4.2.3总线通信中主从之间的时序控制217

4.3几种标准系统总线分析221

4.3.1ISA总线221

4.3.2PCI总线222

4.3.3AGP总线226

4.3.4PCIExpress总线227

4.4几种标准I/O总线分析229

4.4.1ATA与SATA总线 229

4.4.2SCSI与SAS总线231

4.4.3USB总线233

4.4.4光纤通道总线236

4.5微型计算机主板237

4.5.1主板的概念237

4.5.2主板的组成238

4.5.3智慧型主板242

4.5.4主板分类245

习题246

第5章控制器逻辑248

5.1处理器的外特性——指令系统248

5.1.1指令与指令系统248

5.1.2寻址方式251

5.1.3Intel 8086指令简介256

5.1.4RISC与CISC263

5.1.5指令系统的设计内容267

5.2组合逻辑控制器268

5.2.1指令的微操作分析268

5.2.2指令的时序控制与时序部件270

5.2.3组合逻辑控制器设计举例272

5.3微程序控制器275

5.3.1概述275

5.3.2微程序操作控制部件的组成275

5.3.3微程序操作控制部件设计举例276

习题279

第6章处理器架构282

6.1流水线技术282

6.1.1指令流水线282

6.1.2运算流水线283

6.1.3流水线中的相关冲突285

6.1.4流水线中的多发射技术286

6.1.5Pentium CPU288

6.1.6流水线向量处理机291

6.2多处理器系统295

6.2.1多计算机系统与多处理器系统295

6.2.2SMP架构296

6.2.3多处理器操作系统299

6.3多线程处理器300

6.3.1多线程处理器架构的提出300

6.3.2同时多线程技术302

6.3.3超线程处理器303

6.4多核处理器307

6.4.1多核处理器及其特点307

6.4.2多核+多线程——CMT技术308

6.5关于处理器并行性开发的讨论309

6.5.1并行性及其级别309

6.5.2基于并行性的处理器体系Flynn分类310

6.5.3处理器并行性的开发312

习题314

第7章未来计算机展望316

7.1数据流计算机316

7.1.1从控制流驱动到数据流驱动316

7.1.2数据流程图及其操作规则317

7.1.3数据流计算机指令的组成与执行过程318

7.1.4静态数据流计算机与动态数据流计算机319

7.2归约机321

7.2.1需求驱动321

7.2.2FFP归约机结构321

7.2.3FFP工作过程322

7.3智能计算机322

7.3.1智能计算机及其性能特点322

7.3.2智能计算机的一般结构323

7.3.3核心语言与推理机制324

7.3.4智能接口技术325

7.3.5智能计算机的解题过程326

7.4人工神经网络计算机326

7.4.1神经元与神经网络327

7.4.2人工神经网络328

7.4.3神经网络计算机的实现技术 330

7.5基于非电子器件的计算机展望332

7.5.1关于摩尔定律寿命的讨论332

7.5.2纳米电子器件333

7.5.3量子计算机335

7.5.4光学计算机337

7.5.5超导技术338

7.5.6生物计算机339

习题342

附录A国内外常用二进制逻辑元件图形符号对照图343

参考文献345

1.1C语言程序主框架2

1.1.1用伪代码描述的简单计算器程序算法2

1.1.2将伪代码描述的算法逐步细化为C程序2

1.2数据类型与数据形式3

1.2.1数据类型3

1.2.2程序中的数据形式及其引用方式4

1.3标识符与声明6

1.3.1标识符6

1.3.2声明6

1.3.3变量的声明与初始化7

1.4操作符8

1.4.1赋值操作符与赋值表达式8

1.4.2算术操作符与算术表达式8

1.4.3操作符的优先级与结合性9

1.5函数9

1.5.1函数及其应用过程10

1.5.2函数调用与函数返回11

1.5.3函数定义11

1.5.4局部变量12

1.5.5函数声明14

1.5.6main()函数15

1.5.7函数库、头文件与文件包含命令15

1.6格式化输入/输出函数16

1.6.1printf()函数的基本用法16

1.6.2scanf()的基本用法17

1.7C程序的编译与执行19

1.7.1C语言程序的编译与连接19

1.7.2程序中的错误和异常20

1.7.3程序测试22

1.7.4设计用户友好的程序23

习题123

第2单元选择程序设计27

2.1可选择计算类型的计算器程序算法分析27

2.1.1主函数的算法分析27

2.1.2计算函数calculate()的算法分析28

2.1.3判等操作符与关系操作符28

2.2ifelse型选择结构29

2.2.1用ifelse结构实现的calculate()函数29

2.2.2ifelse结构的应用特点30

2.2.3良好的程序书写风格32

2.3选择结构的程序测试34

2.3.1白箱测试法34

2.3.2等价分类法35

2.4字符类型38

2.4.1ASCII码38

2.4.2char类型的基本特点39

2.4.3转义字符39

2.4.4字符的输入/输出40

2.5浮点类型41

2.5.1浮点类型取值范围与表数精度41

2.5.2浮点类型变量和字面量42

2.5.3浮点类型数据的操作42

2.6switch型选择结构43

2.6.1基于整数值匹配的选择结构——switch结构43

2.6.2一个字符分类程序44

2.6.3用switch结构实现的calculate()函数47

2.6.4switch结构与ifelse结构的比较48

习题249

第3单元重复程序设计56

3.1可连续计算的计算器程序的算法分析56

3.1.1主函数初步算法56

3.1.2主函数算法细化56

3.1.3重复结构的C语言实现途径57

3.2while结构57

3.2.1while结构的基本机理57

3.2.2使用while结构的可连续计算的计算器主函数57

3.2.3逗号操作符59

3.3dowhile结构59

3.3.1dowhile结构的基本机理59

3.3.2使用dowhile结构的可连续计算的计算器程

序主函数60

3.4for结构60

3.4.1for结构的基本机理60

3.4.2使用for结构的可连续计算的计算器程序主函数61

3.4.3计数型重复结构62

3.4.4复合赋值操作符与增值、减值操作符66

3.5重复结构的程序测试67

3.5.1基于路径覆盖的重复结构测试67

3.5.2边值分析法与重复结构测试67

3.5.3基于因果分析的程序测试68

3.6在重复体内控制重复过程71

3.6.1跳出当前层控制结构语句break72

3.6.2提前结束当前重复体语句continue72

3.6.3实例:  求素数72

习题374

第2篇组 织 数 据

第4单元同类型数据的聚合类型:  数组86

4.1一维数组86

4.1.1数组的特点86

4.1.2数组的定义87

4.1.3数组初始化87

4.1.4访问下标变量89

4.2二维数组90

4.2.1二维数组的概念90

4.2.2二维数组的初始化91

4.2.3访问二维数组元素92

4.3字符串93

4.3.1字符串字面量93

4.3.2字符串变量94

4.3.3字符串的输入/输出95

4.3.4字符串操作库函数98

习题4102

第5单元描述一类对象属性的聚合类型:  结构体和共用体107

5.1结构体类型与结构体变量107

5.1.1结构体类型及其定制107

5.1.2结构体变量的声明与初始化108

5.1.3结构体变量及其分量的应用109

5.2用结构体数组存储一组学生信息111

5.2.1结构体数组的定义与初始化111

5.2.2结构体数组元素的访问112

5.3共用体类型114

5.3.1共用体类型的定制与共用体变量的定义114

5.3.2共用体类型与结构体类型的比较115

5.3.3共用体变量的应用117

习题5118

第6单元指针124

6.1指针类型与指针变量124

6.1.1指针=基类型+地址124

6.1.2同类型指针间的赋值与判等操作126

6.1.3指针的递引用127

6.1.4悬空指针、空指针与void指针128

习题6.1129

6.2数组的指针形式131

6.2.1数组名与指向数组元素的指针131

6.2.2指向数组元素指针的加减运算133

6.2.2指针与字符串135

6.2.3二维数组与指针137

习题6.2139

6.3指向结构体变量的指针与链表142

6.3.1指向结构体类型变量的指针142

6.3.2链表及其特点142

6.3.3构建链表144

习题6.3146

6.4动态存储分配146

6.4.1申请需要的存储空间147

6.4.2释放一个指针指向的存储空间149

6.4.3修改一个指针指向的存储空间大小149

6.4.4构建动态链表150

习题6.4154

第3篇构 建 算 法

第7单元基础算法156

7.1穷举156

7.1.1搬砖问题156

7.1.2推断名次159

习题7.1163

7.2迭代与递推168

7.2.1用二分迭代法求方程在指定区间的根168

7.2.2猴子吃桃子171

7.2.3用辗转相除法求两个正整数的最大公因子173

习题7.2176

7.3递归180

7.3.1阶乘的递归计算180

7.3.2汉诺塔182

习题7.3185

第8单元计算机模拟187

8.1随机问题模拟187

8.1.1产品随机抽样187

8.1.2用蒙特卡洛法求π的近似值190

习题8.1192

8.2基于步长的模拟192

8.2.1事件步长法——中子扩散问题192

8.2.2时间步长法——盐水池问题194

习题8.2198

第9单元数据处理201

9.1排序201

9.1.1直接选择排序201

9.1.2冒泡排序203

习题9.1206

9.2查找206

9.2.1穷举查找206

9.2.2二分查找207

习题9.2208

第4篇语 海 探 幽

第10单元算术数据类型及其转换210

10.1C数据类型概览210

10.2整数类型211

10.2.1有符号整数类型与无符号整数类型211

10.2.2标准整数类型与扩展整数类型211

10.2.3整数类型的极值宏212

10.2.4char类型213

10.2.5枚举214

10.2.6_Bool类型216

10.3浮点类型216

10.3.1浮点类型的值特性216

10.3.2浮点数据的舍入模式217

10.3.3浮点数据的求值特性217

10.3.4IEEE 754标准218

10.3.5关于浮点数的判等操作218

10.3.6_Complex类型和_Imaginary类型218

10.4数据类型转换219

10.4.1普通算术转换——提升拉齐规则219

10.4.2传送转换——与目的类型一致原则221

10.4.3数据的显式类型转换规则222

10.4.4数据类型转换注意事项222

习题10226

第11单元C语言中的常量229

11.1字面量229

11.1.1整数字面量的表示和辨识229

11.1.2浮点类型字面量的表示和辨识230

11.1.3复合字面量231

11.2宏232

11.2.1宏定义232

11.2.2使用宏应当注意的几点233

11.2.3带参宏定义234

11.3const类型限定符237

11.3.1用const限定变量237

11.3.2用const限定数组238

11.3.3用const限定函数参数239

11.3.4用const限定指针239

11.3.5在多文件程序中共享一个const定义240

习题11241

第12单元C程序中变量的访问属性247

12.1变量访问属性的概念247

12.1.1变量的存储类型与生存期247

12.1.2标识符的作用域248

12.1.3标识符的链接属性249

12.2C语言程序实体的存储类型249

12.2.1C程序中的局部变量250

12.2.2外部变量的定义与声明251

12.2.3初始化255

习题12256

第13单元操作符、表达式与语句261

13.1操作符与表达式261

13.1.1算术操作符261

13.1.2逻辑表达式262

13.1.3位操作符262

13.1.4条件表达式265

13.1.5增值表达式和减值表达式265

13.1.6下标表达式与指针的加减操作266

13.1.7赋值操作267

13.1.8左值表达式268

13.2操作符的副作用与序列点270

13.2.1操作符的副作用与透明引用270

13.2.2基于序列点的副作用不叠加表达式规则272

13.2.3函数的副作用274

13.3语句274

13.3.1表达式语句、空语句和复合语句274

13.3.2控制语句275

13.3.3跳转语句276

13.3.4关于分号(;)的说明276

习题13276

第14单元函数280

14.1函数参数280

14.1.1现代C语言函数参数不能空280

14.1.2C语言函数调用中的值结合280

14.1.3指针类型参数282

14.2函数定义与函数声明289

14.2.1函数定义289

14.2.2函数声明290

14.3内联函数291

14.3.1内联函数的概念291

14.3.2C99的内联函数定义291

14.3.3gcc的内联函数定义292

14.3.4内联函数的限制292

习题14292

第15单元输入/输出297

15.1格式化输出函数printf()297

15.1.1printf()格式参数结构297

15.1.2printf()基本格式符297

15.1.3长度修饰符298

15.1.4域宽与精度说明299

15.1.5前缀修饰符299

15.2格式化输入函数scanf()301

15.2.1scanf()指针参数301

15.2.2scanf()格式参数结构302

15.2.3数值数据的输入控制304

15.2.4scanf()与输入缓冲区305

15.2.5字符型数据的输入控制306

15.2.6scanf()的停止与返回309

15.3C语言的文件操作310

15.3.1文件及其分类310

15.3.2FILE类型及其指针312

15.3.3C语言文件操作的一般过程313

15.3.4文件操作程序示例316

习题15318

附录324

附录AC语言关键字324

附录BC语言运算符的优先级和结合方向324

附录C编译预处理命令325

C.1宏定义325

C.2文件包含326

C.3条件编译326

附录DC标准库头文件326

附录EC语言常用标准库函数327

E.1数学函数327

E.2字符函数和字符串函数328

E.3输入/输出函数329

E.4动态内存分配函数331

E.5退出程序函数331

E.6数值转换函数331

E.7时间和日期函数332

参考文献333