首页 > 图书中心 > C语言程序设计教程

目录

第1章 C语言概述1

1.1 C语言的发展过程1

1.1.1 C语言的地位2

1.1.2 C语言的特点3

1.2 编写一个简单C语言程序4

1.2.1 C语言程序运行步骤5

1.2.2 C语言程序编译环境6

习题14

第2章 数据类型及基本输入输出15

2.1 基本数据类型15

2.2 标识符15

2.3 常量16

2.3.1 数值常量16

2.3.2 标识符常量18

2.4 变量19

2.4.1 变量的定义19

2.4.2 变量类型及存储单元20

2.4.3 变量的初始化23

2.5 数据类型的混合运算24

2.5.1 自动类型转换规则24

2.5.2 强制类型转换25

2.6 算术运算符与算术表达式26

2.6.1 C语言的运算符26

2.6.2 基本的算术运算符27

2.6.3 算术表达式27

2.6.4 算术运算符的优先级、结合性27

2.6.5 自增、自减运算符28

2.7 赋值运算符与赋值表达式29

2.7.1 基本赋值运算符29

2.7.2 复合赋值运算符29

2.7.3 类型转换30

2.8 逗号运算符与逗号表达式31

2.8.1 逗号运算符31

2.8.2 逗号表达式31

2.9 基本输入输出函数32

2.9.1 数据输入输出的概念及在C语言中的实现32

2.9.2 字符数据的输入输出33

2.9.3 格式输入输出35

习题44

第3章 控制流程47

3.1 算法47

3.1.1 算法概述47

3.1.2 算法的特性49

3.1.3 算法的表示方法49

3.1.4 流程图49

3.1.5 三种基本结构和改进的流程图50

3.1.6 N-S流程图53

3.2 顺序结构程序设计54

3.2.1 表达式语句54

3.2.2 函数调用语句55

3.2.3 控制语句55

3.2.4 复合语句56

3.2.5 空语句57

3.3 选择结构程序设计57

3.3.1 关系运算符及关系表达式57

3.3.2 逻辑运算符及逻辑表达式58

3.3.3 if语句61

3.3.4 switch语句69

3.4 循环结构71

3.4.1 goto语句72

3.4.2 while语句72

3.4.3 do…while语句74

3.4.4 for语句76

3.4.5 循环语句的嵌套78

3.5 break与continue语句79

3.5.1 break语句79

3.5.2 continue 语句80

3.6 应用实例81

习题85

第4章 数组89

4.1 一维数组89

4.1.1 一维数组的定义89

4.1.2 一维数组的初始化90

4.1.3 一维数组的引用91

4.2 二维数组92

4.2.1 二维数组的定义92

4.2.2 二维数组的初始化93

4.2.3 二维数组的引用95

4.3 字符数组96

4.3.1 字符数组的定义96

4.3.2 字符数组的初始化97

4.3.3 字符数组的引用97

4.4 数组与存储单元97

4.4.1 一维数组元素的存储98

4.4.2 二维数组元素的存储98

4.4.3 字符串的存储99

4.5 应用实例99

习题103

第5章 函数105

5.1 结构化程序设计方法105

5.1.1 自顶向下、逐步细化的方法106

5.1.2 系统的模块设计106

5.1.3 结构化编码107

5.2 函数的定义108

5.2.1 无参函数的定义形式108

5.2.2 有参函数的定义形式109

5.3 函数的调用110

5.3.1 实参与形参110

5.3.2 函数的返回值112

5.4 函数的嵌套调用和递归调用112

5.4.1 函数的嵌套调用113

5.4.2 函数的递归调用114

5.5 数组作为函数的参数传递117

5.5.1 数组元素作函数实参117

5.5.2 数组名作函数参数118

5.6 存储类别和变量的作用域123

5.6.1 动态存储方式与静态存储方式123

5.6.2 auto变量123

5.6.3 用static声明局部变量124

5.6.4 register变量125

5.6.5 用extern声明外部变量126

5.6.6 变量的作用域126

5.7 应用实例130

习题139

第6章 指针140

6.1 指针的概念140

6.2 指针与指针的运算141

6.2.1 指针定义与初始化141

6.2.2 指针的运算142

6.2.3 直接引用与间接引用144

6.2.4 多级间址147

6.3 指针与数组148

6.3.1 指针与一维数组的关系148

6.3.2 指针与二维数组的关系150

6.3.3 指向一个由n个元素组成的数组指针152

6.3.4 指针数组154

6.3.5 动态数组156

6.4 指针与函数159

6.4.1 指针作函数的形参161

6.4.2 数组与指针作函数的形参的比较162

6.4.3 返回指针值的函数167

6.4.4 指向函数的指针169

6.5 指针与字符串172

6.5.1 字符串的表示方法172

6.5.2 字符指针作函数参数174

6.5.3 字符型指针数组176

6.6 带参数的main函数177

6.7 应用实例178

6.7.1 需要多个返回值时采用指针作参数的实例178

6.7.2 用指针实现更为灵活的数组操作的实例181

6.7.3 指针与字符串的应用实例183

习题186

第7章 结构体190

7.1 概述190

7.2 结构体类型的定义191

7.3 结构体变量的定义及初始化191

7.3.1 结构体变量的定义191

7.3.2 结构体成员的引用193

7.3.2 结构体变量的初始化194

7.4 结构体数组196

7.4.1 结构体数组的定义197

7.4.2 结构体数组的初始化197

7.4.3 结构体数组的应用实例198

7.5 指针与结构体203

7.5.1 结构体指针的定义与使用204

7.5.2 指向结构体数组的结构体指针205

7.5.3 结构体指针作函数参数207

7.6 联合体209

7.7 枚举212

7.8 用typedef 定义类型215

7.9 应用实例216

7.9.1 简单结构体变量的参数传递216

7.9.2 结构体数组的排序218

7.9.3 结构体、联合体以及枚举的综合实例221

习题224

第8章 简单数据结构226

8.1 数据结构概述226

8.2 顺序表226

8.2.1 顺序表的创建227

8.2.2 顺序表的插入228

8.2.3 顺序表的删除231

8.3 链表232

8.3.1 单链表的创建233

8.3.2 单链表的插入235

8.3.3 单链表的删除238

8.4 栈240

8.4.1 栈的创建241

8.4.2 栈的入栈操作243

8.4.3 栈的出栈操作244

8.5 队列250

8.5.1 队列的创建251

8.5.2 队列的入队操作253

8.5.3 队列的出队操作254

8.6 应用实例260

8.6.1 链表应用实例260

8.6.2 栈的应用实例264

8.6.3 队列的应用实例267

习题271

第9章 预处理命令273

9.1 #include预处理命令273

9.2 #define命令274

9.2.1 无参#define命令274

9.2.2 有参#define命令276

9.3 条件编译命令277

9.3.1 #if、#else、#elif以及#endif命令277

9.3.2 #ifdef与#ifndef命令279

习题280

第10章 文件282

10.1 文件概述282

10.2 文件结构体284

10.3 文件打开与关闭函数285

10.3.1 文件打开函数(fopen函数)285

10.3.2 文件关闭函数(fclose函数)287

10.4 输入与输出函数288

10.4.1 fgetc函数与fputc函数288

10.4.2 fgets函数与fputs函数292

10.4.3 fread函数与fwrite函数294

10.4.4 fscanf函数与fprintf函数295

10.5 fseek函数和二进制随机文件297

10.5.1 文件定位297

10.5.2 文件的随机读写298

10.6 应用实例299

习题305

参考文献308

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘