C语言及程序设计基础PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:谭成予主编
- 出 版 社:武汉:武汉大学出版社
- 出版年份:2010
- ISBN:9787307075634
- 页数:384 页
第1章 程序设计概述 1
1.1 什么是计算机 1
1.1.1 物理计算机 1
1.1.2 系统软件和应用软件 2
1.1.3 网络和计算模式 3
1.2 程序和程序设计概述 3
1.2.1 什么是程序 4
1.2.2 计算机语言 5
1.2.3 C语言的发展历史和特点 6
1.2.4 程序设计 7
1.3 程序的组成 9
1.3.1 程序的语法对象 9
1.3.2 程序的基本结构 11
1.3.3 程序的基本语法单位 13
1.4 程序设计的步骤 14
1.4.1 问题说明 14
1.4.2 设计测试计划 15
1.4.3 设计方案 16
1.4.4 开发环境 16
1.4.5 构造程序 16
1.4.6 执行和测试程序 17
1.5 本章小结 17
习题1 17
第2章 数据、类型和运算 19
2.1 计算机中的数与数制 19
2.1.1 计算机中的整数 20
2.1.2 计算机中的实数 21
2.1.3 计算机中的文字 22
2.2 C的数据类型和基本数据类型 22
2.2.1 C的数据类型 23
2.2.2 C的基本数据类型 23
2.3 变量 25
2.3.1 数学中的变量和计算机中的变量 25
2.3.2 变量的定义形式 25
2.3.3 变量的定义位置 25
2.3.4 变量的初始化 25
2.3.5 类型限定词 26
2.3.6 变量的左值和右值 27
2.4 常量 28
2.4.1 整型常量 28
2.4.2 浮点数常量 29
2.4.3 字符型常量 29
2.4.4 字符串常量 30
2.4.5 符号常量(不带参数的宏) 31
2.5 数值问题的计算误差 32
2.5.1 整数上溢 32
2.5.2 浮点数的可表示误差 34
2.5.3 浮点数上溢 35
2.5.4 浮点数下溢 36
2.5.5 数据类型的选择 37
2.6 表达式的基本概念 37
2.6.1 运算符和算元 37
2.6.2 优先级别、括号和结合性 37
2.6.3 C语言中的运算符概述 38
2.7 C语言中的运算符 39
2.7.1 算术运算、增量和减量运算符 39
2.7.2 赋值运算符 41
2.7.3 关系运算符和逻辑运算符 43
2.7.4 条件运算符和逗号运算符 45
2.7.5 位运算符 45
2.7.6 其他运算符 47
2.8 表达式中的自动类型转换和强制类型转换 48
2.8.1 自动类型转换 48
2.8.2 强制类型转换 49
2.9 本章小结 50
2.9.1 主要知识点 50
2.9.2 难点和常见错误 51
习题2 51
第3章 简单程序设计 54
3.1 结构化的三种基本结构 54
3.1.1 结构化程序设计的基本思想 54
3.1.2 三种基本结构 55
3.2 语句 57
3.2.1 表达式语句 57
3.2.2 块语句 57
3.2.3 跳转语句 58
3.2.4 其他控制语句 59
3.3 控制台I/O 59
3.3.1 读写字符 59
3.3.2 格式化控制台输出 61
3.3.3 格式化控制台输入 64
3.4 程序原型 66
3.4.1 程序原型 67
3.4.2 程序书写风格 67
3.4.3 程序布局与规范 67
3.5 编写简单的C程序 68
3.6 本章小结 70
3.6.1 主要知识点 70
3.6.2 难点和常见错误 70
习题3 71
第4章 流程控制 73
4.1 if条件语句 73
4.1.1 双分支if语句 73
4.1.2 单分支if语句 75
4.1.3 嵌套if语句 78
4.1.4 if-else-if梯次 81
4.1.5 代替if语句的条件运算符 82
4.2 switch多重选择语句 82
4.2.1 switch语句基本语法 82
4.2.2 使用switch语句的三个要点 85
4.3 循环语句 86
4.3.1 for语句 86
4.3.2 while语句 89
4.3.3 do-while语句 91
4.3.4 goto语句构建循环结构 93
4.4 循环结构中的break和continue语句 94
4.4.1 break语句 94
4.4.2 continue语句 95
4.5 应用实例 96
4.5.1 哨兵循环 96
4.5.2 查询循环 97
4.5.3 计数循环 99
4.6 本章小结 103
4.6.1 主要知识点 103
4.6.2 难点和常见错误 103
习题4 105
第5章 函数 108
5.1 模块化的程序设计 108
5.1.1 从构造计算机说起 108
5.1.2 C语言中的程序模块 109
5.1.3 程序“模块化”的目的 110
5.2 创建函数 110
5.2.1 C语言中函数分类 110
5.2.2 函数定义的一般形式 111
5.2.3 定义无参函数 111
5.2.4 定义有参函数 112
5.2.5 理解函数的作用域规则 113
5.3 函数调用 113
5.3.1 函数调用的一般形式 113
5.3.2 函数原型 117
5.4 函数之间的数据通信 119
5.4.1 模块间的数据通信方式 119
5.4.2 C函数中形参和实参间的值传递 120
5.4.3 C函数的返回值 122
5.5 函数的递归调用 125
5.5.1 运行栈 125
5.5.2 直接递归和间接递归 128
5.5.3 递归与迭代 128
5.5.4 较复杂的递归范例:Hanoi问题 130
5.6 数据的模块化 132
5.6.1 什么是数据模块化 132
5.6.2 标识符的作用域和可视性 133
5.6.3 变量的存储类别 137
5.6.4 由多个源文件组成的程序的编译问题 142
5.7 编译预处理 142
5.7.1 宏 142
5.7.2 文件嵌入 144
5.7.3 条件编译 145
5.7.4 其他编译预处理命令 148
5.8 本章小结 148
5.8.1 主要知识点 148
5.8.2 难点和常见错误 149
习题5 150
第6章 程序设计方法概述 153
6.1 算法的概念和特点 153
6.2 算法的描述 154
6.2.1 自然语言描述算法 154
6.2.2 图形工具描述算法 155
6.2.3 伪代码描述算法 159
6.3 程序设计方法基础 160
6.3.1 程序设计方法的演变 160
6.3.2 结构化程序设计 160
6.3.3 面向对象程序设计 161
6.3.4 后面向对象程序设计 162
6.4 结构化程序设计方法 163
6.4.1 构造程序草图 163
6.4.2 选择数据结构 164
6.4.3 功能模块设计 164
6.4.4 模块详细设计 165
6.5 本章小结 167
习题6 167
第7章 数组 169
7.1 什么是数组 169
7.2 一维数组 170
7.2.1 定义一维数组 170
7.2.2 一维数组初始化 171
7.2.3 访问一维数组 173
7.2.4 一维数组范例 176
7.3 字符数组(串) 187
7.3.1 什么是字符串 187
7.3.2 定义字符数组 187
7.3.3 字符数组初始化 187
7.3.4 字符数组的输入输出 188
7.3.5 常用字符串处理库函数(string库) 191
7.3.6 字符数组范例:统计单词个数 195
7.4 二维数组 198
7.4.1 定义二维数组 198
7.4.2 二维数组初始化 198
7.4.3 访问二维数组:矩阵 201
7.5 多维数组 202
7.5.1 定义多维数组 202
7.5.2 进一步解读二维数组 202
7.5.3 字符串数组 203
7.5.4 多维数组范例 204
7.6 本章小结 210
7.6.1 主要知识点 210
7.6.2 难点和常见错误 211
习题7 211
第8章 指针 214
8.1 什么是指针 214
8.1.1 数据的组织方式 214
8.1.2 指针和指针变量 216
8.2 指针变量的初始化 217
8.2.1 指针运算符 217
8.2.2 空指针和空类型指针 218
8.2.3 动态分配函数 219
8.2.4 指针的初始化 220
8.3 指针运算 222
8.3.1 指针赋值 222
8.3.2 指针转换 222
8.3.3 指针算术运算 223
8.3.4 指针比较 224
8.4 地址参数:指针形参模拟引用调用 226
8.5 数组和指针 231
8.5.1 数组元素的指针表示&指针的下标表示 231
8.5.2 字符串的指针表示 232
8.5.3 数组名形参 236
8.5.4 二维数组的地址 239
8.5.5 指针数组 240
8.5.6 C语言中指针和数组“等价” 243
8.6 多级指针 244
8.6.1 二级指针 244
8.6.2 数组指针 246
8.6.3 深入理解多级指针 247
8.7 命令行参数 248
8.8 函数指针 249
8.9 本章小结 252
8.9.1 主要知识点 252
8.9.2 难点和常见错误 253
习题8 254
第9章 结构、联合、枚举和typedef 257
9.1 结构类型的现实意义:实体 257
9.2 结构类型的定义和初始化 258
9.2.1 定义结构类型 258
9.2.2 定义结构类型变量 260
9.2.3 结构类型变量的初始化 260
9.2.4 结构类型变量的引用 261
9.3 向函数传递结构 263
9.3.1 向函数传递结构类型成员 263
9.3.2 向函数传递全结构 264
9.4 结构数组 267
9.5 结构与指针 270
9.5.1 结构指针 270
9.5.2 结构类型的自引用定义 273
9.5.3 动态数据结构 273
9.5.4 链表的概念和分类 274
9.5.5 单链表的基本操作 276
9.6 位段 285
9.7 联合类型 286
9.7.1 定义联合类型变量 286
9.7.2 联合类型变量的引用 287
9.8 枚举类型 289
9.8.1 定义枚举类型变量 289
9.8.2 枚举类型变量的引用 289
9.9 typedef定义类型别名 292
9.10 本章小结 293
9.10.1 主要知识点 293
9.10.2 难点和常见错误 294
习题9 295
第10章 流与文件 297
10.1 文件的基本概念 297
10.1.1 什么是文件 297
10.1.2 数据文件与程序文件 298
10.1.3 C语言中的数据文件 298
10.2 流与缓冲 298
10.2.1 流:输入流和输出流 299
10.2.2 流的格式:文本流和二进制流 299
10.2.3 缓冲区 300
10.2.4 标准流 301
10.3 用户自定义流 302
10.3.1 C语言文件操作基本流程 302
10.3.2 定义和打开流 303
10.3.3 关闭流 304
10.3.4 文件管理错误 304
10.4 I/O文本流 304
10.4.1 输出文本流 304
10.4.2 输入文本流 306
10.4.3 文本文件应用范例 308
10.5 I/O二进制流 311
10.5.1 输出二进制流 311
10.5.2 输入二进制流 312
10.5.3 二进制文件应用范例 312
10.6 其他文件处理库函数 322
10.6.1 流的定位 322
10.6.2 读取流变量的位置号 324
10.6.3 错误检测 325
10.6.4 删除文件 325
10.6.5 对流清仓 325
10.7 文件的深入讨论 326
10.7.1 二进制文件和文本文件的适用范围 326
10.7.2 是否有必要保存指针:链表的存储和恢复 326
10.7.3 加速文件处理速度 328
10.8 本章小结 329
习题10 329
第11章 问题求解策略和算法设计 331
11.1 穷举法:天平检测假金币 331
11.2 局部搜索法:二分法求方程的解 336
11.3 回溯法:八皇后问题 339
11.4 分治法:快速排序法 344
11.5 动态规划法:矩阵连乘积 348
11.6 人工智能问题求解:组合爆炸现象 355
11.6.1 组合爆炸 355
11.6.2 搜索技术 355
11.6.3 爬山搜索实例 359
11.6.4 选择搜索技术 366
11.7 本章小结 367
习题11 367
附录A ASCII码表 368
附录B C运算符的优先级和结合性 370
附录C C关键字 372
附录D 常用C库函数 373
附录E C/C++互联网资源 380
参考文献 384
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《胃癌基础病理》(日)塚本彻哉编者;宫健,刘石译者 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《大学化学实验》李爱勤,侯学会主编 2016
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017