图书介绍

零基础学C语言 第2版PDF|Epub|txt|kindle电子书版本网盘下载

零基础学C语言 第2版
  • 康莉,李宽,陈国建等编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111372929
  • 出版时间:2012
  • 标注页数:404页
  • 文件大小:86MB
  • 文件页数:426页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

零基础学C语言 第2版PDF格式电子书版下载

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

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

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

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

图书目录

第一篇C语言基础1

第1章 踏上征程前的思想动员1

1.1为什么选择C语言1

1.2如何学好C语言2

1.3语言概述3

1.3.1什么是语言3

1.3.2什么是机器语言3

1.3.3什么是汇编语言4

1.3.4面向过程的语言4

1.3.5什么是C语言4

1.4深刻认识程序如何开发出来——程序开发周期5

1.4.1编辑C源代码6

1.4.2编译C源代码6

1.4.3连接目标文件7

1.4.4编译连接过程示例7

1.4.5运行程序9

1.5 VC++、C++、C和TC——认识开发环境和语言的区别9

1.6小结11

1.7上机实践11

第2章 跟我写Hello World12

2.1自己动手创建程序12

2.2认识LCC-Win32开发环境12

2.2.1为什么选择LCC-Win3213

2.2.2启动LCC-Win3213

2.2.3新建Hello World工程13

2.2.4定义新工程13

2.2.5添加源代码到工程14

2.2.6编译器设置15

2.2.7连接器设置15

2.2.8调试器设置15

2.2.9开始编辑代码16

2.3编译运行——欣赏你的杰作17

2.4查看代码如何一步一步被执行——调试排错(debug)18

2.4.1 debug一词的由来18

2.4.2设置断点19

2.4.3调试运行19

2.5小结20

2.6上机实践20

第3章 分解HelloWorld——最简单C程序的组成22

3.1 C程序概貌22

3.2为何有必要在代码里留下程序员的解释——注释23

3.3从哪里开始,到哪里结束——main函数24

3.4如何在屏幕上显示文字——函数调用25

3.5编译器如何认识printf 函数——#include预处理器指示符26

3.5.1函数声明及其作用26

3.5.2试验寻找#include的作用27

3.5.3 #include的作用28

3.6计算1+1——有些小作为的程序29

3.7数据从哪里来,又到哪里去——变量30

3.7.1变量在内存中的表现形式30

3.7.2编译器使用变量符号表30

3.7.3变量及其使用31

3.8自己设计C函数32

3.8.1在main函数中计算3个整数的平均数33

3.8.2在main函数中分3次计算3个整数的平均数33

3.8.3自编函数实现计算3个整数的平均数34

3.8.4如何自编写函数35

3.8.5试验观察总结函数声明和函数定义的意义36

3.9语句构成程序37

3.10向好程序员看齐——代码风格38

3.11小结38

3.12上机实践38

第4章 如何存储和获取数据——变量及数据类型40

4.1二进制、八进制、十六进制40

4.2计算机中如何表示数据——字节和位41

4.3内存是存储数据的“房间”——认识计算机内存43

4.4数据类型43

4.4.1整数类型44

4.4.2整数的正负——有符号和无符号46

4.4.3实数类型47

4.4.4字符类型48

4.4.5数据类型总结48

4.5常量49

4.5.1直接常量(字面常量)和符号常量49

4.5.2符号常量的优点51

4.5.3字面常量的书写格式52

4.5.4转义字符53

4.5.5字符串55

4.6变量55

4.6.1变量的声明56

4.6.2变量声明的意义56

4.6.3标识符和关键字57

4.6.4变量在内存中占据的空间和变量的值60

4.6.5变量赋初值62

4.7几个与变量相关的经典算法63

4.7.1累加和累乘63

4.7.2交换两个变量的值65

4.8小结66

4.9上机实践66

第5章 用屏幕和键盘交互——简单的输出和输入68

5.1输入—处理—输出:这就是程序68

5.2向屏幕输出——printf函数详解68

5.2.1 printf函数的一般形式69

5.2.2格式字符串的一般形式71

5.2.3 %d——十进制形式输出带符号整数71

5.2.4%最小宽度d格式符72

5.2.5 %ld格式符——以长整型方式输出73

5.2.6%o格式符——以八进制形式输出整数73

5.2.7 %x格式符——以十六进制的形式输出整数74

5.2.8 %u格式符——以十进制形式输出unsigned型数据74

5.2.9 %c格式符75

5.2.10 %s格式符——输出字符串76

5.2.11 %f格式符——输出实型数据78

5.2.12 %e格式符——以指数形式输出实数79

5.2.13 %g格式符——自动选择%f或者%e形式输出80

5.2.14 printf函数小结80

5.3字符输出putchar和字符串输出puts81

5.3.1 putchar函数(字符输出函数)81

5.3.2 puts函数(字符串输出函数)83

5.4接收键盘输入——scanf函数详解84

5.4.1一般形式84

5.4.2 scanf函数的工作原理85

5.4.3多数据输入分隔规则86

5.4.4格式字符88

5.4.5 scanf使用方法说明89

5.4.6使用scanf函数的注意事项91

5.5字符输入函数getchar93

5.6输入输出程序举例94

5.7小结97

5.8上机实践97

第6章 程序的基本构成——运算符和表达式98

6.1认识C中的运算符和表达式98

6.1.1认识运算符和表达式98

6.1.2操作数、运算符和表达式99

6.1.3 C运算符简介99

6.2算术运算符和算术表达式100

6.2.1基本的算术运算符100

6.2.2++自增、——自减运算符102

6.2.3算术表达式和运算符的优先级及结合性104

6.3逗号运算符和逗号表达式105

6.3.1逗号表达式的一般形式105

6.3.2逗号表达式的优先级和结合性106

6.4关系运算符和关系表达式107

6.4.1关系运算符的种类107

6.4.2关系表达式的一般形式107

6.5逻辑运算符和逻辑表达式109

6.5.1逻辑运算符109

6.5.2逻辑真值表109

6.6赋值运算符和赋值表达式110

6.6.1赋值表达式110

6.6.2复合赋值运算符111

6.6.3类型转换111

6.6.4左值与程序实体112

6.7强制类型转换和自动类型转换112

6.7.1强制类型转换112

6.7.2自动类型转换113

6.7.3函数调用时的转换115

6.8运算符的优先级115

6.8.1优先级、结合性汇总115

6.8.2短路表达式116

6.8.3 sizeof运算符与sizeof表达式116

6.9小结116

6.10上机实践117

第7章 程序的最小独立单元——语句118

7.1 5种语句类型118

7.1.1表达式语句118

7.1.2函数调用语句119

7.1.3空语句119

7.1.4复合语句(块语句)119

7.1.5流程控制语句120

7.2结构化程序设计120

7.2.1什么是算法120

7.2.2算法的表示120

7.2.3算法的伪代码表示121

7.2.4算法的流程图表示121

7.2.5 3种控制结构121

7.2.6算法示例122

7.3小结122

7.4上机实践122

第8章 条件判断——分支结构123

8.1简单的条件判断——if 语句123

8.1.1判断表达式123

8.1.2花括号和if结构体124

8.2两条岔路的选择——if else结构125

8.2.1关键在else125

8.2.2 if else结构体126

8.3多分支语句和分支语句嵌套127

8.3.1多分支127

8.3.2多分支if结构128

8.3.3分支语句嵌套130

8.4开关语句——switch结构131

8.4.1一般形式131

8.4.2为什么叫开关语句133

8.4.3 default语句135

8.4.4 if结构和switch结构之比较135

8.5小结135

8.6上机实践135

第9章 一遍又一遍——循环结构137

9.1构造循环137

9.1.1循环的条件137

9.1.2当型循环和直到型循环138

9.2简洁循环语句——while和do while结构138

9.2.1语法规则139

9.2.2代码块140

9.3最常用的循环语句——for结构140

9.3.1基本形式140

9.3.2表达式省略142

9.3.3循环终止和步长143

9.4循环嵌套143

9.4.1嵌套示例144

9.4.2嵌套的效率144

9.5与循环密切相关的流程转向控制语句145

9.5.1跳出循环——break145

9.5.2重来一次——continue146

9.5.3随心所欲—— goto147

9.6小结148

9.7上机实践148

第二篇 一窥C语言门庭149

第10章 写程序就是写函数——函数入门149

10.1什么是函数——根据输入进行处理返回输出149

10.1.1分割149

10.1.2库函数和自定义函数150

10.2自定义函数150

10.2.1定义的语法150

10.2.2函数定义范例151

10.2.3不要重复定义152

10.3函数调用与返回152

10.3.1形参和实参152

10.3.2传址调用154

10.3.3函数返回155

10.4告诉编译器有这么一个函数——函数原型声明156

10.4.1函数声明的语法156

10.4.2声明不同于定义158

10.4.3标准库函数的声明158

10.5面向过程的程序结构158

10.5.1模块化159

10.5.2函数的调用过程——模块的配合159

10.5.3一个入口一个出口159

10.5.4自顶向下,逐步求精159

10.5.5封装和可重用160

10.5.6高内聚,低耦合160

10.6小结160

10.7上机实践161

第11章 同一类型多个元素的集合——简单数组162

11.1什么是数组162

11.1.1数组是一大片连续内存空间162

11.1.2数组元素的访问163

11.2一维数组163

11.2.1一维数组的声明163

11.2.2一维数组元素的访问164

11.2.3数组的初始化164

11.2.4不合法的数组操作165

11.3二维数组166

11.3.1二维数组的声明166

11.3.2二维数组的初始化167

11.3.3二维数组应用举例167

11.4更高维的数组168

11.4.1高维数组的声明和元素访问169

11.4.2初始化169

11.4.3多维数组在内存中是如何排列元素的170

11.5小结170

11.6上机实践171

第12章C语言难点——指针初探172

12.1计算机中的内存172

12.1.1内存地址172

12.1.2内存中保存的内容173

12.1.3地址就是指针173

12.2指针的定义173

12.2.1指针变量的声明174

12.2.2指针变量的初始化174

12.2.3指针变量的值174

12.2.4取地址操作符175

12.2.5指针变量占据一定的内存空间175

12.2.6指向指针的指针176

12.3使用指针176

12.3.1运算符176

12.3.2指针的类型和指针所指向的类型177

12.3.3同类型指针的赋值178

12.3.4指针的类型和指针所指向的类型不同178

12.4指针的运算180

12.4.1算术运算之“指针+整数”或“指针-整数”180

12.4.2指针-指针181

12.4.3指针的大小比较182

12.5指针表达式与左值183

12.5.1指针与整型183

12.5.2指针与左值183

12.5.3指针与const183

12.6动态内存分配185

12.6.1动态分配的好处185

12.6.2 malloc与free函数185

12.6.3 calloc与free函数187

12.6.4 free函数与指针187

12.6.5内存泄漏188

12.6.6释放已经释放了的内存会出问题188

12.7小结189

12.8上机实践189

第13章 字符串及字符串操作190

13.1 C风格字符串190

13.1.1 C风格字符串的声明190

13.1.2 C风格字符串在内存中的表示190

13.2字符数组的输入输出191

13.2.1字符数组可以进行整体输入输出191

13.2.2使用gets函数读入整行输入192

13.2.3访问字符数组中某个元素193

13.2.4更便捷的输出——使用puts函数193

13.3字符串处理函数194

13.3.1理解:数组名是常指针194

13.3.2 strlen函数与size_t196

13.3.3字符串复制函数strcpy197

13.3.4字符串比较函数strcmp198

13.3.5字符串连接函数strcat199

13.3.6全转换为大写形式200

13.3.7链式操作201

13.4小结201

13.5上机实践201

第14章 结构体、共用体、枚举和typedef203

14.1结构体203

14.1.1结构体的定义203

14.1.2声明结构体变量204

14.1.3初始化结构变量204

14.1.4访问结构体成员205

14.1.5结构体定义的位置205

14.1.6结构体变量赋值206

14.2特殊结构体207

14.2.1结构体嵌套207

14.2.2匿名结构体210

14.3共用体210

14.3.1什么是共用体210

14.3.2共用体的定义210

14.3.3声明共用体变量211

14.3.4共用体变量的初始化211

14.3.5共用体成员访问211

14.3.6共用体赋值213

14.4结构体和共用体的内存差异213

14.4.1结构体变量和共用体变量内存形式的不同213

14.4.2结构体变量的内存大小213

14.4.3字节对齐214

14.4.4最宽基本类型215

14.4.5共用体的大小216

14.5枚举类型216

14.5.1枚举类型的定义216

14.5.2声明枚举变量217

14.5.3枚举常量是什么217

14.6给类型取个别名——typedef218

14.6.1 typedef基本用法218

14.6.2 #define用法218

14.7小结219

14.8上机实践219

第15章 如何节省内存——位运算220

15.1什么是位运算220

15.1.1开灯关灯220

15.1.2改变状态220

15.2位逻辑运算符221

15.2.1位取反操作221

15.2.2位与运算221

15.2.3位或运算221

15.2.4位异或221

15.2.5实例分析222

15.3移位运算223

15.3.1基本形式223

15.3.2移位举例223

15.4小结224

15.5上机实践224

第三篇C语言进阶227

第16章 存储不仅仅局限于内存——文件227

16.1什么是文件227

16.1.1文件227

16.1.2流228

16.1.3重定向228

16.1.4文件的处理形式——缓冲区和非缓冲区228

16.1.5文件的存储形式——文本形式和二进制形式229

16.2 C语言如何使用文件229

16.2.1文件型指针229

16.2.2文件操作的步骤230

16.3文件的打开与关闭230

16.3.1打开文件——fopen230

16.3.2打开是否成功231

16.3.3关闭文件——fclose232

16.4文件的读写232

16.4.1读写的相对参照232

16.4.2如何判断文件已经结束232

16.4.3字符读写函数——fgetc和fputc233

16.4.4字符串读写函数——fgets和fputs234

16.4.5块读写函数——fread和fwrite236

16.4.6格式化文件输入输出——fprintf 与fscanf239

16.5文件的定位241

16.5.1移到开头——rewind241

16.5.2得到当前位置——ftell242

16.5.3移动指针——fseek242

16.6小结243

16.7上机实践243

第17章 灵活却难以理解——指针进阶245

17.1指针与数组245

17.1.1数组名指针245

17.1.2使用数组名常指针表示数组元素246

17.1.3指向数组元素的指针变量246

17.1.4指向数组的指针变量247

17.1.5指针数组248

17.2指针、结构体和结构体数组249

17.2.1两种访问形式249

17.2.2声明创建一个结构数组249

17.2.3结构数组的初始化250

17.2.4结构数组的使用251

17.2.5指向结构数组的指针251

17.3函数指针2

17.3.1函数名指针252

17.3.2指向函数的指针253

17.3.3函数指针类型254

17.3.4函数指针做函数参数256

17.3.5函数指针数组256

17.3.6指向函数指针的指针258

17.4小结258

17.5上机实践258

第18章 更深入的理解——函数进阶260

18.1参数传递的副本机制260

18.1.1传值调用的副本机制260

18.1.2传址调用的副本机制261

18.2函数返回值的副本机制264

18.2.1 return局部变量为什么合法264

18.2.2返回指针申请动态内存265

18.2.3不要返回指向栈内存的指针266

18.2.4返回指向只读存储区的指针266

18.3函数与结构体267

18.3.1结构体变量的传值和传址调用267

18.3.2结构体变量的成员作为函数参数268

18.3.3返回结构体的函数269

18.3.4返回结构体指针的函数270

18.4函数与数组270

18.4.1数组元素作为函数参数270

18.4.2数组名作为函数参数271

18.4.3多维数组名作为函数参数273

18.4.4数组名作为函数参数时的退化274

18.5递归274

18.5.1递归流程274

18.5.2递归两要素276

18.5.3效率与可读性276

18.6带参数的主函数276

18.7小结277

18.8上机实践277

第19章 生存期、作用域与可见域279

19.1内存分配279

19.1.1内存分区279

19.1.2变量的存储类别280

19.1.3生存期280

19.1.4作用域与可见域280

19.2 auto变量281

19.2.1定义格式281

19.2.2作用域和生存期282

19.2.3屏蔽282

19.2.4重复定义283

19.2.5初始化284

19.3 register变量284

19.3.1定义格式284

19.3.2使用举例285

19.4 extern变量286

19.4.1全局变量定义286

19.4.2全局变量声明286

19.4.3可见域287

19.4.4屏蔽289

19.4.5利与弊290

19.5 static变量291

19.5.1定义格式291

19.5.2静态局部变量291

19.5.3静态全局变量292

19.5.4 extern变量和static变量的初始化293

19.6函数的作用域与可见域294

19.6.1内部函数294

19.6.2外部函数295

19.7结构体定义的作用域与可见域295

19.7.1定义位置与可见域295

19.7.2允许重复定义296

19.8小结297

19.9上机实践297

第20章 编译及预处理299

20.1编译流程299

20.1.1编辑299

20.1.2预处理300

20.1.3编译300

20.1.4连接300

20.2程序错误301

20.2.1错误分类301

20.2.2编译错误301

20.2.3连接错误301

20.2.4逻辑错误302

20.2.5排错302

20.3预处理命令之宏定义302

20.3.1宏定义302

20.3.2不带参数的宏定义303

20.3.3带参数的宏定义304

20.3.4 #define定义常量与 const常量307

20.3.5文件包含307

20.3.6条件编译308

20.4小结310

20.5上机实践3

第21章 数据结构311

21.1链表311

21.1.1链表的结构311

21.1.2创建链表并遍历输出312

21.1.3链表的插入314

21.1.4链表结点的删除317

21.1.5链表的逆置319

21.1.6链表的销毁321

21.1.7综合实例321

21.1.8循环链表326

21.1.9双链表327

21.2栈和队列330

21.2.1栈的定义330

21.2.2栈的分类330

21.2.3栈的操作331

21.2.4函数与栈333

21.2.5队列334

21.3小结337

21.4上机实践337

第四篇C语言程序设计实例与面试题解析339

第22章C语言程序课程设计:游戏339

22.1黑白棋339

22.1.1程序功能要求339

22.1.2输入输出样例339

22.1.3程序分析340

22.1.4程序初始化341

22.1.5初始化图形设备341

22.1.6绘制棋盘341

22.1.7交替绘制黑白棋342

22.1.8游戏(同时判断是否有一方胜利)342

22.1.9小结357

22.2五子棋357

22.2.1程序功能要求357

22.2.2输入输出样例358

22.2.3程序分析358

22.2.4主函数程序设计360

22.2.5系统初始化361

22.2.6移动棋子模块361

22.2.7程序胜负判定365

22.2.8小结369

22.3扫雷游戏369

22.3.1程序功能要求369

22.3.2输入输出样例370

22.3.3程序分析370

22.3.4程序设计372

22.3.5初始化图形设备374

22.3.6事件处理模块377

22.3.7游戏处理部分382

22.3.8小结385

22.4速算24385

22.4.1程序功能要求385

22.4.2输入输出样例385

22.4.3程序分析386

22.4.4程序设计387

22.4.5扑克牌处理部分389

22.4.6程序运算部分392

22.4.7小结393

第23章面试题解析394

23.1基础知识394

23.1.1指针自增自减有什么不同394

23.1.2什么是递归394

23.1.3宏定义与操作符的区别395

23.1.4引用与值传递的区别395

23.1.5指针和引用有什么区别395

23.1.6什么是栈395

23.1.7 main函数执行前还会执行什么代码395

23.1.8 static有什么用途395

23.1.9定义int **a[3][4],则变量占用的内存空间为多少396

23.1.10什么是预编译396

23.1.11 int (*s[10])(int)表示什么意义396

23.1.12结构与联合有何区别396

23.2算法和思维逻辑知识396

23.2.1 100美元哪里去了397

23.2.2将16升水平均分给四个人397

23.2.3算出小王买了几瓶啤酒、几瓶饮料397

23.2.4找出不同的苹果398

23.2.5找出不同的球398

23.2.6猜自己的帽子颜色399

23.2.7三筐水果各是什么400

23.2.8最后剩下的是谁401

23.2.9聪明的商人402

23.2.10红球和白球402

23.2.11乌龟赛跑402

23.2.12投硬币402

附录ASCII编码表403

热门推荐