《C语言编程兵书》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:张晶,高洪涛编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121211942
  • 页数:496 页
图书介绍:本书由浅入深,全面、系统地介绍了C语言的编程技术。全书分6篇共13章,主要内容包括C语言概述;C语言的数据类型、运算符、表达式和输入/输出函数;选择结构设计;循环结构设计;数组;字符串;函数;指针;新的数据类型;联合、枚举和位域;预处理;文件操作;综合实例应用。随书所附光盘包含实例源文件、赠送的C语言学习资料和视频教学。本书适合所有想全面学习C语言的编程人员及C语言爱好者阅读。

第1篇 C语言开发基础 3

第1章 扎马步——认识C语言 3

1.1 程序设计语言 3

1.1.1 程序设计语言的发展 3

1.1.2 C语言的发展 4

1.1.3 C语言的特点 4

1.2 结构化程序设计 5

1.2.1 程序设计的概念 5

1.2.2 程序的灵魂——算法 6

1.2.3 程序设计三剑客——三大基本结构 10

1.2.4 实现“结构化程序设计”的方法 12

1.3 C语言程序设计的特点 15

1.3.1 C程序实例 15

1.3.2 C程序的结构特点 16

1.3.3 C语言中的名字规则——标识符 17

1.4 C程序变成EXE文件的过程——编译、连接和执行 19

1.5 编译和运行C程序的一般步骤 21

1.5.1 使用Turbo C 2.0开发 21

1.5.2 使用Visual C++6.0开发 24

1.6 小结 28

1.7 习题 28

第2章 地形:C语言的血液——数据类型、运算符、表达式和输入/输出函数 30

2.1 不可以改变的数据——常量 30

2.1.1 常量的定义 30

2.1.2 进化版的常量——符号常量 30

2.2 可以改变的数据——变量 31

2.2.1 变量的定义 31

2.2.2 给变量起名字——变量的命名规则 31

2.2.3 变量的出生和成长——初始化和赋值 32

2.2.4 变量的寿命——作用域 32

2.2.5 使用extern声明变量 34

2.3 C语言的细胞——数据类型 35

2.3.1 整型(int) 35

2.3.2 实型(float) 37

2.3.3 字符型(char) 38

2.4 运算符和表达式 40

2.4.1 运算符和表达式 41

2.4.2 赋值运算符和赋值表达式 41

2.4.3 算术运算符和算术表达式 42

2.4.4 关系运算符和关系表达式 43

2.4.5 逻辑运算符和逻辑表达式 44

2.4.6 条件运算符和条件表达式 46

2.4.7 逗号运算符和逗号表达式 47

2.4.8 运算符的优先级 47

2.5 不同类型数据之间的转换 48

2.5.1 隐式转换 48

2.5.2 显式转换 49

2.6 数据的输入Input 50

2.6.1 使用scanf()函数实现数据输入 50

2.6.2 一个字符的输入函数——getchar() 52

2.7 数据的输出Output 54

2.7.1 使用printf()函数实现数据格式输出 54

2.7.2 使用putchar()函数实现字符输出 57

2.8 顺序结构程序设计举例 57

2.9 本章知识点综合应用 59

案例一 59

案例二 60

案例三 62

2.1 0小结 63

2.1 1 习题 64

第2篇 C语言编程入门 67

第3章 迎战:选择结构设计 67

3.1 入门——选择结构简介 67

3.2 选择结构设计的实现——if语句 67

3.2.1 if结构语法 67

3.2.2 if结构程序实例 68

3.3 选择结构设计实现——if...else法 70

3.3.1 if...else结构语法 70

3.3.2 if...else结构程序实例 71

3.4 选择结构设计——多重if法 72

3.4.1 多重if结构的语法格式 72

3.4.2 多重if结构程序实例 73

3.5 选择结构设计——if嵌套法 74

3.5.1 if嵌套结构语法 75

3.5.2 if和else配对问题 75

3.5.3 if嵌套结构程序实例 76

3.6 选择结构设计——switch法 77

3.6.1 switch结构语法 77

3.6.2 switch语句的注意事项 78

3.6.3 switch的执行过程 79

3.6.4 switch结构程序实例 79

3.7 switch和多重if的比较 82

3.8 选择结构程序设计举例 84

3.9 本章知识点综合应用 87

案例一 87

案例二 88

案例三 90

3.1 0小结 92

3.1 1 习题 92

第4章 火攻:循环结构设计 96

4.1 循环结构 96

4.2 while循环 97

4.2.1 while循环语法及含义 97

4.2.2 使用while循环程序举例 98

4.3 do...while循环 100

4.3.1 do...while循环结构及含义 100

4.3.2 使用do...while循环程序实例 101

4.4 for循环 103

4.4.1 for循环结构及含义 103

4.4.2 for循环的注意事项 105

4.4.3 使用for循环程序举例 106

4.5 循环嵌套 107

4.5.1 循环嵌套原则 107

4.5.2 使用循环嵌套程序举例 108

4.6 三种循环的比较 110

4.7 跳转语句 112

4.7.1 使用break语句实现循环程序中的跳转 112

4.7.2 使用continue语句实现程序跳转 113

4.7.3 使用goto语句实现程序跳转 114

4.8 循环结构程序设计举例 115

4.9 本章知识点综合应用 118

案例一 118

案例二 119

案例三 121

4.1 0小结 123

4.1 1习题 124

第3篇 数组应用 127

第5章 兵势一:数组 127

5.1 一维数组 127

5.1.1 定义一维数组 127

5.1.2 访问一维数组元素 128

5.1.3 初始化一维数组 129

5.1.4 数组的存储形式 132

5.1.5 注意事项 133

5.1.6 一维数组示例 135

5.2 二维数组 138

52.1 定义二维数组 138

5.2.2 访问二维数组元素 139

5.2.3 二维数组的存储方式 140

5.2.4 初始化二维数组 140

5.2.5 二维数组示例 142

5.3 多维数组 145

5.3.1 定义多维数组 145

5.3.2 多维数组示例 146

5.4 本章知识点综合应用 147

案例一 147

案例二 149

案例三 151

5.5 小结 153

5.6 习题 153

第6章 兵势二:字符串 157

6.1 字符数组 157

6.1.1 字符数组的定义 157

6.1.2 字符数组的初始化 159

6.1.3 二维字符数组 160

6.1.4 字符数组实例 162

6.2 字符串 165

6.2.1 字符串常量 166

6.2.2 字符串变量 168

6.2.3 格式化输出字符串 169

6.2.4 格式化输入字符串 170

6.3 字符串应用示例 171

6.3.1 取字符串长度 171

6.3.2 统计字符串中的单词个数 172

6.3.3 颠倒单词顺序 174

6.3.4 改进的颠倒单词顺序实现 176

6.4 本章知识点综合应用 179

案例一 179

案例二 180

案例三 181

6.5 小结 182

6.6 习题 183

第4篇 函数及指针应用 189

第7章 谋攻:函数 189

7.1 函数的概念 189

7.1.1 什么是函数 189

7.1.2 函数的分类 190

7.1.3 函数的定义 191

7.1.4 main()函数 193

7.2 函数的工作过程 194

7.2.1 程序结构 194

7.2.2 函数执行过程 195

7.3 编写函数 196

7.3.1 函数头 196

7.3.2 返回值类型 196

7.3.3 参数列表 197

7.3.4 函数体 198

7.3.5 函数原型 198

7.4 函数的参数 199

7.4.1 形参和实参 200

7.4.2 参数传递过程 200

7.4.3 函数参数的“值调用” 200

7.4.4 引用调用 202

7.4.5 数组作为函数参数 204

7.4.6 指针作为函数参数 208

7.4.7 main()函数的参数 209

7.5 函数调用 210

7.5.1 函数调用方式 210

7.5.2 被调函数的说明 211

7.5.3 函数的返回值 212

7.6 几种典型的函数调用形式 214

7.6.1 赋值调用与引用调用 214

7.6.2 嵌套调用 215

7.6.3 递归调用 219

7.7 函数及其变量的作用域 225

7.7.1 函数的作用域 225

7.7.2 函数的变量作用域 226

7.8 本章知识点综合应用 227

案例一 227

案例二 229

案例三 230

7.9 小结 234

7.1 0习题 234

第8章 虚实:指针 236

8.1 内存和变量的关系 236

8.1.1 计算机内存 236

8.1.2 变量的存储 236

8.2 指针和简单变量 238

8.2.1 指针的概念 238

8.2.2 指针的创建 239

8.2.3 指针变量的初始化 240

8.2.4 指针变量的引用 241

8.2.5 给函数传递指针 245

8.3 指针变量的赋值 246

8.3.1 初始化赋值 246

8.3.2 取地址赋值 247

8.3.3 指针之间赋值 247

8.3.4 数组赋值 247

8.3.5 字符串赋值 248

8.3.6 函数入口赋值 248

8.4 指针和数组的关系 248

8.4.1 指针、数组和地址间的关系 248

8.4.2 指针变量的运算 250

8.4.3 用指针操作数组元素 251

8.5 指向多维数组的指针 254

8.5.1 理解二维数组的地址 254

8.5.2 多维数组的指针表示 257

8.5.3 指向多维数组的指针变量 258

8.5.4 数组名作为函数的参数 263

8.5.5 指向数组的指针小结 267

8.6 指针和字符串 267

8.6.1 指针表示字符串 267

8.6.2 字符串指针作函数参数 269

8.6.3 字符数组和字符指针的区别 271

8.7 指针数组 272

8.7.1 指针数组的概念 272

8.7.2 用指针数组处理字符串 275

8.7.3 指针数组作函数参数 277

8.8 指向指针的指针 278

8.8.1 理解指向指针的指针 279

8.8.2 二级指针变量与数组 281

8.9 指针和函数 286

8.9.1 返回指针的函数 286

8.9.2 指向函数的指针 288

8.1 0指针和const变量 291

8.1 0.1 用const控制指针 291

8.1 0.2 const的几种特殊用法 292

8.1 1 指针总结 294

8.1 1.1 明确分辨各种指针类型 294

8.1 1.2 正确理解指针 294

8.1 2本章知识点综合应用 295

案例一 295

案例二 297

案例三 300

8.1 3小结 303

8.1 4习题 304

第5篇 C语言高级数据类型 307

第9章 用间一:新的数据类型 307

9.1 结构的定义 307

9.2 结构变量的定义 308

9.2.1 先定义结构,再定义结构变量 308

9.2.2 在定义结构的同时,定义结构变量 309

9.2.3 直接说明结构变量 309

9.3 结构变量的使用 310

9.4 结构变量的初始化 311

9.5 结构数组 313

9.5.1 结构数组的定义和引用 313

9.5.2 结构数组的初始化 315

9.5.3 结构数组实例 316

9.6 结构指针 317

9.6.1 定义结构指针 317

9.6.2 结构指针的引用 318

9.6.3 用指针处理结构数组 320

9.7 嵌套结构 322

9.7.1 内含数组的结构 322

9.7.2 包含指针的结构 323

9.7.3 包含结构的结构 323

9.8 向函数传递结构型参数 327

9.8.1 传递结构变量的值 327

9.8.2 传递结构指针到函数 329

9.9 本章知识点综合应用 331

案例一 331

案例二 333

案例三 335

9.1 0小结 336

9.1 1 习题 336

第10章 用间二:联合、枚举和位域 338

10.1 联合体(union) 338

10.1.1 定义联合类型 338

10.1.2 定义联合变量 339

10.1.3 联合变量成员的引用 339

10.1.4 联合体型变量数组 340

10.1.5 联合体型变量指针 341

10.1.6 在结构中嵌套联合类型 342

10.1.7 结构体和联合体的区别 345

10.2 枚举 346

10.2.1 定义枚举类型 346

10.2.2 定义枚举变量 347

10.2.3 枚举类型变量的赋值 348

10.3 类型说明 350

10.4 二进制数据存储 351

10.4.1 数据的存储 352

10.4.2 不同数据类型的二进制表示 352

10.5 位运算 355

10.5.1 位逻辑运算符 355

10.5.2 移位运算符 358

10.5.3 位运算的复合赋值运算符 359

10.5.4 位运算的用途 359

10.6 位域 360

10.6.1 定义位域结构 360

10.6.2 位域变量的声明 362

10.6.3 位域的使用 362

10.6.4 位域与联合的使用 364

10.7 本章知识点综合应用 366

案例一 366

案例二 367

案例三 368

10.8 小结 370

10.9 习题 370

第11章 作战:预处理 372

11.1 预处理简介 372

11.1.1 预处理功能 372

11.1.2 预处理命令 372

11.2 宏定义命令 373

11.2.1 无参数的宏定义 373

11.2.2 带参数的宏定义 376

11.2.3 #undef命令 377

11.2.4 预处理操作符#和## 378

11.3 文件包含指令 381

11.4 条件编译指令 382

11.4.1 #if、#else、#endif命令 382

11.4.2 #elif命令 384

11.4.3 #ifdef、#ifndef命令 386

11.4.4 使用#defined和#undef 387

11.5 其他预处理命令 387

11.5.1 预定义的宏名 387

11.5.2 重置行号和文件名命令#line 388

11.5.3 修改编译器设置命令#pragma 389

11.5.4 产生错误信息命令#error 389

11.6 内联函数 390

11.7 小结 392

11.8 习题 392

第6篇 实战篇 395

第12章 白鹤亮翅:文件操作 395

12.1 打开、关闭和检测文件 395

12.1.1 打开文件 395

12.1.2 文件检查函数 399

12.1.3 读写文件数据 399

12.1.4 关闭文件 410

12.2 文件定位函数 410

12.2.1 fseek()函数 410

12.2.2 ftell()函数 413

12.2.3 rewind()函数 414

12.3 文件管理函数的应用 416

12.3.1 删除文件 416

12.3.2 重命名文件 417

12.4 使用临时文件 418

12.5 非缓冲文件系统 419

12.5.1 open()函数 420

12.5.2 close()函数 420

12.5.3 create()函数 420

12.5.4 read()函数 421

12.5.5 write()函数 421

12.5.6 lseek()函数 421

12.6 小结 422

12.7 习题 423

第13章 收兵:C语言程序综合应用 425

13.1 八皇后问题 425

13.2 汉诺塔问题 429

13.3 循环赛问题 430

13.4 猴子选大王 432

13.5 三个数的最小公倍数问题 433

13.6 背包问题 436

13.7 马遍历问题 438

13.8 流水线作业问题 440

13.9 迷宫问题 441

13.1 0关键路径 443

13.1 1 推箱子小游戏的大致实现 445

13.1 2小结 471

13.1 3 习题 471