第1章 程序设计概述 1
1.1程序和程序设计语言 2
1.1.1程序与程序设计的概念 2
1.1.2程序设计语言 3
1.1.3语言处理程序 5
1.1.4设计程序的基本原则 5
1.2算法 6
1.2.1算法的概念 6
1.2.2算法的表示方法 7
1.3结构化程序设计 11
1.3.1结构化程序基本控制结构 11
1.3.2结构化程序设计方法 12
1.4 C语言概述及开发工具 13
1.4.1 C语言的产生与发展 13
1.4.2 C语言的特点 14
1.4.3 C语言的程序结构 15
1.4.4 C语言的开发工具简介 17
本章小结 20
习题 20
第2章 数据类型、运算符与表达式 23
2.1 C语言的字符集和标识符 24
2.1.1字符集 24
2.1.2标识符 24
2.1.3标识符的分类 25
2.2 C语言的数据类型 25
2.3常量 26
2.3.1数值常量 26
2.3.2字符型常量 29
2.4变量 34
2.4.1变量的概念 34
2.4.2变量的基本数据类型 35
2.4.3变量的类型定义和使用 36
2.4.4变量的初始化 40
2.5库函数 42
2.5.1库函数的使用方法 42
2.5.2常用数学函数 43
2.5.3字符输入输出函数 47
2.5.4格式输入输出函数 48
2.6运算符和表达式 54
2.6.1 C语言的运算符 54
2.6.2运算符的优先级和结合性 55
2.6.3 C语言的表达式 58
本章小结 75
习题 75
第3章 结构控制语句 79
3.1引例 80
3.2 C语言的执行语句 81
3.2.1表达式语句 81
3.2.2空语句 82
3.2.3复合语句 83
3.2.4控制语句 83
3.3顺序结构 84
3.4选择结构 84
3.4.1用if语句实现选择结构 85
3.4.2 if语句的嵌套 87
3.4.3用switch语句实现多分支选择结构 89
3.5循环结构 92
3.5.1 goto型循环语句 93
3.5.2用while语句实现循环 94
3.5.3用do…while语句实现循环 96
3.5.4用for语句实现循环 99
3.5.5 continue语句和break语句 102
3.5.6循环的嵌套 105
3.6程序举例 107
本章小结 111
习题 112
第4章 数组 120
4.1一维数组 121
4.1.1一维数组的定义 121
4.1.2一维数组的初始化 122
4.1.3一维数组元素的使用 124
4.2二维数组 127
4.2.1二维数组的定义 127
4.2.2二维数组的初始化 129
4.2.3二维数组的使用 130
4.3数组与循环计算举例 133
本章小结 142
习题 142
第5章 函数 151
5.1函数的作用 152
5.2函数定义和函数调用 155
5.2.1函数定义 155
5.2.2函数调用 158
5.3函数调用中的参数传递 166
5.3.1简单变量作函数参数 166
5.3.2数组作函数参数 168
5.4函数的嵌套调用和递归调用 176
5.4.1函数的嵌套调用 176
5.4.2函数的递归调用 177
5.5变量的作用域和存储类别 181
5.5.1局部变量及其存储类型 182
5.5.2全局变量及其存储类型 187
本章小结 190
习题 190
第6章 指针 201
6.1引例 202
6.2指针和指针变量 203
6.2.1指针的概念 203
6.2.2指针变量的定义及初始化 204
6.2.3指针及指针变量的运算 206
6.3数组与指针 211
6.3.1指向一维数组的指针 211
6.3.2指向二维数组的指针 213
6.4字符串与指针 216
6.4.1字符串概念 216
6.4.2字符数组 216
6.4.3指向字符串的指针 219
6.4.4字符数组与字符指针变量的对比 221
6.4.5字符串输入输出函数 222
6.4.6字符串处理函数 225
6.4.7字符串应用举例 228
6.5指针数组 231
6.6指向指针的指针变量 233
6.7函数与指针 235
6.7.1指针变量作为函数参数 235
6.7.2函数指针变量与指针型函数 241
6.7.3 main函数的参数 244
6.8指针实例 247
本章小结 249
习题 250
第7章 编译预处理 262
7.1预处理引例 262
7.2宏定义 263
7.2.1无参宏定义和宏替换 263
7.2.2带参数的宏定义 266
7.3文件包含 269
7.4条件编译 270
本章小结 272
习题 273
第8章 自定义数据类型 278
8.1结构体 279
8.1.1结构体类型的定义 279
8.1.2结构体变量的定义及初始化 280
8.1.3结构体成员的引用 281
8.2结构体数组 282
8.2.1结构体数组的定义 282
8.2.2结构体数组的初始化 283
8.2.3结构体数组的应用 283
8.3结构体和指针 285
8.3.1指向结构体的指针 285
8.3.2指向结构体数组的指针 288
8.3.3结构体变量作为函数参数 289
8.4链表 292
8.4.1链表的定义 292
8.4.2结点的基本操作 294
8.4.3创建动态链表 295
8.4.4链表的输出 297
8.4.5链表的插入和删除操作 297
8.4.6链表的综合应用 301
8.5共用体 302
8.5.1共用体类型的定义 302
8.5.2共用体变量的定义 302
8.5.3共用体成员的引用 303
8.6枚举 306
8.6.1枚举类型的定义 306
8.6.2枚举变量的定义和使用 307
8.7用typedef定义类型别名 310
本章小结 312
习题 312
第9章 文件 318
9.1文件概述 319
9.1.1文件的概念 319
9.1.2文件的分类 319
9.1.3流和文件类型指针 320
9.2文件的打开与关闭 321
9.2.1打开文件函数fopen 321
9.2.2关闭文件函数fclose 323
9.3文件的读写 323
9.3.1单字符读写函数 323
9.3.2字符串读写函数 326
9.3.3按格式读写函数 328
9.3.4数据块读写函数 329
9.4文件的定位 331
9.4.1 rewind函数 331
9.4.2随机定位函数fseek 333
9.4.3获取文件指针当前位置函数ftell 335
9.5文件的出错检测 335
本章小结 335
习题 336
附录A 常用字符与ASCII码对照表 341
附录B C库函数 342
参考文献 348