书籍详情
C语言程序设计(第2版)
作者:刘韶涛、潘秀霞、应晖
出版社:清华大学出版社
出版时间:2020-01-01
ISBN:9787302544586
定价:¥68.00
购买这本书可以去
内容简介
《C语言程序设计(第2版)》是在第1版的基础上,作者根据近年来实际工作过程中积累的教学经验与学生在学习和使用C语言进行程序设计过程中的心得体会、遇到的各种问题及各种反馈意见,进行了总结讨论和分析提炼,修改并进一步完善了第1版的基本内容,增加了扩展C程序设计的相关新章节。《C语言程序设计(第2版)》内容分为三个部分,分别是基础篇(第1~9章)、进阶篇(第10~13章)和提高应用篇(第14章),可以满足不同学时、不同层次学生的要求。在提高应用篇中,将C语言应用到数据结构中几种典型的复杂数据类型的表示和实现中,希望能为学习C语言程序设计的读者进一步理解和掌握C程序设计的方法提供引导、思考和启发。 《C语言程序设计(第2版)》力求对C语言程序设计中涉及的基本概念、基本理论、典型应用和语法规则等的表述更为规范、科学和准确,文字叙述更加精炼通顺、实验数据更为准确。另外,《C语言程序设计(第2版)》还为全部习题和案例程序提供了完整的注释、运行结果分析和解题说明等。 在《C语言程序设计(第2版)》中,不仅仅局限于对C语言程序设计知识的描述,还阐述了与C语言程序设计相关的其他知识,特别介绍了C语言在其他交叉学科和相关领域中的新应用,让读者对C语言程序设计的整个学科体系、不同的软件开发环境、工程实践背景等都有一个较清楚的了解和认识。 《C语言程序设计(第2版)》既可作为高等学校C语言程序设计课程的教材,也可作为C语言程序开发人员的参考书。
作者简介
暂缺《C语言程序设计(第2版)》作者简介
目录
目 录
第1章 程序设计基础 1
1.1 计算机系统概述 1
1.1.1 硬件基础知识 1
1.1.2 软件基础知识 4
1.2 程序与程序设计语言 5
1.2.1 程序的概念 6
1.2.2 程序设计语言概述 6
1.3 算法及其表示 8
1.3.1 算法 8
1.3.2 算法的特性 10
1.3.3 算法的表示 10
1.4 数据结构概述 14
1.4.1 与数据结构相关的基本概念 14
1.4.2 数据结构的含义 14
1.4.3 常用的逻辑结构 15
1.4.4 常用的存储结构 15
1.4.5 数据的运算集合 15
1.5 计算机中数据的表示 16
1.5.1 数制及其转换 16
1.5.2 计算机中数据的表示 19
1.6 结构化程序设计概述 24
1.6.1 结构化程序设计思想 24
1.6.2 三种基本程序结构 25
1.6.3 结构化程序设计举例 26
1.7 本章学习小结 28
1.8 习题 28
第2章 C语言与C程序概述 29
2.1 C语言概述 29
2.1.1 C语言的发展背景 29
2.1.2 C语言的特点 30
2.2 C程序概述 31
2.2.1 C程序结构 31
2.2.2 C程序基本词汇符号 34
2.2.3 C程序的书写风格 36
2.2.4 C程序的运行步骤和方法 39
2.3 本章学习小结 41
2.4 习题 41
第3章 数据类型、运算符和表达式 42
3.1 基本数据类型 42
3.1.1 void类型 44
3.1.2 字符类型 45
3.1.3 整数类型 45
3.1.4 实数类型 46
3.2 变量 46
3.2.1 变量声明与定义 46
3.2.2 变量初始化 47
3.3 常量 48
3.3.1 常量的表示 48
3.3.2 代码常量 52
3.4 运算符和表达式 53
3.4.1 赋值运算符和赋值表达式 54
3.4.2 算术运算符及表达式 56
3.4.3 逗号运算符及逗号表达式 58
3.4.4 关系运算符和逻辑运算符 58
3.4.5 条件运算符 60
3.4.6 常用标准函数的调用 61
3.4.7 位运算符 62
3.5 表达式求值 64
3.5.1 优先级 65
3.5.2 结合性 65
3.5.3 表达式求值中的类型转换 65
3.6 本章学习小结 67
3.7 习题 67
第4章 顺序结构程序设计 70
4.1 C语言的语句 71
4.1.1 空语句 71
4.1.2 表达式语句 71
4.1.3 复合语句 72
4.1.4 控制语句 73
4.2 输入/输出概述 73
4.2.1 流 73
4.2.2 标准输入/输出 74
4.3 字符输入/输出 74
4.3.1 字符输出函数putchar() 74
4.3.2 字符输入函数getchar() 75
4.4 格式化输入/输出 76
4.4.1 格式化输出函数printf() 76
4.4.2 格式化输入函数scanf() 84
4.5 顺序结构程序设计的应用 89
4.6 本章学习小结 92
4.7 习题 92
第5章 选择结构程序设计 95
5.1 if语句概述 95
5.2 if语句的使用 96
5.2.1 单分支if语句 96
5.2.2 双分支if语句 97
5.2.3 多分支if语句 99
5.2.4 if的嵌套 100
5.3 条件运算符与条件表达式 103
5.4 switch语句 104
5.5 本章学习小结 106
5.6 习题 106
第6章 循环结构程序设计 108
6.1 while当型循环 108
6.2 do…while型循环 111
6.3 for循环 113
6.4 循环嵌套及其使用 115
6.5 break和continue语句 122
6.5.1 break语句 122
6.5.2 continue语句 124
6.6 goto语句 124
6.7 本章学习小结 125
6.8 习题 126
第7章 数组 127
7.1 数组的基本概念 127
7.2 一维数组的定义与使用 129
7.2.1 一维数组的定义 129
7.2.2 一维数组的初始化 132
7.2.3 一维数组的应用 134
7.3 二维数组的定义与使用 147
7.3.1 二维数组的定义 147
7.3.2 二维数组的初始化 148
7.3.3 二维数组的应用 150
7.4 字符数组与字符串 156
7.4.1 字符数组的定义 157
7.4.2 字符数组的初始化 160
7.4.3 字符数组与字符串 161
7.4.4 字符串处理函数 161
7.5 多维数组 164
7.6 本章学习小结 165
7.7 习题 166
第8章 函数基础 168
8.1 函数的概念与定义 168
8.1.1 函数的概念和分类 168
8.1.2 函数的定义 172
8.2 函数的参数与函数的返回值 174
8.2.1 函数的参数 174
8.2.2 函数参数的求值顺序 175
8.2.3 函数的返回值 176
8.3 函数的调用 177
8.3.1 函数调用的概念 177
8.3.2 函数调用的方式 178
8.3.3 函数的原型说明 178
8.3.4 函数的嵌套调用 179
8.4 本章学习小结 181
8.5 习题 181
第9章 指针基础 182
9.1 指针的基本概念 182
9.1.1 指针变量的定义 184
9.1.2 与指针运算紧密相关的两个运算符 184
9.1.3 指针变量的使用 185
9.1.4 const指针 187
9.2 指针与数组 188
9.2.1 指向一维数组元素的指针变量的定义 189
9.2.2 通过指针变量使用一维数组元素 190
9.2.3 指针与二维数组 191
9.2.4 指针与数组作为函数的参数 193
9.2.5 指针数组 196
9.3 指针与字符串 198
9.3.1 指针与字符、字符数组 199
9.3.2 使用指针存储字符串 200
9.4 本章学习小结 201
9.5 习题 201
第10章 数组、函数和指针的高级应用 203
10.1 函数的递归调用 204
10.1.1 递归函数的定义 204
10.1.2 递归函数的应用举例 204
10.2 函数使用const形参 209
10.3 函数与数组 210
10.3.1 数组元素作为函数的实参 210
10.3.2 数组作为函数的参数 211
10.4 变量的类型 215
10.4.1 局部变量和全局变量 215
10.4.2 变量存储类型说明 218
10.5 全局函数和静态函数 222
10.5.1 全局函数 222
10.5.2 静态函数 224
10.6 参数类型与数量可变的函数 224
10.7 指针、数组与函数之间的关系 224
10.7.1 数值型指针与数组作为函数的参数 224
10.7.2 字符型指针与数组作为函数的参数 228
10.7.3 指针数组 229
10.7.4 返回指针类型的函数 232
10.7.5 指向函数的指针 234
10.7.6 命令行参数 237
10.8 多级间址 238
10.9 void型指针与动态内存分配 241
10.9.1 void型指针 241
10.9.2 动态存储分配 243
10.10 本章学习小结 247
10.11 习题 248
第11章 结构体、共用体与枚举类型 250
11.1 结构体 250
11.1.1 结构体类型定义 251
11.1.2 结构体变量的定义、初始化及引用 251
11.1.3 成员包含结构体类型的结构体 252
11.1.4 结构体变量的初始化 253
11.1.5 结构体变量的引用 255
11.2 结构体数组 259
11.2.1 结构体数组的定义 259
11.2.2 结构体变量数组的初始化 260
11.2.3 结构体数组的引用 261
11.3 指向结构体类型的指针 262
11.4 结构体指针的应用 267
11.4.1 包含指针成员的结构变量 268
11.4.2 单向链表的简单操作 273
11.5 共用体 280
11.5.1 共用体类型定义 282
11.5.2 共用体变量的声明 282
11.5.3 共用体变量的引用 283
11.6 枚举类型 285
11.6.1 枚举类型变量的声明 285
11.6.2 枚举变量的引用 285
11.7 typedef定义类型 287
11.8 本章学习小结 289
11.9 习题 289
第12章 文件 290
12.1 流和文件 290
12.1.1 流 290
12.1.2 文件 291
12.1.3 文件类型的指针 292
12.1.4 标准文件 292
12.2 文件的打开、关闭与读/写 292
12.2.1 fopen()函数 293
12.2.2 fclose()函数 294
12.2.3 fgetc()与fputc()函数 294
12.2.4 fread()与fwrite()函数 296
12.3 文件I/O 297
12.3.1 fprintf()与fscanf()函数 297
12.3.2 fgets()与fputs()函数 299
12.3.3 文件读/写指针移动函数fseek()与rewind() 300
12.3.4 ftell()和feof()函数 300
12.4 本章学习小结 302
12.5 习题 302
第13章 编译预处理 303
13.1 C预处理程序 303
13.2 #define 304
13.3 #include 305
13.4 条件编译指令 305
13.4.1 #if、#else、#elif和#endif 306
13.4.2 #ifdef和#ifndef 307
13.5 #undef 308
13.6 本章学习小结 309
13.7 习题 309
第14章 C语言的应用——典型数据结构及其实现 311
14.1 线性表 311
14.1.1 线性表的定义 312
14.1.2 线性表的顺序表示和实现——顺序表 312
14.1.3 线性表的链式表示和实现——链表 317
14.1.4 线性表的应用——约瑟夫环问题 324
14.2 栈 326
14.2.1 栈的定义 326
14.2.2 栈的顺序存储结构——顺序栈 327
14.2.3 栈的链式存储结构——链栈 329
14.2.4 栈的应用——数制转换和迷宫问题 332
14.3 二叉树 340
14.3.1 二叉树的定义 340
14.3.2 二叉树的二叉链式存储结构和典型操作 340
14.4 C语言的扩展——C 简介 346
14.5 本章学习小结 347
14.6 习题 347
参考文献 348
附录 349
附录A ASCII表 349
附录B 标准C函数库 349
附录C 运算符的优先级与结合性 349
第1章 程序设计基础 1
1.1 计算机系统概述 1
1.1.1 硬件基础知识 1
1.1.2 软件基础知识 4
1.2 程序与程序设计语言 5
1.2.1 程序的概念 6
1.2.2 程序设计语言概述 6
1.3 算法及其表示 8
1.3.1 算法 8
1.3.2 算法的特性 10
1.3.3 算法的表示 10
1.4 数据结构概述 14
1.4.1 与数据结构相关的基本概念 14
1.4.2 数据结构的含义 14
1.4.3 常用的逻辑结构 15
1.4.4 常用的存储结构 15
1.4.5 数据的运算集合 15
1.5 计算机中数据的表示 16
1.5.1 数制及其转换 16
1.5.2 计算机中数据的表示 19
1.6 结构化程序设计概述 24
1.6.1 结构化程序设计思想 24
1.6.2 三种基本程序结构 25
1.6.3 结构化程序设计举例 26
1.7 本章学习小结 28
1.8 习题 28
第2章 C语言与C程序概述 29
2.1 C语言概述 29
2.1.1 C语言的发展背景 29
2.1.2 C语言的特点 30
2.2 C程序概述 31
2.2.1 C程序结构 31
2.2.2 C程序基本词汇符号 34
2.2.3 C程序的书写风格 36
2.2.4 C程序的运行步骤和方法 39
2.3 本章学习小结 41
2.4 习题 41
第3章 数据类型、运算符和表达式 42
3.1 基本数据类型 42
3.1.1 void类型 44
3.1.2 字符类型 45
3.1.3 整数类型 45
3.1.4 实数类型 46
3.2 变量 46
3.2.1 变量声明与定义 46
3.2.2 变量初始化 47
3.3 常量 48
3.3.1 常量的表示 48
3.3.2 代码常量 52
3.4 运算符和表达式 53
3.4.1 赋值运算符和赋值表达式 54
3.4.2 算术运算符及表达式 56
3.4.3 逗号运算符及逗号表达式 58
3.4.4 关系运算符和逻辑运算符 58
3.4.5 条件运算符 60
3.4.6 常用标准函数的调用 61
3.4.7 位运算符 62
3.5 表达式求值 64
3.5.1 优先级 65
3.5.2 结合性 65
3.5.3 表达式求值中的类型转换 65
3.6 本章学习小结 67
3.7 习题 67
第4章 顺序结构程序设计 70
4.1 C语言的语句 71
4.1.1 空语句 71
4.1.2 表达式语句 71
4.1.3 复合语句 72
4.1.4 控制语句 73
4.2 输入/输出概述 73
4.2.1 流 73
4.2.2 标准输入/输出 74
4.3 字符输入/输出 74
4.3.1 字符输出函数putchar() 74
4.3.2 字符输入函数getchar() 75
4.4 格式化输入/输出 76
4.4.1 格式化输出函数printf() 76
4.4.2 格式化输入函数scanf() 84
4.5 顺序结构程序设计的应用 89
4.6 本章学习小结 92
4.7 习题 92
第5章 选择结构程序设计 95
5.1 if语句概述 95
5.2 if语句的使用 96
5.2.1 单分支if语句 96
5.2.2 双分支if语句 97
5.2.3 多分支if语句 99
5.2.4 if的嵌套 100
5.3 条件运算符与条件表达式 103
5.4 switch语句 104
5.5 本章学习小结 106
5.6 习题 106
第6章 循环结构程序设计 108
6.1 while当型循环 108
6.2 do…while型循环 111
6.3 for循环 113
6.4 循环嵌套及其使用 115
6.5 break和continue语句 122
6.5.1 break语句 122
6.5.2 continue语句 124
6.6 goto语句 124
6.7 本章学习小结 125
6.8 习题 126
第7章 数组 127
7.1 数组的基本概念 127
7.2 一维数组的定义与使用 129
7.2.1 一维数组的定义 129
7.2.2 一维数组的初始化 132
7.2.3 一维数组的应用 134
7.3 二维数组的定义与使用 147
7.3.1 二维数组的定义 147
7.3.2 二维数组的初始化 148
7.3.3 二维数组的应用 150
7.4 字符数组与字符串 156
7.4.1 字符数组的定义 157
7.4.2 字符数组的初始化 160
7.4.3 字符数组与字符串 161
7.4.4 字符串处理函数 161
7.5 多维数组 164
7.6 本章学习小结 165
7.7 习题 166
第8章 函数基础 168
8.1 函数的概念与定义 168
8.1.1 函数的概念和分类 168
8.1.2 函数的定义 172
8.2 函数的参数与函数的返回值 174
8.2.1 函数的参数 174
8.2.2 函数参数的求值顺序 175
8.2.3 函数的返回值 176
8.3 函数的调用 177
8.3.1 函数调用的概念 177
8.3.2 函数调用的方式 178
8.3.3 函数的原型说明 178
8.3.4 函数的嵌套调用 179
8.4 本章学习小结 181
8.5 习题 181
第9章 指针基础 182
9.1 指针的基本概念 182
9.1.1 指针变量的定义 184
9.1.2 与指针运算紧密相关的两个运算符 184
9.1.3 指针变量的使用 185
9.1.4 const指针 187
9.2 指针与数组 188
9.2.1 指向一维数组元素的指针变量的定义 189
9.2.2 通过指针变量使用一维数组元素 190
9.2.3 指针与二维数组 191
9.2.4 指针与数组作为函数的参数 193
9.2.5 指针数组 196
9.3 指针与字符串 198
9.3.1 指针与字符、字符数组 199
9.3.2 使用指针存储字符串 200
9.4 本章学习小结 201
9.5 习题 201
第10章 数组、函数和指针的高级应用 203
10.1 函数的递归调用 204
10.1.1 递归函数的定义 204
10.1.2 递归函数的应用举例 204
10.2 函数使用const形参 209
10.3 函数与数组 210
10.3.1 数组元素作为函数的实参 210
10.3.2 数组作为函数的参数 211
10.4 变量的类型 215
10.4.1 局部变量和全局变量 215
10.4.2 变量存储类型说明 218
10.5 全局函数和静态函数 222
10.5.1 全局函数 222
10.5.2 静态函数 224
10.6 参数类型与数量可变的函数 224
10.7 指针、数组与函数之间的关系 224
10.7.1 数值型指针与数组作为函数的参数 224
10.7.2 字符型指针与数组作为函数的参数 228
10.7.3 指针数组 229
10.7.4 返回指针类型的函数 232
10.7.5 指向函数的指针 234
10.7.6 命令行参数 237
10.8 多级间址 238
10.9 void型指针与动态内存分配 241
10.9.1 void型指针 241
10.9.2 动态存储分配 243
10.10 本章学习小结 247
10.11 习题 248
第11章 结构体、共用体与枚举类型 250
11.1 结构体 250
11.1.1 结构体类型定义 251
11.1.2 结构体变量的定义、初始化及引用 251
11.1.3 成员包含结构体类型的结构体 252
11.1.4 结构体变量的初始化 253
11.1.5 结构体变量的引用 255
11.2 结构体数组 259
11.2.1 结构体数组的定义 259
11.2.2 结构体变量数组的初始化 260
11.2.3 结构体数组的引用 261
11.3 指向结构体类型的指针 262
11.4 结构体指针的应用 267
11.4.1 包含指针成员的结构变量 268
11.4.2 单向链表的简单操作 273
11.5 共用体 280
11.5.1 共用体类型定义 282
11.5.2 共用体变量的声明 282
11.5.3 共用体变量的引用 283
11.6 枚举类型 285
11.6.1 枚举类型变量的声明 285
11.6.2 枚举变量的引用 285
11.7 typedef定义类型 287
11.8 本章学习小结 289
11.9 习题 289
第12章 文件 290
12.1 流和文件 290
12.1.1 流 290
12.1.2 文件 291
12.1.3 文件类型的指针 292
12.1.4 标准文件 292
12.2 文件的打开、关闭与读/写 292
12.2.1 fopen()函数 293
12.2.2 fclose()函数 294
12.2.3 fgetc()与fputc()函数 294
12.2.4 fread()与fwrite()函数 296
12.3 文件I/O 297
12.3.1 fprintf()与fscanf()函数 297
12.3.2 fgets()与fputs()函数 299
12.3.3 文件读/写指针移动函数fseek()与rewind() 300
12.3.4 ftell()和feof()函数 300
12.4 本章学习小结 302
12.5 习题 302
第13章 编译预处理 303
13.1 C预处理程序 303
13.2 #define 304
13.3 #include 305
13.4 条件编译指令 305
13.4.1 #if、#else、#elif和#endif 306
13.4.2 #ifdef和#ifndef 307
13.5 #undef 308
13.6 本章学习小结 309
13.7 习题 309
第14章 C语言的应用——典型数据结构及其实现 311
14.1 线性表 311
14.1.1 线性表的定义 312
14.1.2 线性表的顺序表示和实现——顺序表 312
14.1.3 线性表的链式表示和实现——链表 317
14.1.4 线性表的应用——约瑟夫环问题 324
14.2 栈 326
14.2.1 栈的定义 326
14.2.2 栈的顺序存储结构——顺序栈 327
14.2.3 栈的链式存储结构——链栈 329
14.2.4 栈的应用——数制转换和迷宫问题 332
14.3 二叉树 340
14.3.1 二叉树的定义 340
14.3.2 二叉树的二叉链式存储结构和典型操作 340
14.4 C语言的扩展——C 简介 346
14.5 本章学习小结 347
14.6 习题 347
参考文献 348
附录 349
附录A ASCII表 349
附录B 标准C函数库 349
附录C 运算符的优先级与结合性 349
猜您喜欢