图书介绍

跟我学C语言PDF|Epub|txt|kindle电子书版本网盘下载

跟我学C语言
  • 陈锐,田建新编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302330080
  • 出版时间:2013
  • 标注页数:651页
  • 文件大小:252MB
  • 文件页数:667页
  • 主题词: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语言2

1.1.1选择C语言的好处2

1.1.2 C语言的特点2

1.1.3如何学好C语言3

1.2进制转换4

1.2.1十进制数的表示4

1.2.2二进制数的表示5

1.2.3二进制数、十六进制数和八进制数转换为十进制数6

1.2.4十进制数转换为二进制数6

1.2.5十进制数转换为十六进制数9

1.2.6十进制数转换为八进制数11

1.2.7二进制数与十六进制数、八进制数的转换12

1.3计算机中数的表示13

1.3.1计算机中的正数与负数表示14

1.3.2原码和补码14

1.3.3浮点数17

1.4小结19

第2章C语言开发环境21

2.1 Turbo C 2.0开发环境介绍22

2.1.1运行Turbo C 2.022

2.1.2 Turbo C 2.0环境设置23

2.1.3 Turbo C 2.0的使用25

2.2 Win-TC开发环境介绍27

2.2.1 Win-TC开发环境概述27

2.2.2 Win-TC的使用28

2.3 LCC开发环境介绍30

2.3.1使用LCC开发环境创建项目30

2.3.2 LCC开发环境的介绍32

2.3.3 LCC的使用33

2.4 Visual C+++ 6.0开发环境介绍34

2.4.1使用Visual C+++ 6.0新建项目34

2.4.2使用Visual C+++ 6.0新建源程序文件36

2.4.3使用Visual C+++ 6.0开发环境37

2.5小结38

第3章 基本数据类型39

3.1变量40

3.1.1为什么要使用变量40

3.1.2什么是变量——变量在计算机中的表示40

3.1.3如何定义变量41

3.1.4为什么要有数据类型41

3.1.5 C语言有哪些数据类型42

3.1.6什么符号可以作为变量名——用户定义的标识符43

3.1.7关键字——己经被占用的标识符44

3.1.8初识变量赋值44

3.2整型变量45

3.2.1为什么要使用整型变量45

3.2.2基本整型变量46

3.2.3基本整型变量的输入——使用scanf函数47

3.2.4基本整型变量的输出——使用printf函数49

3.2.5长整型变量——解决大整数问题50

3.2.6短整型变量——节省内存空间52

3.2.7无符号整型变量——只包括非负的整数53

3.2.8整型变量的应用举例54

3.3实型变量57

3.3.1为什么使用实型变量57

3.3.2单精度浮点型变量57

3.3.3双精度浮点型变量60

3.3.4长双精度浮点型变量61

3.3.5实型变量的应用举例62

3.4字符型数据类型64

3.4.1为什么要使用字符型变量64

3.4.2字符型变量64

3.4.3字符型数据的输入与字符型变量值的输出——使用和(null)65

3.4.4字符型变量的应用举例66

3.5常量68

3.5.1为什么使用常量68

3.5.2整型常量68

3.5.3浮点型常量69

3.5.4字符型常量与字符串型常量69

3.5.5常量与常数70

3.6小结70

习题70

第4章 运算符与表达式73

4.1表达式74

4.1.1运算符有哪些74

4.1.2什么是表达式74

4.1.3运算符的优先级与结合性75

4.1.4自动类型转换76

4.2算术运算符与算术表达式77

4.2.1基本算术表达式77

4.2.2自增表达式——+++a和a+++79

4.2.3自减表达式——--a和a--82

4.2.4算术运算符的混合运算——算术运算符的优先级与结合性83

4.2.5算术表达式应用举例84

4.3赋值运算符与赋值表达式及其应用86

4.3.1赋值运算符与赋值表达式86

4.3.2类型转换89

4.3.3赋值表达式的应用举例91

4.4关系运算符与关系表达式及其应用93

4.4.1关系运算符和关系表达式93

4.4.2关系表达式应用举例94

4.5逻辑运算符与逻辑表达式及其应用95

4.5.1逻辑运算符和逻辑表达式95

4.5.2逻辑表达式应用举例97

4.6逗号表达式98

4.6.1逗号运算符与逗号表达式99

4.6.2逗号表达式中应注意的问题99

4.6.3逗号表达式应用举例99

4.7小结100

第5章 顺序结构程序设计101

5.1语句和程序102

5.1.1什么是简单语句102

5.1.2为什么使用复合语句103

5.1.3什么是复合语句103

5.1.4使用复合语句应注意的问题104

5.1.5为什么要有程序105

5.1.6 C语言程序的框架结构106

5.2顺序结构程序设计107

5.2.1顺序结构程序设计的特点——自上而下执行每一个语句107

5.2.2顺序结构程序设计——求圆的面积107

5.2.3顺序结构程序——求一元二次方程ax 2+bx+c=0的根110

5.2.4顺序结构程序设计应用举例——将小写字母转换为大写字母111

5.3小结113

第6章 选择结构程序设计115

6.1条件运算符116

6.1.1为什么要有条件运算符116

6.1.2条件运算符与条件表达式116

6.2 if选择语句119

6.2.1为什么要有if选择语句——理解容易119

6.2.2 if选择语句——单分支选择结构120

6.2.3 if-else选择语句——双分支的选择结构124

6.2.4 if…else if…else选择语句——多分支选择结构126

6.2.5 if选择语句的嵌套131

6.2.6设置标志变量135

6.2.7 if选择语句与条件运算符——相互转换136

6.3 switch选择语句137

6.3.1 switch选择语句137

6.3.2 switch选择语句应用举例138

6.4选择结构程序设计应用举例143

6.5小结151

第7章 循环结构程序设计153

7.1为什么要有循环结构154

7.1.1如何重复输出多个hello world154

7.1.2如何求连续的n个自然数的和154

7.2 while循环语句155

7.2.1 while循环语句——当型循环155

7.2.2 while循环语句应用举例158

7.3 do-while循环语句160

7.3.1为什么要有do-while160

7.3.2 do-while循环语句——直到型循环160

7.3.3 比较while循环结构和do-while循环结构162

7.4 for循环语句165

7.4.1 for循环语句概述165

7.4.2 for循环语句的灵活性169

7.4.3几种循环语句的比较174

7.5 goto语句与goto语句构成的循环语句175

7.5.1 goto语句——无条件转移语句175

7.5.2 goto语句构成的循环语句——向前跳转176

7.5.3 goto语句与while语句、for语句的比较177

7.6 break语句178

7.6.1循环中的“提前开溜”178

7.6.2使用break语句179

7.7 continue语句181

7.7.1为什么要有continue语句181

7.7.2使用continue语句181

7.7.3 continue语句与break语句的区别182

7.7.4 continue语句应用举例183

7.8多重循环程序设计184

7.8.1为什么要有循环的嵌套——一层循环是不能解决所有问题的184

7.8.2循环的嵌套——循环结构中还可以有循环结构185

7.8.3多重循环应用举例——输出乘法口诀表187

7.9循环结构程序应用举例190

7.9.1循环结构程序应用举例——求π的近似值190

7.9.2循环结构程序应用举例——求101~200之间的所有质数193

7.9.3循环结构程序应用举例——质数问题的改进算法195

7.9.4循环结构程序应用举例——百鸡问题196

7.10小结198

第8章 数组199

8.1为什么要有数组200

8.1.1多变量的解决之道——数组的引入200

8.1.2数组就是这个样子——初识数组201

8.1.3数组的数组——维度的出现202

8.2一维数组204

8.2.1一维数组是这样定义的204

8.2.2一维数组的引用——其实很简单205

8.2.3一维数组的初始化——方法有许多206

8.2.4一维数组的应用举例——求数组各元素的平均值208

8.2.5一维数组的应用举例——数组元素的倒排209

8.2.6一维数组的应用举例——冒泡排序211

8.3二维数组214

8.3.1二维数组原来是这样定义的214

8.3.2二维数组的引用——其实并不难216

8.3.3二维数组的初始化——多样的初始化217

8.3.4二维数组应用举例——计算各科成绩的平均分220

8.3.5二维数组应用举例——矩阵的转置222

8.3.6二维数组应用举例——有趣的魔方阵223

8.4字符数组227

8.4.1字符数组是这样定义的227

8.4.2字符数组的初始化228

8.4.3字符数组的连续输出——格式符230

8.4.4字符数组的连续输入——格式符231

8.4.5常用的字符串处理函数232

8.4.6字符数组的应用举例236

8.5小结240

第9章 函数241

9.1为什么要有函数及函数的分类242

9.1.1为什么要有函数242

9.1.2函数有哪些——库函数和用户函数243

9.2函数的定义形式243

9.2.1不带参数的函数定义形式243

9.2.2带参数的函数定义形式——有参数列表244

9.2.3带参数的函数定义形式——形参定义的传统方式245

9.3局部变量与全局变量246

9.3.1局部变量246

9.3.2全局变量248

9.4函数的参数与函数的值250

9.4.1形式参数与实际参数250

9.4.2函数的返回值252

9.5函数的调用254

9.5.1函数调用的一般形式254

9.5.2函数调用的方式256

9.5.3对被调用函数的声明257

9.6函数的嵌套调用260

9.6.1函数的嵌套调用过程260

9.6.2函数的嵌套应用举例261

9.7函数的递归调用262

9.7.1什么是递归——自己调用自己262

9.7.2递归函数应用举例——求n!263

9.7.3递归函数调用应用举例——Fibonacci数列265

9.8数组作为函数的参数266

9.8.1数组元素作为函数的参数——只能传递一个数组元素266

9.8.2数组名作为函数的参数——可以传递整个数组268

9.8.3数组名作为参数传递——实际上传递的是数组的首地址271

9.8.4多维数组名作为函数的参数——传递整个数组275

9.9变量的存储277

9.9.1什么是动态存储与静态存储——生存期不同278

9.9.2 auto变量——自动类型变量278

9.9.3 static变量——静态变量278

9.9.4 register变量——使运行速度更快的变量281

9.9.5 extem变量——声明外部变量282

9.10内部函数与外部函数284

9.10.1内部函数——使用static284

9.10.2外部函数——使用extern285

9.11函数应用举例286

9.11.1函数应用举例——递归求解n个数的最大值286

9.11.2函数应用举例——递归求解a与b的最大公约数288

9.11.3函数应用举例——字符数组元素逆序存放289

9.12小结290

第10章 预处理命令291

10.1宏定义292

10.1.1为什么要有宏定义292

10.1.2不带参数的宏定义292

10.1.3宏定义与常量定义的区别294

10.1.4带参数的宏定义294

10.1.5宏定义中的参数与函数的参数的区别295

10.2文件包含命令297

10.2.1为什么要有文件包含命令297

10.2.2文件包含命令——include297

10.3条件编译299

10.3.1第一种条件编译命令——#ifdef300

10.3.2第二种条件编译命令——#ifdef…#elif…#endif301

10.3.3第三种条件编译命令——#ifndef302

10.3.4第四种条件编译命令——#if303

10.4小结304

第11章 指针305

11.1指针的相关概念306

11.1.1为什么要有指针和指针变量306

11.1.2什么是地址306

11.1.3什么是指针变量——存放地址的变量307

11.2指针变量308

11.2.1定义指针变量308

11.2.2使用指针变量310

11.2.3指针变量作为函数参数313

11.3数组与指针317

11.3.1指向数组元素的指针317

11.3.2通过指针引用数组元素318

11.3.3指针变量的自增运算和自减运算322

11.3.4数组指针作为函数的参数323

11.3.5指向多维数组的指针变量329

11.4字符串与指针336

11.4.1指向字符串的指针变量336

11.4.2字符串指针作为函数的参数342

11.4.3字符数组与字符指针变量的比较346

11.5指针数组与指向指针的指针347

11.5.1指针数组347

11.5.2指向指针的指针351

11.5.3指针数组作为main函数的参数353

11.6函数与指针354

11.6.1函数指针调用函数354

11.6.2指向函数的指针作为函数参数355

11.7返回指针值的函数358

11.7.1为什么函数要返回指针值——可以返回多个值358

11.7.2返回指针类型的函数358

11.8小结360

第12章 结构体和共用体361

12.1结构体362

12.1.1为什么要有结构体362

12.1.2结构体类型的定义363

12.1.3定义结构体变量363

12.1.4引用结构体变量365

12.1.5结构体变量的初始化367

12.2结构体数组369

12.2.1为什么要有结构体数组369

12.2.2定义结构体数组369

12.2.3结构体数组的初始化370

12.2.4结构体数组应用举例371

12.3指针与结构体375

12.3.1指向结构体变量的指针375

12.3.2指向结构体数组的指针376

12.3.3结构体变量和指向结构体的指针作为函数的参数378

12.4 typedef类型定义382

12.4.1 typedef——为数据类型重新起个名字382

12.4.2使用typedef时应注意的问题384

12.4.3 typedef的应用举例384

12.5共用体387

12.5.1为什么要有共用体——节省内存,多选一387

12.5.2定义共用体388

12.5.3引用共用体变量389

12.5.4使用共用体应该注意的问题390

12.5.5共用体应用举例390

12.6枚举类型393

12.6.1为什么要有枚举类型——变量的值只有有限的几种393

12.6.2定义枚举类型及变量394

12.6.3使用枚举类型时应注意的问题394

12.6.4枚举类型应用举例395

12.7小结396

第13章 位运算397

13.1为什么要有位运算与位运算符398

13.1.1为什么要有位运算——提高效率398

13.1.2位运算符398

13.1.3位运算符的优先级与结合性399

13.2位运算符和位运算399

13.2.1按位与运算符和按位与运算399

13.2.2按位或运算符与按位或运算401

13.2.3按位异或运算符与按位异或运算401

13.2.4按位取反运算符与按位取反运算403

13.2.5左移运算符与左移运算404

13.2.6右移运算符与右移运算405

13.2.7与位运算符相结合的赋值运算符405

13.3位运算应用举例406

13.3.1以二进制形式输出一个数——按位与运算并输出1或0406

13.3.2取一个整数的中间几位407

13.4位段409

13.4.1定义位段409

13.4.2引用位段成员410

13.4.3使用位段需要说明的问题411

13.5小结412

第14章 文件413

14.1文件的相关概念414

14.1.1为什么要有文件414

14.1.2文件的分类——二进制文件和文本文件414

14.1.3缓冲文件系统414

14.2打开与关闭文件415

14.2.1文件类型指针——FILE415

14.2.2打开文件——使用fopen函数416

14.2.3关闭文件——使用fclose函数417

14.3读取文件与写入文件418

14.3.1使用fputc函数写文件和使用fgetc函数读取文件418

14.3.2使用fputs函数写文件和使用fgets函数读取文件422

14.3.3使用fwrite函数写文件和使用fread函数读取文件424

14.3.4使用fprintf函数写文件和使用fscanf函数读取文件426

14.4文件的定位428

14.4.1 rewind函数——移动位置指针到文件的开始位置428

14.4.2 fseek函数——移动位置指针到任意位置429

14.4.3 ftell函数——得到位置指针的当前位置431

14.5文件状态检测432

14.5.1 feof函数——检测位置指针是否到了文件末尾432

14.5.2 ferror函数——检测是否操作文件错误432

14.5.3 clearerr函数——清除错误标志433

14.6文件的输入与输出操作函数总结433

14.7小结434

第15章 链表435

15.1链表的相关概念436

15.1.1为什么要有链表——节省内存单元,不用事先定义空间大小436

15.1.2什么是链表436

15.1.3简单链表——静态链表438

15.1.4动态存储分配442

15.2链表的操作443

15.2.1创建链表443

15.2.2链表的输出操作447

15.2.3链表的插入操作449

15.2.4链表的删除操作453

15.2.5链表的综合操作456

15.3链表操作应用举例457

15.3.1链表操作应用举例——逆置链表457

15.3.2链表操作应用举例——约瑟夫问题463

15.4小结467

第16章 键盘和鼠标469

16.1键盘操作470

16.1.1键盘编码470

16.1.2键盘操作函数470

16.2鼠标操作472

16.2.1鼠标的工作原理473

16.2.2鼠标综合应用举例477

16.3小结484

第17章 网络编程基础485

17.1网络基础知识486

17.1.1什么是计算机网络486

17.1.2网络协议486

17.1.3协议分层487

17.1.4网络参考模型488

17.1.5端口491

17.2 WinSocket基础491

17.2.1套接字Socket491

17.2.2基于TCP的Socket编程491

17.2.3基于UDP的Socket编程493

17.3 WinSocket相关函数493

17.3.1 WSAStartup函数——启动套接字库494

17.3.2 Socket函数——建立套接字494

17.3.3 bind函数——绑定本地IP地址和端口495

17.3.4 listen函数——侦听客户端请求496

17.3.5 accept函数——等待客户端的请求496

17.3.6 send函数——发送数据496

17.3.7 recv函数——接收数据497

17.3.8 connect函数——建立连接497

17.3.9 recvfrom函数——接收数据497

17.3.10 sendto函数——发送数据497

17.4基于TCP的简单网络程序498

17.4.1服务器端的程序实现498

17.4.2客户端程序的实现501

17.5基于UDP的简单网络聊天程序503

17.5.1服务器端程序的实现503

17.5.2客户端程序的实现505

17.6小结506

第18章 常用算法507

18.1算法基础508

18.1.1什么是算法及算法的描述语言508

18.1.2算法的特性509

18.1.3算法设计的目标509

18.1.4算法的时间复杂度和空间复杂度510

18.2迭代算法511

18.2.1算法思想511

18.2.2求一个数的平方根511

18.2.3角谷猜想512

18.2.4牛顿迭代法513

18.3递推算法515

18.3.1认识递推515

18.3.2斐波那契数列516

18.3.3分西瓜517

18.3.4该存多少钱518

18.4穷举算法518

18.4.1算法思想519

18.4.2完全数519

18.4.3背包问题520

18.5递归算法521

18.5.1算法思想522

18.5.2数制转换522

18.5.3组合问题523

18.6分治算法525

18.6.1算法思想525

18.6.2求n个数的最大值和最小值525

18.6.3赛程安排问题527

18.7贪心算法530

18.7.1算法思想530

18.7.2加油站问题531

18.7.3找零钱问题532

18.8矩阵算法534

18.8.1打印魔方阵534

18.8.2打印拉丁方阵536

18.8.3将矩阵旋转90度537

18.9小结539

第19章 简单数据结构——栈和队列541

19.1队列542

19.1.1队列的定义542

19.1.2队列的表示与实现543

19.1.3顺序循环队列544

19.1.4顺序循环队列的实现545

19.1.5链式队列的表示与实现547

19.1.6队列的应用——商品货架模拟549

19.2栈553

19.2.1栈的定义553

19.2.2顺序栈的存储结构与实现553

19.2.3链式栈的存储结构与实现555

19.2.4栈的应用举例——算术表达式求值557

19.3小结563

第20章 常用技术——排序565

20.1排序的基础知识566

20.1.1排序的相关概念566

20.1.2排序算法的分类567

20.2插入类排序567

20.2.1直接插入排序568

20.2.2折半插入排序569

20.2.3希尔排序571

20.3选择类排序573

20.3.1简单选择排序573

20.3.2堆排序575

20.4交换类排序582

20.4.1冒泡排序582

20.4.2快速排序584

20.5归并类排序587

20.5.1二路归并排序算法思想587

20.5.2二路归并排序算法实现588

20.6分配类排序591

20.6.1基数排序算法思想591

20.6.2基数排序算法实现592

20.7各种排序方法的比较598

20.8小结599

第21章 学生成绩管理系统601

21.1系统总体设计602

21.1.1项目开发目标602

21.1.2系统功能描述602

21.2系统详细设计603

21.2.1主函数的运行流程603

21.2.2功能模块设计604

21.2.3数据结构设计606

21.2.4函数功能描述606

21.3系统实现与系统测试608

21.3.1编码608

21.3.2系统测试621

21.4小结625

第22章C语言常见错误与程序调试技术627

22.1常见错误628

22.1.1错误分类628

22.1.2常见错误举例628

22.2程序调试632

22.2.1 Visual C+++ 6.0开发环境的程序调试632

22.2.2程序调试应用举例638

22.3小结643

后记645

参考文献651

热门推荐