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

  • 购买积分:12 如何计算积分?
  • 作  者:王廷梅,胡正坤,刘琨,赵玮编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2016
  • ISBN:9787030495686
  • 页数:339 页
图书介绍:本书选用以8086/8088CPU为主来介绍微型计算机工作原理、汇编语言及接口技术。除了该课程的基本内容外,本书还增加了现代PC常用的总线技术、存储器管理、80x86/Pentium微处理器的发展等内容。特别是考虑到PC作为上位机广泛应用于各种监测、控制、网络通信等场合,其在接口的应用方式上与芯片级接口有很大不同,本书从PC系统应用的需求出发,增加了PC的软件体系与软件接口基础知识、基于PC的应用系统设计举例。这样,读者在学习传统的微机硬件系统工作原理的基础上,也学习到更实用的总线技术,了解PC系统软件体系及接口,为进一步理解和应用纷繁复杂的微型计算机新技术打下基础。

第1章 C语言程序设计概述 1

1.1 C语言概述 1

1.1.1 C语言的起源和发展 1

1.1.2 C语言的特点 2

1.1.3 C程序的基本结构 3

1.2 程序设计 5

1.2.1 算法 5

1.2.2 算法的描述方法 8

1.2.3 从算法到程序 12

1.3 开发C程序的步骤 14

1.4 执行C程序 18

1.4.1 C语言开发环境 18

1.4.2 解释与编译 18

1.4.3 编辑、编译、链接和执行C程序 18

习题 23

第2章 C语言编程元素 24

2.1 数据类型 24

2.1.1 什么是数据类型 24

2.1.2 为何有数据类型之分 25

2.1.3 数据类型的种类 25

2.2 常量 26

2.2.1 常量的定义 26

2.2.2 特殊常量 26

2.2.3 应用常量编程 28

2.3 变量 28

2.3.1 理解变量 28

2.3.2 变量的类型及定义 29

2.3.3 变量的使用原则 30

2.4 各类数值型数据间的转换 30

2.4.1 隐式类型转换 30

2.4.2 显式类型转换 31

2.5 运算符和表达式 31

2.5.1 算术运算符和算术表达式 31

2.5.2 赋值运算符和赋值表达式 33

2.5.3 关系运算符和关系表达式 33

2.5.4 逻辑运算符和逻辑表达式 34

2.5.5 运算符优先级总结 34

2.5.6 应用运算符和表达式编程 35

2.6 输入输出语句 36

2.6.1 格式化输出函数printf() 36

2.6.2 格式化输入函数scanf() 41

2.6.3 字符输入和输出函数 43

2.6.4 应用输入和输出语句编程 44

2.7 构造数据类型 45

2.7.1 数组 45

2.7.2 结构体 46

2.8 函数 48

2.8.1 模块化程序设计 49

2.8.2 函数定义的四个要素 49

2.8.3 函数的调用 50

2.8.4 函数的参数 50

2.9 C语言的语句 51

2.10 预处理命令 51

2.10.1 宏定义 51

2.10.2 文件包含 52

习题 53

第3章 选择程序设计 55

3.1 选择结构 55

3.1.1 C语言的选择语句 56

3.1.2 选择语句的引入 57

3.1.3 选择语句编程要素 58

3.2 if语句 59

3.2.1 if语句格式 59

3.2.2 if语句执行过程 60

3.2.3 应用if语句编程 62

3.3 嵌套if语句 65

3.3.1 多重if-else结构 67

3.3.2 if语句的多种嵌套形式 71

3.4 条件运算符 74

3.4.1 条件运算符的语句格式 74

3.4.2 条件运算符的运算优先级 75

3.4.3 条件运算符与if-else语句比较 75

3.5 switch语句 76

3.5.1 switch语句的格式 77

3.5.2 switch语句的执行过程 77

3.5.3 switch语句编程要素 80

3.5.4 应用switch结构编程 83

习题 86

第4章 循环程序设计 88

4.1 循环控制语句 88

4.1.1 C语言的循环语句 89

4.1.2 循环的引入 90

4.1.3 应用循环结构编程的要素 91

4.2 while循环语句 93

4.2.1 while循环语句格式 93

4.2.2 while循环语句的执行过程 94

4.2.3 应用while循环编程的要素 95

4.2.4 应用while循环编程 96

4.3 do-while循环语句 97

4.3.1 do-while循环语句的格式 98

4.3.2 do-while语句的执行过程 98

4.3.3 应用do-while循环编程 100

4.4 for循环语句 102

4.4.1 for循环语句格式 102

4.4.2 for循环语句的执行过程 103

4.4.3 使用for循环编程的要素 105

4.4.4 应用for循环编程 106

4.5 三种循环语句的比较 109

4.6 循环嵌套 110

4.6.1 循环嵌套 111

4.6.2 循环嵌套的合法形式 112

4.6.3 应用循环嵌套编程的要素 114

4.6.4 应用循环嵌套编程 117

4.7 循环跳转语句 119

4.7.1 continue语句 120

4.7.2 break语句 121

4.7.3 continue和break语句的区别 122

4.8 循环程序设计应用实例 123

4.9 循环优化 129

习题 131

第5章 数组程序设计 133

5.1 数组数据类型 133

5.1.1 引入数组 134

5.1.2 数组的种类 136

5.1.3 数组编程要素 137

5.2 一维数组 138

5.2.1 定义一维数组 139

5.2.2 初始化一维数组 139

5.2.3 应用一维数组 141

5.3 二维数组 142

5.3.1 定义二维数组 143

5.3.2 初始化二维数组 144

5.3.3 应用二维数组 145

5.4 字符数组 148

5.4.1 初始化字符数组 149

5.4.2 字符数组的输入和输出 151

5.4.3 字符串处理函数 153

5.4.4 应用字符数组 156

5.5 数组与循环 158

习题 168

第6章 指针程序设计 170

6.1 什么是指针 170

6.1.1 引入指针 170

6.1.2 理解指针 171

6.2 指向变量的指针 171

6.2.1 指针变量的定义 171

6.2.2 指针变量的引用 172

6.2.3 应用指针变量 173

6.3 指向一维数组的指针 176

6.3.1 指向一维数组元素的指针的定义 176

6.3.2 通过指针引用一维数组元素 177

6.3.3 应用指向一维数组元素的指针 179

6.4 指向二维数组的指针 180

6.4.1 通过指针访问二维数组 180

6.4.2 二维数组的地址表示方法 181

6.4.3 一维数组指针访问二维数组 181

6.5 指针与字符串 182

6.5.1 字符指针的定义 182

6.5.2 应用字符指针 184

习题 187

第7章 函数程序设计 188

7.1 引入函数 188

7.2 理解函数 191

7.2.1 函数的概念 191

7.2.2 函数的结构 192

7.2.3 函数的定义 193

7.3 调用函数 196

7.3.1 函数的调用方法 196

7.3.2 函数的嵌套调用 199

7.3.3 参数的传递方式 202

7.3.4 函数原型 206

7.4 递归调用 207

7.4.1 认识递归 207

7.4.2 递归调用编程要点 209

7.4.3 递归编程 210

7.5 函数中的变量 213

7.5.1 变量的作用域及类型 213

7.5.2 变量的存储类型 215

7.6 函数的程序设计方法 220

7.6.1 函数功能分解 220

7.6.2 设计函数间传递的参数 221

7.6.3 函数实现方法 222

7.7 函数应用 224

习题 229

第8章 结构体程序设计 230

8.1 结构体数据类型 230

8.1.1 引入结构体 231

8.1.2 结构体类型变量的定义和使用 233

8.1.3 结构体类型变量的赋值和初始化 234

8.1.4 结构体类型变量之成员变量的访问 234

8.2 结构体与函数调用 236

8.2.1 结构体类型变量地址作实参 236

8.2.2 结构体类型变量的成员作实参 237

8.2.3 结构体类型变量作实参 239

8.3 结构体数组及应用 240

8.4 结构体数组与指针 243

8.5 结构体编程应用实例 254

8.6 结构体程序相关技巧 265

8.7 共用体数据类型 266

8.7.1 引入共用体 266

8.7.2 共用体类型的定义 267

8.7.3 共用体类型变量的定义 267

8.7.4 共用体类型变量的引用 268

8.7.5 共用体类型变量的应用 268

8.8 枚举数据类型 270

8.8.1 引入枚举 270

8.8.2 枚举类型的声明 270

8.8.3 枚举类型变量的定义 271

8.8.4 枚举类型变量的使用 271

习题 272

第9章 文件 274

9.1 文件的基本概念 274

9.1.1 文件的定义 275

9.1.2 文件类型指针 275

9.2 打开和关闭文件 276

9.2.1 打开文件 276

9.2.2 关闭文件 277

9.3 以字符形式读写文件数据 278

9.3.1 写字符函数fputc() 278

9.3.2 读字符函数fgetc() 278

9.3.3 判断文件尾函数feof() 279

9.3.4 以字符形式读写文件编程 280

9.4 以数据块形式读写文件 282

9.4.1 写数据块函数fwrite() 282

9.4.2 读数据块函数fread() 283

9.5 以格式读写文件 284

9.5.1 写格式函数fprintf() 285

9.5.2 读格式函数fscanf() 286

9.6 以字符串形式读写文件 287

9.6.1 写字符串函数fputs() 287

9.6.2 读字符串函数fgets(() 288

9.6.3 出错检测函数ferror() 289

9.7 随机访问数据文件 289

9.7.1 随机定位函数fseek() 290

9.7.2 测试当前位置函数ftell() 291

9.7.3 文件头定位函数rewind() 292

9.8 应用文件函数编程 293

习题 299

第10章 C语言调试 301

10.1 调试的定义 301

10.1.1 C语言的BUG 306

10.1.2 断点 308

10.2 单步调试 309

10.2.1 查看变量的内容 309

10.2.2 单步跟踪 312

10.2.3 F7和F8的区别 314

10.3 C语言编译警告类型的解决方法 315

10.4 编写易于调试的代码 318

10.4.1 编程风格 318

10.4.2 借势C++ 319

参考文献 322

附录 323

附录1 C语言的32个关键字及其含义 323

附录2 C语言编程元素及其适用场合 324

附录3 常用字符与ASCII码的对照表 327

附录4常用键盘ASCII码对照 328

附录5 C语言运算符及优先级 330

附录6 C语言的库函数 332

附录7常见的编程错误 338