第1章计算机程序设计算法实现1
1.1程序设计概述1
1.1.1程序设计语言1
1.1.2程序设计过程3
1.2程序设计算法与实现4
1.3计算机程序算法的表示5
1.3.1自然语言描述6
1.3.2程序流程图描述6
1.3.3NS图描述7
1.3.4程序设计语言描述8
1.4程序算法实现案例分析12
1.5练习题15
第2章C语言程序的组成与编译运行16
2.1C语言程序设计概述16
2.1.1C语言程序设计的发展16
2.1.2C语言程序设计的特点17
2.1.3C语言程序的组成结构19
2.2C语言程序的编译与运行21
2.2.1编辑调试与编译运行步骤21
2.2.2常用编译运行环境22
2.3C语言的语义规范34
2.3.1C语言程序的基本规范34
2.3.2C语言的标识符37
2.3.3C语言的保留关键字38
2.4练习题38
第3章数据存储类型与相关运算39
3.1数据存储方式39
3.1.1数据存储与数制转换39
3.1.2数据存储类型与定义41
3.1.3存储地址与占用空间43
3.1.4数据常量分类45
3.1.5程序变量定义49
3.2数据存储方式与应用50
C程序设计案例教程(第2版)目录3.2.1数据存储的正负数问题51
3.2.2数据变量取值范围52
3.2.3实型数据存储方式56
3.2.4字符型数据存储方式59
3.2.5各种存储类型混合运算61
3.3运算符与运算表达式62
3.3.1运算符优先级与强制类型转换63
3.3.2算术运算符与算术运算表达式65
3.3.3赋值运算符与赋值运算表达式68
3.3.4逗号运算符与逗号运算表达式71
3.3.5关系运算符与关系运算表达式72
3.3.6逻辑运算符与逻辑运算表达式74
3.3.7条件运算符与条件运算表达式76
3.4练习题78
第4章顺序结构程序设计80
4.1C程序设计流程控制80
4.1.1基本流程控制80
4.1.2顺序结构流程控制81
4.2基本顺序结构命令语句83
4.2.1赋值语句83
4.2.2空语句83
4.2.3复合语句84
4.2.4无条件转向语句84
4.2.5函数调用语句85
4.2.6表达式语句86
4.3常用基本输入输出函数87
4.3.1字符类型输入函数87
4.3.2字符类型输出函数89
4.3.3格式化输入输出函数90
4.4练习题97
第5章条件分支选择结构程序设计99
5.1条件分支选择结构99
5.1.1简单if分支选择结构99
5.1.2ifelse分支选择结构101
5.1.3嵌套的ifelse选择结构103
5.1.4else if多路分支选择结构107
5.2switchcase条件选择语句109
5.2.1switchcase条件选择结构110
5.2.2switchcase条件选择语句的应用112
5.3综合案例分析116
5.4练习题121
第6章循环控制结构程序设计123
6.1循环控制结构123
6.1.1循环控制结构组成要素123
6.1.2while()循环控制结构124
6.1.3dowhile()循环控制结构131
6.1.4for()循环控制结构134
6.2循环控制结构的嵌套139
6.3循环控制结构的辅助控制命令142
6.3.1无条件转移命令goto语句142
6.3.2终止循环执行命令break语句143
6.3.3返回循环条件命令continue146
6.4几种循环控制结构的比较148
6.5循环控制结构综合案例分析148
6.6练习题154
第7章数组的定义及应用156
7.1数组的性质156
7.2一维数组的定义与引用158
7.2.1一维数组的定义158
7.2.2一维数组元素的引用159
7.2.3一维数组的初始化160
7.2.4一维数组应用案例161
7.3多维数组的定义与引用167
7.3.1二维数组的定义与引用167
7.3.2二维数组程序算法案例172
7.3.3三维数组的定义与引用176
7.3.4多维数组的应用177
7.4字符数组与字符串操作178
7.4.1字符数组的定义与初始化178
7.4.2字符串的处理及应用180
7.4.3常用的字符串处理函数182
7.4.4字符数组应用案例189
7.5练习题194
第8章函数与变量196
8.1C语言函数的分类与应用196
8.1.1C语言函数分类196
8.1.2系统标准库函数198
8.1.3自定义函数200
8.2自定义函数与函数类型203
8.3自定义函数参数与参数传递204
8.3.1形式参数和实际参数204
8.3.2数组作为函数参数206
8.4自定义函数的调用209
8.5函数的嵌套调用210
8.6函数的递归调用212
8.7函数变量的存储与作用域216
8.7.1局部变量216
8.7.2全局变量218
8.8动态存储变量和静态存储变量222
8.8.1程序变量的存储类型222
8.8.2auto型变量224
8.8.3extern型变量225
8.8.4static型局部变量与全局变量225
8.8.5register型变量227
8.9全局函数和局部函数227
8.9.1局部函数228
8.9.2全局函数228
8.10函数与变量综合案例分析231
8.11练习题238
第9章编译预处理242
9.1编译预处理命令242
9.2宏定义与宏代换243
9.2.1不带参数的宏定义244
9.2.2带参数的宏定义245
9.2.3宏定义作用域的终止249
9.3文件包含处理251
9.4条件编译253
9.5练习题257
第10章地址与指针变量259
10.1变量的内存地址与指针259
10.1.1指针变量的定义261
10.1.2指针变量的赋值262
10.1.3指针变量运算符及运算263
10.1.4指针变量作函数参数266
10.2数组与地址指针268
10.2.1指向数组的指针变量268
10.2.2指向数组元素的指针变量269
10.2.3数组名作函数参数272
10.2.4指针变量作函数参数274
10.2.5多维数组与指针变量277
10.3字符串与指针变量281
10.3.1字符串处理方法281
10.3.2字符串指针作函数参数285
10.4函数的指针及指向函数的指针变量287
10.4.1函数指针变量的定义288
10.4.2用函数指针调用函数288
10.4.3用函数指针变量作函数参数289
10.4.4返回指针值的指针函数291
10.5指针数组与指向指针数组的指针变量293
10.5.1指针数组293
10.5.2指向指针的指针变量296
10.6main()命令行参数传递298
10.7指针变量综合案例300
10.8练习题305
第11章构造类型与自定义类型308
11.1结构体类型与结构体变量308
11.1.1结构体类型的定义308
11.1.2结构体类型变量的定义及引用310
11.2结构体数组的定义及引用315
11.2.1结构体数组的定义及初始化315
11.2.2结构体数组的引用316
11.3指向结构体类型数据的指针318
11.3.1指向结构体变量的指针318
11.3.2指向结构体数组的指针319
11.3.3结构体类型作为函数参数321
11.4链表结构及应用325
11.4.1静态链表的创建及引用326
11.4.2动态链表的创建及引用327
11.4.3单向动态链表的创建及引用329
11.4.4在单向动态链表中插入结点334
11.4.5从单向动态链表中删除结点339
11.5共用体类型与共用体变量344
11.5.1共用体类型及共用体变量的定义345
11.5.2共用体变量的引用346
11.6枚举类型与枚举变量349
11.6.1枚举类型的定义349
11.6.2枚举类型变量349
11.7自定义数据类型说明符351
11.8练习题357
第12章位运算操作358
12.1位运算符及运算操作358
12.1.1位运算及运算符358
12.1.2按位与运算359
12.1.3按位或运算360
12.1.4按位异或运算361
12.1.5按位取反运算361
12.1.6按位左移运算362
12.1.7按位右移运算363
12.1.8复合赋值位运算364
12.2位段定义及应用364
12.2.1位段的定义364
12.2.2位段的引用366
12.3位运算操作应用案例367
12.4练习题369
第13章文件系统管理与操作370
13.1文件的组成结构370
13.1.1文件的概念与构成370
13.1.2文件系统操作形式372
13.2缓冲型文件的操作与使用373
13.2.1缓冲型文件结构类型与文件指针373
13.2.2缓冲型文件的标准库函数374
13.3文件的打开与关闭375
13.3.1文件打开函数与操作模式375
13.3.2文件关闭函数的使用379
13.4文件中数据的读写操作380
13.4.1文件中字符数据的读写操作380
13.4.2文件中字符串数据的读写操作384
13.4.3文件中数值数据的读写操作387
13.4.4文件中数据的格式化读写操作389
13.5文件位置指针的定位392
13.5.1文件指针的定位操作392
13.5.2文件指针复位函数392
13.5.3当前指针位置测试函数393
13.5.4定位指针位置函数394
13.6文件操作错误的检测395
13.6.1文件读写操作检测函数396
13.6.2文件错误状态清除函数397
13.7其他缓冲型文件函数398
13.7.1文件结束位置测试函数398
13.7.2磁盘文件删除函数399
13.8文件操作管理综合应用案例分析401
13.9练习题404
附录A常用字符与ASCII码对照表408
附录B运算符的优先级与结合性409
参考文献410
1.1程序设计概述1
1.1.1程序设计语言1
1.1.2程序设计过程3
1.2程序设计算法与实现4
1.3计算机程序算法的表示5
1.3.1自然语言描述6
1.3.2程序流程图描述6
1.3.3NS图描述7
1.3.4程序设计语言描述8
1.5程序算法实现案例分析12
1.6练习题15
第2章C程序设计组成与编译运行16
2.1C语言程序设计概述16
2.1.1C语言程序设计的发展16
2.1.2C程序设计特点17
2.1.3C程序设计组成结构19
2.2C程序设计的编译与运行21
2.2.1编辑调试与编译运行步骤21
2.2.2常用编译运行环境22
2.3C语言程序设计语义规范34
2.3.1C语言程序的基本规范34
2.3.2C语言程序设计标识符37
2.3.3C语言的保留关键字38
2.4练习题38
第3章数据存储类型与相关运算39
3.1数据存储方式39
3.1.1数据存储与数制转换39
3.1.2数据存储类型与定义41
3.1.3存储地址与占用空间44
3.1.4数据常量分类45
3.1.5程序变量定义49
3.2数据存储方式与应用51
3.2.1数据存储的正负数问题51
3.2.2数据变量取值范围52
3.2.3实型数据存储方式56
3.2.4字符型数据存储方式59
3.2.5各种存储类型混合运算62
3.3运算符与运算表达式63
3.3.1运算符优先级与数据类型转换63
3.3.2算术运算符与算术运算表达式65
3.3.3赋值运算符与赋值运算表达式69
3.3.4逗号运算符与逗号运算表达式71
3.3.5关系运算符与关系运算表达式73
3.3.6逻辑运算符与逻辑运算表达式74
3.3.7条件运算符与条件运算表达式76
3.4练习题78
第4章顺序结构程序设计80
4.1C程序设计流程控制80
4.1.1基本流程控制80
4.1.2顺序结构流程控制81
4.2基本顺序结构命令语句83
4.2.1基本顺序命令83
4.2.2表达式语句86
4.3常用基本输入输出函数87
4.3.1字符类型输入函数87
4.3.2字符类型输出函数89
4.3.3格式化输入输出函数90
4.4练习题97
第5章条件分支选择结构程序设计99
5.1条件分支选择结构99
5.1.1简单if分支选择结构99
5.1.2ifelse分支选择结构101
5.1.3嵌套的ifelse选择结构103
5.1.4elseif多路分支选择结构107
5.2switchcase条件选择开关语句109
5.2.1switchcase条件选择结构110
5.2.2switchcase条件选择语句112
5.3综合案例分析116
5.4练习题121
第6章循环控制结构程序设计123
6.1循环控制结构123
6.1.1循环控制结构组成要素123
6.1.2while()循环控制结构124
6.1.3dowhile()循环控制结构131
6.1.4for()循环控制结构134
6.2循环控制结构的嵌套139
6.3循环控制结构的辅助控制命令142
6.3.1无条件转移命令goto语句142
6.3.2终止循环执行命令break语句143
6.3.3返回循环条件命令continue语句146
6.4几种循环控制结构的比较148
6.5循环控制结构综合案例分析148
6.6练习题154
第7章数组的定义及应用156
7.1数组的性质156
7.2一维数组的定义与引用158
7.2.1一维数组的定义158
7.2.2一维数组元素的引用159
7.2.3一维数组的初始化160
7.2.4一维数组应用案例161
7.3多维数组的定义与应用167
7.3.1二维数组的定义与引用167
7.3.2二维数组程序算法案例172
7.3.3三维数组的定义与应用176
7.3.4多维数组的应用177
7.4字符数组与字符串操作178
7.4.1字符数组的定义与初始化178
7.4.2字符串的处理及应用180
7.4.3常用的字符串处理函数182
7.4.4字符数组应用案例189
7.5练习题194
第8章函数与变量的作用196
8.1C语言函数的分类与应用196
8.1.1C语言函数分类196
8.1.2系统标准库函数198
8.1.3自定义函数200
8.2自定义函数与函数类型203
8.3自定义函数参数与参数传递204
8.3.1形式参数和实际参数204
8.3.2数组作为函数参数206
8.4自定义函数的调用209
8.5函数的嵌套调用210
8.6函数的递归调用212
8.7函数变量的存储与作用域216
8.7.1局部变量216
8.7.2全局变量218
8.8动态存储变量和静态存储变量222
8.8.1程序变量的存储类型222
8.8.2auto型动态存储变量224
8.8.3extern全程变量225
8.8.4static静态局部变量与静态全局变量225
8.8.5register型寄存器变量227
8.9全局函数和局部函数228
8.9.1static局部函数228
8.9.2extern全局函数228
8.10函数与变量综合案例分析231
8.11练习题239
第9章编译预处理243
9.1编译预处理命令243
9.2宏定义与宏代换244
9.2.1不带参数的宏定义245
9.2.2带参数的宏定义246
9.2.3宏定义作用域的终止250
9.3文件包含处理252
9.4条件编译254
9.5练习题258
第10章地址与指针变量260
10.1变量的内存地址与指针260
10.1.1指针变量的定义262
10.1.2指针变量的赋值263
10.1.3指针变量运算符及运算264
10.1.4指针变量作函数参数267
10.2数组与地址指针269
10.2.1指向数组的指针变量270
10.2.2指向数组元素的指针变量270
10.2.3数组名作函数参数273
10.2.4指针变量作函数参数275
10.2.5多维数组与指针变量278
10.3字符串与指针变量282
10.3.1字符串处理方法282
10.3.2字符串指针作函数参数286
10.4函数的指针及指向函数的指针变量288
10.4.1函数指针变量的定义289
10.4.2用函数指针调用函数289
10.4.3用函数指针变量作函数参数290
10.4.4返回指针值的指针函数292
10.5指针数组与指向指针数组的指针变量294
10.5.1指针数组294
10.5.2指向指针的指针变量296
10.6main命令行参数传递299
10.7指针变量综合案例301
10.8练习题306
第11章构造类型与自定义类型309
11.1结构体类型与结构体变量309
11.1.1结构体类型的定义309
11.1.2结构体类型变量的定义与引用311
11.2结构体数组的定义和引用316
11.2.1结构体数组的定义与初始化316
11.2.2结构体数组的引用317
11.3指向结构体类型数据的指针319
11.3.1指向结构体变量的指针319
11.3.2指向结构体数组的指针320
11.3.3结构体类型作为函数参数322
11.4链表结构及应用326
11.4.1静态链表的创建与引用327
11.4.2动态链表的创建与引用328
11.4.3单向动态链表的创建与引用330
11.4.4在单向动态链表中插入结点334
11.4.5从单向动态链表中删除结点339
11.5共用体类型与共用体变量345
11.5.1共用体类型及共用体变量的定义345
11.5.2共用体变量的引用347
11.6枚举类型与枚举变量349
11.6.1枚举类型的定义350
11.6.2枚举类型变量350
11.7自定义数据类型说明符352
11.8练习题357
第12章位运算操作359
12.1位运算符及运算操作359
12.1.1位运算及运算符359
12.1.2按位“与”运算360
12.1.3按位“或”运算361
12.1.4按位“异或”运算362
12.1.5按位“取反”运算362
12.1.6按位“左移”运算363
12.1.7按位“右移”运算364
12.1.8复合赋值位运算365
12.2位段定义及应用365
12.2.1位段的定义366
11.2.2位段的引用367
12.3位运算操作应用案例368
12.4练习题370
第13章文件系统管理与操作371
13.1文件的组成结构371
13.1.1文件的概念与构成371
13.1.2文件系统操作形式373
13.2缓冲型文件的操作与使用374
13.2.1缓冲型文件结构类型与文件指针374
13.2.2缓冲型文件的标准库函数375
13.3文件的打开与关闭376
13.3.1文件打开函数与操作模式376
13.3.2文件关闭函数的使用380
13.4文件中数据的读写操作381
13.4.1文件中字符数据的读写操作382
13.4.2文件中字符串数据的读写操作385
13.4.3文件中数值数据的读写操作389
13.4.4文件中数据的格式化读写操作391
13.5文件指针的定位393
13.5.1文件指针的定位操作393
13.5.2文件指针复位函数393
13.5.3当前指针位置测试函数394
13.5.4定位指针位置函数395
13.6文件操作错误的检测397
13.6.1文件读写操作检测函数397
13.6.2文件错误状态清除函数398
13.7其他缓冲型文件函数400
13.7.1文件结束位置测试函数400
13.7.2磁盘文件删除函数401
13.8文件操作管理综合应用案例分析402
13.9练习题406
附录A常用字符与ASCII码对照表409
附录B运算符的优先级与结合性410
参考文献411