图书介绍

零起点学通C语言 多媒体范例教学PDF|Epub|txt|kindle电子书版本网盘下载

零起点学通C语言 多媒体范例教学
  • 范磊编著 著
  • 出版社: 北京:科学出版社
  • ISBN:9787030371201
  • 出版时间:2013
  • 标注页数:640页
  • 文件大小:169MB
  • 文件页数:665页
  • 主题词: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

1.1 计算机语言概述1

1.1.1机器语言——面向机器的语言1

1.1.2汇编语言——面向机器的语言1

1.1.3高级语言——面向过程、面向对象的语言2

1.2 C语言的起源2

1.3为什么要学习C语言4

1.4集成开发环境5

第2章 一个最简短的C程序6

2.1程序示例6

2.2注释7

2.3 语句9

2.4块9

2.5表达式9

2.6表达式语句10

2.7总结11

第3章 运算符12

3.1常用运算符12

3.1.1数学运算符12

3.1.2赋值运算符13

3.1.3复合赋值运算符13

3.1.4自加、自减运算符15

3.1.5前置的自加、自减运算15

3.1.6后置的自加、自减运算16

3.2总结16

第4章 初识函数17

4.1 自定义函数17

4.2带参数的函数18

4.3函数的返回值19

4.4形式参数与实际参数20

4.5形参与实参的类型必须一致21

4.6局部变量22

4.7全局变量23

4.8全局变量的缺点25

4.9作用域26

4.10输出函数27

4.11输入函数29

4.12字符输出函数31

4.13字符输入函数31

4.14函数的声明与定义33

4.15总结34

5.1 C语言为什么要有数据类型35

第5章 数据类型35

5.2变量的通用原则35

5.2.1变量的声明35

5.2.2变量的命名36

5.2.3变量的定义37

5.2.4变量的赋值与初始化38

5.2.5初始化的用途38

5.2.6变量在内存中的排列39

5.3整型变量39

5.3.1整型变量的取值范围40

5.3.2超出取值范围的后果40

5.3.3 long与int的区别41

5.3.4输出短整型变量的值42

5.3.5输出整型变量的值42

5.3.6输出长整型变量的值43

5.3.7输出双长整型变量的值44

5.3.8输出八进制数和十六进制数45

5.3.9为类型设置别名46

5.4浮点型变量47

5.4.1 float型变量的取值范围48

5.4.2 double型变量的取值范围49

5.4.3 long double型变量的取值范围50

5.4.4浮点型变量的精度51

5.4.5超出精度的误差51

5.4.6输出浮点型变量的值53

5.4.7输入数值到浮点型变量54

5.5字符型变量54

5.5.1字符型变量与ASCII码55

5.5.2字符型变量的赋值56

5.5.3字符型变量只能保存单个字符57

5.5.4输出所有的可见字符57

5.5.5数字与数字字符58

5.5.6显式转换与隐式转换58

5.5.7类型提升59

5.5.8类型下降60

5.5.9特殊字符60

5.6 _Bool型变量62

5.7常量63

5.7.1宏63

5.7.2 const常量65

5.7.3 const常量与宏的区别65

5.7.4枚举型常量65

5.8总结66

第6章 条件选择语句67

6.1关系运算符67

6.2 if语句68

6.2.1 else语句70

6.2.2 else if语句70

6.2.3 if语句的嵌套72

6.2.4 if与else的配对73

6.2.5复杂的嵌套75

6.3逻辑运算符76

6.3.1 逻辑与77

6.3.2 逻辑或77

6.3.3 逻辑非78

6.3.4括号改变优先级79

6.3.5真与假80

6.4三目运算符81

6.4.1三目运算符的优先级82

6.4.2灵活运用三目运算符82

6.4.3三目运算符的操作数类型83

6.4.4三目运算符最常见的用法83

6.5 switch语句84

6.5.1 switch语句的用法84

6.5.2 去掉break的switch语句85

6.6 总结86

第7章 循环语句87

7.1 循环语句的前身——goto语句87

7.2 慎用goto语句88

7.3 while语句88

7.3.1带逻辑运算符的while语句89

7.3.2限定while循环的次数90

7.3.3 continue语句91

7.3.4 break语句92

7.3.5 exit函数92

7.3.6猜数字93

7.3.7永不休止的while循环95

7.4 do...while循环96

7.5 for循环97

7.5.1 for循环的执行过程98

7.5.2 for循环的注意细则99

7.5.3域99

7.5.4灵活的for循环100

7.5.5条件为空的for循环100

7.5.6导航菜单102

7.5.7执行为空的for循环103

7.5.8嵌套的for循环104

7.5.9九九乘法表105

7.6总结106

第8章 综合实例——博弈机107

8.1模块1——游戏规则108

8.2模块2——确定选择方式与支出积分108

8.3模块3——掷出骰子109

8.4模块4——判断点数的大小110

8.5模块5——计算输赢的积分数111

8.6模块6——检查积分够不够113

8.7程序的入口——主函数114

8.8完整程序116

8.9总结123

第9章 初识指针124

9.1什么是地址124

9.2什么是指针124

9.3通过指针进行读取125

9.4通过指针进行修改126

9.5空指针127

9.6变更指针保存的地址128

9.7指针自身的地址128

9.8指针运算129

9.8.1指针的加减运算129

9.8.2指针的赋值运算130

9.8.3指针的相减运算131

9.8.4指针的比较运算131

9.9指针的类型132

9.10 const与指针133

9.10.1常量指针133

9.10.2指向常量的指针134

9.10.3指向常量的常指针134

9.11总结135

第10章 堆和栈136

10.1内存中的数据136

10.2什么是堆和栈138

10.2.1栈138

10.2.2堆138

10.2.3堆和栈的应用138

10.3堆与指针139

10.3.1利用指针访问堆139

10.3.2释放指针指向的堆空间140

10.3.3关于free函数的注意事项141

10.3.4 内存泄露142

10.3.5迷途指针143

10.4总结144

第11章 数组145

11.1数组的用法145

11.1.1数组的定义145

11.1.2数组的元素145

11.1.3数组的下标越界146

11.1.4倒序存放数据147

11.1.5将数组的长度定义为常量148

11.1.6新手容易犯的错误149

11.1.7数组的初始化149

11.2数组的实例150

11.2.1求平均成绩150

11.2.2斐波那契数列151

11.2.3查找最大数152

11.2.4.查找某数154

11.3排序算法155

11.3.1冒泡排序法155

11.3.2选择排序法157

11.3.3插入排序法160

11.4数组在内存中的分布163

11.5数组名165

11.6数组名的地址165

11.7数组与指针166

11.7.1利用指针输出数组元素166

11.7.2查找最大数167

11.8数组与枚举常量168

11.9什么是多维数组169

11.10多维数组的初始化170

11.11 打印杨辉三角形(1)171

11.12打印杨辉三角形(2)172

11.13总结174

第12章 字符串175

12.1字符数组175

12.1.1定义字符数组175

12.1.2初始化字符数组175

12.1.3输出字符数组中的所有字符176

12.2字符串177

12.2.1字符串的初始化177

12.2.2字符串的输入178

12.2.3字符串输入的常见问题179

12.3常用字符串函数180

12.3.1 strlen函数——得到字符串长度180

12.3.2 strlwr函数——将大写转为小写180

12.3.3 strupr函数——将小写转为大写181

12.3.4 puts函数——字符串输出181

12.3.5 strcpy函数——字符串复制182

12.3.6 memcpy函数——内存复制182

12.3.7 memccpy函数——内存复制183

12.3.8 strcat函数——字符串连接184

12.3.9 strncat函数——连接n个字符184

12.3.10 strchr函数——查找字符185

12.3.11 strset函数——设置字符串186

12.3.12 strcmp函数——比较字符串186

12.3.13 strrev函数——反转字符串187

12.3.14 strstr函数——查找子串188

12.3.15常见的字符串函数列表188

12.4字符串函数的实现思路189

12.4.1 strlen函数的实现思路189

12.4.2 strcat函数的实现思路189

12.4.3 strcpy函数的实现思路190

12.4.4 strcmp函数的实现思路191

12.4.5 strrev函数的实现思路192

12.5字符串函数的应用实例192

12.5.1 密码验证193

12.5.2插入字符串194

12.5.3姓名排序195

12.6指针与字符串197

12.6.1字符指针197

12.6.2字符串常量198

12.6.3删除字符串中的字符198

12.6.4字符指针数组199

12.6.5指向指针的指针200

12.6.6英语词典201

12.7总结203

第13章 结构体和共用体204

13.1什么是结构体204

13.2什么是结构变量204

13.3结构变量的多种定义方式205

13.4结构变量的简单应用206

13.5结构变量的初始化207

13.6结构变量的赋值208

13.7结构体数组209

13.8英汉词典210

13.9结构体的嵌套217

13.9.1在职员工档案登记系统218

13.9.2退休员工档案登记系统220

13.10结构体的大小222

13.11结构体与指针224

13.11.1指向结构体变量的指针224

13.11.2指向结构体数组的指针225

13.11.3指向结构体数组的指针运算226

13.12结构体与typedef227

13.13共用体228

13.13.1共用体的大小229

13.13.2共用体变量不能被初始化229

13.13.3共用体类型可以在结构体类型中定义230

13.13.4共用体的作用231

13.14总结232

第14章 深入函数233

14.1函数的运行机理233

14.2函数的特殊调用方式235

14.3函数的求参顺序235

14.4函数的嵌套调用236

14.5函数的递归调用237

14.5.1直接调用自身237

14.5.2 间接调用自身237

14.5.3 终止递归调用238

14.5.4递归调用的用途239

14.6指针作为函数参数240

14.6.1按值传递240

14.6.2按址传递241

14.6.3实现系统库函数strlwr242

14.7数组作为函数参数243

14.8数组的长度作为函数参数244

14.9数组只有一个原本245

14.10数组形参退化为指针246

14.11指针数组作为函数参数247

14.12指向指针的指针作为函数参数249

14.13结构体变量作为函数的参数250

14.14结构体数组作为函数的参数251

14.15内部函数253

14.16外部函数253

14.17可变参数255

14.18外部变量255

14.19静态变量256

14.19.1静态局部变量257

14.19.2静态局部变量的应用258

14.19.3静态全局变量259

14.19.4全局变量260

14.20自动变量260

14.21寄存器变量261

14.22总结261

第15章 预处理指令262

15.1宏定义指令262

15.1.1无参宏262

15.1.2无参宏的注意事项263

15.1.3无参宏的应用263

15.1.4宏的嵌套定义264

15.1.5#undef指令265

15.1.6带参宏265

15.1.7带参宏的注意事项266

15.1.8带参宏与函数的区别266

15.1.9带参宏的应用267

15.1.10#运算符267

15.1.11 可变参数267

15.2包含文件指令270

15.2.1 包含文件的方式270

15.2.2头文件271

15.3条件编译指令273

15.3.1#if指令273

15.3.2#elif指令274

15.3.3#ifdef指令274

15.3.4#ifdef的应用275

15.3.5#ifndef的应用276

15.4预定义的宏276

15.5 assert()宏279

15.6尝试编写一个简单的assert()宏279

15.7总结282

第16章 学生成绩管理系统283

16.1模块1——菜单选择284

16.2模块2——添加记录284

16.3模块3——显示记录285

16.4模块4——修改记录286

16.5模块5——删除记录287

16.6模块6——查找记录288

16.7模块7——排序记录288

16.8程序的入口——主函数289

16.9完整程序290

16.10总结296

第17章 深入指针298

17.1 void指针298

17.1.1声明void指针298

17.1.2 void指针的作用299

17.1.3实现memset函数301

17.2返回指针的函数303

17.3函数指针304

17.3.1声明函数指针304

17.3.2为什么要使用函数指针305

17.3.3 函数指针作为函数参数307

17.3.4函数指针数组308

17.3.5利用typedef简化函数指针类型的声明309

17.4动态数组311

17.4.1什么是动态数组311

17.4.2多维动态数组312

17.5链表314

17.5.1什么是链表314

17.5.2声明链表结构315

17.5.3静态链表315

17.5.4动态链表316

17.5.5动态创建节点317

17.5.6显示节点数据320

17.5.7删除节点321

17.5.8修改节点数据322

17.5.9查找节点323

17.5.10统计节点324

17.5.11排序节点324

17.5.12链表的应用326

17.5.13完整的动态链表清单327

第18章 位运算336

18.1位运算符336

18.1.1按位与运算符(&)336

18.1.2为什么用补码来表示负数337

18.1.3按位与运算符的用途——按位清零339

18.1.4按位与运算符的用途——取指定位340

18.1.5按位或运算符(|)340

18.1.6按位或运算符的用途——将某数低4位取1341

18.1.7异或运算符(∧)341

18.1.8异或运算符的特点342

18.1.9异或运算符的用途——使特定或全部位反转342

18.1.10异或运算符的用途——不用临时变量来交换两个值343

18.1.11取反运算符(~)344

18.1.12取反运算符的用途——便于移植344

18.1.13取反运算符的用途——提供遮罩346

18.1.14左移运算符(<<)346

18.1.15右移运算符(>>)347

18.1.16位运算的注意事项348

18.1.17位运算的实例1——输出整数的补码349

18.1.18位运算的实例2——输出整数的原码350

18.2复合赋值运算符350

18.3位字段351

18.3.1位字段的大小353

18.3.2位字段的注意事项354

18.3.3位字段的实例356

18.3.4输出浮点数的二进制359

18.4总结360

第19章 文件361

19.1文件概述361

19.1.1文本文件与二进制文件361

19.1.2文件名362

19.2缓冲区362

19.3流363

19.3.1输入与输出设备364

19.3.2什么是流364

19.4流函数368

19.5标准库中的流函数370

19.5.1 vprintf函数370

19.5.2 vfprintf函数371

19.5.3 fprintf函数372

19.5.4 vscanf函数372

19.5.5 vfscanf函数373

19.5.6 fscanf函数373

19.5.7 puts函数373

19.5.8 fputs函数374

19.5.9 putchar函数374

19.5.10 putc函数375

19.5.11 fputc函数378

19.5.12 gets函数379

19.5.13 fgets函数381

19.5.14 getchar函数382

19.5.15 getchar函数须知382

19.5.16 getc函数384

19.5.17 fgetc函数387

19.6非标准库中的流函数388

19.6.1 putw函数388

19.6.2 getw函数388

19.7特殊的流函数389

19.7.1 getch函数389

19.7.2 getche函数390

19.8文件的读写390

19.8.1读取文本文件391

19.8.2写入文本文件393

19.8.3不调用fclose函数的后果394

19.9以行为单位读写文件395

19.9.1一次读取一行395

19.9.2一次写入一个字符串396

19.10格式化读写文件397

19.10.1格式化写文件397

19.10.2格式化读文件398

19.11成块读写文件398

19.11.1成块写文件398

19.11.2成块读文件400

19.11.3按结构块读写文件401

19.12文件的多种打开方式403

19.12.1打开方式为″r″404

19.12.2打开方式为″w″405

19.12.3打开方式为″r+″406

19.12.4打开方式为″w+″407

19.12.5打开方式为″a″408

19.12.6打开方式为″a+″409

19.12.7″r″、″w″、″r+″、″w+″、″a″、″a+″须知410

19.12.8打开方式为″wb″和″rb″410

19.12.9打开方式为″rb+″与″wb+″412

19.12.10打开方式为″ab″413

19.12.11打开方式为″ab+″416

19.12.12″rb″、″wb″、″rb+″、″wb+″、″ab″、″ab+″须知417

19.12.13打开文本文件和打开二进制文件的区别417

19.13错误处理418

19.13.1文件的权限不够418

19.13.2读取错误419

19.14随机读写文件421

19.14.1 fseek函数421

19.14.2 ftell函数424

19.15统计文件内容425

19.15.1统计英文文档425

19.15.2统计中英混合文档426

19.16文件操作431

19.16.1文件改名431

19.16.2删除文件432

19.16.3删除目录433

19.16.4创建目录434

19.16.5列出指定目录中的文件和子目录435

19.16.6查找文件440

19.16.7创建临时文件445

19.16.8产生临时文件名446

19.16.9为临时文件名添加后缀447

19.17文件内容操作449

19.17.1查找文件中的字符串449

19.17.2复制文件中的内容到另一文件450

19.17.3删除文件中的字符串452

19.17.4修改文件中的字符串455

19.17.5添加字符串到文件中457

19.18文件的分割与合并460

19.18.1分割文件460

19.18.2合并文件463

19.19文件的加密与解密466

19.20批量修改文件468

19.21非标准文件操作函数470

19.21.1 access函数471

19.21.2 _mktemp函数472

19.22总结473

第20章 通讯录474

20.1模块1——用户注册475

20.2模块2——用户登录479

20.3菜单1——申请登录系统480

20.4菜单2——通讯录管理系统481

20.5模块3——增加记录482

20.6模块4——删除记录483

20.7模块5——列出记录484

20.8模块6——查找记录485

20.9模块7——保存记录486

20.10模块8——读取记录487

20.11主模块——main函数488

20.12完整程序489

20.13总结501

第21章 补充知识502

21.1逗号、自加自减运算符502

21.1.1逗号运算符502

21.1.2逗号运算符的优先级503

21.1.3逗号运算符的结合方向504

21.1.4逗号的其他用途504

21.1.5 自加、自减运算符的优先级505

21.1.6 自加、自减运算符的结合方向505

21.1.7未定义的行为507

21.1.8总结507

21.2可移植的整数类型507

21.3头文件stdint.h508

21.4 printf详解512

21.4.1 printf中的格式符512

21.4.2打印字符和字符串513

21.4.3打印有符号整数513

21.4.4打印无符号整数513

21.4.5打印浮点数514

21.4.6打印地址515

21.4.7计算字符数%n515

21.4.8打印百分号%516

21.4.9 printf的修饰符516

21.4.10修饰符n517

21.4.11修饰符m518

21.4.12修饰符m.n519

21.4.13修饰符519

21.4.14处理其他数据类型的修饰符519

21.4.15标志(-)522

21.4.16标志(+)522

21.4.17标志(空格)523

21.4.18标志(0)523

21.4.19标志(#)523

21.5 scanf详解524

21.5.1 scanf中的格式符524

21.5.2读入字符和字符串525

21.5.3读入有符号整数526

21.5.4读入无符号整数527

21.5.5读入浮点数527

21.5.6格式串中的分隔符528

21.5.7输入地址528

21.5.8计算字符数%n529

21.5.9读入百分号%529

21.5.10扫描集合%[]530

21.5.11 scanf的修饰符531

21.5.12域长修饰符532

21.5.13修饰符532

21.5.14 scanf的注意事项533

21.6缓冲区与编译器533

21.6.1设置缓冲区534

21.6.2缓冲模式537

21.6.3缓冲模式须知540

21.6.4刷新缓冲区540

21.7强制刷新缓冲区541

21.7.1 Windows平台下强制刷新缓冲区542

21.7.2 Linux平台下强制刷新缓冲区543

21.7.3 自己写代码刷新输入缓冲区544

21.7.4非即时性的检查547

21.7.5利用fpurge函数刷新输入缓冲区549

21.8 总结550

附录A ASCII码对照表551

附录B C语言的关键字554

附录C 运算符的优先级556

附录D C语言常用头文件列表558

附录E C标准库(C89)559

E.1 C标准头文件(C89)559

E.2 C标准库函数(C89)560

E.2.1标准数学函数560

E.2.2标准输入输出函数563

E.2.3标准字符串函数568

E.2.4标准字符分类函数572

E.2.5标准类型转换函数573

E.2.6标准多字节处理函数575

E.2.7标准内存分配函数576

E.2.8标准算法函数577

E.2.9标准整型算术函数577

E.2.10标准环境接口函数578

E.2.11 标准日期与时间函数579

E.2.12标准本地化函数580

E.2.13标准信号处理函数580

E.2.14标准非局部跳转函数581

E.2.15标准可变参数宏581

E.2.16标准诊断宏582

E.2.17标准宏582

E.3 C标准库中的常量(C89)583

E.3.1 检测数值范围的常量583

E.3.2错误码常量585

附录F C89增补1587

F.1 #include<iso646.h>587

F.2 #include<wchar.h>588

F.3 #include<wctype.h>593

附录G C99594

G.1 #include<complex.h>594

G.2 #include<tgmath.h>595

G.3 #include<fenv.h>596

G.4 #include<stdbool.h>596

G.5 #include<stdint.h>596

G.6 #include<inttypes.h>602

附录H 主流集成开发环境611

H.1主流集成开发环境的介绍611

H.1.1 Code?Blocks?611

H.1.2 Dev-C+++?611

H.1.3 Microsoft Visual C+++6.0?611

H.1.4 Microsoft Visual Studio?612

H.2主流集成开发环境的安装与设置612

H.2.1 Code?Blocks的安装与设置?612

H.2.2 Dev-C+++的安装与设置?615

H.2.3 Microsoft Visual C+++6.0的安装与设置?619

H.2.4 Microsoft Visual Studio的安装与设置?628

H.3主流集成开发环境的使用631

H.3.1 Code?Blocks的使用?631

H.3.2 Dev-C+++的使用?634

H.3.3 Microsoft Visual C+++6.0的使用?636

H.3.4 Microsoft Visual Studio 2010的使用?638

后记640

热门推荐