C语言程序设计PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:黄维通,刘晓静,王瑞编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2011
- ISBN:9787302237501
- 页数:312 页
第1章 C语言的基本概念 1
1.1 程序设计语言的历史和发展 1
1.2 程序设计过程中的几个基本概念 2
1.2.1 程序 2
1.2.2 程序设计 2
1.2.3 算法 3
1.2.4 数据结构 3
1.3 软件工程的概念 4
1.4 C语言的发展与特点 4
1.4.1 C语言的发展和ANSI C标准 4
1.4.2 C语言的特点 5
1.5 C语言程序的基本标识符 6
1.6 C程序的几个简单实例 7
1.7 C程序的结构特点 10
1.8 C语言程序的编译和执行 11
1.9 习题 12
第2章 C语言程序的基本数据类型及其运算 13
2.1 C语言的数据类型 13
2.1.1 数据类型的一般概念 13
2.1.2 常量 14
2.2 数据类型及变量 17
2.2.1 基本数据类型 17
2.2.2 变量及变量的定义 17
2.2.3 变量的初始化 18
2.2.4 数据类型转换 19
2.3 运算符和表达式 21
2.3.1 运算符和表达式概述 21
2.3.2 赋值运算符和赋值表达式 22
2.3.3 算术运算符和算术表达式 23
2.3.4 关系运算符和关系表达式 24
2.3.5 逻辑运算符和逻辑表达式 25
2.3.6 条件运算符 26
2.3.7 其他运算符 27
2.4 位运算符 28
2.4.1 按位取反运算符 28
2.4.2 移位运算符 28
2.4.3 按位“与”、按位“或”、按位“异或” 29
2.5 C语言基本输入输出函数 30
2.5.1 字符输入输出函数 31
2.5.2 格式化输入输出函数 32
2.6 习题 37
第3章 基本控制结构及其应用 39
3.1 算法及结构化程序设计 39
3.1.1 算法及其特征 39
3.1.2 算法的类型与结构 41
3.2 顺序结构程序设计 42
3.3 分支结构程序设计 43
3.3.1 if分支 43
3.3.2 if-else分支 43
3.3.3 多分支if-else if-else形式 44
3.3.4 条件分支的嵌套 45
3.3.5 开关分支 46
3.4 循环结构程序设计 50
3.4.1 while语句 50
3.4.2 do-while语句 50
3.4.3 for语句 51
3.4.4 三种循环的比较 52
3.4.5 多重循环 52
3.4.6 循环和开关分支的中途退出 53
3.4.7 goto语句 54
3.4.8 结构化程序设计的注意事项 55
3.5 结构化程序设计及应用举例 57
3.6 习题 58
第4章 数组及其应用 62
4.1 一维数组 62
4.1.1 一维数组的定义 62
4.1.2 一维数组的初始化 63
4.1.3 一维数组的引用 64
4.1.4 一维数组的应用举例 65
4.2 多维数组 67
4.2.1 多维数组的定义 67
4.2.2 多维数组的存储形式 67
4.2.3 多维数组的引用 68
4.2.4 多维数组的初始化 68
4.2.5 数组应用举例 70
4.3 字符型数组与字符串 71
4.3.1 字符型数组的概念 71
4.3.2 字符型数组的初始化 72
4.3.3 字符型数组的输入输出 73
4.3.4 字符型数组的应用举例 74
4.4 综合应用举例 75
4.5 习题 77
第5章 函数及其应用 79
5.1 函数的定义与调用 79
5.1.1 C源程序的结构 79
5.1.2 函数的定义 80
5.1.3 函数的调用 82
5.2 函数间的信息传递方式 85
5.2.1 实参-形参之间的信息传递 86
5.2.2 函数调用结果的返回 89
5.3 函数与数组 92
5.3.1 数组元素做实参 92
5.3.2 一维数组名做实参 92
5.3.3 多维数组名做参数 94
5.3.4 字符数组做函数的参数 95
5.4 递归函数与递归调用 96
5.4.1 递归的概念 96
5.4.2 递归程序的设计 97
5.5 变量的存储类型及作用域 98
5.5.1 auto型变量 99
5.5.2 extern型变量 99
5.5.3 静态变量 102
5.6 习题 104
第6章 指针 107
6.1 指针的基本概念及定义方式 107
6.1.1 指针的基本概念 107
6.1.2 指针的定义 107
6.1.3 指针的初始化 108
6.1.4 指针运算符 110
6.2 指针的运算 110
6.2.1 指针的算术运算 110
6.2.2 关系运算 112
6.2.3 指针的赋值运算 112
6.3 指针与数组 112
6.3.1 指向一维数组的指针 113
6.3.2 指向多维数组的指针 115
6.4 字符指针和字符串 116
6.5 指针数组 118
6.5.1 指针数组的概念 118
6.5.2 指针数组的应用 119
6.5.3 指针数组在带形参的main函数中的应用 120
6.6 指针在函数参数传递中的应用 122
6.7 指针型函数 122
6.7.1 指针型函数的定义和引用 123
6.7.2 指针型函数的应用举例 123
6.8 多级指针 124
6.8.1 多级指针的概念及定义 124
6.8.2 多级指针应用举例 125
6.9 指向函数的指针 126
6.9.1 指向函数的指针的概念 126
6.9.2 指向函数的指针的应用 127
6.10 动态指针 129
6.10.1 动态内存分配的概念 129
6.10.2 动态内存分配的应用 130
6.11 习题 132
第7章 排序及查找算法及其实现 134
7.1 排序概述 134
7.1.1 排序的概念 134
7.1.2 排序的定义 134
7.1.3 排序的方法 135
7.1.4 排序效率 135
7.2 冒泡排序法的设计及其实现 137
7.2.1 冒泡算法设计思想 137
7.2.2 冒泡算法的实现 138
7.3 选择排序法的设计及其实现 139
7.3.1 选择排序法设计思想 139
7.3.2 选择排序法的实现 140
7.4 插入排序法的设计及其实现 141
7.4.1 插入排序法设计思想 141
7.4.2 插入排序法的实现 142
7.5 SHELL排序法的设计及其实现 143
7.5.1 SHELL排序法设计思想 143
7.5.2 SHELL排序法的实现 144
7.6 字符串数组的排序设计及其实现 146
7.6.1 字符串数组的排序算法设计思想 146
7.6.2 字符串数组排序算法的实现 147
7.7 查找概述 148
7.8 顺序查找及其应用 148
7.8.1 顺序查找算法的设计思想 148
7.8.2 顺序查找算法的实现 149
7.9 折半查找及其应用 150
7.9.1 折半查找算法的设计思想 150
7.9.2 折半查找算法的实现 151
7.10 习题 152
第8章 结构体、联合体和枚举 153
8.1 结构体的说明和定义 153
8.1.1 结构体的概念 153
8.1.2 结构体的说明及结构体变量的定义 154
8.2 结构体成员的引用与结构体变量的初始化 157
8.2.1 结构体成员的引用 157
8.2.2 结构体变量的初始化 158
8.3 结构体数组 159
8.3.1 结构体数组的定义及初始化 159
8.3.2 结构体数组的应用举例 159
8.4 结构体指针 161
8.4.1 结构体指针及其定义 161
8.4.2 通过指针引用结构体成员 162
8.4.3 结构体指针的应用举例 163
8.5 结构体在函数间的传递 166
8.5.1 结构体变量的传递 166
8.5.2 结构体数组在函数间的传递 169
8.6 结构体指针型和结构体型函数 170
8.6.1 结构体指针型函数 170
8.6.2 结构体型函数 172
8.7 结构体嵌套 174
8.7.1 结构体嵌套的概念 174
8.7.2 嵌套结构体类型变量的引用 175
8.7.3 结构体嵌套应用举例 176
8.8 联合体 177
8.8.1 联合体的说明及联合体变量的定义 177
8.8.2 使用联合体变量应注意的问题 182
8.9 枚举类型 184
8.9.1 枚举类型数据的概念及其定义 184
8.9.2 枚举型变量的使用 184
8.10 自定义类型 186
8.10.1 自定义类型及其表示形式 186
8.10.2 自定义类型的优点 187
8.11 位字段结构体 188
8.12 习题 189
第9章 文件操作 193
9.1 文件概述 193
9.2 文件的基本操作 197
9.2.1 文件的打开 197
9.2.2 文件的关闭 198
9.2.3 文件的删除 198
9.2.4 文件的重命名 199
9.2.5 临时文件的创建 199
9.3 文件的读写操作 200
9.3.1 文件的非格式化读写 200
9.3.2 文件的格式化写操作 206
9.3.3 文件的格式化读操作 208
9.4 文件的定位 209
9.4.1 fgetpos函数 209
9.4.2 fsetpos函数 209
9.4.3 ftell函数 209
9.4.4 fseek函数 210
9.4.5 feof函数 211
9.5 错误处理 211
9.5.1 ferror函数 211
9.5.2 perror函数 211
9.6 习题 212
第10章 线性表及其应用 218
10.1 线性表的基本概念 218
10.2 结构简介 219
10.2.1 单链表 220
10.2.2 循环链表 228
10.2.3 双向链表 229
10.3 线性表的应用 229
10.3.1 单链表的应用:单链表归并问题 229
10.3.2 循环链表的应用:求解约瑟夫问题 231
10.4 习题 232
第11章 栈及其应用 233
11.1 栈的定义及其基本操作 233
11.2 栈的实现 234
11.2.1 栈的数组实现 234
11.2.2 栈的链式存储实现 236
11.3 栈的应用 238
11.3.1 栈在进制转换中的应用 238
11.3.2 栈在递归中的应用 241
11.4 习题 243
第12章 队列及其应用 244
12.1 队列的定义及基本操作 244
12.2 队列的实现 245
12.2.1 用循环数组实现队列 245
12.2.2 用链表实现队列 248
12.3 队列的应用 251
12.3.1 打印杨辉三角形 251
12.3.2 舞伴问题 254
12.4 习题 258
第13章 二叉树及其应用 259
13.1 树的定义和基本术语 259
13.1.1 树的定义 259
13.1.2 树的基本术语 260
13.2 二叉树的特点及其数学性质 261
13.2.1 二叉树的特点 261
13.2.2 二叉树的数学性质 261
13.3 二叉树的基本操作及其实现 263
13.3.1 二叉树的基本操作 263
13.3.2 二叉树基本操作的实现 263
13.4 二叉树的应用 268
13.4.1 二叉树的遍历 268
13.4.2 利用二叉树的遍历建立、打印二叉树 270
13.4.3 利用二叉树的遍历按树状打印二叉树 273
13.5 习题 275
附录A 预处理命令的应用 276
A.1 预处理概述 276
A.2 宏定义 276
A.2.1 无参宏定义 276
A.2.2 带参宏定义 280
A.3 文件包含 284
A.4 条件编译 284
A.4.1 第一种条件编译形式 284
A.4.2 第二种条件编译形式 285
A.4.3 第三种条件编译形式 286
附录B Turbo C 3.0的上机过程 288
B.1 文件的建立与保存 288
B.2 文件的编辑 289
B.3 编译连接 290
B.4 程序的运行 291
附录C Turbo C 3.0程序的调试 292
C.1 程序的调试 292
C.1.1 有关调试的设置 292
C.1.2 设置断点及动态调试的基本操作 293
C.2 程序调试实例 295
C.2.1 添加断点 295
C.2.2 观察变量 296
C.2.3 单步执行 296
C.2.4 观察调用关系 297
C.2.5 终止调试 297
C.2.6 条件断点 297
C.2.7 动态修改变量值 298
附录D Turbo C 3.0部分库函数表 299
附录E ASCII码表 311
参考文献 312
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019