第1章 程序设计基础与C语言概述 1
1.1 程序与程序设计语言 1
1.2 C语言的发展历史及其特点 3
1.2.1 C语言的发展历史 3
1.2.2 C语言的特点 3
1.3 C程序的基本结构与书写规则 4
1.3.1 C程序的基本结构 4
1.3.2 C程序的书写规则 8
1.4 C程序开发过程及编译环境 9
1.5 程序设计基本方法 10
1.5.1 程序设计方法的发展 10
1.5.2 程序的灵魂——算法 12
习题1 15
第2章 C语言基础与顺序结构程序设计 16
2.1 C语言的字符集与标识符 16
2.1.1 C语言的字符集 16
2.1.2 C语言的标识符 17
2.2 C语言的数据类型 18
2.3 常量与变量 19
2.3.1 常量和符号常量 19
2.3.2 变量 20
2.3.3 整型数据 20
2.3.4 实型数据 24
2.3.5 字符型数据 27
2.3.6 字符串常量 30
2.4 运算符及表达式 30
2.4.1 运算符和表达式概述 30
2.4.2 算术运算符和算术表达式 31
2.4.3 赋值运算符和赋值表达式 33
2.4.4 逗号运算符和逗号表达式 35
2.4.5 各类型数据之间的混合运算 36
2.5 C语句 37
2.6 数据的输入输出 39
2.6.1 输入或输出一个字符型数据 39
2.6.2 输出任意个任意类型的数据(格式输出函数printf) 41
2.6.3 输入任意个任意类型的数据(格式输入函数scanf) 43
2.7 顺序结构程序举例 47
习题2 48
第3章 选择结构程序设计 50
3.1 关系运算符及关系表达式 50
3.1.1 关系运算符及其优先次序 50
3.1.2 关系表达式 51
3.2 逻辑运算符及逻辑表达式 51
3.2.1 逻辑运算符及其优先次序 51
3.2.2 逻辑表达式 52
3.3 选择结构控制语句:if语句 53
3.3.1 if语句的三种形式 53
3.3.2 if语句的嵌套 56
3.4 条件运算符及条件表达式 58
3.5 选择结构控制语句:switch语句 59
3.6 选择结构程序举例 61
习题3 63
第4章 循环结构程序设计 65
4.1 循环结构概述 65
4.2 循环结构控制语句:for语句 66
4.2.1 for语句的一般格式 66
4.2.2 for语句的使用 67
4.3 循环结构控制语句:while语句与do...while语句 69
4.3.1 while语句 69
4.3.2 do...while语句 71
4.3.3 while语句与do...while语句的比较 72
4.4 循环的嵌套 73
4.4.1 循环的嵌套 73
4.4.2 break语句和continue语句 75
4.5 循环结构程序举例 76
习题4 80
第5章 用数组实现批量数据处理 82
5.1 数组的概念 82
5.2 一维数组 84
5.2.1 一维数组的定义 84
5.2.2 一维数组的使用 85
5.2.3 一维数组应用举例 86
5.3 二维数组 91
5.3.1 二维数组的定义 92
5.3.2 二维数组的使用 92
5.3.3 二维数组的应用举例 94
5.4 字符数组 95
5.4.1 字符数组的定义 95
5.4.2 字符数组与字符串 95
5.4.3 字符数组的初始化 96
5.4.4 字符数组的输入/输出 97
5.4.5 常用的字符串处理函数 99
5.5 数组的应用举例 101
习题5 104
第6章 用函数实现模块化程序设计 106
6.1 函数概述 106
6.2 函数定义的一般形式 108
6.2.1 无参函数的定义 108
6.2.2 有参函数的定义 109
6.2.3 空函数 109
6.3 函数的参数与函数的值 110
6.3.1 形式参数和实际参数 110
6.3.2 函数的返回值 111
6.4 函数的调用 112
6.4.1 函数调用的一般形式 112
6.4.2 函数调用的方式 112
6.4.3 被调用函数的声明和函数原型 112
6.4.4 函数的嵌套调用 114
6.4.5 函数的递归调用 115
6.5 函数与数组 118
6.5.1 数组元素作函数实参 118
6.5.2 数组名作函数实参 119
6.6 变量的作用域与生存期 122
6.6.1 局部变量和全局变量 122
6.6.2 变量的存储方式和生存期 125
习题6 129
第7章 用指针实现程序的灵活设计 130
7.1 指针的基本概念 130
7.2 指向变量的指针变量 132
7.2.1 指针变量的定义 132
7.2.2 指针变量的引用 132
7.2.3 指针变量作为函数参数 136
7.3 指针与数组 137
7.3.1 指针与一维数组 138
7.3.2 指针与多维数组 143
7.4 字符串与指针 145
7.4.1 字符指针的定义与引用 146
7.4.2 字符指针作为函数参数 148
7.5 指针数组 149
7.5.1 用指针数组处理二维数组 149
7.5.2 用字符指针数组处理一组字符串 150
7.6 指向指针的指针 151
7.7 指针与函数 153
7.7.1 指针型函数 153
7.7.2 指向函数的指针变量 154
7.8 指针应用过程中的注意事项 155
习题7 158
第8章 构造数据类型 160
8.1 结构体的概念和结构体变量 160
8.1.1 结构体的概念 160
8.1.2 结构体类型的定义 161
8.1.3 结构体类型变量的定义 162
8.1.4 结构体变量的引用 163
8.1.5 结构体变量的初始化 164
8.2 结构体数组 165
8.2.1 结构体数组的定义 165
8.2.2 结构体数组的初始化 165
8.2.3 结构体数组举例 166
8.3 结构体指针 167
8.3.1 结构体指针与指向结构体变量的指针变量的概念 167
8.3.2 用指向结构体变量的指针变量引用结构体变量的成员 168
8.3.3 用指向结构体变量的指针变量引用结构体数组元素 169
8.3.4 用指向结构体变量的指针变量作为函数参数 170
8.3.5 用指向结构体变量的指针变量处理链表 170
8.4 枚举类型和共用体类型简介 179
8.4.1 枚举类型 179
8.4.2 共用体类型 181
习题8 183
第9章 预处理命令 185
9.1 文件包含 185
9.2 宏定义 186
9.2.1 简单的宏定义 186
9.2.2 带参数的宏定义 189
9.3 条件编译 191
习题9 193
第10章 C语言的文件操作 194
10.1 C文件概述 194
10.2 文件的打开与关闭 196
10.2.1 文件的打开 196
10.2.2 文件的关闭 197
10.3 文件的读写 198
10.3.1 文件的顺序读写 199
10.3.2 文件的随机读写 205
10.3.3 文件检测 208
10.4 文件操作举例 209
习题10 213
第11章 C语言程序开发实例——学生成绩管理系统的设计与实现 214
11.1 前言 214
11.2 功能描述 214
11.3 总体设计 215
11.3.1 功能模块设计 215
11.3.2 数据结构设计 216
11.3.3 函数功能描述 216
11.4 程序实现 218
11.4.1 程序源代码 218
11.4.2 运行结果 229
11.5 小结 233
附录1 常用字符与ASCII代码对照表 234
附录2 C语言常用关键字 235
附录3 C语言运算符优先级与结合性 236
附录4 C语言常用输入输出库函数 238
附录5 C语言常用数学库函数 240
附录6 C语言常用字符函数和字符串函数 241
附录7 C语言动态存储分配函数 243
参考文献 244