图书介绍

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

C语言程序设计 现代方法
  • (美)金(King,K.N.)著;吕秀锋译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115167071
  • 出版时间:2007
  • 标注页数:408页
  • 文件大小:36MB
  • 文件页数:426页
  • 主题词: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.1 C语言的历史1

1.1.1 起源1

1.1.2 标准化1

1.1.3 C++语言2

1.2 C语言的优缺点3

1.2.1 C语言的优点3

1.2.2 C语言的缺点4

1.2.3 高效地使用C语言5

问与答5

第2章 C语言基本概念7

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

2.1.1 程序:显示双关语7

2.1.2 编译和链接8

2.2 简单程序的通用形式8

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 声明12

2.4.3 赋值13

2.4.4 显示变量的值13

2.4.5 程序:计算箱子的空间重量13

2.4.6 初始化14

2.4.7 显示表达式的值15

2.5 读入输入15

2.6 定义常量16

2.7 标识符17

2.8 C语言程序的布局18

问与答20

练习21

第3章 格式化的输入/输出23

3.1 printf函数23

3.1.1 转换说明24

3.1.2 程序:用printf函数格式化数25

3.1.3 转义序列25

3.2 scanf函数26

3.2.1 scanf函数的工作方法27

3.2.2 格式串中的普通字符28

3.2.3 混淆printf函数和scanf函数29

3.2.4 程序:计算持有的股票的价值29

问与答30

练习31

第4章 表达式33

4.1 算术运算符33

4.1.1 运算符的优先级和结合性34

4.1.2 程序:计算通用产品代码的校验位35

4.2 赋值运算符36

4.2.1 简单赋值36

4.2.2 左值37

4.2.3 复合赋值37

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

4.4 表达式求值39

4.5 表达式语句41

问与答42

练习43

第5章 选择语句45

5.1 逻辑表达式45

5.1.1 关系运算符45

5.1.2 判等运算符46

5.1.3 逻辑运算符46

5.2 if语句47

5.2.1 复合语句48

5.2.2 else子句48

5.2.3 级联式if语句49

5.2.4 程序:计算股票经纪人的佣金50

5.2.5 “悬空else”的问题51

5.2.6 条件表达式51

5.2.7 布尔值52

5.3 switch语句53

5.3.1 break语句的作用55

5.3.2 程序:显示法定格式的日期55

问与答56

练习58

第6章 循环61

6.1 while语句61

6.1.1 无限循环62

6.1.2 程序:显示平方值的表格63

6.1.3 程序:数列求和63

6.2 do语句64

6.3 for语句65

6.3.1 for语句的惯用法66

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

6.3.3 逗号运算符67

6.3.4 程序:显示平方值的表格(改进版)68

6.4 退出循环69

6.4.1 break语句69

6.4.2 continue语句70

6.4.3 goto语句71

6.4.4 程序:账目簿结算71

6.5 空语句73

问与答74

练习76

第7章 基本类型78

7.1 整型78

7.1.1 整型常量79

7.1.2 读/写整数80

7.1.3 程序:数列求和(改进版)81

7.2 浮点型81

7.2.1 浮点常量82

7.2.2 读/写浮点数83

7.3 字符型83

7.3.1 转义序列84

7.3.2 字符处理函数85

7.3.3 读/写字符86

7.3.4 程序:确定消息的长度87

7.4 sizeof运算符88

7.5 类型转换89

7.5.1 常用算术转换89

7.5.2 赋值中的转换90

7.5.3 强制类型转换91

7.6 类型定义92

问与答93

练习95

第8章 数组98

8.1 一维数组98

8.1.1 数组下标98

8.1.2 程序:数列反向100

8.1.3 数组初始化100

8.1.4 程序:检查数中重复出现的数字101

8.1.5 对数组使用sizeof运算符101

8.1.6 程序:计算利息102

8.2 多维数组103

8.2.1 多维数组初始化104

8.2.2 常量数组105

8.2.3 程序:发牌105

问与答106

练习107

第9章 函数110

9.1 函数的定义和调用110

9.1.1 程序:计算平均值110

9.1.2 程序:显示倒数计数111

9.1.3 程序:显示双关语(改进版)112

9.1.4 函数定义113

9.1.5 函数调用114

9.1.6 程序:判定素数115

9.2 函数声明116

9.3 实际参数117

9.3.1 实际参数的转换118

9.3.2 数组型实际参数119

9.4 return语句120

9.5 程序终止121

9.6 递归函数122

9.6.1 快速排序算法123

9.6.2 程序:快速排序124

问与答125

练习128

第10章 程序结构131

10.1 局部变量131

10.2 外部变量132

10.2.1 程序:用外部变量实现栈132

10.2.2 外部变量的利与弊133

10.2.3 程序:猜数134

10.3 程序块137

10.4 作用域137

10.5 构建C程序138

问与答144

练习144

第11章 指针146

11.1 指针变量146

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

11.2.1 取地址运算符147

11.2.2 间接寻址运算符148

11.3 指针赋值148

11.4 指针作为实际参数149

11.4.1 程序:找出数组中的最大元素和最小元素151

11.4.2 用const保护实际参数152

11.5 指针作为返回值153

问与答153

练习155

第12章 指针和数组156

12.1 指针的算术运算156

12.1.1 指针加上整数157

12.1.2 指针减去整数157

12.1.3 指针相减158

12.1.4 指针比较158

12.2 指针用于数组处理158

12.3 用数组名作为指针160

12.3.1 程序:数列反向(改进版)161

12.3.2 数组型实际参数(改进版)161

12.3.3 用指针作为数组名162

12.4 指针和多维数组163

12.4.1 处理多维数组的元素163

12.4.2 处理多维数组的行163

12.4.3 用多维数组名作为指针164

问与答164

练习166

第13章 字符串168

13.1 字符串字面量168

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

13.1.2 延续字符串字面量169

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

13.1.4 字符串字面量的操作170

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

13.2 字符串变量170

13.2.1 初始化字符串变量171

13.2.2 字符数组与字符指针172

13.3 字符串的读/写173

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

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

13.3.3 逐个字符读字符串174

13.4 访问字符串中的字符175

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

13.5.1 strcpy函数177

13.5.2 strcat函数177

13.5.3 strcmp函数178

13.5.4 strlen函数178

13.5.5 程序:显示一个月的提示列表179

13.6 字符串惯用法181

13.6.1 搜索字符串的结尾181

13.6.2 复制字符串182

13.7 字符串数组184

13.7.1 命令行参数185

13.7.2 程序:核对行星的名字186

问与答187

练习189

第14章 预处理器192

14.1 预处理器的工作方式192

14.2 预处理指令194

14.3 宏定义194

14.3.1 简单的宏194

14.3.2 带参数的宏196

14.3.3 #运算符197

14.3.4 ##运算符198

14.3.5 宏的通用属性199

14.3.6 宏定义中的圆括号199

14.3.7 创建较长的宏200

14.3.8 预定义宏201

14.4 条件编译202

14.4.1 #if指令和#endif指令202

14.4.2 defined运算符203

14.4.3 #ifdef指令和#ifndef指令203

14.4.4 #elif指令和#else指令203

14.4.5 使用条件编译204

14.5 其他指令205

14.5.1 #error指令205

14.5.2 #line指令205

14.5.3 #pragma指令206

问与答206

练习208

第15章 编写大规模程序211

15.1 源文件211

15.2 头文件212

15.2.1 #include指令212

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

15.2.3 共享函数原型214

15.2.4 共享变量声明215

15.2.5 嵌套包含216

15.2.6 保护头文件216

15.2.7 头文件中的#error指令217

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

15.4 构建多文件程序223

15.4.1 makefile223

15.4.2 链接期间的错误224

15.4.3 重新构建程序225

15.4.4 在程序外定义宏226

问与答227

练习228

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

16.1 结构变量229

16.1.1 结构变量的声明229

16.1.2 结构变量的初始化230

16.1.3 对结构的操作231

16.2 结构类型232

16.2.1 结构标记的声明232

16.2.2 结构类型的定义233

16.2.3 结构类型的实际参数和返回值233

16.3 数组和结构的嵌套234

16.3.1 嵌套的结构234

16.3.2 结构数组235

16.3.3 结构数组的初始化235

16.3.4 程序:维护零件数据库236

16.4 联合241

16.4.1 使用联合来节省空间242

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

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

16.5 枚举244

16.5.1 枚举标记和枚举类型245

16.5.2 枚举作为整数245

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

问与答246

练习247

第17章 指针的高级应用250

17.1 动态存储分配250

17.1.1 内存分配函数250

17.1.2 空指针251

17.2 动态分配字符串251

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

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

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

17.2.4 程序:显示一个月的提示列表(改进版)253

17.3 动态分配数组254

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

17.3.2 calloc函数255

17.3.3 realloc函数256

17.4 释放存储256

17.4.1 free函数257

17.4.2 “悬空指针”问题257

17.5 链表257

17.5.1 声明结点类型258

17.5.2 创建结点258

17.5.3 -〉运算符259

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

17.5.5 搜索链表261

17.5.6 从链表中删除结点262

17.5.7 链表排序264

17.5.8 程序:维护零件数据库(改进版)264

17.6 指向指针的指针268

17.7 指向函数的指针269

17.7.1 函数指针作为实际参数269

17.7.2 qsort函数270

17.7.3 函数指针的其他用途271

17.7.4 程序:列三角函数表272

问与答273

练习276

第18章 声明278

18.1 声明的语法278

18.2 存储类型279

18.2.1 变量的特性279

18.2.2 auto存储类型280

18.2.3 static存储类型280

18.2.4 extern存储类型281

18.2.5 register存储类型282

18.2.6 函数的存储类型282

18.2.7 小结283

18.3 类型限定符284

18.4 声明符284

18.4.1 解释复杂声明285

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

18.5 初始化式287

问与答288

练习289

第19章 程序设计291

19.1 模块291

19.1.1 内聚性与耦合性293

19.1.2 模块的类型293

19.2 信息隐藏293

19.3 抽象数据类型296

19.4 C++语言297

19.4.1 C语言与C++语言之间的差异297

19.4.2 类299

19.4.3 类定义300

19.4.4 成员函数300

19.4.5 构造函数302

19.4.6 构造函数和动态存储分配303

19.4.7 析构函数304

19.4.8 重载304

19.4.9 面向对象编程306

19.4.10 派生306

19.4.11 虚函数308

19.4.12 模板310

19.4.13 异常处理310

问与答311

练习312

第20章 低级程序设计314

20.1 按位运算符314

20.1.1 移位运算符314

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

20.1.3 用按位运算符访问位316

20.1.4 用按位运算符访问位域317

20.1.5 程序:XOR加密317

20.2 结构中的位域318

20.3 其他低级技术320

20.3.1 定义依赖机器的类型320

20.3.2 用联合从多个视角看待数据320

20.3.3 将指针作为地址使用321

20.3.4 程序:设置Num Lock键322

20.3.5 volatile类型限定符323

问与答323

练习323

第21章 标准库325

21.1 标准库的使用325

21.1.1 对标准库中使用的名字一些限制325

21.1.2 使用宏隐藏函数325

21.2 标准库概述326

21.3 〈stddef.h〉:常用定义327

问与答328

练习328

第22章 输入/输出329

22.1 流329

22.1.1 文件指针330

22.1.2 标准流和重定向330

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

22.2 文件操作331

22.2.1 打开文件332

22.2.2 模式332

22.2.3 关闭文件333

22.2.4 为流附加文件333

22.2.5 从命令行获取文件名334

22.2.6 程序:检查文件是否可以打开334

22.2.7 临时文件335

22.2.8 文件缓冲336

22.2.9 其他文件操作337

22.3 格式化的输入/输出337

22.3.1 ...printf类函数337

22.3.2 ...printf类函数的转换说明338

22.3.3 ...printf类函数的转换说明示例339

22.3.4 ...scanf类函数341

22.3.5 ...scanf类函数的格式化字符串342

22.3.6 ...scanf类函数的转换说明342

22.3.7 scanf函数的示例343

22.3.8 检测文件末尾和错误条件344

22.4 字符的输入/输出346

22.4.1 输出函数346

22.4.2 输入函数346

22.4.3 程序:复制文件347

22.5 行的输入/输出348

22.5.1 输出函数348

22.5.2 输入函数348

22.6 块的输入/输出349

22.7 文件的定位350

22.8 字符串的输入/输出352

问与答353

练习356

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

23.1 〈float.h〉:浮点型的特性360

23.2 〈limits.h〉:整数类型的大小361

23.3 〈math.h〉:数学计算362

23.3.1 错误362

23.3.2 三角函数363

23.3.3 双曲函数363

23.3.4 指数函数和对数函数363

23.3.5 幂函数364

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

23.4 〈ctype.h〉:字符处理365

23.4.1 字符测试函数365

23.4.2 程序:测试字符测试函数366

23.4.3 字符大小写转换函数367

23.4.4 程序:测试大小写转换函数367

23.5 〈string.h〉:字符串处理367

23.5.1 复制函数368

23.5.2 拼接函数368

23.5.3 比较函数369

23.5.4 搜索函数370

23.5.5 其他函数372

问与答372

练习372

第24章 错误处理374

24.1 〈assert.h〉:诊断374

24.2 〈errno.h〉:错误375

24.3 〈signal.h〉:信号处理376

24.3.1 信号宏376

24.3.2 signal函数377

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

24.3.4 raise函数378

24.3.5 程序:测试信号378

24.4 〈setjmp.h〉:非局部跳转379

问与答380

练习381

第25章 国际化特性383

25.1 〈locale.h〉:本地化383

25.1.1 类别383

25.1.2 setlocale函数384

25.1.3 localeconv函数384

25.2 多字节字符和宽字符386

25.2.1 多字节字符387

25.2.2 宽字符387

25.2.3 多字节字符函数388

25.2.4 多字节字符串函数389

25.3 三字符序列389

问与答390

练习391

第26章 其他库函数392

26.1 〈stdarg.h〉:可变长度实参392

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

26.1.2 V...printf类函数393

26.2 〈stdlib.h〉:通用的实用工具394

26.2.1 字符串转换函数394

26.2.2 程序:测试字符串转换函数395

26.2.3 伪随机序列生成函数397

26.2.4 程序:测试伪随机序列生成函数397

26.2.5 与环境的通信398

26.2.6 搜索和排序实用工具399

26.2.7 程序:确定航空里程399

26.2.8 整数算术运算函数400

26.3 〈time.h〉:日期和时间401

26.3.1 时间处理函数401

26.3.2 时间转换函数403

26.3.3 程序:显示日期和时间405

问与答406

练习407

热门推荐