跟我学C语言PDF电子书下载
- 电子书积分:19 积分如何计算积分?
- 作 者:陈锐,田建新编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2013
- ISBN:9787302330080
- 页数:651 页
第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.0 22
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 world 154
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-while 160
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内部函数——使用static 284
9.10.2外部函数——使用extern 285
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文件包含命令——include 297
10.3条件编译 299
10.3.1第一种条件编译命令——#ifdef 300
10.3.2第二种条件编译命令——#ifdef…#elif…#endif 301
10.3.3第三种条件编译命令——#ifndef 302
10.3.4第四种条件编译命令——#if 303
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或0 406
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文件类型指针——FILE 415
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套接字Socket 491
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
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《音乐语言的根基》张艺编著 2019
- 《认知语言学视野的抽象方位结构研究》曹爽著 2019
- 《激活语言思维》李蒨,王宏年,汤青编著 2017
- 《汉语言文学本科专业核心课程研究导引教材 古代汉语》马蓝婕责任编辑;(中国)魏宜辉 2019
- 《英语教师语言意识研究》秦莉,赵春贺著 2019
- 《基于多维视角的英语语言学理论探索与应用》刘曦著 2019
- 《Java语言程序设计教程》胡光 2018
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019