图书介绍

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

零基础学C语言
  • 康莉,李宽等编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111266037
  • 出版时间:2009
  • 标注页数:378页
  • 文件大小:253MB
  • 文件页数:400页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

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

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

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

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

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

图书目录

写给未来的程序员1

前言1

第一篇 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 面向过程的语言5

1.3.5 什么是C语言5

1.4 程序开发周期5

1.4.1 编辑C源代码6

1.4.2 编译C源代码6

1.4.3 连接目标文件7

1.4.4 编译连接过程示例7

1.4.5 运行程序8

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

1.6 小结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 定义新工程14

2.2.5 添加源代码到工程15

2.2.6 编译器设置15

2.2.7 连接器设置15

2.2.8 调试器设置16

2.2.9 开始编辑代码16

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

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

2.4.1 debug一词的由来18

2.4.2 设置断点19

2.4.3 调试运行19

2.5 小结20

第3章 分解Hello World—最简单C程序的组成21

3.1 C程序概貌21

3.2 程序员的解释—注释21

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

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

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

3.5.1 函数声明及其作用25

3.5.2 试验寻找#include的作用26

3.5.3 #include的作用27

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

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

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

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

3.7.3 变量及其使用30

3.8 自己设计C函数31

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

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

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

3.8.4 如何自编写函数33

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

3.9 语句构成程序35

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

3.11 小结36

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

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

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

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

4.4 数据类型40

4.4.1 整数类型41

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

4.4.3 实数类型44

4.4.4 字符类型45

4.4.5 数据类型总结45

4.5 常量46

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

4.5.2 符号常量的优点48

4.5.3 字面常量的书写格式48

4.5.4 转义字符50

4.5.5 字符串51

4.6 变量52

4.6.1 变量的声明52

4.6.2 变量声明的意义53

4.6.3 标识符和关键字54

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

4.6.5 变量赋初值59

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

4.7.1 累加和累乘60

4.7.2 交换两个变量的值62

4.8 小结63

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

5.1 输入一处理一输出:这就是程序64

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

5.2.1 printf函数的一般形式65

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

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

5.2.4 %最小宽度d格式符68

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

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

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

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

5.2.9 %c格式符70

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

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

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

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

5.2.14 printf函数小结76

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

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

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

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

5.4.1 一般形式80

5.4.2 scanf函数的工作原理80

5.4.3 多数据输入分隔规则82

5.4.4 格式字符83

5.4.5 scanf使用方法说明84

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

5.5 字符输入函数getchar89

5.6 输入输出程序举例89

5.7 小结92

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

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

6.1.1 认识运算符和表达式93

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

6.1.3 C运算符简介94

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

6.2.1 基本的算术运算符95

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

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

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

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

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

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

6.4.1 关系运算符的种类102

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

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

6.5.1 逻辑运算符103

6.5.2 逻辑真值表104

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

6.6.1 赋值表达式105

6.6.2 复合赋值运算符105

6.6.3 类型转换106

6.6.4 左值与程序实体106

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

6.7.1 强制类型转换107

6.7.2 自动类型转换108

6.7.3 函数调用时的转换109

6.8 运算符的优先级109

6.8.1 优先级、结合性汇总110

6.8.2 短路表达式110

6.8.3 sizeof算符与sizeof表达式111

6.9 小结111

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

7.1 5种语句类型112

7.1.1 表达式语句112

7.1.2 函数调用语句113

7.1.3 空语句113

7.1.4 复合语句(块语句)113

7.1.5 流程控制语句114

7.2 结构化程序设计114

7.2.1 什么是算法114

7.2.2 算法的表示114

7.2.3 算法的伪代码表示151

7.2.4 算法的流程图表示115

7.2.5 3种控制结构115

7.2.6 算法示例116

7.3 小结117

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

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

8.1.1 判断表达式118

8.1.2 花括号和if结构体119

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

8.2.1 关键在else120

8.2.2 if else结构体121

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

8.3.1 多分支122

8.3.2 多分支if结构124

8.3.3 分支语句嵌套125

8.4 开关语句—switch结构126

8.4.1 一般形式126

8.4.2 为什么叫开关语句128

8.4.3 default语句130

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

8.5 小结130

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

9.1 构造循环131

9.1.1 循环的条件131

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

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

9.2.1 语法规则133

9.2.2 代码块133

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

9.3.1 基本形式134

9.3.2 表达式省略136

9.3.3 循环终止和步长137

9.4 循环嵌套137

9.4.1 嵌套示例137

9.4.2 嵌套的效率138

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

9.5.1 跳出循环—break139

9.5.2 重来一次—continue140

9.5.3 随心所欲—goto140

9.6 小结141

第二篇 一窥C语言门庭143

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

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

10.1.1 分割143

10.1.2 库函数和自定义函数144

10.2 自定义函数144

10.2.1 定义的语法144

10.2.2 函数定义范例145

10.2.3 不要重复定义146

10.3 函数调用与返回146

10.3.1 形参和实参146

10.3.2 传址调用147

10.3.3 函数返回149

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

10.4.1 函数声明的语法150

10.4.2 声明不同于定义151

10.4.3 标准库函数的声明152

10.5 面向过程的程序结构152

10.5.1 模块化152

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

10.5.3 一个入口一个出口153

10.5.4 自顶向下,逐步求精153

10.5.5 封装和可重用153

10.5.6 高内聚,低耦合154

10.6 小结154

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

11.1 什么是数组155

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

11.1.2 数组元素的访问156

11.2 一维数组156

11.2.1 一维数组的声明156

11.2.2 一维数组元素的访问156

11.2.3 数组的初始化157

11.2.4 不合法的数组操作158

11.3 二维数组159

11.3.1 二维数组的声明159

11.3.2 二维数组的初始化159

11.3.3 二维数组应用举例160

11.4 更高维的数组161

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

11.4.2 初始化161

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

11.5 小结163

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

12.1 计算机中的内存164

12.1.1 内存地址164

12.1.2 内存中保存的内容164

12.1.3 地址就是指针165

12.2 指针的定义165

12.2.1 指针变量的声明165

12.2.2 指针变量的初始化166

12.2.3 指针变量的值166

12.2.4 取地址操作符&166

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

12.2.6 指向指针的指针167

12.3 使用指针168

12.3.1 运算符168

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

12.3.3 同类型指针的赋值169

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

12.4 指针的运算172

12.4.1 算术运算之“指针+整数”或“指针一整数”172

12.4.2 指针一指针173

12.4.3 指针的大小比较174

12.5 指针表达式与左值174

12.5.1 指针与整型175

12.5.2 指针与左值175

12.5.3 指针与const175

12.6 动态内存分配176

12.6.1 动态分配的好处177

12.6.2 malloc与free函数177

12.6.3 calloc与free函数178

12.6.4 free函数与指针179

12.6.5 内存泄漏180

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

12.7 小结180

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

13.1 C风格字符串181

13.1.1 C风格字符串的声明181

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

13.2 字符数组的输入输出182

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

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

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

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

13.3 字符串处理函数185

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

13.3.2 strlen函数与size_t187

13.3.3 字符串复制函数strcpy188

13.3.4 字符串比较函数strcmp189

13.3.5 字符串连接函数strcat190

13.3.6 全转换为大写形式190

13.3.7 链式操作191

13.4 小结192

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

14.1 结构体193

14.1.1 结构体的定义193

14.1.2 声明结构体变量194

14.1.3 初始化结构变量194

14.1.4 访问结构体成员194

14.1.5 结构体定义的位置195

14.1.6 结构体变量赋值196

14.2 特殊结构体196

14.2.1 结构体嵌套197

14.2.2 匿名结构体200

14.3 共用体200

14.3.1 什么是共用体200

14.3.2 共用体的定义200

14.3.3 声明共用体变量201

14.3.4 共用体变量的初始化201

14.3.5 共用体成员访问201

14.3.6 共用体赋值202

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

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

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

14.4.3 字节对齐204

14.4.4 最宽基本类型204

14.4.5 共用体的大小206

14.5 枚举类型206

14.5.1 枚举类型的定义206

14.5.2 声明枚举变量207

14.5.3 枚举常量是什么207

14.6 给类型取个别名—typedef208

14.6.1 typedef基本用法208

14.6.2 #define用法208

14.7 小结208

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

15.1 什么是位运算209

15.1.1 开灯关灯209

15.1.2 改变状态209

15.2 位逻辑运算符210

15.2.1 位取反操作210

15.2.2 位与运算210

15.2.3 位或运算210

15.2.4 位异或210

15.2.5 实例分析211

15.3 移位运算212

15.3.1 基本形式212

15.3.2 移位举例212

15.4 小结213

第三篇 C语言进阶215

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

16.1 什么是文件215

16.1.1 文件215

16.1.2 流216

16.1.3 重定向216

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

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

16.2 C语言如何使用文件217

16.2.1 文件型指针217

16.2.2 文件操作的步骤218

16.3 文件的打开与关闭218

16.3.1 打开文件—fopen218

16.3.2 打开是否成功219

16.3.3 关闭文件—fclose219

16.4 文件的读写220

16.4.1 读写的相对参照220

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

16.4.3 字符读写函数—fgetc和fputc220

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

16.4.5 块读写函数—fread和fwrite224

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

16.5 文件的定位229

16.5.1 移到开头—rewind229

16.5.2 得到当前位置—ftell229

16.5.3 移动指针—fseek229

16.6 小结230

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

17.1 指针与数组232

17.1.1 数组名指针232

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

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

17.1.4 指向数组的指针变量234

17.1.5 指针数组235

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

17.2.1 两种访问形式236

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

17.2.3 结构数组的初始化236

17.2.4 结构数组的使用238

17.2.5 指向结构数组的指针238

17.3 函数指针239

17.3.1 函数名指针239

17.3.2 指向函数的指针240

17.3.3 函数指针类型241

17.3.4 函数指针作函数参数242

17.3.5 函数指针数组243

17.3.6 指向函数指针的指针244

17.4 小结245

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

18.1 参数传递的副本机制247

18.1.1 传值调用的副本机制247

18.1.2 传址调用的副本机制248

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

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

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

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

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

18.3 函数与结构体253

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

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

18.3.3 返回结构体的函数255

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

18.4 函数与数组256

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

18.4.2 数组名作为函数参数257

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

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

18.5. 递归261

18.5.1 递归流程261

18.5.2 递归两要素262

18.5.3 效率与可读性262

18.6 带参数的主函数262

18.7 小结263

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

19.1 内存分配264

19.1.1 内存分区264

19.1.2 变量的存储类别265

19.1.3 生存期265

19.1.4 作用域与可见域265

19.2 auto变量266

19.2.1 定义格式266

19.2.2 作用域和生存期266

19.2.3 屏蔽267

19.2.4 重复定义268

19.2.5 初始化269

19.3 register变量269

19.3.1 定义格式269

19.3.2 使用举例269

19.4 extern变量270

19.4.1 全局变量定义270

19.4.2 全局变量声明271

19.4.3 可见域272

19.4.4 屏蔽273

19.4.5 利与弊275

19.5 static变量275

19.5.1 定义格式275

19.5.2 静态局部变量276

19.5.3 静态全局变量277

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

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

19.6.1 内部函数278

19.6.2 外部函数279

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

19.7.1 定义位置与可见域280

19.7.2 允许重复定义280

19.8 小结281

第20章 编译及预处理282

20.1 编译流程282

20.1.1 编辑282

20.1.2 预处理282

20.1.3 编译283

20.1.4 连接283

20.2 程序错误283

20.2.1 错误分类284

20.2.2 编译错误284

20.2.3 连接错误284

20.2.4 逻辑错误284

20.2.5 排错285

20.3 预处理命令之宏定285

20.3.1 宏定义285

20.3.2 不带参数的宏定义285

20.3.3 带参数的宏定义287

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

20.3.5 文件包含290

20.3.6 条件编译291

20.4 小结292

第21章 数据结构293

21.1 链表293

21.1.1 链表的结构293

21.1.2 创建链表并遍历输出294

21.1.3 链表的插入296

21.1.4 链表结点的删除299

21.1.5 链表的逆置301

21.1.6 链表的销毁302

21.1.7 综合实例303

21.1.8 循环链表308

21.1.9 双链表308

21.2 栈和队列312

21.2.1 栈的定义312

21.2.2 栈的分类312

21.2.3 栈的操作312

21.2.4 函数与栈315

21.2.5 队列315

21.3 小结318

第四篇 C语言程序设计实例319

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

22.1 黑白棋319

22.1.1 程序功能要求319

22.1.2 输入输出样例319

22.1.3 程序分析319

22.1.4 程序初始化320

22.1.5 初始化图形设备321

22.1.6 绘制棋盘321

22.1.7 交替绘制黑白棋322

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

22.1.9 小结336

22.2 五子棋337

22.2.1 程序功能要求337

22.2.2 输入输出样例337

22.2.3 程序分析337

22.2.4 主函数程序设计339

22.2.5 系统初始化340

22.2.6 移动棋子模块340

22.2.7 程序胜负判定344

22.2.8 小结348

22.3 扫雷游戏348

22.3.1 程序功能要求348

22.3.2 输入输出样例348

22.3.3 程序分析348

22.3.4 程序设计351

22.3.5 初始化图形设备353

22.3.6 事件处理模块355

22.3.7 游戏处理部分360

22.3.8 小结363

22.4 速算24363

22.4.1 程序功能要求363

22.4.2 输入输出样例363

22.4.3 程序分析364

22.4.4 程序设计365

22.4.5 扑克牌处理部分367

22.4.6 程序运算部分369

22.4.7 小结371

22.5 病毒检测与清除371

22.5.1 程序功能要求371

22.5.2 程序分析372

22.5.3 程序设计372

22.5.4 小结376

附录 ASCII编码表377

热门推荐