
c程式设计(乔林着书籍)
《c程式设计》是2009年清华大学出版社出版的图书,作者是乔林。
基本介绍
- 书名:c程式设计
- 作者:乔林
- ISBN:9787302196327
- 定价:26
- 出版社:清华大学出版社
- 出版时间:2009-5-1
- 开本:16
内容简介
本书内容包括C语言概述、数据类型与数据对象、运算与操作、基本程式结构、分支结构、循环结构、函式、算法、程式组织、数组、结构体与共用体、指针、字元串、档案和鍊表。通过强调那些程式设计中起重要作用的思想与技术,使读者体会并初步掌握实用程式的设计与开发能力。电脑程式设计基础是高等学校计算机基础课程中的核心课程。本书以C程式设计语言为基础,注重讲解程式设计与软体开发的基本概念、方法和思路,培养读者的基本编程能力、逻辑思维和抽象思维能力。
本书可作为高等院校计算机及理工类各专业、成人教育学院程式设计课程的教材,也可作为计算机套用开发人员及相关人员自学参考书。
编辑推荐
《C程式设计》可作为高等院校计算机及理工类各专业、成人教育学院程式设计课程的教材,也可作为计算机套用开发人员及相关人员自学参考书。
图书目录
第1章 C语言概述1
1.1 C语言简介1
1.1.1 C语言历史1
1.1.2 C语言特点1
1.2 C语言的关键字与标识符2
1.2.1 字元集2
1.2.2 标识符2
1.2.3 关键字3
1.2.4 预定义标识符3
1.3 C程式基本结构4
1.3.1 Hello World4
1.3.2 数据对象6
1.3.3 C程式的结构特点8
1.4 C程式开发流程9
1.4.1 头档案与源档案的编辑9
1.4.2 源档案的编译9
1.4.3 目标档案的连结10
1.4.4 程式调试与执行10
1.5 Turbo C 3.0上机环境与基本操作10
1.5.1 Turbo C 3.0上机环境简介10
1.5.2 档案的创建和保存11
1.5.3 源档案的编辑13
1.5.4 编译与连结13
1.5.5 程式的执行14
1.6 Visual C++ 6.0上机环境与基本操作15
1.6.1 Visual C++ 6.0上机环境简介16
1.6.2 档案的创建和保存16
1.6.3 源档案的编辑17
1.6.4 编译与连结17
1.6.5 程式的执行18
习题118第2章 数据类型与数据对象20
2.1 数据类型概述20
2.2 整数类型21
2.2.1 整数类型数据对象21
2.2.2 整数类型的取值範围22
2.3 实数类型22
2.3.1 double类型的使用22
2.3.2 float类型的使用23
2.3.3 实数类型的取值範围23
2.4 字元类型24
2.4.1 字元类型的取值範围24
2.4.2 字元类型数据对象的使用25
2.5 常数25
2.5.1 文字常数26
2.5.2 符号常数28
2.6 变数30
2.6.1 变数的定义30
2.6.2 变数的使用30
2.6.3 变数的特徵31
2.6.4 变数的赋值31
2.6.5 变数的初始化33
2.7 常量33
2.8 用户自定义类型34
2.8.1 枚举类型34
2.8.2 typedef关键字35
习题236第3章 运算与操作37
3.1 表达式37
3.1.1 运算元37
3.1.2 操作符与表达式求值37
3.2 算术操作符38
3.2.1 基本算术操作符38
3.2.2 递增递减操作符38
3.3 赋值操作符39
3.3.1 赋值操作符与赋值表达式39
3.3.2 複合赋值表达式40
3.4 表达式求值41
3.4.1 表达式的一般求值规则41
3.4.2 操作符的优先权与结合性41
3.5 逗号操作符43
3.6 混合运算与类型转换43
3.6.1 隐式类型转换43
3.6.2 显式类型转换44
习题345第4章 基本程式结构46
4.1 语句与注释46
4.1.1 简单语句46
4.1.2 複合语句46
4.1.3 空语句47
4.1.4 注释47
4.2 字元输入输出47
4.2.1 字元数据对象的输出48
4.2.2 字元数据对象的输入48
4.3 格式化输出49
4.3.1 printf函式的基本用法49
4.3.2 格式描述符49
4.3.3 输出精度与格式对齐51
4.4 格式化输入55
4.4.1 scanf函式的基本用法55
4.4.2 取址操作符57
4.4.3 输入时的场宽57
4.5 程式的顺序结构58
4.5.1 顺序结构示例58
4.5.2 条件表达式58
习题459第5章 分支结构61
5.1 逻辑值61
5.2 关係操作符与关係表达式61
5.2.1 关係操作符及其优先权61
5.2.2 关係表达式62
5.3 逻辑操作符与逻辑表达式62
5.3.1 逻辑操作符及其优先权63
5.3.2 逻辑表达式63
5.3.3 複杂逻辑表达式64
5.4 if分支结构65
5.4.1 简单if分支结构65
5.4.2 if-else语句66
5.4.3 if-else if-else语句67
5.5 switch分支结构71
5.5.1 switch语句71
5.5.2 break语句73
5.6 分支结构的嵌套75
5.6.1 if与switch结构的互相嵌套75
5.6.2 if分支结构的多重嵌套75
习题577第6章 循环结构79
6.1 循环结构概述79
6.2 while循环80
6.2.1 while语句80
6.2.2 while循环示例80
6.3 for循环82
6.3.1 简单for循环82
6.3.2 for循环与while循环的关係83
6.3.3 複杂for循环83
6.3.4 “更简单的”for循环84
6.4 循环流程控制85
6.4.1 break语句85
6.4.2 continue语句86
6.5 循环嵌套87
6.6 程式结构化88
6.6.1 程式结构化的基本概念88
6.6.2 结构化程式设计的基本原则88
6.6.3 理解程式的整体思路89
6.6.4 自顶向下逐步求精89
习题690第7章 函式92
7.1 函式调用92
7.1.1 库函式的调用方法92
7.1.2 函式原型93
7.2 函式定义94
7.2.1 函式定义的一般格式94
7.2.2 函式的返回值95
7.2.3 返回BOOL值的函式96
7.3 函式参数97
7.3.1 形式参数与实际参数97
7.3.2 参数传递机制98
7.3.3 函式调用栈框架100
7.3.4 函式的嵌套调用102
7.4 全局数据对象与局部数据对象102
7.4.1 局部数据对象102
7.4.2 全局数据对象103
7.4.3 静态局部数据对象104
7.5 函式与程式模组化106
习题7107第8章 算法108
8.1 算法概述108
8.1.1 算法的基本概念108
8.1.2 算法的基本特徵109
8.2 算法描述110
8.2.1 伪代码110
8.2.2 流程图111
8.3 算法设计114
8.3.1 最大公约数问题115
8.3.2 素性判定问题116
8.4 算法效率117
8.4.1 最大公约数算法的效率117
8.4.2 素性判定算法的效率118
8.4.3 素性判定算法的除虫任务119
8.4.4 效率!效率!120
8.5 递归算法121
8.5.1 递归函式的基本概念121
8.5.2 递归函式设计122
8.5.3 递归与循环123
8.5.4 汉诺塔问题124
8.5.5 递归算法设计的一般策略126
习题8128第9章 程式组织130
9.1 头档案与源档案130
9.1.1 源档案130
9.1.2 头档案131
9.1.3 头档案的包含方法131
9.1.4 头档案的包含测试132
9.2 工程项目档案管理133
9.2.1 Turbo C环境下的工程档案管理133
9.2.2 Visual C++环境下的工程档案管理135
9.3 常用标準库函式138
9.3.1 stdio库138
9.3.2 math库138
9.3.3 ctype库140
9.3.4 stdlib库142
9.4 作用域与生存期144
9.4.1 量的作用域与可见性145
9.4.2 量的存储类与生存期146
9.4.3 静态函式147
9.4.4 声明与定义147
9.5 多档案程式开发示例148
9.5.1 单档案版本148
9.5.2 多档案版本153
习题9157第10章 数组158
10.1 一维数组158
10.1.1 一维数组数据对象的定义158
10.1.2 一维数组的存储表示159
10.1.3 一维数组数据对象的初始化159
10.2 数组元素操作160
10.2.1 数组元素的访问160
10.2.2 数组元素的下标161
10.3 数组与函式162
10.3.1 一维数组作为函式参数162
10.3.2 数组参数传递规範165
10.4 多维数组167
10.4.1 多维数组数据对象的定义167
10.4.2 多维数组数据对象的初始化167
10.4.3 多维数组的存储表示168
10.4.4 多维数组元素的访问168
习题10170第11章 结构体与共用体171
11.1 结构体类型171
11.1.1 结构体类型的定义171
11.1.2 结构体类型的存储布局172
11.1.3 结构体类型的嵌套173
11.2 结构体变数174
11.2.1 结构体变数的定义174
11.2.2 结构体变数的初始化175
11.3 结构体套用175
11.3.1 结构体成员的访问175
11.3.2 结构体与数组177
11.3.3 结构体与函式178
11.4 库与接口179
11.4.1 有理数库180
11.4.2 接口设计原则184
11.5 共用体184
11.5.1 共用体的基本概念184
11.5.2 共用体成员的存储185
11.5.3 结构体与共用体的嵌套186
习题11188第12章 指针189
12.1 指针变数189
12.1.1 地址与值189
12.1.2 指针变数的定义190
12.1.3 指针变数的初始化190
12.1.4 指针值NULL191
12.1.5 指针数据对象与目标数据对象的访问191
12.1.6 指针类型194
12.2 指针与函式195
12.2.1 指针作为函式参数195
12.2.2 指针与常量197
12.2.3 指针与函式返回值199
12.3 指针操作199
12.3.1 数据对象地址的计算199
12.3.2 指针加减操作200
12.3.3 指针递增递减操作201
12.3.4 指针关係操作202
12.4 指针与数组203
12.4.1 指针作为函式参数203
12.4.2 指针与数组的可互换性206
12.4.3 多维数组作为函式参数207
12.5 函式指针208
12.5.1 函式指针的基本概念208
12.5.2 函式指针类型209
12.5.3 函式指针的使用方法210
12.5.4 void类型210
12.6 查找与排序211
12.6.1 排序211
12.6.2 查找214
习题12216
第13章 字元串218
13.1 字元数组218
13.1.1 字元数组的定义218
13.1.2 字元数组的初始化218
13.1.3 字元数组的内部表示219
13.2 字元指针220
13.2.1 字元指针的定义与初始化220
13.2.2 字元指针的内部表示221
13.2.3 字元'\\0'222
13.2.4 字元指针与字元数组的差异223
13.3 字元串与函式223
13.3.1 字元串作为函式参数223
13.3.2 字元串作为函式返回值225
13.4 字元串库226
13.4.1 字元串的长度226
13.4.2 字元串的複製与合併227
13.4.3 字元串的比较228
13.4.4 字元串的查找229
13.5 动态存储管理229
13.5.1 记忆体分配概述229
13.5.2 动态记忆体分配230
13.5.3 动态记忆体释放231
习题13232第14章 档案233
14.1 档案的基本概念233
14.1.1 什幺是档案233
14.1.2 档案类型233
14.1.3 档案指针234
14.2 档案函式234
14.2.1 fopen函式234
14.2.2 fclose函式235
14.2.3 feof函式与EOF宏236
14.2.4 ferror函式236
14.2.5 fflush函式与fflushall函式237
14.2.6 fseek函式237
14.2.7 ftell函式238
14.2.8 rewind函式238
14.2.9 访问档案的基本策略238
14.3 面向字元的档案读写操作238
14.3.1 fputc函式与fgetc函式238
14.3.2 面向字元的档案读写举例239
14.4 面向文本行的档案读写操作240
14.4.1 fputs函式与fgets函式240
14.4.2 面向文本行的档案读写举例241
14.5 格式化信息的档案读写操作241
14.5.1 fprintf函式241
14.5.2 fscanf函式242
14.6 面向信息块的档案读写操作244
14.6.1 fwrite函式与fread函式244
14.6.2 面向信息块的档案读写举例246
习题14248第15章 鍊表249
15.1 指针与结构体249
15.1.1 指针作为结构体的成员249
15.1.2 指向结构体的指针251
15.2 鍊表概述252
15.2.1 鍊表的基本概念252
15.2.2 鍊表与鍊表结点的表示253
15.2.3 鍊表基本操作集256
15.3 鍊表的创建与销毁257
15.3.1 鍊表的创建257
15.3.2 鍊表的销毁258
15.4 结点的插入与删除259
15.4.1 结点的插入操作259
15.4.2 结点的删除操作261
15.5 鍊表的遍历262
15.5.1 鍊表结点数据的输出操作262
15.5.2 使用函式指针实现鍊表遍历263
15.5.3 鍊表库套用264
习题15266
参考文献268