第1章 概述 1
1.1 程序设计基础 1
1.1.1 计算机及程序执行 1
1.1.2 数学思路和程序设计思路 4
1.1.3 程序设计语言 6
1.2 C的发展和特点 7
1.2.1 C的发展 7
1.2.2 C的特点 7
1.3 C程序的组成和结构 8
1.3.1 C程序的基本语法成分 8
1.3.2 C程序结构 9
1.4 C程序开发过程 10
小结 14
练习题1 14
上机实验题1 15
第2章 数据类型及其运算 16
2.1 C的数据类型 16
2.2 常量 18
2.2.1 普通常量 18
2.2.2 符号常量 20
2.3 变量 21
2.3.1 变量的概念 21
2.3.2 变量的定义与初始化 22
2.3.3 整型变量 22
2.3.4 实型变量 24
2.3.5 字符变量 25
2.3.6 字符串变量 26
2.4 运算符与表达式 26
2.4.1 C运算符概述 27
2.4.2 算术运算符与算术表达式 28
2.4.3 表达式中数据间的混合运算与类型转换 30
2.4.4 赋值运算符和赋值表达式 32
2.4.5 条件运算符和条件表达式 35
2.4.6 逗号运算符和逗号表达式 35
小结 36
练习题2 36
上机实验题2 38
第3章 顺序结构程序设计 39
3.1 3种基本控制结构和算法 39
3.1.1 3种基本控制结构 39
3.1.2 算法 41
3.2 顺序执行语句 41
3.3 格式化输出函数printf() 42
3.3.1 printf()函数的一般格式 43
3.3.2 格式说明符 43
3.3.3 printf()函数的使用说明 45
3.4 格式化输入函数scanf() 45
3.4.1 scanf()函数的一般格式 45
3.4.2 格式指示符 45
3.4.3 scanf()函数的使用说明 47
3.5 单个字符的输入输出函数 49
小结 50
练习题3 50
上机实验题3 52
第4章 选择结构程序设计 53
4.1 关系运算及其表达式 53
4.1.1 关系运算符及其优先次序 53
4.1.2 关系表达式 54
4.2 逻辑运算及其表达式 54
4.2.1 逻辑运算及其优先次序 54
4.2.2 逻辑表达式 55
4.3 if语句 56
4.3.1 单分支if语句 56
4.3.2 双分支if语句 56
4.3.3 多分支if语句 57
4.3.4 if语句嵌套 58
4.4 switch语句 60
小结 64
练习题4 65
上机实验题4 67
第5章 循环结构程序设计 69
5.1 while语句 69
5.2 do-while循环语句 72
5.3 for语句 74
5.4 break和continue语句 76
5.5 循环结构的嵌套 80
5.6 goto语句 82
5.7 循环结构程序设计应用 83
5.7.1 穷举法 83
5.7.2 迭代法 85
小结 86
练习题5 87
上机实验题5 90
第6章 数组 91
6.1 一维数组 91
6.1.1 一维数组的定义 91
6.1.2 一维数组元素的引用 92
6.1.3 一维数组的初始化 92
6.1.4 一维数组的应用 94
6.2 二维数组 103
6.2.1 二维数组的定义 103
6.2.2 二维数组元素的引用 103
6.2.3 二维数组的初始化 104
6.3 多维数组 107
6.4 字符数组和字符串数组 108
6.4.1 字符数组 108
6.4.2 字符串数组 113
小结 115
练习题6 115
上机实验题6 117
第7章 函数 118
7.1 模块化程序设计 118
7.1.1 模块化程序设计技术 118
7.1.2 函数调用的执行过程 119
7.2 函数的定义与调用 119
7.2.1 函数定义 120
7.2.2 函数调用 122
7.2.3 函数的返回值与函数类型 124
7.2.4 被调函数声明 125
7.2.5 函数应用举例 126
7.3 外部函数和内部函数 133
7.3.1 外部函数 133
7.3.2 内部函数 133
7.3.3 VC++中运行多文件程序的方法 134
7.4 局部变量和全局变量 135
7.4.1 局部变量 135
7.4.2 全局变量 137
7.5 变量的存储类别 139
7.5.1 局部变量的存储类别 140
7.5.2 全局变量的存储类别 142
7.6 函数间的数据传递 143
7.6.1 函数间的参数传递 143
7.6.2 全局变量传递数据 147
7.7 递归函数 148
7.7.1 递归模型 148
7.7.2 递归的执行过程 149
小结 151
练习题7 151
上机实验题7 156
第8章 指针 157
8.1 地址和指针变量 157
8.2 指针变量的定义 158
8.3 指针运算符 160
8.4 指针变量的初始化 162
8.5 C动态分配函数 163
8.6 指针变量的运算 165
8.6.1 指针的赋值运算 165
8.6.2 指针变量的算术运算 166
8.6.3 指针变量的关系运算 169
8.6.4 指针变量的赋值运算 169
8.7 字符串指针变量和字符串 170
8.8 指针作为函数参数 172
小结 173
练习题8 174
上机实验题8 177
第9章 指针和数组 178
9.1 数组中地址的概念 178
9.1.1 一维数组中的地址 178
9.1.2 二维数组中的地址 179
9.1.3 多维数组中的地址 180
9.2 数组的指针变量 181
9.2.1 一维数组的指针变量 181
9.2.2 二维数组的指针变量 184
9.2.3 多维数组的指针变量 186
9.3 指针数组 188
9.4 多级指针变量 191
小结 193
练习题9 193
上机实验题9 198
第10章 数组和函数 199
10.1 数组作为函数参数 199
10.2 一维数组作为函数参数 199
10.3 二维数组作为函数参数 204
10.4 多维数组作为函数参数 207
10.5 指针数组作为函数参数 209
10.6 命令行参数 210
小结 211
练习题10 211
上机实验题10 212
第11章 指针和函数 213
11.1 指针型函数 213
11.2 指向函数的指针变量 214
小结 219
练习题11 219
上机实验题11 219
第12章 编译预处理 220
12.1 宏定义 220
12.1.1 无参宏定义 220
12.1.2 带参宏定义 222
12.2 条件编译 225
12.3 文件包括 228
小结 230
练习题12 230
上机实验题12 232
第13章 结构体和共用体 233
13.1 结构体类型声明和结构体变量定义 233
13.1.1 结构体类型声明 233
13.1.2 结构体变量的定义 234
13.1.3 结构体变量的引用和初始化 236
13.1.4 结构体变量作为函数参数 239
13.2 结构体数组 241
13.2.1 结构体数组的定义 241
13.2.2 结构体数组的引用 241
13.2.3 结构体数组的初始化 241
13.2.4 结构体数组作为函数参数 242
13.3 结构体指针变量 244
13.3.1 结构体指针变量定义 244
13.3.2 结构体指针变量作为函数参数 245
13.4 结构体的应用——链表 246
13.4.1 单链表及其基本运算的实现 246
13.4.2 单链表的应用示例 253
13.5 共用体 255
13.5.1 共用体类型的声明 255
13.5.2 共用体变量的定义 256
13.5.3 共用体变量的引用和初始化 257
13.6 枚举类型 261
13.6.1 枚举类型的声明和变量定义 261
13.6.2 枚举类型变量的操作 263
13.7 用户定义类型 264
小结 266
练习题13 267
上机实验题13 271
第14章 位运算 273
14.1 位运算符和位运算 273
14.1.1 位运算符 273
14.1.2 位运算符的运算功能 273
14.2 位段 279
14.2.1 位段的概念 279
14.2.2 位段结构的说明和变量定义 279
14.2.3 位段的引用和赋值 280
14.2.4 使用位段的注意事项 281
小结 282
练习题14 282
上机实验题14 283
第15章 文件 284
15.1 文件概述 284
15.1.1 文件的分类 284
15.1.2 文件的操作流程 285
15.1.3 文件缓冲区 286
15.1.4 流和文件指针变量 286
15.2 文件打开和关闭 287
15.2.1 文件的打开 287
15.2.2 文件的关闭 288
15.3 文件的顺序读写 289
15.3.1 文件的字符读写函数 289
15.3.2 文件的字符串读写函数 292
15.3.3 文件格式化读写 295
15.4 文件的随机读写 300
15.4.1 文件定位操作 300
15.4.2 文件的随机读写 303
15.5 文件检测函数 315
小结 316
练习题15 316
上机实验题15 319
第16章 软件开发过程 321
16.1 软件开发步骤 321
16.1.1 软件计划 321
16.1.2 需求分析 321
16.1.3 软件概要设计 322
16.1.4 软件详细设计 328
16.1.5 编码 330
16.1.6 测试 331
16.2 学生成绩管理系统开发过程 331
16.2.1 系统功能 331
16.2.2 系统分析 331
16.2.3 系统设计 332
16.2.4 编码 332
16.2.5 测试 346
16.2.6 系统运行 346
16.2.7 展望 349
小结 349
练习题16 349
上机实验题16 349
附录A C语言运算符及优先级 350
附录B 部分字符与ASCII代码对照表 351
参考文献 352