《C语言程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:曹计昌等编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2008
  • ISBN:7030209087
  • 页数:463 页
图书介绍:本书是国内出版同类教材中最有特色和影响的教材,既适于研究型、技术型高校计算机类专业作为教材使用,也适合有关高校使用。

第1章 概论 1

学习C语言程序设计的第一个例子 1

创建并运行第一个C程序 1

解释分析第一个C程序 2

C语言的产生、发展与语言特征 2

C语言的产生与发展 3

C语言的标准化 4

C语言的语言特征 5

计算机硬件系统 7

数和字符的机器码表示 9

进位计数制 9

进位制数之间的转换 12

数的机器码表示 13

字符的编码表示 15

算法及其表示 17

算法的定义 17

算法的表示 17

算法的实现 19

程序中的语句 21

学习C语言的方法 23

本章小结 25

习题一 25

第2章 数据类型、运算符和表达式 26

字符及词法元素 26

字符集 26

词法元素 26

语法规则 27

BNF范式 27

EBNF范式 28

语法图 28

标识符、关键字及分隔符 29

标识符 29

关键字 30

分隔符 30

基本数据类型 30

数据类型的分类 30

基本类型的名字 31

字符类型char 31

整型类型 32

浮点类型 33

常量与变量 34

文字常量 34

符号常量 37

变量定义 38

运算符和表达式 39

C运算符简介 39

运算符的优先级和结合性 40

算术运算 40

关系运算 41

逻辑运算 42

自增和自减运算 43

赋值运算 44

条件运算 45

逗号运算 46

sizeof运算 47

位运算符和位表达式 47

按位求反(~) 47

按位“与”、“或”、“加”运算(&,|,∧) 48

左移和右移运算(《和》) 48

位运算符应用举例 49

打印整数各位的软件工具 51

类型转换 52

整数提升 52

一般算术转换 52

赋值转换 53

强制类型转换 53

枚举类型 54

新增数据类型 56

本章小结 59

习题二 59

第3章 基本的标准输入与输出 62

基本的标准输出 62

单字符输出函数putchar 62

字符串输出函数puts 63

格式输出函数printf 64

基本的标准输入 69

单字符输入函数getchar 69

字符串输入函数gets 71

格式输入函数scanf 72

基本的标准输入与输出程序设计 80

不同类型数据的转换函数 80

基本的标准输入与输出程序设计 85

本章小结 87

习题三 87

第4章 流程控制 90

C语句概述 90

表达式语句 90

复合语句 91

if语句 93

switch语句 97

while语句 101

for语句 105

do-while语句 109

goto语句和标号语句 115

break语句、continue语句和return语句 118

嵌套循环程序设计 122

推理机程序设计 127

本章小结 130

习题四 130

第5章 函数与程序结构 132

C程序的一般结构 132

结构化程序设计概述 132

C程序的一般结构 133

函数的定义与函数的声明 133

函数的定义 134

return语句 136

函数的声明 137

函数调用与参数传递 138

函数调用 138

参数的值传递 140

作用域 141

存储类型 141

存储类型auto 142

存储类型extern 143

存储类型static 145

存储类型register 147

参数数目可变的函数 147

递归与回溯 149

递归函数与递归调用 149

递归的执行过程 150

Fibonacci数列的递归求解 152

汉诺塔问题的递归求解 152

回溯 154

装载问题的回溯求解 158

多文件的C程序 160

静态函数和外部函数 161

多文件程序的例子:猜数游戏 161

本章小结 164

习题五 165

第6章 编译预处理 168

文件包含#include 168

宏定义#define 169

带参数的宏定义 170

取消宏定义#undef 171

条件编译 171

assert宏 173

stdio.h、ctype.h和stddef.h中的宏 174

预定义宏 175

#操作及##操作 176

#error、#pragma的使用及行号 177

与宏相关的函数 178

本章小结 178

习题六 179

第7章 标准库及用户自定义库 181

程序的接口 181

接口的概念 181

接口与头文件 182

接口的设计原则 182

C标准库的使用 182

标准库 182

使用库 183

C图形库及其基本的图形操作 183

图形显示的窗口和坐标 184

图形模式的初始化 184

基本图形函数 186

颜色及线型的设置 187

封闭图形的填充 190

图形方式下的字符输出 192

图形屏幕操作函数 194

创建自己的库 195

random库的设计 195

random库的接口(即random.h文件) 197

random库的实现(即random.c文件) 198

使用TLIB建立random库 199

动画技术及应用 200

动画技术的实现方法 201

动画技术应用实例——物理现象的计算机仿真 204

C代码的计时与电子钟设计 205

时间相关库 205

电子钟的设计 206

本章小结 209

习题七 210

第8章 数组 212

数组概述 212

一维数组 213

一维数组的声明 213

一维数组的使用 214

一维数组的初始化 215

一维数组的存储结构 216

一维数组的运算 217

一维数组作为函数参数 219

字符数组 222

字符数组的声明和使用 223

字符数组的初始化 224

字符串处理函数 224

串操作函数的设计及使用 224

数字串与数之间转换的函数 230

多维数组 233

多维数组的说明与使用 233

多维数组的存储结构 235

多维数组的初始化 236

二维字符数组 237

数组的应用程序设计举例 238

矩阵乘法运算 238

基于分治策略的二分查找函数 240

选择法排序 241

快速排序与归并排序 242

简单文本编辑器的设计 246

本章小结 251

习题八 251

第9章 指针 253

指针的概念与指针的使用 253

指针的概念 253

指针的声明 254

指针的使用 255

指针运算 259

指针的算术运算 259

指针的赋值运算和关系运算 264

指针作为函数的参数 265

形参指针对实参变量的影响 265

指针作为函数形参的应用 267

数组的指针表示 269

一维数组的指针表示 269

一维数组参数的指针表示 274

用指向数组基本元素的指针表示多维数组 275

指针数组 276

指针数组的声明及使用 276

多重指针 282

带参数的main函数 283

命令行参数 283

带参main函数的声明及使用 283

函数的指针 285

函数指针的声明 285

函数指针的应用 287

利用函数指针求开普勒方程的近似根 289

指针函数 291

指针函数的声明与定义 291

指针函数的使用 292

指向数组的指针 293

指向数组的指针的声明与定义 293

用数组名间访多维数组的元素 293

用指向数组的指针表示多维数组 296

多维数组参数的指针表示 299

用指针编写字符串操作函数 302

字符指针与字符串 302

字符串函数的实现 303

创建自己的字符串库 309

用typedef定义类型表达式 311

类型表达式 311

用typedef定义类型表达式 311

复杂说明的解释 313

复杂说明的应用 314

本章小结 38

习题九 318

第10章 结构与联合 321

结构概述 321

结构类型声明和结构变量的声明及初始化 322

结构类型的声明 322

结构变量的声明 324

结构变量的初始化 325

结构类型的引用 326

结构变量的引用 326

通过成员选择运算符“*”访问成员 327

嵌套结构的声明 328

嵌套结构中结构成员的成员的访问 330

结构类型的指针 331

结构指针的声明和赋值 331

通过“*”用结构指针访问结构变量的成员 332

通过成员选择运算符“-〉”访问结构变量的成员 334

结构类型作为函数的参数和返回值 336

结构成员或结构变量作为函数的参数 336

结构成员或结构变量作为函数的返回值 337

结构类型的指针作为函数的参数或函数的返回值 340

结构数组 342

结构数组的声明及初始化 342

结构数组的使用 343

用结构的指针引用结构数组元素的成员 344

sizeof运算符 346

结构数组作为函数的参数 347

联合 349

联合类型的定义 349

联合变量的声明、初始化及联合成员的引用 349

字段结构 353

字段结构类型的定义 353

字段结构类型变量的声明及成员的引用 354

字段结构与联合的应用 355

动态存储分配 356

静态数据结构和动态数据结构 356

C的动态存储分配函数 357

动态数组设计 358

链表 360

自引用结构 360

动态创建结点 362

单向链表 363

链表的相关操作 366

双向链表 372

堆栈 377

线性表与堆栈 377

用链表实现堆栈 377

基于值栈的逆波兰表达式求值 380

逆波兰表达式及求值算法 380

逆波兰表达式求值的程序设计 381

二叉树 386

本章小结 395

习题十 396

第11章 文件的输入与输出 400

文件概述 400

FILE指针和标准流式文件 403

流式文件的顺序输入/输出 405

文件的打开与关闭 405

文件的重定向 406

基于字符的文件读/写 408

基于字符串的文件读/写 411

文件的格式读/写 413

文件的直接输入/输出 416

流式文件的随机输入/输出 424

文件定位函数 424

文件的随机读/写 425

其他文件操作函数 429

文件访问类函数 429

文件操作类函数 430

出错检测处理类函数 431

输入/输出的低层接口 431

文件的顺序输入/输出 432

文件的随机输入/输出 434

流式文件系统中库函数的设计 437

myfopen函数的设计 438

mygetfp函数和my_openfp函数的设计 438

myCheckOpenType函数的设计 440

myfread函数的设计 441

myfwrite函数的设计 442

使用自己编写的库函数 444

本章小结 445

习题十一 445

参考文献 447

附录 448

ASCII字符编码表 448

键盘编码表 449

C库函数 451

Turbo C 2.0集成开发环境 456

Visual C++6.0集成开发环境 460