《C程序设计》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:刘君瑞,魏英编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302280118
  • 页数:504 页
图书介绍:本书是针对大学计算机基础课程教学的教材,系统介绍了C语言的基本语法、程序设计方法及常用算法。

第1章 程序设计基础 1

1.1计算机系统和工作原理 1

1.1.1计算机系统的组成 1

1.1.2指令与程序 3

1.2信息的表示与存储 5

1.2.1计算机的数字系统 5

1.2.2进位计数制的转换 6

1.2.3数值数据的表示 9

1.2.4非数值数据的表示 13

1.3程序设计语言 14

1.3.1机器语言与汇编语言 14

1.3.2高级语言 15

1.4程序设计概述 16

1.4.1计算机问题求解的基本特点 16

1.4.2算法的定义与特性 17

1.4.3算法的表示 17

1.4.4结构化程序设计 19

1.4.5面向对象程序设计 20

1.4.6程序设计技术前沿 21

1.5 C语言概述 21

1.5.1 C语言的历史与特点 21

1.5.2 C语言基本词法 22

1.5.3简单的C程序 24

1.5.4 C程序基本结构 26

1.5.5 C程序开发步骤 27

1.5.6 C程序编码风格 28

习题 28

第2章 数据类型与表达式 30

2.1数据类型 30

2.1.1整型 31

2.1.2浮点型 32

2.1.3字符型 33

2.2常量 34

2.2.1整型常量 34

2.2.2浮点型常量 35

2.2.3字符常量 35

2.2.4字符串常量 37

2.2.5符号常量 38

2.3变量 39

2.3.1变量的概念 39

2.3.2定义变量 39

2.3.3使用变量 40

2.3.4存储类别 41

2.3.5类型限定 41

2.4运算符与表达式 42

2.4.1运算符与表达式的概念 42

2.4.2算术运算符 45

2.4.3自增自减运算符 46

2.4.4关系运算符 47

2.4.5逻辑运算符 48

2.4.6条件运算符 50

2.4.7位运算符 51

2.4.8赋值运算符 55

2.4.9取长度运算符 57

2.4.10逗号运算符 57

2.4.11圆括号运算符 58

2.4.12常量表达式 58

2.5类型转换 59

2.5.1隐式类型转换 59

2.5.2显式类型转换 61

习题 62

第3章 程序控制结构 64

3.1语句 64

3.1.1简单语句 64

3.1.2复合语句 66

3.1.3注释 67

3.1.4语句的写法 68

3.2输入与输出 69

3.2.1字符输入与输出 69

3.2.2格式化输出 71

3.2.3格式化输入 76

3.3程序顺序结构 79

3.3.1顺序执行 79

3.3.2跳转执行 79

3.4程序选择结构 80

3.4.1 if语句 80

3.4.2 switch语句 84

3.4.3选择结构的嵌套 86

3.4.4选择结构程序举例 90

3.5程序循环结构 92

3.5.1 while语句 92

3.5.2 do语句 94

3.5.3 for语句 96

3.5.4 break语句 97

3.5.5 continue语句 98

3.5.6循环结构的嵌套 99

3.5.7循环结构程序举例 99

习题 103

第4章 函数 106

4.1函数定义 106

4.1.1函数定义的一般形式 106

4.1.2函数返回 109

4.2函数参数 110

4.2.1形式参数 110

4.2.2实际参数 111

4.2.3参数传递机制 111

4.2.4函数调用栈 112

4.2.5 const参数 114

4.2.6可变参数函数 114

4.3函数原型与调用 116

4.3.1函数声明和函数原型 116

4.3.2库函数的调用方法 119

4.3.3标准库函数 120

4.4内联函数 124

4.5函数调用形式 125

4.5.1嵌套调用 125

4.5.2递归调用 128

4.6作用域和生命期 130

4.6.1局部变量 130

4.6.2全局变量 131

4.6.3作用域 132

4.6.4程序映像和内存布局 135

4.6.5生命期 138

4.7对象初始化 141

4.8声明与定义 143

4.9变量修饰小结 145

4.10程序组织结构 146

4.10.1内部函数 146

4.10.2外部函数 146

4.10.3多文件结构 147

4.10.4头文件与工程文件 148

4.10.5提高编译速度 149

4.11函数应用程序举例 151

习题 154

第5章 预处理命令 156

5.1宏定义 156

5.1.1不带参数的宏定义 157

5.1.2带参数的宏定义 159

5.1.3#和##预处理运算 163

5.1.4预定义宏 163

5.2文件包含 164

5.3条件编译 166

5.3.1#def ine定义条件 166

5.3.2#if def、#ifndef 166

5.3.3#if-#elif 167

5.4其他命令 168

习题 169

第6章 数组 171

6.1一维数组的定义和引用 171

6.1.1一维数组的定义 171

6.1.2一维数组的初始化 173

6.1.3一维数组的引用 173

6.2多维数组的定义和引用 175

6.2.1多维数组的定义 175

6.2.2多维数组的初始化 177

6.2.3多维数组的引用 178

6.3数组与函数 181

6.3.1数组作为函数的参数 181

6.3.2数组参数的传递机制 182

6.4字符串 185

6.4.1字符数组 185

6.4.2字符串 187

6.4.3字符串的输入和输出 189

6.4.4字符串数组 190

6.4.5字符串处理函数 191

6.5数组应用程序举例 196

习题 206

第7章 指针 208

7.1指针与指针变量 208

7.1.1地址和指针的概念 208

7.1.2指针变量 209

7.2指针的使用及运算 211

7.2.1获取对象的地址 211

7.2.2指针的间接访问 212

7.2.3指针变量的初始化与赋值 214

7.2.4指针的有效性 216

7.2.5指针运算 217

7.2.6指针的const限定 222

7.3指针与数组 224

7.3.1指向一维数组元素的指针 224

7.3.2指向多维数组元素的指针 228

7.3.3数组指针 232

7.3.4指针数组 234

7.3.5指向指针的指针 236

7.4指针与字符串 238

7.4.1指向字符串的指针 239

7.4.2指针与字符数组的比较 241

7.4.3指向字符串数组的指针 242

7.5指针与函数 244

7.5.1指针作为函数参数 244

7.5.2函数返回指针值 253

7.5.3函数指针 254

7.6动态内存 258

7.6.1动态内存的概念 258

7.6.2动态内存的分配和释放 259

7.6.3动态内存的应用 260

7.7带参数的main函数 264

习题 266

第8章 自定义数据类型 267

8.1结构体类型 267

8.2结构体对象 269

8.2.1结构体对象的定义 269

8.2.2结构体对象的初始化 272

8.2.3结构体对象的使用 272

8.3结构体与数组 274

8.3.1结构体数组 274

8.3.2结构体数组成员 274

8.4结构体与指针 275

8.4.1指向结构体的指针 275

8.4.2指向结构体数组的指针 277

8.4.3结构体指针成员 278

8.5结构体与函数 279

8.5.1结构体对象作为函数参数 279

8.5.2结构体数组作为函数参数 279

8.5.3结构体指针作为函数参数 280

8.5.4函数返回结构体对象或指针 280

8.6共用体 281

8.6.1共用体概念及类型声明 281

8.6.2共用体对象的定义 282

8.6.3共用体对象的使用 282

8.6.4结构体与共用体嵌套 284

8.7枚举类型 284

8.7.1枚举类型的声明 284

8.7.2枚举类型对象 285

8.8位域 285

8.8.1位域的声明 285

8.8.2位域的使用 287

8.9用户自定义类型 288

习题 291

第9章 链表 293

9.1链表概述 293

9.1.1链表的概念 293

9.1.2单链表与双链表 294

9.2链表的创建 295

9.2.1创建单链表 295

9.2.2创建双链表 298

9.3链表的运算 299

9.3.1链表的遍历 299

9.3.2销毁链表 301

9.3.3查找结点 302

9.3.4链表的逆序 304

9.4结点的插入与删除 304

9.4.1单链表插入结点 304

9.4.2单链表删除结点 305

9.4.3双链表插入结点 306

9.4.4双链表删除结点 307

习题 308

第10章 文件 311

10.1文件概述 311

10.1.1文件系统 311

10.1.2流式文件 312

10.1.3文件指针 312

10.2文件打开与关闭 313

10.2.1文件打开 313

10.2.2文件关闭 314

10.2.3文件状态 315

10.2.4文件缓冲 316

10.3文件读写操作 317

10.3.1文件读写操作的基本形式 317

10.3.2读写字符数据 317

10.3.3读写字符串数据 318

10.3.4读写格式数据 319

10.3.5读写数据块 321

10.4文件定位 324

习题 325

第11章 算法 327

11.1算法基本概念 327

11.1.1什么是算法 327

11.1.2算法基本要素 327

11.1.3算法求解过程 328

11.2算法分析 329

11.2.1时间复杂度 329

11.2.2空间复杂度 332

11.3常用算法 332

11.3.1分治法 332

11.3.2动态规划 335

11.3.3贪心算法 338

11.3.4回溯法 341

习题 343

第12章 数据结构 345

12.1数据结构基本概念 345

12.1.1什么是数据结构 345

12.1.2逻辑结构与存储结构 346

12.1.3数据结构与数据类型 346

12.2线性表 347

12.2.1线性表的基本概念 347

12.2.2线性顺序表及其运算 350

12.2.3线性链式表及其运算 355

12.3栈和队列 355

12.3.1栈的定义 355

12.3.2栈的顺序存储及基本运算 356

12.3.3栈的链式存储及基本运算 358

12.3.4队列的定义 358

12.3.5队列的顺序存储及基本运算 359

12.3.6队列的链式存储及基本运算 361

12.4树和二叉树 361

12.4.1树的基本概念 361

12.4.2二叉树及其基本性质 364

12.4.3二叉树的存储结构 367

12.4.4二叉树的遍历 368

习题 370

第13章 高级编程技术 372

13.1配置开发环境 372

13.1.1开发环境的路径参数 372

13.1.2开发环境的路径设置 373

13.1.3开发环境的配置 375

13.1.4函数库的包含和连接 376

13.1.5函数库配置举例 378

13.2界面编程 381

13.2.1 Windows编程的基本概念 381

13.2.2数据定义与数据类型 382

13.2.3消息与消息循环 385

13.2.4资源与资源文件 387

13.2.5 Windows应用程序结构 396

13.2.6 Windows编程框架 402

13.2.7图形输出 409

13.2.8事件处理 425

13.2.9控件与对话框 434

13.3图形编程 441

13.3.1图形编程概述 441

13.3.2 OpenGL简介 442

13.3.3 GLUT编程模式 444

13.3.4 Win32编程模式 449

13.4多媒体编程 456

13.4.1 MCI编程 456

13.4.2 MCIWnd编程 462

13.4.3 MMAPI编程 467

13.5网络编程 472

13.5.1 Winsock简介 472

13.5.2 Winsock编程 473

13.5.3 TCP编程模式 476

13.5.4 UDP编程模式 480

13.6数据库编程 483

13.6.1数据库编程概述 483

13.6.2 ODBC简介 484

13.6.3 ODBC编程 487

13.6.4数据库编程举例 494

习题 497

附录A ASCII码对照表 499

附录B C语言关键字 500

附录C C语言运算符及其优先级、结合性 502

参考文献 504