图书介绍

C Primer Plus 第4版 中文版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C Primer Plus 第4版 中文版
  • (美)Stephen Prata著;技桥工作室译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115100756
  • 出版时间:2002
  • 标注页数:647页
  • 文件大小:50MB
  • 文件页数:666页
  • 主题词:

PDF下载


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

下载说明

C Primer Plus 第4版 中文版PDF格式电子书版下载

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

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

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

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

图书目录

第1章 概览1

14.8.6 在结构中使用字符数组还是字符指针 411

目录1

1.2 使用C语言的理由2

1.1 C语言的起源2

1.2.6 缺点3

1.2.1 设计特性3

1.2.2 高效性3

1.2.3 可移植性3

1.2.4 强大的功能和灵活性3

1.2.5 面向编程人员3

1.3 C语言的发展方向4

1.5 高级计算机语言和编译器5

1.4 计算机工作的基本原理5

1.6.1 第1步:定义程序目标6

1.6 使用C语言的7个步骤6

1.6.5 第5步:运行程序7

1.6.2 第2步:设计程序7

1.6.3 第3步:编写代码7

1.6.4 第4步:编译7

1.7 编程机制8

1.6.6 第6步:测试和调试程序8

1.6.7 第7步:维护和修改程序8

1.6.8 注释8

1.7.1 目标代码文件、可执行文件和库9

1.7.2 UNIX系统10

1.7.3 Linux系统11

1.7.5 IBM PC的DOS编译器12

1.7.4 集成开发环境(Windows系统下)12

1.8.1 第1个ANSI/ISO C标准13

1.7.6 Macintosh上的C13

1.8 语言标准13

1.10 本书体例14

1.8.2 C99标准14

1.9 本书的组织结构14

1.10.2 屏幕输出15

1.10.1 字体15

1.13 编程练习16

1.11 总结16

1.12 复习题16

第2章 C语言概述17

2.2.1 第一遍 快速简介18

2.1 C语言的一个简单实例18

2.2 解释18

2.2.2 第二遍 细节20

2.3 一个简单程序的结构25

2.4 使程序可读的技巧26

2.5.2 多个声明27

2.5 更进一步27

2.5.1 说明27

2.6 多个函数28

2.5.3 乘法28

2.5.4 输出多个值28

2.7 调试29

2.7.2 语义错误30

2.7.1 语法错误30

2.7.3 程序状态31

2.9 关键概念32

2.8 关键字和保留标识符32

2.11 复习题33

2.10 总结33

2.12 编程练习34

第3章 数据和C36

3.1 示例程序37

3.2 变量与常量数据38

3.3 数据:数据类型关键字39

3.3.3 浮点数40

3.3.1 整数类型与浮点数类型40

3.3.2 整数40

3.4.1 int类型41

3.4 C数据类型41

3.4.2 其他整数类型43

3.4.3 使用字符:char类型47

3.4.5 可移植的类型:inttypes.h51

3.4.4 _Bool类型51

3.4.6 float、double和long double类型52

3.4.8 其他类型55

3.4.7 复数和虚数类型55

3.4.9 类型大小57

3.6 参数和易犯的错误58

3.5 使用数据类型58

3.7 另一个例子59

3.7.2 刷新输出60

3.7.1 过程分析60

3.10 复习题61

3.8 关键概念61

3.9 总结61

3.11 编程练习63

第4章 字符串和格式化输入/输出64

4.1 前导程序65

4.2.1 char数组类型和空字符66

4.2 字符串简介66

4.2.3 strlen()函数67

4.2.2 使用字符串67

4.3 常量和C预处理器69

4.3.2 系统定义的明显常量71

4.3.1 const修饰符71

4.4.1 printf()函数73

4.4 研究和利用printf()和scanf()73

4.4.2 使用printf()74

4.4.3 printf()的转换说明修饰符75

4.4.4 转换的意义79

4.4.5 使用scanf()84

4.4.6 printf()和scanf()的*修饰符87

4.5 用法提示88

4.7 总结89

4.6 关键概念89

4.8 复习题90

4.9 编程练习91

第5章 运算符、表达式和语句93

5.1 循环简介94

5.2.1 赋值运算符:=95

5.2 基本运算符95

5.2.5 乘法运算符:*97

5.2.2 加法运算符:+97

5.2.3 减法运算符:-97

5.2.4 符号运算符:-和+97

5.2.6 除法运算符:99

5.2.7 运算符的优先级100

5.2.8 优先级和求值顺序101

5.3.2 取模运算符:%103

5.3 其他运算符103

5.3.1 sizeof运算符和size t类型103

5.3.3 增量和减量运算符:++和--104

5.3.4 减量:--107

5.3.6 不要太聪明108

5.3.5 优先级108

5.4.1 表达式109

5.4 表达式和语句109

5.4.2 语句110

5.4.3 复合语句(代码块)112

5.5 类型转换113

5.6 带有参数的函数115

5.7 一个示例程序117

5.9 总结118

5.8 关键概念118

5.10 复习题119

5.11 编程练习121

第6章 C控制语句:循环123

6.1 最初的例子124

6.1.1 程序注解125

6.2 while语句126

6.1.2 C风格的读循环126

6.2.3 while:入口条件循环127

6.2.1 终止while循环127

6.2.2 循环何时终止127

6.2.4 语法要点128

6.3 比较大小:使用关系运算符和表达式129

6.3.1 什么是真130

6.3.2 还有什么是真131

6.3.3 真值的问题132

6.3.4 新的Bool类型133

6.3.5 关系运算符的优先级134

6.5 for循环136

6.4 不确定循环与计数循环136

6.7 逗号运算符141

6.6 更多赋值运算符:+=、-=、*=、/=和%=141

6.8 退出条件循环:do while145

6.10 嵌套循环147

6.9 选择哪种循环147

6.10.2 嵌套变化148

6.10.1 程序讨论148

6.11 数组149

6.12 使用函数返回值的循环例子151

6.12.1 程序讨论153

6.14 总结154

6.12.2 使用具有返回值的函数154

6.13 关键概念154

6.15 复习题155

6.16 编程练习159

第7章 C控制语句:分支和跳转161

7.1 if语句162

7.2 在if语句中添加else关键字163

7.2.1 另一个例子:介绍getchar()和putchar()165

7.2.2 ctype.h系列字符函数166

7.2.3 多重选择else if168

7.2.4 把else与if配对170

7.2.5 多层嵌套的if171

7.3 获得逻辑性174

7.3.2 优先级175

7.3.1 改变拼写法:iso646.h头文件175

7.3.3 求值的顺序176

7.4 一个统计字数的程序177

7.3.4 范围177

7.5 条件运算符?:180

7.6 循环辅助手段:continue和break181

7.6.1 continue语句182

7.6.2 break语句184

7.7 多重选择:switch和break185

7.7.1 使用switch语句186

7.7.3 多重标签188

7.7.2 只读取一行的首字符188

7.8 goto语句190

7.7.4 switch和if else190

7.10 总结193

7.9 关键概念193

7.11 复习题194

7.12 编程练习196

第8章 字符输入/输出和输入确认199

8.1 单字符I/O:getchar()和putchar()200

8.2 缓冲区201

8.3.1 文件、流和键盘输入202

8.3 终止键盘输入202

8.3.2 文件结尾203

8.4 重定向和文件204

8.5.1 使用缓冲输入208

8.5 创建一个更友好的用户界面208

8.5.2 混合输入数字和字符210

8.6 输入确认212

8.6.1 分析程序215

8.7 菜单浏览216

8.6.2 输入流和数值216

8.7.2 使执行更顺利217

8.7.1 任务217

8.7.3 混合字符和数值输入219

8.9 总结221

8.8 关键概念221

8.11 编程练习222

8.10 复习题222

第9章 函数224

9.1.1 编写和使用一个简单的函数225

9.1 函数概述225

9.1.2 程序分析226

9.1.3 函数参数228

9.1.4 定义带有参数的函数:形式参量229

9.1.6 调用带有参数的函数:实际参数230

9.1.5 带参数函数的原型声明230

9.1.8 使用return从函数中返回一个值231

9.1.7 黑盒子观点231

9.2 ANSIC的函数原型234

9.1.9 函数类型234

9.2.1 产生的问题235

9.2.2 ANSI的解决方案236

9.3 递归237

9.2.3 无参数和不确定参数237

9.2.4 函数原型的优点237

9.3.2 递归的基本原理238

9.3.1 递归的使用238

9.3.3 尾递归239

9.3.4 递归和反向计算241

9.3.5 递归的优缺点242

9.5.2 Linux243

9.4 所有C函数地位同等243

9.5 多源代码文件程序的编译243

9.5.1 UNIX243

9.5.5 头文件的使用244

9.5.3 DOS命令行编译器244

9.5.4 Windows和Macintosh编译器244

9.6 地址运算符:&247

9.7 改变调用函数中的变量248

9.8 指针简介249

9.8.2 指针声明250

9.8.1 间接运算符:*250

9.8.3 使用指针在函数间通信251

9.9 关键概念254

9.11 复习题255

9.10 总结255

9.12 编程练习256

第10章 数组和指针257

10.1.1 初始化258

10.1 数组258

10.1.2 指定初始化项目(C99)261

10.1.4 数组边界262

10.1.3 为数组赋值262

10.2 多维数组264

10.1.5 指定数组大小264

10.2.1 初始化二维数组266

10.2.2 更多维数的数组267

10.3 指针和数组268

10.4 函数、数组和指针270

10.4.1 使用指针参数272

10.5 指针操作274

10.4.2 评论:指针和数组274

10.6 保护数组内容276

10.6.1 对形式参量使用const277

10.6.2 有关const的其他内容278

10.7 指针和多维数组280

10.7.1 指向多维数组的指针282

10.7.2 指针兼容性283

10.7.3 函数和多维数组284

10.8 变长数组(VLA)286

10.9 复合文字289

10.11 总结291

10.10 关键概念291

10.12 复习题292

10.13 编程练习294

第11章 字符串和字符串函数296

11.1 在程序中定义字符串298

11.2 字符串数组及其初始化299

11.2.1 数组与指针300

11.2.2 字符串数组301

11.2.3 指针和字符串302

11.3.1 创建存储空间303

11.3 字符串输入303

11.3.2 gets()函数304

11.3.3 fgets()函数305

11.3.4 scanf()函数306

11.4.1 puts()函数307

11.4 字符串输出307

11.4.2 fputs()函数308

11.5 自定义字符串输入/输出函数309

11.4.3 printf()函数309

11.6.1 strlen()函数311

11.6 字符串函数311

11.6.2 strcat()和 strncat()函数312

11.6.3 strcmp()和strncmp()函数314

11.6.4 strcpy()和strncpy()函数317

11.6.5 sprintf()函数320

11.6.6 其他字符串函数321

11.7 字符串例子:字符串排序323

11.8 ctype.h字符函数和字符串325

11.9 命令行参数326

11.9.2 Macintosh的命令行参数328

11.9.1 集成环境下的命令行参数328

11.10 把字符串转换为数字329

11.13 复习题331

11.11 关键概念331

11.12 总结331

11.14 编程练习334

第12章 存储类、链接和内存管理336

12.1.1 作用域337

12.1 存储类337

12.1.2 链接338

12.1.4 自动变量339

12.1.3 存储时期339

12.1.6 具有代码块作用域的静态变量342

12.1.5 寄存器变量342

12.1.7 具有外部链接的静态变量343

12.1.10 存储类说明符347

12.1.8 具有内部链接的静态变量347

12.1.9 多文件347

12.1.11 存储类和函数349

12.2 随机数函数和静态变量350

12.1.12 使用哪种存储类350

12.3 掷骰子353

12.3.1 分配内存:malloc()和free()356

12.3.2 free()的重要性358

12.3.4 动态内存分配与变长数组359

12.3.3 函数calloc()359

12.4.1 类型限定词const360

12.3.5 存储类与动态内存分配360

12.4 ANSI C的类型限定词360

12.4.3 类型限定词restrict362

12.4.2 类型限定词volatile362

12.5 旧关键字的新位置363

12.7 总结364

12.6 关键概念364

12.8 复习题365

12.9 编程练习366

第13章 文件输入/输出369

13.1.1 文件是什么370

13.1 和文件进行通信370

13.2 标准I/O371

13.1.2 I/O级别371

13.1.3 标准文件371

13.2.1 检查命令行参数372

13.2.2 fopen()函数373

13.2.4 文件结尾374

13.2.3 getc()函数和putc()函数374

13.3 一个简单的文件压缩程序375

13.2.5 fclose()函数375

13.2.6 标准文件375

13.4.1 fprintf()和fscanf()函数377

13.4 文件I/O:fprintf( )、fscanf( )、fgets( )和fputs( )函数377

13.4.2 fgets()和fputs()函数378

13.5 随机存取:fseek()和ftell()函数379

13.5.1 fseek()和 ftell()如何工作380

13.5.2 二进制模式和文本模式381

13.6 标准I/O 内幕382

13.5.3 可移植性382

13.5.4 fgetpos()和 fsetpos()函数382

13.7.1 int ungetc(int c,FILE*fp)函数383

13.7 其他标准I/O函数383

13.7.4 二进制I/O:fread()和 fwrite()函数384

13.7.2 int fflush(FILE*fp)函数384

13.7.3 int setvbuf(FILE*fp,char*buf,int mode,size_t size)函数384

13.7.5 size_t fwrite(void*ptr,size_t size,size_t nmemb,FILE*fp)函数385

13.7.8 一个例子386

13.7.6 size_t fread(void*ptr,size_t size,size_t nmemb,FILE*fp)函数386

13.7.7 int feof(FILE*fp)和int ferror(FILE*fp)函数386

13.7.9 使用二进制I/O进行随机存取388

13.8 关键概念389

13.10 复习题390

13.9 总结390

13.11 编程练习392

第14章 结构和其他数据形式394

14.1 示例问题:创建书籍目录395

14.3 定义结构变量396

14.2 建立结构声明396

14.3.1 初始化结构397

14.4 访问结构成员398

14.3.2 结构的指定初始化项目398

14.5 结构数组399

14.5.1 声明结构数组400

14.5.3 程序讨论401

14.5.2 标识结构数组的成员401

14.6 嵌套结构402

14.7 指向结构的指针403

14.7.1 声明和初始化结构指针404

14.8 向函数传递结构信息405

14.7.2 使用指针访问成员405

14.8.2 使用结构地址406

14.8.1 传递结构成员406

14.8.3 把结构作为参数传递407

14.8.4 其他结构特性408

14.8.5 结构,还是指向结构的指针410

14.8.7 结构、指针和malloc()412

14.8.8 复合文字和结构(C99)414

14.8.9 伸缩型数组成员(C99)415

14.8.10 使用结构数组的函数416

14.9 把结构内容保存到文件中418

14.11 联合简介421

14.10 结构:下一步是什么421

14.12.2 默认值424

14.12.1 enum常量424

14.12 枚举类型424

14.12.4 用法425

14.12.3 指定值425

14.13 typedef简介426

14.12.5 共享的名字空间426

14.14 奇特的声明428

14.15 函数和指针429

14.16 关键概念434

14.18 复习题435

14.17 总结435

14.19 编程练习437

第15章 位操作440

15.1.1 二进制整数441

15.1 二进制数、位和字节441

15.1.3 二进制浮点数442

15.1.2 有符号整数442

15.2.2 十六进制443

15.2.1 十进制443

15.2 其他基数443

15.3.1 位逻辑运算符444

15.3 C的位运算符444

15.3.2 用法:掩码445

15.3.4 用法:关闭位446

15.3.3 用法:打开位446

15.3.7 移位运算符447

15.3.6 用法:查看一位的值447

15.3.5 用法:转置位447

15.3.8 编程实例448

15.3.9 另一个实例449

15.4 位字段451

15.4.1 位字段实例452

15.4.2 位字段和位运算符454

15.5 关键概念458

15.7 复习题459

15.6 总结459

15.8 编程练习460

第16章 C预处理器和C库462

16.2 明显常量:#define463

16.1 第一步463

16.2.2 重定义常量466

16.2.1 语言符号466

16.3 在#define中使用参数467

16.3.2 预处理器的粘合剂:##运算符469

16.3.1 利用宏参数创建字符串:#运算符469

16.3.3 可变宏:...和____VA_ARGS____470

16.4 宏,还是函数471

16.5 文件包含:#include472

16.5.1 头文件:一个实例473

16.5.2 使用头文件474

16.6.2 已定义:C预处理器的观点475

16.6.1 #undef指令475

16.6 其他指令475

16.6.3 条件编译476

16.6.4 预定义宏479

16.6.5 #line和#error480

16.7 内联函数481

16.6.6 #pragma481

16.8.1 访问C库483

16.8 C库483

16.8.2 参考库描述484

16.9 数学库485

16.10.1 exit()和atexit()函数487

16.10 通用工具库487

16.10.2 qsort()函数488

16.11 诊断库492

16.12 string.h库中的memcpy()和memmove()493

16.13 可变参数:stdarg.h494

16.16 复习题496

16.15 总结496

16.14 关键概念496

16.17 编程练习497

第17章 高级数据表示500

17.1 研究数据表示501

17.2 从数组到链表503

17.2.1 使用链表506

17.2.2 反思508

17.3 抽象数据类型(ADT)509

17.3.2 构造接口510

17.3.1 变得抽象510

17.3.3 使用接口513

17.3.4 实现接口514

17.4 队列ADT520

17.4.1 实现接口的数据表示521

17.4.2 测试队列528

17.5 用队列进行模拟529

17.6 链表与数组534

17.7 二叉搜索树537

17.7.1 二叉树ADT537

17.7.2 二叉搜索树的接口538

17.7.3 二叉树的实现540

17.7.4 试用树551

17.7.5 树的思想555

17.8 其他说明556

17.10 总结557

17.11 复习题557

17.12 编程练习557

17.9 关键概念557

附录A 复习题答案559

附录B 参考资料590

热门推荐