C语言入门与提高PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:陈锐主编
- 出 版 社:北京希望电子出版社
- 出版年份:2011
- ISBN:9787894991409
- 页数:432 页
第1篇 起步篇 1
第1章 C语言概述 1
1.1为什么要学习C语言 1
1.1.1学习C语言的好处 1
1.1.2如何学好C语言 3
1.2 C语言的特点 3
1.3程序设计基础 4
1.3.1十进制数的表示 4
1.3.2二进制数的表示 4
1.3.3二进制数、十六进制数和八进制数转换为十进制数 5
1.3.4十进制数转换为二进制数 6
1.3.5十进制数转换为十六进制数 8
1.3.6十进制数转换为八进制数 9
1.3.7二进制数与十六进制数、八进制数的转换 10
1.3.8计算机中的加减运算 11
1.4小结 13
第2章 C语言的开发环境 14
2.1TurboC 2.0开发环境介绍 14
2.1.1运行Turbo C 2.0 14
2.1.2Turbo C 2.0环境设置 15
2.1.3Turbo C 2.0的使用 16
2.2 Win-TC开发环境介绍 18
2.2.1 Win-TC开发环境介绍 19
2.2.2 Win-TC的使用 20
2.3 LCC开发环境介绍 21
2.3.1使用LCC开发环境创建项目 21
2.3.2 LCC开发环境的介绍 23
2.3.3 LCC的使用 24
2.4 Visual C++ 6.0开发环境介绍 24
2.4.1使用Visual C++ 6.0新建项目 25
2.4.2使用Visual C++ 6.0新建源程序文件 26
2.4.3使用Visual C++ 6.0开发环境 27
2.5小结 28
第2篇 基础篇 29
第3章 变量和常量 29
3.1变量 29
3.1.1为什么要使用变量 29
3.1.2变量究竟是什么——变量在计算机中的表示 30
3.1.3如何定义变量 30
3.1.4为什么要有数据类型 30
3.1.5 C语言有哪些数据类型 31
3.1.6什么符号可以作为变量名——用户定义的标识符 33
3.1.7关键字——已经被占用的标识符 33
3.1.8初识变量赋值 34
3.2整型变量 34
3.2.1为什么要使用整型变量 35
3.2.2基本整型变量 35
3.2.3基本整型变量的输入——使用scanf函数 36
3.2.4基本整型变量的输出——使用printf函数 37
3.2.5长整型变量——解决大整数问题 38
3.2.6短整型变量——节省内存空间 40
3.2.7无符号整型变量——只包括非负的整数 41
3.2.8整型变量的应用举例 42
3.3实型变量 44
3.3.1为什么使用实型变量 45
3.3.2单精度浮点型变量 45
3.3.3双精度浮点型变量 47
3.3.4长双精度浮点型变量 49
3.3.5实型变量的应用 49
3.4字符型数据类型 51
3.4.1为什么要使用字符型变量 51
3.4.2字符型变量 51
3.4.3字符型数据的输入与输出——使用%c和%s 52
3.4.4字符型变量的应用 53
3.5常量 55
3.5.1为什么使用常量 55
3.5.2整型常量 56
3.5.3实型常量 56
3.5.4字符型常量与字符串型常量 56
3.5.5常量与常数 57
3.6小结 57
习题 57
第4章 运算符与表达式 59
4.1表达式 59
4.1.1运算符有哪些 59
4.1.2什么是表达式 60
4.1.3运算符的优先级与结合性 60
4.1.4数据类型转换 61
4.2算术运算符与算术表达式 62
4.2.1基本算术表达式 62
4.2.2自增表达式——++a和a++ 64
4.2.3自减表达式——--a和a-- 66
4.2.4算术运算符的混合运算——算术运算符的优先级与结合性 68
4.2.5算术表达式的应用 69
4.3赋值运算符与赋值表达式 71
4.3.1赋值运算符与赋值表达式 71
4.3.2类型转换 74
4.3.3赋值表达式的应用 76
4.4关系运算符与关系表达式 77
4.4.1关系运算符与关系表达式 77
4.4.2关系表达式的应用 79
4.5逻辑运算符与逻辑表达式 79
4.5.1逻辑运算符与逻辑表达式 80
4.5.2逻辑表达式的应用 81
4.6逗号表达式 83
4.6.1逗号运算符与逗号表达式 83
4.6.2逗号表达式中应注意的问题 83
4.6.3逗号表达式的应用 84
4.7小结 84
习题 84
第5章 顺序结构程序设计 86
5.1语句和程序 86
5.1.1什么是简单语句 86
5.1.2为什么使用复合语句 87
5.1.3什么是复合语句 88
5.1.4使用复合语句应注意的问题 89
5.1.5为什么要有程序 90
5.1.6 C语言程序的框架结构 90
5.2顺序结构程序设计 91
5.2.1顺序结构程序设计的特点——自上而下执行每条语句 91
5.2.2顺序结构程序设计(一)——求圆的面积 92
5.2.3顺序结构程序(二)——求一元二次方程ax2+bx+c=0的根 94
5.2.4顺序结构程序设计(三)——将小写字母转换为大写字母 95
5.3小结 97
习题 97
第6章 选择结构程序设计 98
6.1条件运算符 98
6.1.1为什么要有条件运算符 98
6.1.2条件运算符与条件表达式 99
6.2 if选择语句 102
6.2.1为什么要有if选择语句——理解容易 102
6.2.2 if选择语句——单分支的选择结构 102
6.2.3 if-else选择语句——双分支的选择结构 106
6.2.4 if-else if-…-else选择语句——多分支选择结构 108
6.2.5 if选择语句的嵌套 112
6.2.6设置标志变量 116
6.2.7 if选择语句与选择运算符——相互转换 117
6.3 switch选择语句 118
6.3.1 switch选择语句 118
6.3.2 switch选择语句的应用 119
6.4选择结构程序设计的应用 125
6.5小结 133
习题 133
第7章 循环结构程序设计 134
7.1为什么要有循环结构 134
7.1.1如何重复输出多个hello world——使用循环可以少输入代码 134
7.1.2如何求连续的n个自然数的和——循环代码可以重复使用 135
7.2 while循环语句 136
7.2.1 while循环语句——当型循环 136
7.2.2 while循环语句的应用 138
7.3 do-while循环语句 139
7.3.1为什么要有do-while 139
7.3.2 do-while循环语句——直到型循环 139
7.3.3比较while循环结构和do-while循环结构 141
7.4 for循环语句 144
7.4.1 for循环语句 144
7.4.2 for循环语句的灵活性 147
7.4.3几种循环语句的比较 152
7.5 goto循环语句 153
7.5.1 goto语句——无条件转移语句 153
7.5.2 goto语句构成的循环语句——向前跳转 153
7.5.3 goto语句是一种不常用的结构——与while语句、for语句的比较 154
7.6 break语句 156
7.6.1循环中的“提前开溜” 156
7.6.2 break语句 156
7.7 continue语句 157
7.7.1为什么要有continue语句 157
7.7.2 continue语句 158
7.7.3 continue语句与break语句的区别 159
7.7.4 continue语句的应用 160
7.8多重循环程序设计 161
7.8.1为什么要有循环的嵌套——一层循环是不能解决所有问题的 161
7.8.2循环的嵌套——循环结构中还可以有循环结构 162
7.8.3多重循环的应用——输出乘法口诀表 163
7.9循环结构程序应用举例 166
7.9.1循环结构程序(一)——求π的近似值 166
7.9.2循环结构程序(二)——求100~200之间的所有质数 169
7.9.3 循环结构程序(三)——求100~200之间的所有质数的改进 171
7.9.4循环结构程序(四)——百鸡问题 172
7.10小结 174
习题 174
第3篇 进阶篇 175
第8章 数组 175
8.1为什么要有数组 175
8.1.1多变量的解决之路——数组的引入 175
8.1.2初识数组 176
8.1.3数组的数组——维度的出现 177
8.2一维数组 179
8.2.1一维数组的定义 179
8.2.2一维数组的引用——其实很简单 181
8.2.3一维数组的初始化——方法有许多 182
8.2.4一维数组的应用举例——求数组各元素的平均值 183
8.2.5一维数组的应用——数组元素的倒排 185
8.2.6一维数组的应用——冒泡排序 187
8.3二维数组 190
8.3.1二维数组的定义 190
8.3.2二维数组的引用——其实并不难 191
8.3.3二维数组的初始化——多样的初始化 192
8.3.4二维数组的应用——计算各科成绩的平均分 195
8.3.5二维数组的应用——矩阵的转置 196
8.3.6二维数组的应用——有趣的魔方阵 198
8.4字符数组 201
8.4.1字符数组的定义 201
8.4.2字符数组的初始化 202
8.4.3字符数组的连续输出——格式符%s 205
8.4.4字符数组的连续输入——格式符%s 205
8.4.5常用的字符串处理函数 206
8.4.6字符数组的应用 210
8.5小结 213
习题 214
第9章 函数 215
9.1函数及分类 215
9.1.1为什么要有函数 215
9.1.2函数有哪些——库函数与用户函数 216
9.2函数的定义形式 217
9.2.1不带参数函数的定义 217
9.2.2带参数函数的定义——有参数列表 218
9.2.3带参数函数的定义——形参定义的传统方式 218
9.3局部变量与全局变量 219
9.3.1局部变量 219
9.3.2全局变量 221
9.4函数的参数与函数的值 223
9.4.1形式参数与实际参数 223
9.4.2函数的返回值 225
9.5函数的调用 228
9.5.1函数调用的一般形式 228
9.5.2函数调用的方式 230
9.5.3对被调用函数的声明 230
9.6函数的嵌套调用 233
9.6.1函数的嵌套调用过程 233
9.6.2函数的嵌套应用——求1~n自然数的k次方之和 234
9.7函数的递归调用 235
9.7.1什么是递归——自己调用自己 235
9.7.2递归函数的应用——求n! 236
9.7.3递归函数调用的应用——Fibonacci数列 238
9.8数组作为函数的参数 239
9.8.1数组元素作为函数的参数——只能传递一个数组元素 239
9.8.2数组名作为函数的参数——可以传递整个数组 241
9.8.3数组名作为参数传递——传递的是数组的首地址 244
9.8.4多维数组名作为函数的参数——传递整个数组 247
9.9变量的存储 250
9.9.1什么是动态存储与静态存储——生存期不同 250
9.9.2 auto变量——自动类型变量 250
9.9.3 static变量——静态变量 250
9.9.4 register变量——使运行速度更快的变量 253
9.9.5 extern变量——声明外部变量 254
9.10内部函数与外部函数 256
9.10.1内部函数——使用static 256
9.10.2外部函数——使用extern 257
9.11函数应用举例 258
9.11.1函数应用——递归求解n个数的最大值 258
9.11.2函数应用——递归求解a与b的最大公约数 260
9.11.3函数应用——字符数组元素逆序存放 261
9.12小结 262
习题 262
第10章 预处理命令 263
10.1宏定义 263
10.1.1为什么要有宏定义 263
10.1.2不带参数的宏定义 264
10.1.3宏定义与常量定义的区别 265
10.1.4带参数的宏定义 265
10.1.5宏定义中参数与函数参数的区别 266
10.2文件包含命令 268
10.2.1为什么要有文件包含命令 268
10.2.2文件包含命令——#include 268
10.3条件编译 270
10.3.1第一种条件编译命令——#ifdef 270
10.3.2第二种条件编译命令——#ifdef…#elif…#endif 272
10.3.3第三种条件编译命令——#ifndef 273
10.3.4第四种条件编译命令——#if 274
10.4小结 274
习题 275
第11章 指针 276
11.1指针的相关概念 276
11.1.1为什么要有指针和指针变量 276
11.1.2什么是地址 276
11.1.3什么是指针变量——存放地址的变量 277
11.2指针变量 278
11.2.1定义指针变量 278
11.2.2使用指针变量 280
11.2.3指针变量作为函数参数 283
11.3数组与指针 287
11.3.1指向数组元素的指针 287
11.3.2通过指针引用数组元素 288
11.3.3指针变量的自增运算和自减运算 292
11.3.4数组指针作为函数的参数 292
11.3.5指向多维数组的指针变量 298
11.4字符串与指针 304
11.4.1指向字符串的指针变量 304
11.4.2字符串指针作为函数的参数 310
11.4.3字符数组与字符指针变量的比较 313
11.5指针数组与指向指针的指针 314
11.5.1指针数组 314
11.5.2指向指针的指针 317
11.5.3指针数组作为main函数的参数 319
11.6函数与指针 320
11.6.1函数指针调用函数 320
11.6.2指向函数的指针作为函数参数 321
11.7返回指针值的函数 323
11.7.1为什么函数要返回指针值——可以返回多个值 323
11.7.2返回指针类型的函数 324
11.8小结 325
习题 326
第12章 结构体与联合体 327
12.1结构体 327
12.1.1为什么要有结构体 327
12.1.2结构体类型的定义 328
12.1.3定义结构体变量 328
12.1.4引用结构体变量 330
12.1.5结构体变量的初始化 332
12.2结构体数组 334
12.2.1为什么要有结构体数组 334
12.2.2定义结构体数组 334
12.2.3结构体数组的初始化 335
12.2.4结构体数组的应用 336
12.3指针与结构体 339
12.3.1指向结构体变量的指针 339
12.3.2指向结构体数组的指针 341
12.3.3结构体变量和指向结构体的指针作为函数的参数 342
12.4 typedef类型定义 346
12.4.1 typedef——为数据类型重新起个名字 346
12.4.2使用typedef应注意的问题 347
12.4.3 typedef的应用 348
12.5联合体 351
12.5.1为什么要有联合体——节省内存,多选一 351
12.5.2定义联合体 352
12.5.3引用联合体变量 353
12.5.4使用联合体应该注意的问题 353
12.5.5联合体的应用 354
12.6枚举类型 357
12.6.1为什么要有枚举类型——变量的值只有有限的几种 357
12.6.2定义枚举类型及变量 358
12.6.3使用枚举类型应注意的问题 358
12.6.4枚举类型的应用 359
12.7小结 360
习题 360
第13章 位运算 361
13.1为什么要有位运算与位运算符 361
13.1.1为什么要有位运算——高效率的运行 361
13.1.2位运算符 361
13.1.3位运算符的优先级与结合性 362
13.2位运算符与位运算 362
13.2.1按位与运算符和按位与运算 362
13.2.2按位或运算符和按位或运算 363
13.2.3按位异或运算符和按位异或运算 364
13.2.4按位取反运算符和按位取反运算 365
13.2.5左移运算符和左移运算 366
13.2.6右移运算符和右移运算 366
13.2.7与位运算符相结合的赋值运算符 367
13.3位运算应用 367
13.3.1以二进制形式输出一个数——按位与运算并输出1或者0 367
13.3.2取一个整数的中间几位——设置一个对应位为1的数并进行按位与运算 369
13.4位段 370
13.4.1定义位段 370
13.4.2引用位段成员 371
13.4.3使用位段需要说明的问题 372
13.5小结 373
习题 373
第14章 文件 374
14.1文件的相关概念 374
14.1.1为什么要有文件 374
14.1.2文件的分类——二进制文件和文本文件 374
14.1.3缓冲文件系统 375
14.2打开与关闭文件 375
14.2.1文件类型指针——FILE 375
14.2.2打开文件——使用fopen函数 376
14.2.3关闭文件——使用函数fclose 377
14.3读取文件与写入文件 377
14.3.1使用fputc函数写文件和使用fgetc函数读取文件 378
14.3.2使用fputs函数写文件和使用fgets函数读取 382
14.3.3使用fwrite函数写文件和使用fread函数读取文件 383
14.3.4使用fprintf函数写文件和使用fscanf函数读取文件 386
14.4文件的定位 388
14.4.1 rewind函数——移动位置指针到文件的开始位置 388
14.4.2 fseek函数——移动位置指针到任意位置 389
14.4.3 ftell函数——得到位置指针的当前位置 391
14.5文件状态检测 391
14.5.1 feof函数——检测位置指针是否到了文件末尾 392
14.5.2 ferror函数——检测是否操作文件错误 392
14.5.3 clearerr函数——清除错误标志 393
14.6文件的输入与输出函数总结 393
14.7小结 394
习题 394
第4篇 提高篇 395
第15章 链表 395
15.1链表的相关概念 395
15.1.1为什么要有链表——节省内存单元,不用事先定义空间大小 395
15.1.2什么是链表 396
15.1.3简单链表——静态链表 397
15.1.4动态存储分配 401
15.2链表的操作 402
15.2.1创建链表 402
15.2.2链表的输出操作 405
15.2.3链表的插入操作 407
15.2.4链表的删除操作 410
15.2.5链表的综合操作 413
15.3链表操作的应用 414
15.3.1链表操作的应用——逆置链表 415
15.3.2链表操作的应用——约瑟夫问题 420
15.4小结 423
习题 423
附录 424
附录1程序流程图 424
附录2常用字符与对应的ASCLL码对照表 427
附录3运算符的优先级与结合性 428
附录4常用函数 429
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《初中生英语作文 提高篇》清瑶主编 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《音乐语言的根基》张艺编著 2019
- 《小提琴入门新教程 第3册》王中男著 2018
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017