图书介绍

C语言程序设计:现代方法PDF|Epub|txt|kindle电子书版本网盘下载

C语言程序设计:现代方法
  • (美)K.N.King编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115219572
  • 出版时间:2010
  • 标注页数:600页
  • 文件大小:169MB
  • 文件页数:619页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C语言程序设计:现代方法PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 C语言概述1

1.1C语言的历史1

1.1.1起源1

1.1.2标准化1

1.1.3基于C的语言2

1.2C语言的优缺点3

1.2.1C语言的优点3

1.2.2C语言的缺点3

1.2.3高效地使用C语言4

问与答5

第2章 C语言基本概念7

2.1编写一个简单的C程序7

程序 显示双关语7

2.1.1编译和链接8

2.1.2集成开发环境8

2.2简单程序的一般形式9

2.2.1指令9

2.2.2函数9

2.2.3语句10

2.2.4显示字符串10

2.3注释11

2.4变量和赋值12

2.4.1类型12

2.4.2声明13

2.4.3赋值13

2.4.4显示变量的值14

程序 计算箱子的空间重量14

2.4.5初始化15

2.4.6显示表达式的值16

2.5读入输入16

程序 计算箱子的空间重量(改进版)16

2.6定义常量的名字17

程序 华氏温度转换为摄氏温度17

2.7标识符18

2.8 C程序的书写规范19

问与答21

练习题23

编程题24

第3章 格式化输入/输出26

3.1printf函数26

3.1.1转换说明27

程序用printf函数格式化数28

3.1.2转义序列28

3.2scanf函数29

3.2.1scanf函数的工作方法30

3.2.2格式串中的普通字符31

3.2.3易混淆的printf函数和scanf函数32

程序 分数相加32

问与答33

练习题34

编程题35

第4章 表达式36

4.1算术运算符36

程序 计算通用产品代码的校验位38

4.2赋值运算符39

4.2.1简单赋值40

4.2.2左值41

4.2.3复合赋值41

4.3自增运算符和自减运算符42

4.4表达式求值43

4.5表达式语句45

问与答45

练习题47

编程题49

第5章 选择语句50

5.1逻辑表达式50

5.1.1关系运算符50

5.1.2判等运算符51

5.1.3逻辑运算符51

5.2if语句52

5.2.1复合语句53

5.2.2else子句53

5.2.3级联式if语句54

程序 计算股票经纪人的佣金55

5.2.4“悬空else”的问题56

5.2.5条件表达式57

5.2.6C89中的布尔值58

5.2.7C99中的布尔值C9958

5.3switch语句59

程序 显示法定格式的日期61

问与答62

练习题65

编程题67

第6章 循环69

6.1while语句69

程序 显示平方表71

程序 数列求和71

6.2do语句72

程序 计算整数的位数73

6.3for语句73

6.3.1for语句的惯用法74

6.3.2在for语句中省略表达式75

6.3.3C99中的for语句C9975

6.3.4逗号运算符76

程序 显示平方表(改进版)77

6.4退出循环78

6.4.1break语句78

6.4.2continue语句78

6.4.3goto语句79

程序 账簿结算80

6.5空语句81

问与答83

练习题84

编程题85

第7章 基本类型88

7.1整数类型88

7.1.1C99中的整数类型C9990

7.1.2整数常量90

7.1.3C99中的整数常量C9991

7.1.4整数溢出91

7.1.5读/写整数91

程序 数列求和(改进版)92

7.2浮点类型93

7.2.1浮点常量94

7.2.2读/写浮点数94

7.3字符类型94

7.3.1字符操作95

7.3.2有符号字符和无符号字符95

7.3.3算术类型96

7.3.4转义序列96

7.3.5字符处理函数97

7.3.6用scanf和printf读/写字符98

7.3.7用getchar和putchar读/写字符98

程序 确定消息的长度99

7.4类型转换100

7.4.1常用算术转换101

7.4.2赋值过程中的转换102

7.4.3C99中的隐式转换C99103

7.4.4强制类型转换103

7.5类型定义105

7.5.1类型定义的优点105

7.5.2类型定义和可移植性105

7.6sizeof运算符106

问与答107

练习题109

编程题110

第8章 数组113

8.1一维数组113

8.1.1数组下标113

程序 数列反向115

8.1.2数组初始化115

8.1.3指定初始化式C99116

程序 检查数中重复出现的数字116

8.1.4对数组使用sizeof运算符117

程序 计算利息118

8.2多维数组119

8.2.1多维数组初始化120

8.2.2常量数组121

程序 发牌121

8.3C99中的变长数组C99122

问与答123

练习题124

编程题125

第9章 函数129

9.1函数的定义和调用129

程序 计算平均值129

程序 显示倒计数130

程序 显示双关语(改进版)131

9.1.1函数定义132

9.1.2函数调用133

程序 判定素数134

9.2函数声明135

9.3实际参数136

9.3.1实际参数的转换137

9.3.2数组型实际参数138

9.3.3变长数组形式参数C99140

9.3.4在数组参数声明中使用staticC99141

9.3.5复合字面量C99141

9.4return语句142

9.5程序终止143

9.6递归144

程序 快速排序146

问与答147

练习题150

编程题153

第10章 程序结构155

10.1局部变量155

10.1.1静态局部变量156

10.1.2形式参数156

10.2外部变量156

10.2.1示例:用外部变量实现栈156

10.2.2外部变量的利与弊157

程序 猜数158

10.3程序块161

10.4作用域162

10.5构建C程序163

程序 给一手牌分类163

问与答169

练习题169

编程题170

第11章 指针172

11.1指针变量172

11.2取地址运算符和间接寻址运算符173

11.2.1取地址运算符173

11.2.2间接寻址运算符174

11.3指针赋值174

11.4指针作为参数176

程序 找出数组中的最大元素和最小元素177

11.5指针作为返回值179

问与答180

练习题181

编程题182

第12章 指针和数组184

12.1指针的算术运算184

12.1.1指针加上整数185

12.1.2指针减去整数185

12.1.3两个指针相减186

12.1.4指针比较186

12.1.5指向复合常量的指针C99186

12.2指针用于数组处理186

12.3用数组名作为指针188

程序 数列反向(改进版)189

12.3.1数组型实际参数(改进版)189

12.3.2用指针作为数组名191

12.4指针和多维数组191

12.4.1处理多维数组的元素191

12.4.2处理多维数组的行192

12.4.3处理多维数组的列192

12.4.4用多维数组名作为指针192

12.5C99中的指针和变长数组C99193

问与答194

练习题195

编程题197

第13章 字符串198

13.1字符串字面量198

13.1.1字符串字面量中的转义序列198

13.1.2延续字符串字面量199

13.1.3如何存储字符串字面量199

13.1.4字符串字面量的操作200

13.1.5字符串字面量与字符常量200

13.2字符串变量200

13.2.1初始化字符串变量201

13.2.2字符数组与字符指针202

13.3字符串的读和写203

13.3.1用printf函数和puts函数写字符串203

13.3.2用scanf函数和gets函数读字符串203

13.3.3逐个字符读字符串204

13.4访问字符串中的字符205

13.5使用C语言的字符串库206

13.5.1strcpy函数207

13.5.2strlen函数208

13.5.3strcat函数208

13.5.4strcmp函数209

程序 显示一个月的提醒列表209

13.6字符串惯用法211

13.6.1搜索字符串的结尾211

13.6.2复制字符串213

13.7字符串数组214

程序 核对行星的名字217

问与答218

练习题220

编程题222

第14章 预处理器225

14.1预处理器的工作原理225

14.2预处理指令227

14.3宏定义227

14.3.1简单的宏227

14.3.2带参数的宏229

14.3.3#运算符231

14.3.4##运算符231

14.3.5宏的通用属性232

14.3.6宏定义中的圆括号233

14.3.7创建较长的宏233

14.3.8预定义宏234

14.3.9C99中新增的预定义宏C99235

14.3.10空的宏参数C99236

14.3.11参数个数可变的宏C99236

14.3.12_func_标识符C99237

14.4条件编译237

14.4.1#if指令和#endif指令238

14.4.2defined运算符238

14.4.3#ifdef指令和#ifndef指令239

14.4.4#elif指令和#else指令239

14.4.5使用条件编译240

14.5其他指令240

14.5.1#error指令240

14.5.2#line指令241

14.5.3#pragma指令242

14.5.4_Pragma运算符C99242

问与答243

练习题245

第15章 编写大型程序248

15.1源文件248

15.2头文件249

15.2.1#include指令249

15.2.2共享宏定义和类型定义250

15.2.3共享函数原型251

15.2.4共享变量声明252

15.2.5嵌套包含253

15.2.6保护头文件253

15.2.7头文件中的#error指令254

15.3把程序划分成多个文件254

程序 文本格式化255

15.4构建多文件程序260

15.4.1makefile260

15.4.2链接期间的错误262

15.4.3重新构建程序262

15.4.4在程序外定义宏264

问与答264

练习题265

编程题266

第16章 结构、联合和枚举267

16.1结构变量267

16.1.1结构变量的声明267

16.1.2结构变量的初始化269

16.1.3指定初始化C99269

16.1.4对结构的操作270

16.2结构类型270

16.2.1结构标记的声明271

16.2.2结构类型的定义272

16.2.3结构作为参数和返回值272

16.2.4复合字面量C99273

16.3嵌套的数组和结构274

16.3.1嵌套的结构274

16.3.2结构数组274

16.3.3结构数组的初始化275

程序 维护零件数据库275

16.4联合281

16.4.1用联合来节省空间282

16.4.2用联合来构造混合的数据结构284

16.4.3为联合添加“标记字段”284

16.5枚举285

16.5.1枚举标记和类型名286

16.5.2枚举作为整数286

16.5.3用枚举声明“标记字段”286

问与答287

练习题289

编程题293

第17章 指针的高级应用294

17.1动态存储分配294

17.1.1内存分配函数294

17.1.2空指针295

17.2动态分配字符串296

17.2.1使用malloc函数为字符串分配内存296

17.2.2在字符串函数中使用动态存储分配296

17.2.3动态分配字符串的数组297

程序 显示一个月的提醒列表(改进版)297

17.3动态分配数组299

17.3.1使用malloc函数为数组分配存储空间299

17.3.2calloc函数300

17.3.3realloc函数300

17.4释放存储空间301

17.4.1free函数301

17.4.2“悬空指针”问题301

17.5链表302

17.5.1声明结点类型302

17.5.2创建结点303

17.5.3->运算符303

17.5.4在链表的开始处插入结点304

17.5.5搜索链表306

17.5.6从链表中删除结点307

17.5.7有序链表308

程序 维护零件数据库(改进版)309

17.6指向指针的指针313

17.7指向函数的指针314

17.7.1函数指针作为参数314

17.7.2qsort函数314

17.7.3函数指针的其他用途316

程序 列三角函数表317

17.8受限指针C99318

17.9灵活数组成员C99319

问与答320

练习题323

编程题325

第18章 声明327

18.1声明的语法327

18.2存储类型328

18.2.1变量的性质328

18.2.2auto存储类型329

18.2.3static存储类型329

18.2.4extern存储类型330

18.2.5register存储类型331

18.2.6函数的存储类型332

18.2.7小结332

18.3类型限定符333

18.4声明符334

18.4.1解释复杂声明335

18.4.2使用类型定义来简化声明336

18.5初始化式336

18.6内联函数C99337

18.6.1内联定义338

18.6.2对内联函数的限制339

18.6.3在GCC中使用内联函数339

问与答339

练习题342

第19章 程序设计345

19.1模块345

19.1.1内聚性与耦合性347

19.1.2模块的类型347

19.2信息隐藏347

19.3抽象数据类型350

19.3.1封装351

19.3.2不完整类型351

19.4栈抽象数据类型352

19.4.1为栈抽象数据类型定义接口352

19.4.2用定长数组实现栈抽象数据类型353

19.4.3改变栈抽象数据类型中数据项的类型354

19.4.4用动态数组实现栈抽象数据类型355

19.4.5用链表实现栈抽象数据类型357

19.5抽象数据类型的设计问题359

19.5.1命名惯例359

19.5.2错误处理359

19.5.3通用抽象数据类型359

19.5.4新语言中的抽象数据类型360

问与答360

练习题361

编程题362

第20章 底层程序设计363

20.1位运算符363

20.1.1移位运算符363

20.1.2按位求反运算符、按位与运算符、按位异或运算符和按位或运算符364

20.1.3用位运算符访问位365

20.1.4用位运算符访问位域366

程序 XOR加密366

20.2结构中的位域367

20.3其他底层技术369

20.3.1定义依赖机器的类型369

20.3.2用联合提供数据的多个视角370

20.3.3将指针作为地址使用371

程序 查看内存单元371

20.3.4volatile类型限定符373

问与答374

练习题374

编程题376

第21章 标准库377

21.1标准库的使用377

21.1.1对标准库中所用名字的限制377

21.1.2使用宏隐藏的函数378

21.2C89标准库概述378

21.3C99标准库更新380

21.4<stddef.h>:常用定义381

21.5<stdbool.h>:布尔类型和值C99381

问与答382

练习题382

编程题383

第22章 输入/输出384

22.1流384

22.1.1文件指针385

22.1.2标准流和重定向385

22.1.3文本文件与二进制文件385

22.2文件操作386

22.2.1打开文件386

22.2.2模式387

22.2.3关闭文件388

22.2.4为打开的流附加文件389

22.2.5从命令行获取文件名389

程序 检查文件是否可以打开389

22.2.6临时文件390

22.2.7文件缓冲391

22.2.8其他文件操作392

22.3格式化的输入/输出393

22.3.1...printf函数393

22.3.2...pr int f转换说明393

22.3.3C99对...printf转换说明的修改C99395

22.3.4...print f转换说明示例396

22.3.5...scanf函数398

22.3.6...scanf格式串398

22.3.7...scanf转换说明398

22.3.8C99对...scanf转换说明的改变C99400

22.3.9scanf示例400

22.3.10检测文件末尾和错误条件401

22.4字符的输入/输出403

22.4.1输出函数403

22.4.2输入函数403

程序 复制文件404

22.5行的输入/输出405

22.5.1输出函数405

22.5.2输入函数406

22.6块的输入/输出406

22.7文件定位407

程序 修改零件记录文件409

22.8字符串的输入/输出409

22.8.1输出函数410

22.8.2输入函数410

问与答411

练习题414

编程题416

第23章 库对数值和字符数据的支持419

23.1<float.h>:浮点类型的特性419

23.2<limits.h>:整数类型的大小421

23.3<math.h>:数学计算(C89)422

23.3.1错误422

23.3.2三角函数422

23.3.3双曲函数423

23.3.4指数函数和对数函数423

23.3.5幂函数424

23.3.6就近取整函数、绝对值函数和取余函数424

23.4<math.h>:数学计算(C99)C99425

23.4.1IEEE浮点标准425

23.4.2类型426

23.4.3宏426

23.4.4错误426

23.4.5函数427

23.4.6分类宏427

23.4.7三角函数428

23.4.8双曲函数428

23.4.9指数函数和对数函数429

23.4.10幂函数和绝对值函数430

23.4.11误差函数和伽玛函数430

23.4.12就近取整函数431

23.4.13取余函数432

23.4.14操作函数432

23.4.15最大值函数、最小值函数和正差函数433

23.4.16浮点乘加433

23.4.17比较宏434

23.5<ctype.h>:字符处理434

23.5.1字符分类函数435

程序 测试字符分类函数436

23.5.2字符大小写映射函数437

程序 测试大小写映射函数437

23.6<string.h>:字符串处理437

23.6.1复制函数437

23.6.2拼接函数438

23.6.3比较函数439

23.6.4搜索函数440

23.6.5其他函数442

问与答442

练习题443

编程题444

第24章 错误处理446

24.1<assert.h>:诊断446

24.2<errno.h>:错误447

24.3<signal.h>:信号处理448

24.3.1信号宏449

24.3.2signal函数449

24.3.3预定义的信号处理函数450

24.3.4raise函数450

程序 测试信号451

24.4<setjmp.h>:非局部跳转452

程序 测试setjmp和longjmp452

问与答453

练习题454

第25章 国际化特性456

25.1<locale.h>:本地化456

25.1.1类别456

25.1.2setlocale函数457

25.1.3localeconv函数458

25.2多字节字符和宽字符461

25.2.1多字节字符461

25.2.2宽字符461

25.2.3统一码和通用字符集462

25.2.4统一码编码462

25.2.5多字节/宽字符转换函数463

25.2.6多字节/宽字符串转换函数465

25.3双字符和三字符465

25.3.1三字符465

25.3.2双字符466

25.3.3<iso646.h>:拼写替换467

25.4通用字符名C99467

25.5<wchar.h>:扩展的多字节和宽字符实用工具C99467

25.5.1流倾向468

25.5.2格式化宽字符输入/输出函数468

25.5.3宽字符输入/输出函数470

25.5.4通用的宽字符串实用工具471

25.5.5宽字符时间转换函数474

25.5.6扩展的多字节/宽字符转换实用工具474

25.6<wctype.h>:宽字符分类和映射实用工具C99477

25.6.1宽字符分类函数477

25.6.2可扩展的宽字符分类函数478

25.6.3宽字符大小写映射函数478

25.6.4可扩展的宽字符大小写映射函数478

问与答479

练习题479

编程题480

第26章 其他库函数482

26.1<stdarg.h>:可变参数482

26.1.1调用带有可变参数列表的函数483

26.1.2v...printf函数484

26.1.3v...scanf函数C99485

26.2<stdlib.h>:通用的实用工具485

26.2.1数值转换函数485

程序 测试数值转换函数486

26.2.2伪随机序列生成函数488

程序 测试伪随机序列生成函数488

26.2.3与环境的通信489

26.2.4搜索和排序实用工具490

程序 确定航空里程491

26.2.5整数算术运算函数492

26.3<time.h>:日期和时间492

26.3.1时间处理函数493

26.3.2时间转换函数495

程序 显示日期和时间498

问与答500

练习题501

编程题502

第27章 C99对数学计算的新增支持503

27.1<stdint.h>:整数类型C99503

27.1.1<stdint.h>类型503

27.1.2对指定宽度整数类型的限制504

27.1.3对其他整数类型的限制505

27.1.4用于整数常量的宏505

27.2<inttypes.h>:整数类型的格式转换C99506

27.2.1用于格式说明符的宏506

27.2.2用于最大宽度整数类型的函数507

27.3复数C99508

27.3.1复数的定义508

27.3.2复数的算术运算509

27.3.3C99中的复数类型509

27.3.4复数的运算510

27.3.5复数类型的转换规则510

27.4<complex.h>:复数算术运算C99511

27.4.1<complex.h>宏511

27.4.2CX_LIMITED_RANGE编译提示512

27.4.3<complex.h>函数512

27.4.4三角函数512

27.4.5双曲函数513

27.4.6指数函数和对数函数514

27.4.7幂函数和绝对值函数514

27.4.8操作函数514

程序 求二次方程的根515

27.5<tgmath.h>:泛型数学C99515

27.5.1泛型宏516

27.5.2调用泛型宏517

27.6<fenv.h>:浮点环境C99518

27.6.1浮点状态标志和控制模式518

27.6.2<fenv.h>宏519

27.6.3FENV_ACCESS编译提示519

27.6.4浮点异常函数520

27.6.5舍入函数520

27.6.6环境函数521

问与答521

练习题522

编程题523

附录A C语言运算符524

附录B C99与C89的比较525

附录C C89与经典C的比较529

附录D 标准库函数532

附录E ASCII字符集569

参考文献570

索引573

热门推荐