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

  • 购买积分:15 如何计算积分?
  • 作  者:陈良银,游洪跃,李旭伟主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302138192
  • 页数:466 页
图书介绍:本书介绍C语言编程技术。

第1章 基础知识 1

1.1 计算机系统 2

1.1.1 计算机的硬件系统 3

1.1.2 计算机的软件系统 6

1.2 计算机的基本工作原理 7

1.2.1 存储程序的原理 7

1.2.2 内存地址的概念 8

1.2.3 C程序的内存分区 9

1.3 计算机语言 12

1.3.1 机器语言 12

1.3.2 汇编语言 12

1.3.3 高级语言 13

1.4 数据在计算机内的表示 13

1.4.1 计数制 13

1.4.2 不同进位计数制之间的转换 15

1.4.3 数值信息在计算机中的表示 18

1.4.4 二进制算术运算和逻辑运算 22

1.4.5 ASCII码 25

1.5 算法和数据结构 27

1.5.1 算法及其特点 27

1.5.2 数据结构 28

1.5.3 传统流程图表示算法 28

1.6 C语言标准简介 29

1.7 C和C++的不同 30

1.8 C语言编程风格简介 30

习题 31

第2章 C语言的基本要素 33

2.1 C语言程序的开发过程 34

2.2 第一个C语言程序 34

2.2.1 C语言程序的注释 37

2.2.2 main()函数及其返回值 38

2.2.3 函数参数和返回值 38

2.2.4 函数体 39

2.2.5 C程序的运行过程 40

2.3 变量定义、算术表达式、赋值语句和while语句 42

2.3.1 变量定义语句 44

2.3.2 赋值语句 46

2.3.3 算术表达式 46

2.3.4 while循环语句 46

2.3.5 显示输出函数printf() 47

2.4 for循环语句 48

2.5 常量 50

2.5.1 用#define定义宏 50

2.5.2 用const定义常量 52

2.6 字符的输入和输出操作 52

2.6.1 字符输入输出函数 52

2.6.2 文件复制 55

2.6.3 字符计数 58

2.6.4 行计数 61

2.6.5 单词计数 63

2.7 函数 65

2.8 函数参数——复制传值 68

2.9 字符数组和字符指针 71

2.9.1 字符数组 71

2.9.2 字符指针 75

2.10 整型数组 76

2.11 外部变量及变量的作用域 81

2.12 实例研究:寻找质数 84

2.13 程序陷阱 87

习题 88

第3章 变量名、数据类型、运算符和表达式 91

3.1 C语言的变量命名 91

3.1.1 字符集 91

3.1.2 关键字 92

3.1.3 变量命名 92

3.2 C语言的基本数据类型及其大小 93

3.3 常量及其类型 94

3.3.1 字符常量 95

3.3.2 整型常量 97

3.3.3 实型常量 97

3.3.4 字符串常量 98

3.3.5 枚举常量 100

3.3.6 使用const限定的常量 101

3.4 变量类型及其定义 102

3.4.1 基本数据类型变量及其定义 102

3.4.2 变量的初始化 105

3.5 运算符和表达式 105

3.5.1 表达式和表达式的值 106

3.5.2 赋值运算符、赋值表达式和赋值语句 106

3.5.3 算术运算符及其表达式 107

3.5.4 自增和自减算术运算符及其表达式 109

3.5.6 逻辑运算符及其表达式 114

3.5.5 关系运算符及其表达式 114

3.5.7 逗号运算符及其表达式 115

3.5.8 条件运算符及其表达式 116

3.5.9 位运算符及其表达式 117

3.5.10 复合赋值运算符及其表达式 120

3.6 运算符的优先级和求值顺序 123

3.7 类型转换 125

3.8 实例研究:求质数的快速筛法 131

3.9 程序陷阱 134

习题 138

第4章 C程序基本控制结构 141

4.1 程序的基本结构 141

4.1.1 语句和块的概念 141

4.1.2 三种基本结构 142

4.2 顺序结构程序设计 142

4.2.1 数据输入输出在C语言中的实现方法 142

4.3 选择结构程序设计 143

4.2.2 顺序结构程序实例 143

4.3.1 if…else…语句 144

4.3.2 else if语句 145

4.3.3 switch语句 147

4.4 循环结构程序设计 150

4.4.1 while循环语句 150

4.4.2 for循环语句 150

4.4.3 do…while循环语句 154

4.4.4 break、continue和goto语句 156

4.5 实例研究:寻找名人 158

4.6 程序陷阱 161

习题 162

第5章 函数 165

5.1 C语言的程序模块 165

5.2 函数概念 166

5.2.1 函数基础 166

5.2.2 函数的现代定义形式 171

5.2.3 函数的传统定义形式 172

5.2.4 函数返回语句return 172

5.2.5 函数返回非整数 174

5.2.6 函数原型 177

5.2.7 内联函数(inline关键字) 177

5.3 外部变量、内部变量及其作用域 178

5.3.1 外部变量和内部变量 178

5.3.2 变量的作用域规则 191

5.3.3 头文件的设计 193

5.4 变量的存储类型 196

5.4.1 自动型变量 196

5.4.2 静态型变量 196

5.4.3 寄存器型变量 198

5.4.4 外部型变量 198

5.4.5 块结构 199

5.4.6 变量的存储类型及其作用域总结 199

5.5 变量的初始化 201

5.6 变量的连接 202

5.7 自顶向下程序设计 202

5.8 实例研究 203

5.8.1 洗牌和发牌模拟 203

5.8.2 寻求一一函数 205

5.9 程序陷阱 208

习题 210

第6章 数组和指针 211

6.1 指针和地址 212

6.2 指针和函数参数 214

6.3 指针和数组 219

6.4 地址运算 223

6.5 字符指针和函数 227

6.6 指针数组和指向指针的指针 230

6.6.1 指针数组 230

6.6.2 指向指针的指针 234

6.6.3 指针数组的初始化 236

6.7 多维数组 237

6.7.1 二维数组的定义、初始化及引用 237

6.7.2 二维数组作为形式参数 240

6.7.3 指针数组与多维数组的比较 242

6.8 实例研究 243

6.8.1 兑换钱问题 243

6.8.2 最长公共子序列 245

6.9 程序陷阱 248

习题 253

第7章 递归 255

7.1 递归问题求解 255

7.2 回溯法 259

7.3 分而治之算法 263

7.4 实例研究 264

7.4.1 汉诺塔问题 264

7.4.2 迷宫问题 266

7.5 程序陷阱 269

习题 270

第8章 结构、联合、位运算和枚举类型 273

8.1 结构 273

8.1.1 概述 273

8.1.2 结构的声明 273

8.1.3 结构类型变量的引用 276

8.1.4 结构变量的初始化 278

8.1.5 结构数组 279

8.1.6 指向结构类型的指针 285

8.2 联合 289

8.2.1 联合的概念 289

8.2.2 联合的定义 290

8.2.3 联合变量的说明 290

8.2.4 联合变量的赋值和使用 291

8.3 枚举类型 293

8.4 类型定义:typedef 298

8.5 位运算符 299

8.5.1 位运算符介绍 300

8.5.2 位运算综合举例 305

8.6 位段 308

8.6.1 位段的定义和位段变量的说明 308

8.6.2 位段的使用 310

8.7 实例研究 313

8.7.1 石头、剪刀、布游戏 313

8.7.2 最短路径问题 319

8.8 程序陷阱 323

习题 324

第9章 预处理命令 325

9.1 概述 325

9.2 文件包含 325

9.3 宏定义 326

9.3.1 无参宏定义 326

9.3.2 带参宏定义 329

9.4 条件编译 335

9.4.1 第1种形式:#ifdef、#else和#endif 335

9.3.3 取消宏#undef 335

9.4.2 第2种形式:#if、#else和#endif 337

9.4.3 第3种形式:#ifndef、#else和#endif 338

9.5 宏assert 339

9.6 实例研究 340

9.6.1 碰运气游戏 340

9.6.2 编辑字符串 346

9.7 程序陷阱 351

习题 352

第10章 文件 353

10.1 文件概念 353

10.3 文件的打开与关闭 354

10.3.1 文件打开的函数fopen() 354

10.2 文件指针 354

10.3.2 文件关闭的函数fclose() 356

10.4 文件检测函数 356

10.5 文件操作函数 357

10.5.1 字符读写函数:fgetc()/fputc() 357

10.5.2 字符串读写函数:fgets()/fputs() 360

10.5.3 数据块读写函数:fread()/fwrite() 363

10.5.4 格式化读写函数:fscanf()/fprintf() 367

10.6 随机读写文件 370

10.7 实例研究 374

10.7.1 文件加密算法 374

10.7.2 文件分割算法 379

10.8 程序陷阱 386

习题 386

第11章 高级话题 387

11.1 变长参数列表 387

11.2 命令行参数 389

11.3 编译多个源文件程序的说明 390

11.4 用exit()退出程序的执行 391

11.5 运态内存分配与释放 393

11.5.1 运态内存分配函数:malloc() 393

11.5.2 运态内存释放函数:free() 393

11.5.3 运态内存处理实例:线性链表 393

11.6 指针的深入讨论 397

11.6.1 数组名和指针变量作函数参数 397

11.6.2 指向函数的指针变量 398

11.6.3 返回指针的函数 400

11.7 格式化输出与输入讨论 401

11.7.1 格式化输出函数printf() 401

11.7.2 格式化输入函数scanf() 404

11.8 实例研究:生物基因序列 407

11.9 程序陷阱 417

习题 418

12.1 C99增加的属性 419

第12章 C89与C99 419

12.1.1 inline内联函数 420

12.1.2 restrict限定的指针 420

12.1.3 新的内建数据类型 421

12.2 C99改变了的属性 422

12.3 C99删除了的属性 426

A.1 安装程序 429

A.2 建立一个工程 429

附录A C程序的基本开发过程 429

附录B ASCII表 433

附录C 运算符表 435

附录D 常见标准库函数 437

附录E 输入输出格式控制符 451

附录F C程序设计编程风格指导 453

附录G 四川大学计算机学院国家示范性软件学院C语言考研试题举例 455

附录H 词汇表 459

参考文献 465