第1章 程序设计概述 1
1.1程序和程序设计语言 1
1.1.1程序与程序设计的概念 1
1.1.2程序设计语言 2
1.1.3语言处理程序 4
1.1.4设计程序的基本原则 4
1.2算法 5
1.2.1算法的概念 5
1.2.2算法的表示方法 6
1.3结构化程序设计 9
1.3.1结构化程序基本控制结构 9
1.3.2结构化程序设计方法 10
1.4 C语言概述及开发工具 11
1.4.1 C语言产生与发展 11
1.4.2 C语言的特点 12
1.4.3 C语言的程序结构 13
1.4.4 C语言的开发工具简介 15
本章小结 18
习题 19
第2章 数据类型、运算符与表达式 21
2.1 C语言的字符集和标识符 21
2.1.1字符集 21
2.1.2标识符 22
2.1.3标识符的分类 22
2.2 C语言的数据类型 23
2.3常量 24
2.3.1数值常量 24
2.3.2字符型常量 26
2.4变量 30
2.4.1变量的概念 30
2.4.2变量的基本数据类型 31
2.4.3变量的类型定义和使用 32
2.4.4变量的初始化 36
2.5库函数 37
2.5.1库函数的使用方法 37
2.5.2常用数学函数 38
2.5.3字符输入输出函数 41
2.5.4格式输入输出函数 42
2.6运算符和表达式 49
2.6.1 C语言的运算符 49
2.6.2运算符的优先级和结合性 50
2.6.3 C语言的表达式 52
本章小结 68
习题 68
第3章 结构控制语句 72
3.1引例 72
3.2 C语言的执行语句 73
3.2.1表达式语句 74
3.2.2空语句 75
3.2.3复合语句 75
3.2.4控制语句 76
3.3顺序结构 76
3.4选择结构 76
3.4.1用if语句实现选择结构 77
3.4.2 if语句的嵌套 79
3.4.3用switch语句实现多分支选择结构 81
3.5循环结构 83
3.5.1 goto型循环语句 84
3.5.2用while语句实现循环 85
3.5.3用do…while语句实现循环 86
3.5.4用for语句实现循环 89
3.5.5 continue语句和break语句 92
3.5.6循环的嵌套 94
3.6程序举例 96
本章小结 99
习题 100
第4章 数组 106
4.1一维数组 107
4.1.1一维数组的定义 107
4.1.2一维数组的初始化 108
4.1.3一维数组元素的使用 110
4.2二维数组 112
4.2.1二维数组的定义 113
4.2.2二维数组的初始化 114
4.2.3二维数组的使用 116
4.3数组与循环计算举例 118
本章小结 125
习题 125
第5章 函数 133
5.1函数的作用 133
5.2函数定义和函数调用 136
5.2.1函数定义 136
5.2.2函数调用 138
5.3函数调用中的参数传递 146
5.3.1简单变量作函数参数 146
5.3.2数组作函数参数 147
5.4函数的嵌套调用和递归调用 154
5.4.1函数的嵌套调用 154
5.4.2函数的递归调用 155
5.5变量的作用域和存储类型 158
5.5.1局部变量及其存储类型 158
5.5.2全局变量及其存储类型 163
本章小结 165
习题 165
第6章 指针 174
6.1引例 175
6.2指针和指针变量 176
6.2.1指针的概念 176
6.2.2指针变量的定义及初始化 177
6.2.3指针及指针变量的运算 178
6.3数组与指针 183
6.3.1指向一维数组的指针 183
6.3.2指向二维数组的指针 184
6.4字符串与指针 188
6.4.1字符串的概念 188
6.4.2字符数组 188
6.4.3指向字符串的指针 191
6.4.4字符数组与字符指针变量的对比 192
6.4.5字符串输入/输出函数 193
6.4.6字符串处理函数 196
6.4.7字符串应用举例 198
6.5指针数组 200
6.6指向指针的指针变量 202
6.7函数与指针 204
6.7.1指针变量作为函数参数 204
6.7.2函数指针变量与指针型函数 209
6.7.3 main()函数的参数 212
6.8指针应用实例 214
本章小结 216
习题 217
第7章 编译预处理 225
7.1预处理引例 225
7.2宏定义 226
7.2.1无参宏定义和宏替换 226
7.2.2带参数的宏定义 229
7.3文件包含 231
7.4条件编译 232
本章小结 234
习题 235
第8章 自定义数据类型 239
8.1结构体 239
8.1.1结构体类型的定义 239
8.1.2结构体变量的定义及初始化 240
8.1.3结构体成员的引用 241
8.2结构体数组 243
8.2.1结构体数组的定义 243
8.2.2结构体数组的初始化 243
8.2.3结构体数组的应用 244
8.3结构体和指针 245
8.3.1指向结构体的指针 245
8.3.2指向结构体数组的指针 247
8.3.3结构体变量作为函数参数 248
8.4链表 251
8.4.1链表的定义 251
8.4.2结点的基本操作 252
8.4.3创建动态链表 253
8.4.4链表的输出 255
8.4.5链表的插入和删除操作 255
8.4.6链表的综合应用 257
8.5共用体 258
8.5.1共用体类型的定义 258
8.5.2共用体变量的定义 259
8.5.3共用体成员的引用 259
8.6枚举 262
8.6.1枚举类型的定义 262
8.6.2枚举变量的定义和使用 263
8.7用typedef定义类型别名 265
本章小结 266
习题 267
第9章 文件 272
9.1文件概述 272
9.1.1文件的概念 272
9.1.2文件的分类 273
9.1.3流和文件类型指针 273
9.2文件的打开与关闭 274
9.2.1打开文件函数fopen() 274
9.2.2关闭文件函数fclose() 276
9.3文件的读写 276
9.3.1单字符读写函数 276
9.3.2字符串读写函数 279
9.3.3按格式读写函数 280
9.3.4数据块读写函数 281
9.4文件的定位 283
9.4.1 rewind()函数 283
9.4.2随机定位函数fseek() 284
9.4.3获取文件指针当前位置函数ftell() 285
9.5文件的出错检测 286
本章小结 286
习题 287
第10章C语言项目实例——高校工资管理系统 291
10.1高校工资管理系统概述 291
10.2高校工资管理系统分析 292
10.2.1可行性分析 292
10.2.2需求分析 292
10.3高校工资管理系统的设计 293
10.3.1概要设计 293
10.3.2详细设计 295
10.4高校工资管理系统的实现 300
本章小结 309
习题 310
附录A常用字符与ASCII码对照表 311
附录B C库函数 312
参考文献 318