图书介绍
零起点学通C语言 多媒体范例教学PDF|Epub|txt|kindle电子书版本网盘下载
- 范磊编著 著
- 出版社: 北京:科学出版社
- ISBN:9787030371201
- 出版时间:2013
- 标注页数:640页
- 文件大小:169MB
- 文件页数:665页
- 主题词:C语言-程序设计
PDF下载
下载说明
零起点学通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