图书目录

目录

第1章C语言基本概念1

1.1计算机语言和程序2

1.1.1计算机语言2

1.1.2计算机程序2

1.1.3C语言2

1.1.4程序设计3

1.2算法和算法表示4

1.2.1算法的概念4

1.2.2算法的特征6

1.2.3算法的表示7

1.2.4算法的优化14

1.2.5结构化程序设计方法16

1.3C语言编程20

1.3.1编写一个经典的C程序20

1.3.2编译和链接22

1.4变量、表达式和赋值22

1.4.1类型23

1.4.2声明23

1.4.3赋值24

1.4.4变量的初始化24

1.4.5显示变量的值25

1.5从键盘读取输入25

1.6常量定义26

1.6.1宏常量26

1.6.2const常量27

1.7标识符28

1.8C程序的结构特点291.9C语言编程风格31

问与答32

习题133

目录

第2章数据类型与表达式36

2.1变量声明与表达式36

2.2基本数据类型37

2.3整型37

2.4浮点型40

2.5算术运算符与表达式41

2.5.1算术运算符41

2.5.2算术表达式44

2.6赋值运算符与表达式45

2.6.1赋值运算符46

2.6.2赋值表达式46

2.6.3复合赋值运算符及表达式46

2.7自增/自减运算符48

2.8字符型49

2.8.1字符操作49

2.8.2有符号字符与无符号字符49

2.8.3转义序列50

2.9字符处理函数51

2.10类型转换54

2.10.1算术运算过程中的转换54

2.10.2赋值过程中的转换56

2.10.3强制类型转换57

2.11类型定义57

2.12sizeof运算符59

问与答59

习题262

实验题65

第3章格式化输入与输出66

3.1输出函数66

3.1.1转换说明67

3.1.2转义序列71

3.2输入函数72

3.2.1转换说明72

3.2.2scanf()函数的工作原理74

3.2.3格式控制串中的普通字符75

3.2.4scanf()和printf()函数常见错误79

问与答80

习题381

实验题83

第4章选择结构84

4.1关系、等式和逻辑运算符84

4.2逻辑运算符和表达式86

4.3复合语句88

4.4空语句88

4.5if语句88

4.6ifelse语句91

4.7if语句的嵌套92

4.8级联式语句97

4.9switch语句98

4.10条件表达式101

4.11C语言中的布尔值102

4.12程序举例与测试103

4.13本章扩展内容: 位运算107

4.13.1位运算符107

4.13.2位逻辑运算108

4.13.3移位运算109

4.13.4复合位运算赋值运算符109

4.13.5位运算的应用110

问与答111

习题4112

实验题117

第5章循环结构119

5.1循环结构与循环语句119

5.2计数控制的循环126

5.3嵌套循环128

5.4条件控制的循环130

5.5流程的控制转移136

5.5.1break语句136

5.5.2continue语句138

5.5.3goto语句139

5.6应用举例141

问与答145

习题5147

实验题151

第6章函数153

6.1模块化程序设计153

6.2函数的定义154

6.2.1函数的分类154

6.2.2函数的定义155

6.2.3函数调用156

6.3函数原型声明159

6.4实参162

6.5函数封装与防御性编程164

6.6函数设计的基本原则170

6.7函数的嵌套调用171

6.8函数的递归调用和递归函数172

6.9变量的作用域和存储类型175

6.9.1变量的作用域175

6.9.2变量的存储类型177

6.10模块化程序设计实例182

问与答187

习题6189

实验题194

第7章数组195

7.1一维数组195

7.2二维数组199

7.3一维数组作为函数参数201

7.3.1数组作为实参201

7.3.2变长数组作为形参202

7.4排序与查找207

7.5二维数组作为函数参数217

7.6C程序开发方法220

问与答223

习题7225

实验题229

第8章指针230

8.1指针和指针变量230

8.2指针变量的定义和初始化231

8.3间接寻址运算符234

8.4指针变量作为函数参数237

8.5指针变量作为函数参数应用举例240

8.6函数指针及其应用247

问与答250

习题8252

实验题255

第9章字符串256

9.1字符串常量256

9.2字符串的存储256

9.3字符指针258

9.4字符串的读/写259

9.4.1按%c格式控制符读/写259

9.4.2按%s格式控制符读/写260

9.4.3使用字符串处理函数进行读/写260

9.4.4逐个字符读取字符串261

9.5字符串处理函数263

9.6字符串作为函数参数266

9.7从函数返回字符串指针267

问与答269

习题9270

实验题273

第10章指针与数组275

10.1指针的运算275

10.2指针和一维数组的关系276

10.3指针和二维数组的关系281

10.4指针数组及其应用286

10.5动态数组291

10.5.1C程序的内存映像291

10.5.2动态内存分配函数292

10.5.3一维动态数组的内存分配294

10.5.4二维动态数组的内存分配295

问与答297

习题10298

实验题300第11章自定义数据类型302

11.1用户自定义数据类型和信息隐藏302

11.2结构体的定义303

11.3结构体变量的初始化305

11.4结构体的嵌套306

11.5结构体变量的引用306

11.6结构体变量在内存中的存储形式308

11.7结构体数组的定义和初始化310

11.8结构体指针的定义和初始化313

11.9结构体作为函数参数315

11.10共用体320

11.11枚举类型323

11.12单向链表327

11.12.1问题的提出327

11.12.2链表327

11.12.3单向链表的创建328

11.12.4单向链表的搜索331

11.12.5从单向链表中删除节点332

问与答336

习题11337

实验题340

第12章文件342

12.1文件分类342

12.2文件的打开与关闭343

12.3顺序读/写文件345

12.3.1读/写字符346

12.3.2读/写字符串349

12.3.3格式化读/写文件351

12.3.4读/写数据块355

12.4随机读/写文件359

12.5标准输入/输出重定向361

问与答362

习题12364

实验题366

第13章构建大规模程序368

13.1头文件368

13.1.1#include指令的使用368

13.1.2定义共享类型和宏369

13.1.3共享函数原型370

13.1.4共享变量声明370

13.1.5嵌套包含371

13.1.6保护头文件371

13.1.7头文件中的#error指令372

13.2源文件372

13.3多文件程序的设计373

13.4构建多文件程序377

13.4.1makefile文件378

13.4.2链接错误379

13.4.3重构程序379

13.4.4在程序外定义宏381

问与答382

习题13383

实验题383

附录384

附录ADevC++和Visual C++下基本数据类型的取值范围384

附录B关键字384

附录C运算符的优先级与结合性384

附录DASCII字符表384

附录EANSI C标准库函数384

附录FDevC++集成开发环境385

参考文献386