《C程序设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:谭浩强著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1999
  • ISBN:7302038066
  • 页数:388 页
图书介绍:本书介绍C语言程序设计。

1 C语言概述 1

1.1 C语言出现的历史背景 1

1.2 C语言的特点 2

1.3 简单的C程序介绍 4

1.4 C程序的上机步骤 7

习题 12

2 程序的灵魂--算法 13

2.1 算法的概念 13

2.2 简单算法举例 14

2.3 算法的特性 18

2.4 怎样表示一个算法 19

2.4.1 用自然语言表示算法 19

2.4.2 用流程图表示算法 19

2.4.3 三种基本结构和改进的流程图 21

2.4.4 用N-S流程图表示算法 25

2.4.5 用伪代码表示算法 28

2.4.6 用计算机语言表示算法 31

2.5 结构化程序设计方法 32

习题 37

3 数据类型、运算符与表达式 38

3.1 C的数据类型 38

3.2 常量与变量 38

3.2.1 常量和符号常量 38

3.2.2 变量 39

3.3 整型数据 41

3.3.1 整型常量的表示方法 41

3.3.2 整型变量 41

3.3.3 整型常量的类型 45

3.4 实型数据 45

3.4.1 实型常量的表示方法 45

3.4.2 实型变量 46

3.4.3 实型常量的类型 47

3.5 字符型数据 48

3.5.1 字符常量 48

3.5.2 字符变量 49

3.5.3 字符数据在内存中的存储形式及其使用方法 50

3.5.4 字符串常量 52

3.6 变量赋初值 53

3.7 各类数值型数据间的混合运算 54

3.8 算术运算符和算术表达式 54

3.8.1 C运算符简介 54

3.8.2 算术运算符和算术表达式 55

3.9 赋值运算符和赋值表达式 59

3.10 逗号运算符和逗号表达式 63

习题 65

4 最简单的C程序设计--顺序程序设计 67

4.1 C语句概述 67

4.2 赋值语句 69

4.3 数据输入输出的概念及在C语言中的实现 70

4.4 字符数据的输入输出 71

4.4.1 putchar函数(字符输出函数) 71

4.4.2 getchar函数(字符输入函数) 71

4.5 格式输入与输出 72

4.5.1 printf函数(格式输出函数) 72

4.5.2 scanf函数(格式输入函数) 79

4.6 顺序结构程序设计举例 82

习题 84

5 选择结构程序设计 87

5.1 关系运算符和关系表达式 87

5.1.1 关系运算符及其优先次序 87

5.1.2 关系表达式 88

5.2 逻辑运算符和逻辑表达式 88

5.2.1 逻辑运算符及其优先次序 88

5.2.2 逻辑表达式 89

5.3 if语句 91

5.3.1 if语句的三种形式 91

5.3.2 if语句的嵌套 94

5.3.3 条件运算符 96

5.4 switch语句 98

5.5 程序举例 100

习题 104

6 循环控制 106

6.1 概述 106

6.2 goto语句以及用goto语句构成循环 106

6.3 while语句 107

6.4 do-while语句 108

6.5 for语句 110

6.6 循环的嵌套 113

6.7 几种循环的比较 114

6.8 break语句和continue语句 114

6.8.1 break语句 114

6.8.2 continue语句 114

6.9 程序举例 116

习题 120

7 数组 122

7.1 一维数组的定义和引用 122

7.1.1 一维数组的定义 122

7.1.2 一维数组元素的引用 122

7.1.3 一维数组的初始化 123

7.1.4 一维数组程序举例 124

7.2 二维数组的定义和引用 125

7.2.1 二维数组的定义 125

7.2.2 二维数组的引用 126

7.2.3 二维数组的初始化 127

7.2.4 二维数组程序举例 128

7.3 字符数组 130

7.3.1 字符数组的定义 130

7.3.2 字符数组的初始化 130

7.3.3 字符数组的引用 131

7.3.4 字符串和字符串结束标志 131

7.3.5 字符数组的输入输出 133

7.3.6 字符串处理函数 135

7.3.7 字符数组应用举例 138

习题 141

8 函数 143

8.1 概述 143

8.2 函数定义的一般形式 144

8.3 函数参数和函数的值 146

8.3.1 形式参数和实际参数 146

8.3.2 函数的返回值 147

8.4 函数的调用 150

8.4.1 函数调用的一般形式 150

8.4.2 函数调用的方式 151

8.4.3 对被调用函数的声明和函数原型 151

8.5 函数的嵌套调用 155

8.6 函数的递归调用 158

8.7 数组作为函数参数 164

8.8 局部变量和全局变量 168

8.8.1 局部变量 168

8.8.2 全局变量 169

8.9 变量的存储类别 172

8.9.1 动态存储方式与静态存储方式 172

8.9.2 auto变量 173

8.9.3 用static声明局部变量 173

8.9.4 register变量 175

8.9.5 用extern声明外部变量 176

8.9.6 用static声明外部变量 178

8.9.7 关于变量的声明和定义 179

8.9.8 存储类别小结 180

8.10 内部函数和外部函数 182

8.10.1 内部函数 182

8.10.2 外部淡 182

8.11 如何运行一个多文件的程序 184

习题 186

9 预处理命令 187

9.1 宏定义 187

9.1.1 不带参数的宏定义 187

9.1.2 带参数的宏定义 190

9.2 “文件包含”处理 194

9.3 条件编译 196

习题 199

10 指针 201

10.1 地址和指针的概念 201

10.2 变量的指针和指向变量的指针变量 202

10.2.1 定义一个指针变量 203

10.2.2 指针变量的引用 204

10.2.3 指针变量作为函数参数 207

10.3 数组的指针和指向数组的指针变量 210

10.3.1 指向数组元素的指针 211

10.3.2 通过指针引用数组元素 211

10.3.3 数组名作函数参数 216

10.3.4 指向多维数组的指针和指针变量 224

10.4 字符串的指针和指向字符串的指针变量 232

10.4.1 字符串的表示形式 232

10.4.2 字符串指针作函数参数 235

10.4.3 对使用字符指针变量和字符数组的讨论 238

10.5 函数的指针和指向函数的指针变量 241

10.5.1 用函数指针变量调用函数 241

10.5.2 用指向函数的指针作函数参数 243

10.6 返回指针值的函数 245

10.7 指针数组和指向指针的指针 248

10.7.1 指针数组的概念 248

10.7.2 指向指针的指针 251

10.7.3 指针数组作main函数的形参 253

10.8 有关指针的数据类型和指针运算的小结 255

10.8.1 有关指针的数据类型的小结 255

10.8.2 指针运算小结 256

10.8.3 void指针类型 257

习题 258

11 结构体与共用体 260

11.1 概述 260

11.2 定义结构体类型变量的方法 261

11.3 结构体变量的引用 263

11.4 结构体变量的初始化 264

11.5 结构体数组 265

11.5.1 定义结构体数组 265

11.5.2 结构体数组的初始化 266

11.5.3 结构体数组应用举例 266

11.6 指向结构体类型数据的指针 268

11.6.1 指向结构体变量的指针 268

11.6.2 指向结构体数组的指针 269

11.6.3 用结构体变量和指向结构体的指针作函数参数 270

11.7 用指针处理链表 273

11.7.1 链表概述 273

11.7.2 简单链表 274

11.7.3 处理动态链表所需的函数 275

11.7.4 建立动态键表 275

11.7.5 输出链表 278

11.7.6 对链表的删除操作 279

11.7.7 对链表的插入操作 281

11.7.8 对链表的综合操作 284

11.8 共用体 287

11.8.1 共用体的概念 287

11.8.2 共用体变量的引用方式 288

11.8.3 共用体类型数据的特点 289

11.9 枚举类型 291

11.10 用typedef定义类型 294

习题 296

12 位运算 298

12.1 位运算符和位运算 298

12.1.1 “按位与”运算符(?) 298

12.1.2 按位或运算符(|) 299

12.1.3 “异或”运算符(∧) 300

12.1.4 “取反”运算符(~) 301

12.1.5 左移运算符(<<) 302

12.1.6 右移运算符(>>) 302

12.1.7 位运算赋值运算符 303

12.1.8 不同长度的数据进行位运算 303

12.2 位运算举例 303

12.3 位段 305

习题 308

13 文件 309

13.1 C文件概述 309

13.2 文件类型指针 310

13.3 文件的打开与关闭 311

13.3.1 文件的打开(fopen函数) 311

13.3.2 文件的关闭(fclose函数) 313

13.4 文件的读写 313

13.4.1 fputc函数和fgetc函数(putc函数和getc函数) 314

13.4.2 fread函数和fwrite函数 317

13.4.3 fprintf函数和fscanf函数 321

13.4.4 其他读写函数 322

13.5 文件的定位 323

13.5.1 rewind函数 323

13.5.2 fseek函数和随机读写 324

13.5.3 ftell函数 325

13.6 出错的检测 325

13.6.1 ferror函数 325

13.6.2 clearerr函数 326

13.7 文件输入输出小结 326

习题 327

14 C++对C的扩充 328

14.1 C++的特点 328

14.2 最简单的C++程序 329

14.3 C++的输入输出 329

14.3.1 用cout进行输出 330

14.3.2 用cin进行输入 331

14.4 函数的重载 332

14.5 带缺省参数的函数 334

14.6 变量的引用类型 335

14.6.1 引用的概念 335

14.6.2 引用的简单使用 335

14.6.3 引用作为函数参数 336

14.7 内置函数 338

14.8 作用域运算符 339

14.9 动态分配/撤销内存的运算符new和delete 339

14.10 小结 341

15 C++的面向对象基础 342

15.1 概述 342

15.2 类和对象 343

15.3 构造函数和析构函数 346

15.3.1 构造函数 346

15.3.2 析构函数 348

15.4 继承与派生 350

15.4.1 继承与派生的概念 350

15.4.2 建立派生类的方法 352

15.4.3 公用派生类 353

15.4.4 私有派生类 354

15.4.5 保护成员 355

15.4.6 派生类的构造函数 356

15.4.7 继承在软件开发中的重要意义 358

16 常见错误和程序调试 359

16.1 常见错误分析 359

16.2 程序调试 372

附录Ⅰ 常用字符与ASCII代码对照表 374

附录Ⅱ C语言中的关键字 375

附录Ⅲ 运算符和结合性 375

附录Ⅳ C语言常用语法提要 377

附录Ⅴ C库函数 381

参考文献 388