目录CONTENTS

第1章程序设计概述1
1.1计算机软件1
1.1.1程序设计语言1
1.1.2程序设计2
1.1.3数据结构3
1.1.4算法3
1.2算法的表示方法5
1.2.1自然语言表示法5
1.2.2流程图表示法6
1.2.3NS图表示法7
1.2.4伪代码表示法8
1.3程序设计方法9
1.3.1结构化程序设计9
1.3.2面向对象程序设计10
1.4本章小结10
1.5扩展阅读10
第2章C语言基础13
2.1C语言的发展历程13
2.2C程序的特点及开发环境14
2.2.1C程序的组成及特点14
2.2.2C程序的风格15
2.2.3C程序的开发环境18
2.3输入输出简单的数据信息18
2.3.1输出文本信息18
2.3.2输出整数20
2.3.3格式化输出函数21
2.3.4常量和变量22
2.3.5格式化输入函数24
2.3.6简单程序设计25
2.4C语言的运算符25
2.4.1简单赋值运算符25
2.4.2基本算术运算符26
2.4.3复合算术赋值运算符27
2.4.4自加、自减运算符28
2.4.5逗号运算符29
2.4.6C语言的运算符和表达式30
2.5C语言的数据类型31
2.5.1整数类型31
2.5.2实数类型37
2.5.3字符类型41
2.5.4C语言的数据类型44
目录程序设计基础(C语言)(第3版)2.6类型转换44
2.6.1赋值运算中的自动类型转换44
2.6.2表达式运算中的自动类型转换47
2.6.3强制类型转换47
2.7C语言的基本标识48
2.7.1C语言字符集48
2.7.2标识符49
2.8格式化输入输出函数完整版50
2.8.1格式化输出函数50
2.8.2格式化输入函数54
2.9C语言的程序结构57
2.9.1C语句57
2.9.2C程序结构58
2.9.3顺序结构程序设计60
2.10编译预处理命令61
2.10.1文件包含61
2.10.2宏定义64
2.10.3条件编译68
2.10.4编译优化70
2.11汇编与链接70
2.11.1汇编70
2.11.2链接70
2.12本章小结71
2.13扩展阅读72
第3章程序的控制结构73
3.1关系运算与逻辑运算73
3.1.1关系运算73
3.1.2逻辑运算74
3.2分支结构76
3.2.1单分支结构76
3.2.2双分支结构78
3.2.3多分支结构79
3.2.4if语句的嵌套84
3.2.5条件运算符87
3.3循环结构88
3.3.1循环的引出88
3.3.2while循环89
3.3.3dowhile循环91
3.3.4for循环93
3.3.5循环嵌套97
3.4break和continue语句102
3.4.1break语句102
3.4.2continue语句105
3.5goto语句106
3.6本章小结107
3.7程序举例108
3.8扩展阅读114
第4章数组115
4.1一维数组115
4.1.1一维数组的引出115
4.1.2一维数组的定义与引用116
4.1.3一维数组的初始化117
4.1.4一维数组的简单应用119
4.1.5常见的排序方法123
4.2二维数组128
4.2.1二维数组的引出128
4.2.2二维数组的定义与引用129
4.2.3二维数组的初始化131
4.2.4二维数组的应用132
4.3字符数组134
4.3.1字符数组的引出134
4.3.2字符数组的定义和使用134
4.3.3字符串136
4.3.4字符数组的应用141
4.4本章小结143
4.5程序举例144
4.6扩展阅读146
第5章函数148
5.1函数的引出148
5.2函数定义与调用150
5.2.1函数的定义与调用150
5.2.2函数声明与函数原型154
5.3函数参数传递156
5.3.1简单变量作为函数参数156
5.3.2数组作为函数参数157
5.3.3函数定义与带参数的宏定义的区别163
5.4函数的嵌套调用164
5.5递归与分治算法166
5.5.1递归函数166
5.5.2分治算法171
5.6局部变量与全局变量174
5.6.1局部变量174
5.6.2全局变量175
5.7变量的存储类别178
5.7.1auto变量178
5.7.2static变量179
5.7.3register变量181
5.7.4extern变量182
5.8内部函数与外部函数184
5.8.1内部函数184
5.8.2外部函数185
5.9本章小结186
5.10程序举例186
5.11扩展阅读190
第6章指针191
6.1指针定义与使用191
6.1.1指针的引出191
6.1.2指针变量的定义193
6.1.3指针变量的使用194
6.2指针与函数198
6.2.1指针作为函数参数198
6.2.2函数返回指针201
6.2.3指向函数的指针202
6.3指针与数组203
6.3.1一维数组与指针204
6.3.2数组名作为函数参数206
6.3.3二维数组与指针210
6.4指针与字符串214
6.5指针数组与多级指针219
6.5.1指针数组的定义和引用219
6.5.2多级指针221
6.6指针与动态内存分配222
6.6.1内存管理222
6.6.2void类型指针223
6.6.3动态内存分配和释放函数223
6.7本章小结225
6.8程序举例225
6.9扩展阅读229
第7章结构体与链表231
7.1结构体的引出231
7.2结构体变量233
7.2.1结构体变量的定义233
7.2.2结构体变量的引用和初始化234
7.3结构体数组237
7.3.1结构体数组的定义237
7.3.2结构体数组的初始化238
7.3.3结构体数组的使用239
7.4结构体类型的指针变量240
7.4.1指向结构体变量的指针240
7.4.2指向结构体数组的指针242
7.5结构体与函数242
7.5.1结构体变量作为函数参数242
7.5.2指向结构体变量的指针作为函数参数243
7.5.3函数返回值为结构体类型246
7.6链表247
7.6.1链表引出247
7.6.2链表的建立248
7.6.3链表的输出250
7.6.4链表的删除操作250
7.6.5链表的插入操作252
7.7共用体和枚举类型255
7.7.1共用体255
7.7.2枚举类型258
7.8类型定义符typedef的用法260
7.9本章小结260
7.10程序举例261
7.11扩展阅读265
第8章文件266
8.1文件概述266
8.1.1文件的分类266
8.1.2文件类型指针267
8.1.3文件操作的基本步骤267
8.2文件的打开与关闭268
8.2.1文件打开函数268
8.2.2文件关闭函数270
8.3文件的读写271
8.3.1字符读写函数271
8.3.2字符串读写函数272
8.3.3数据块读写函数274
8.3.4格式化读写函数276
8.4文件的定位278
8.4.1复位函数278
8.4.2随机移动函数279
8.4.3取当前位置的函数280
8.5文件检测函数281
8.5.1feof函数281
8.5.2ferror函数284
8.5.3clearerr函数284
8.6本章小结285
8.7程序举例285
8.8扩展阅读288
第9章位运算289
9.1位运算符289
9.2位运算符的运算规则289
9.2.1按位与运算符289
9.2.2按位或运算符290
9.2.3按位异或运算符291
9.2.4按位取反运算符292
9.2.5左移运算符293
9.2.6右移运算符293
9.2.7位运算中的类型转换294
9.2.8位运算的复合赋值运算符294
9.3本章小结295
9.4程序举例295
9.5扩展阅读297
第10章综合程序设计298
10.1电子万年历系统298
10.1.1系统设计要求298
10.1.2系统总体设计298
10.1.3源程序代码302
10.1.4程序运行结果305
10.2集合基本运算系统307
10.2.1系统设计要求307
10.2.2系统总体设计307
10.2.3源程序代码311
10.2.4程序运行结果319
10.3图书借阅管理系统321
10.3.1系统设计要求322
10.3.2系统总体设计322
10.3.3源程序代码326
10.3.4程序运行结果343
附录AASCII码表349
附录BC运算符的优先级与结合性352
附录C常用标准库函数354
C.1stdio.h中的常用函数354
C.2math.h中的常用函数357
C.3stdlib.h中的常用函数359
C.4string.h中的常用函数361
C.5ctype.h中的常用函数363
C.6conio.h中的常用函数364
C.7time.h中的常用函数365
附录D练习题参考答案366
参考文献367