C语言程序设计(第2版)

C语言程序设计(第2版)
作 者: 刘韶涛 潘秀霞 应晖
出版社: 清华大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《C语言程序设计(第2版)》作者简介

内容简介

《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语言程序开发人员的参考书。

图书目录

目  录

第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