图书目录

目 录

                                                    第1章基础知识1

1.1为什么要学习程序设计1

1.2C语言简介5

1.3相关的软件知识9

1.3.1二进制9

1.3.2源程序到可执行程序11

1.3.3预处理命令11

1.3.4输入输出12

1.4相关的硬件知识14

1.4.1计算机的硬件体系结构14

1.4.2内存的结构原理15

1.5小结17

1.6补充阅读材料17

1.6.1带参数的宏17

1.6.2主函数的参数18

习题119

第2章数据类型20

2.1数据类型的概念20

2.2常量与变量21

2.2.1常量22

2.2.2变量23

2.2.3标识符的命名规则24

2.2.4标识符命名的建议规范24

2.3整型数据24

2.3.1无符号整型数据25

2.3.2有符号整型数据25

2.4实型数据27

2.4.1实型常量27

2.4.2实型变量27

2.5字符型数据28

2.6字符串常量29

2.7小结29

2.8补充阅读材料29

2.8.1实型数据的存储格式29

2.8.2不同类型数据的混合运算30

习题233

第3章运算符及表达式35

3.1基本概念35

3.1.1运算符分类36

3.1.2运算符与数据类型36

3.1.3运算符的优先级与结合性37

3.2算术运算符37

3.3赋值运算符38

3.4关系运算符40

3.5逻辑运算符41

3.6位运算符42

3.6.1位逻辑运算符42

3.6.2移位运算符43

3.6.3位运算的应用43

3.7运算符的优先级44

3.8小结45

3.9补充阅读材料45

3.9.1表达式结果的数据类型45

3.9.2前置++和后置++的优先级46

习题347

第4章程序的选择结构49

4.1双分支选择结构50

4.2单分支选择结构54

4.3选择结构语句的嵌套56

4.4多分支选择结构58

4.4.1级联式else if语句58

4.4.2switch语句60

4.5小结64

习题465

第5章程序的循环结构66

5.1程序的循环控制66

5.2while循环语句69

5.3dowhile语句73

5.4for语句75

5.5循环结构的嵌套(多重循环)80

5.6特殊的流程控制语句83

5.6.1break语句84

5.6.2continue语句84

5.6.3goto语句86

5.6.4exit()函数87

5.7小结87

5.8补充阅读材料87

5.8.1穷举算法88

5.8.2迭代算法89

习题591

第6章函数94

6.1函数的主要格式95

6.1.1函数的定义96

6.1.2函数的声明98

6.1.3函数的调用99

6.2如何建立函数101

6.2.1建立函数的基本方法101

6.2.2函数封装与程序的鲁棒性103

6.3递归函数110

6.4变量的作用域与存储类型116

6.4.1局部变量与全局变量116

6.4.2变量的存储类型118

6.5模块化程序设计120

6.6小结122

6.7补充阅读材料123

6.7.1模块间数据传递的数据类型123

6.7.2调用函数的执行过程124

习题6125

第7章数组130

7.1数组的定义与初始化131

7.1.1数组的定义131

7.1.2数组的初始化132

7.2数组的引用133

7.3数组作函数参数136

7.4排序问题141

7.4.1交换排序法141

7.4.2选择排序法142

7.4.3冒泡排序法143

7.5查找问题147

7.5.1顺序查找147

7.5.2折半查找148

7.6字符数组151

7.7小结154

7.8补充阅读材料155

7.8.1C99版本起对可变长度数组的支持155

7.8.2可变长度数组的优缺点155

习题7156

第8章指针160

8.1指针概述161

8.1.1指针与地址161

8.1.2指针变量的定义与指针运算符162

8.1.3指针作函数参数165

8.2指针与一维数组168

8.2.1指向一维数组元素的指针168

8.2.2数组名和指针作函数参数170

8.3指针与字符串172

8.4小结173

8.5补充阅读材料174

8.5.1复杂数据类型的指针174

8.5.2指针数组181

8.5.3函数的返回值为指针182

8.5.4动态内存管理184

习题8186

第9章字符串191

9.1字符串常量191

9.2字符串处理函数192

9.3字符串与字符数组196

9.4与字符处理相关的其他库函数196

9.5小结197

习题9198

第10章构造数据类型199

10.1结构体类型199

10.1.1结构体类型的声明199

10.1.2结构体变量的定义200

10.1.3结构体变量成员的引用201

10.2共用体类型203

10.3枚举类型204

10.4小结207

10.5补充阅读材料208

10.5.1创建链表208

10.5.2链表的基本操作209

习题10212

第11章文件的操作213

11.1文件类型及打开方式213

11.2读文件214

11.3写文件215

11.4小结221

习题11221

第12章综合应用222

12.1典型程序示例222

12.2程序设计实例233

12.3单片机程序实例238

12.4小结240

习题12240

附录AASCII码表241

附录BC语言的关键字244附录CC语言运算符的优先级和结合性245附录DC语言的常用库函数247附录EC语言语法概要252第1章C语言和结构化程序设计1

1.1C语言的产生过程及特点1

1.1.1C语言的产生过程1

1.1.2C语言的特点2

1.2C语言程序的结构、书写格式和简单的C语言程序3

1.2.1C语言程序的结构3

1.2.2C语言程序的书写格式4

1.2.3简单的C语言程序4

1.3C语言程序的开发过程及开发环境6

1.3.1C语言程序的开发过程6

1.3.2Turbo C集成开发环境及其使用7

1.3.3Dev C++集成开发环境及其使用10

1.3.4Visual C++开发环境及其使用13

1.4算法和结构化程序设计18

1.4.1算法18

1.4.2结构化程序设计21

1.4.3简单程序的设计21

习题123

第2章数据类型、运算符与表达式24

2.1C语言的数据类型25

2.2常量、变量27

2.2.1常量27

2.2.2变量30

2.2.3变量赋初值31

2.3C语言的运算符和表达式31

2.3.1算术运算符和算术表达式32

2.3.2赋值运算符和赋值表达式34

2.3.3复合的赋值表达式35

2.3.4逗号运算符和逗号表达式35

2.4不同类型数据之间的转换36

2.4.1自动类型转换36

2.4.2强制类型转换38

习题239

第3章顺序结构程序设计41

3.1顺序结构的程序特点42

3.2赋值语句42

3.3数据输入输出43

3.3.1格式输出函数——printf函数43

3.3.2格式输入函数——scanf函数48

3.3.3字符输出函数——putchar函数52

3.3.4字符输入函数——getchar函数53

3.4C语句概述54

3.4.1复合语句54

3.4.2空语句54

3.4.3表达式语句55

3.4.4控制语句55

3.4.5函数调用语句55

3.5应用举例56

习题358

第4章选择结构程序设计60

4.1关系运算符和关系表达式60

4.1.1关系运算符及其优先顺序60

4.1.2关系表达式61

4.2逻辑运算符和逻辑表达式62

4.2.1逻辑运算符及其优先顺序62

4.2.2逻辑表达式63

4.3if语句63

4.3.1if语句与单分支结构63

4.3.2if…else语句与双分支结构64

4.3.3else…if语句与多分支结构65

4.3.4if…else语句的嵌套与分支的嵌套结构67

4.4条件表达式构成的选择结构69

4.4.1条件运算符69

4.4.2条件表达式与双分支结构69

4.5switch语句70

4.5.1break语句70

4.5.2switch语句与多分支结构71

4.6goto语句和标号74

4.7应用举例75

习题479

第5章循环结构程序设计82

5.1while语句与用while语句构成的循环结构83

5.1.1while语句83

5.1.2while构成的循环结构83

5.2do…while语句与用do…while语句构成的循环结构85

5.2.1do…while语句85

5.2.2do…while构成的循环结构85

5.3for语句与用for语句构成的循环结构87

5.3.1for语句87

5.3.2for语句构成的循环结构87

5.4三种循环的比较和嵌套90

5.4.1三种循环的比较90

5.4.2三种循环的嵌套90

5.5循环结构中的break语句和continue语句92

5.5.1循环结构中的break语句92

5.5.2continue语句94

5.6应用举例95

习题5101

第6章数组与字符串105

6.1一维数组105

6.1.1一维数组的定义105

6.1.2一维数组的初始化106

6.1.3一维数组的引用107

6.1.4一维数组应用举例107

6.2二维数组113

6.2.1二维数组的定义113

6.2.2二维数组的初始化114

6.2.3二维数组的引用114

6.2.4二维数组应用举例115

6.3多维数组117

6.4字符数组和字符串119

6.4.1字符数组的定义119

6.4.2字符数组的赋值——字符串的存储方法120

6.4.3字符串的输入121

6.4.4字符串的输出122

6.4.5字符串运算函数123

6.4.6二维字符数组125

6.4.7字符数组和字符串应用举例126

习题6128

第7章函数131

7.1概述131

7.2函数的定义132

7.2.1有参函数定义的一般格式132

7.2.2无参函数定义的一般格式133

7.2.3空函数133

7.3函数的返回值133

7.3.1return语句133

7.3.2函数的返回值134

7.4函数的调用136

7.4.1函数的调用格式136

7.4.2函数调用时的语法要求137

7.4.3调用函数和被调函数之间的数据传递137

7.5函数的声明138

7.6函数的嵌套调用140

7.7函数的递归调用140

7.8库函数的调用142

7.9数组作函数参数147

7.9.1数组元素作函数实参147

7.9.2数组名作函数参数148

7.10应用举例149

习题7151

第8章对函数的进一步讨论154

8.1局部变量和全局变量154

8.1.1局部变量154

8.1.2全局变量155

8.2变量的存储属性156

8.2.1变量的存储类型156

8.2.2局部变量使用的存储类型157

8.2.3全局变量使用的存储类型160

8.3函数的存储属性164

8.3.1内部函数164

8.3.2外部函数165

8.4编译预处理165

8.4.1宏定义165

8.4.2文件包含168

8.4.3条件编译170

习题8172

第9章指针174

9.1地址、指针的概念和指针变量174

9.1.1地址与指针174

9.1.2指针运算符&和175

9.1.3指针变量的定义175

9.1.4指针变量的赋值176

9.1.5指针变量的使用176

9.1.6指针运算178

9.2指针与函数179

9.2.1指针作函数参数179

9.2.2指向函数的指针180

9.2.3返回指针的函数(函数的返回值是指针)182

9.3指针与数组184

9.3.1指针与一维数组184

9.3.2指针与二维数组190

9.3.3指针数组193

9.4指针与字符串195

9.5指向指针的指针196

9.6main函数的参数197

9.7指针与内存的动态存储分配198

9.7.1内存动态存储分配函数198

9.7.2内存动态存储分配函数的应用200

习题9201

第10章用户自己定义的数据类型205

10.1结构体和结构体变量205

10.1.1结构体类型的定义205

10.1.2结构体变量的定义206

10.1.3结构体变量的初始化208

10.1.4结构体变量的引用208

10.1.5结构体变量应用举例209

10.2结构体数组210

10.2.1结构体数组的定义210

10.2.2结构体数组的初始化211

10.2.3结构体数组的引用212

10.2.4结构体数组应用举例212

10.3结构体指针213

10.3.1指向一个结构体变量的指针213

10.3.2指向一个结构体数组的指针215

10.4结构体与函数216

10.4.1结构体的成员作函数参数216

10.4.2结构体变量作函数参数217

10.4.3指向结构体的指针作函数参数218

10.4.4结构体数组作函数参数219

10.4.5函数的返回值是结构体类型222

10.4.6函数的返回值是指向结构体变量或结构体数组元素的指针226

10.5链表228

10.5.1用指针和结构体构成链表229

10.5.2链表的基本操作230

10.6共用体233

10.6.1共用体类型的定义233

10.6.2共用体变量的定义233

10.6.3共用体变量的引用234

10.6.4共用体应用举例235

10.7枚举237

10.7.1枚举类型的定义237

10.7.2枚举变量的定义238

10.7.3枚举变量的引用238

10.7.4枚举应用举例239

10.8用typedef定义新类型名240

习题10241

第11章位运算243

11.1位运算简介243

11.1.1位逻辑运算符243

11.1.2移位运算符245

11.2位赋值运算符246

11.3位段247

11.4应用举例249

习题11251

第12章文件的读写操作253

12.1C文件的概念253

12.2文件的打开和关闭254

12.2.1文件类型指针254

12.2.2fopen函数255

12.2.3fclose函数256

12.3文件的读/写256

12.3.1fgetc和fputc(putc和getc)函数256

12.3.2fread函数和fwrite函数258

12.3.3fscanf函数和fprintf函数261

12.3.4fgets函数和fputs函数262

12.4文件的定位及出错检测264

12.4.1顺序存取和随机存取264

12.4.2rewind函数264

12.4.3fseek函数264

12.4.4ftell函数265

12.4.5出错检测函数265

习题12267

第13章上机实验与指导269

上机实验1C程序的运行环境和运行C程序的方法269

上机实验2数据类型、运算符与表达式270

上机实验3顺序结构程序设计271

上机实验4顺序结构程序设计(续)273

上机实验5选择结构程序设计274

上机实验6选择结构程序设计(续)276

上机实验7循环结构程序设计277

上机实验8循环结构程序设计(续)278

上机实验9选择、循环结构程序设计278

上机实验10一维数组280

上机实验11二维数组280

上机实验12字符数组和字符串282

上机实验13函数(一)283

上机实验14函数(二)284

上机实验15函数(三)285

上机实验16指针(一)286

上机实验17指针(二)287

上机实验18指针(三)288

上机实验19结构体与链表289

上机实验20共用体与枚举289

上机实验21位操作290

上机实验22文件290

第14章总结292

14.1数据的类型及表示形式292

14.1.1数据的类型292

14.1.2数据的表示形式292

14.2运算符与表达式293

14.3算法294

14.4三种基本结构294

14.5用函数实现模块化程序设计294

14.6用文件实现数据的输入输出295

附录AASCII字符编码一览表296

附录BC语言的关键字及其用途297

附录CC语言运算符的优先级别和结合方向299

附录DC语言库函数301

参考文献307