第1章C语言程序设计概述 1
1.1程序设计语言 1
1.2程序设计的基本方法 2
1.2.1数据结构与算法 2
1.2.2程序设计方法 4
1.3程序设计语言的内容体系 5
1.4 C语言的特点 6
1.5基本C语言程序结构 7
1.5.1从结构上看C语言程序的构成 7
1.5.2从功能上看C语言程序的构成 8
1.5.3 C语言程序设计规范 8
习题 8
第2章C语言中的基本数据与运算—— C语言基本元素 9
2.1常量 10
2.1.1整型常量 10
2.1.2实型常量 10
2.1.3字符常量 10
2.1.4字符串常量 11
2.1.5符号常量 11
2.2变量 12
2.2.1变量内涵意义 12
2.2.2变量的定义 12
2.3数据类型与存储结构 13
2.3.1整型数据的存储结构 14
2.3.2字符型数据的存储结构 14
2.3.3实型(浮点型)数据的存储结构 14
2.4算术表达式 15
2.4.1基本算术运算符与表达式 15
2.4.2自加、自减运算符与表达式 17
2.4.3赋值运算符与表达式 20
2.4.4逗号运算符与表达式 23
习题 24
第3章 顺序结构实现语句——顺序结构程序设计 26
3.1简单的顺序结构语句 26
3.1.1变量定义语句 26
3.1.2表达式语句 26
3.1.3函数调用语句与返回函数值语句 27
3.1.4空语句 27
3.1.5复合语句 27
3.1.6无条件转向语句 28
3.2数据的输入输出 28
3.2.1数据格式输出函数(printf ) 28
3.2.2数据格式输入函数(scanf) 34
3.2.3字符输出函数(putchar) 36
3.2.4字符输入函数(getchar) 37
3.3顺序结构程序设计 37
习题 39
第4章 选择结构实现语句——分支结构程序设计 40
4.1选择结构与条件判断 40
4.1.1关系运算符和关系表达式 40
4.1.2逻辑运算符和逻辑表达式 41
4.1.3逻辑型变量 43
4.1.4条件运算符和条件表达式 44
4.2用if语句实现两分支选择 44
4.3用if嵌套实现多重选择 46
4.4用switch语句实现多分支选择 48
4.5选择结构程序设计 50
习题 54
第5章 循环结构实现语句——循环结构程序设计 55
5.1 while语句 55
5.2 do while语句 56
5.3 for语句 57
5.3.1 for语句的形式与执行流程 58
5.3.2 for语句中3个表达式的灵活使用 59
5.4用循环嵌套实现多重循环 59
5.5改变循环控制的语句 62
5.5.1 break语句 62
5.5.2 continue语句 63
5.6循环结构程序设计 64
习题 69
第6章 数组——批量数据的表示与处理 72
6.1一维数组 72
6.1.1一维数组的定义与存储结构 72
6.1.2一维数组的初始化 73
6.1.3一维数组元素的引用 74
6.1.4一维数组的应用程序设计 74
6.2二维数组 78
6.2.1二维数组的定义与存储结构 78
6.2.2二维数组的初始化 79
6.2.3二维数组元素的引用 79
6.2.4二维数组的应用程序设计 80
6.3字符数组 84
6.3.1字符串与字符数组 84
6.3.2字符数组定义与初始化 84
6.3.3字符数组的引用 85
6.3.4字符串处理函数 86
6.3.5字符数组应用程序设计 87
习题 89
第7章 函数——模块化程序设计方法的实现 90
7.1模块化程序设计方法与函数 90
7.2函数的定义 91
7.3函数的调用 93
7.3.1函数调用方法与过程 93
7.3.2参数传递 94
7.3.3函数的返回值 96
7.4函数调用的条件与函数声明 97
7.4.1调用后定义的函数 97
7.4.2调用库函数 98
7.4.3调用外部函数 98
7.5函数的嵌套调用和递归调用 100
7.5.1函数的嵌套调用 100
7.5.2函数的递归调用 101
7.6变量的作用域与函数间的数据传递 103
7.6.1局部变量和全局变量 103
7.6.2变量的存储类型 107
7.7用函数实现模块化程序设计 109
习题 112
第8章 指针——对存储信息的引用机制 113
8.1指针是对存储器中信息的一种访问机制 113
8.2通过指针引用变量的值 114
8.2.1指针变量的定义与初始化 114
8.2.2指针变量的引用 116
8.2.3指针变量做函数参数 117
8.3通过指针引用一维数组 120
8.3.1一维数组的存储结构与指针 120
8.3.2一维数组指针调整与指针变量的运算 121
8.3.3通过指针引用数组元素 122
8.3.4一维数组指针做函数参数 124
8.4通过指针引用二维数组 129
8.4.1二维数组的存储结构与指针 130
8.4.2通过指针引用数组元素 132
8.4.3二维数组指针做函数参数 134
8.5通过指针引用字符串 136
8.5.1字符串的存储结构与指针 137
8.5.2通过指针引用字符串 137
8.5.3字符指针做函数参数 139
8.6通过指针调用函数 143
8.6.1函数指针与指针变量的定义 144
8.6.2通过函数指针调用函数 144
8.6.3用指向函数的指针做函数的参数 145
8.6.4返回指针值的函数 148
8.7多重指针与指针数组 150
8.7.1指针数组 150
8.7.2指向指针数据的指针 153
8.8用于动态内存分配的指针型函数 154
8.8.1内存动态分配的函数 155
8.8.2 void指针类型 156
习题 157
第9章 用户可建立的数据类型——复杂数据的表示与处理 158
9.1结构体 158
9.1.1结构体类型与结构体变量的定义 158
9.1.2结构体变量的初始化 161
9.1.3结构体变量成员的引用 161
9.1.4结构体数组 163
9.1.5结构体指针 165
9.2共用体 170
9.2.1共用体类型与共用体变量的定义 170
9.2.2共用体变量引用 171
9.3枚举类型 174
9.4用户自定义数据类型名称 176
9.5用结构体和指针处理链表 178
9.5.1链表简介 178
9.5.2建立静态链表 179
9.5.3建立动态链表 180
习题 182
第10章 编译预处理与位运算 183
10.1编译预处理 183
10.1.1宏定义 183
10.1.2文件包含 186
10.1.3条件编译 186
10.2位运算 188
10.2.1位运算符 189
10.2.2位处理程序设计举例 190
10.2.3位段(位域) 192
习题 194
第11章 文件输入输出 196
11.1文件的基本概念 196
11.1.1数据文件的概念 196
11.1.2文件缓冲区 197
11.1.3文件类型指针 197
11.2文件的打开与关闭 198
11.2.1打开文件 198
11.2.2文件的关闭 199
11.3顺序读写数据文件 199
11.3.1字符方式读写文件 199
11.3.2字符串方式读写文件 201
11.3.3用格式化方式读写文件 203
11.3.4用二进制方式向文件读写一组数据 203
11.4随机读写数据文件 205
11.4.1位置指针定位函数 206
11.4.2随机读写文件 206
11.5文件读写的出错检测 208
习题 208
附录 209
附录A常用字符与ASCII代码对照表 209
附录B C语言中的关键字 210
附录C运算符和结合性 210
附录D C库函数 212
附录E C编程规范 217
参考文献 222