第1章 程序设计引论 1
1.1计算科学与问题求解 1
1.2程序与程序设计 2
1.2.1程序 2
1.2.2程序设计 3
1.3程序设计语言 4
1.3.1程序设计语言分类 4
1.3.2程序的执行方式 5
1.4 C语言简介 7
1.5 C语言程序开发工具 9
1.6 C语言程序开发步骤 14
本章小结 16
实验一 16
第2章 数据类型、运算符与表达式 18
2.1 C程序基本结构 18
2.2 C程序中常见的符号 20
2.3数据类型 21
2.4常量 25
2.4.1整型常量 25
2.4.2实型常量 26
2.4.3字符常量 26
2.4.4字符串常量 28
2.4.5宏常量 28
练习2.1 28
2.5变量 29
2.5.1变量的声明 29
2.5.2变量初始化 30
2.5.3变量的访问与使用 31
练习2.2 32
2.6运算符与表达式 33
2.6.1算术运算符 33
2.6.2运算符的优先级与结合性 34
2.6.3关系运算符 35
2.6.4复合赋值运算符 36
2.6.5 ++和--运算符 37
2.7表达式的类型转换 38
2.7.1赋值表达式的类型转换 38
2.7.2强制类型转换 39
2.8 const常量 40
练习2.3 41
本章小结 41
实验二 42
第3章 算法与简单C语言程序设计 43
3.1 C语句 43
3.2 C程序输入/输出操作的实现 44
3.2.1字符输入/输出 44
3.2.2格式输入/输出 46
练习3.1 52
3.3算法 52
3.3.1问题求解过程中算法的作用 52
3.3.2算法的特点 54
3.3.3算法的描述 55
3.4简单程序设计举例 60
练习3.2 63
本章小结 63
实验三 63
第4章 程序基本控制结构 64
4.1逻辑运算符与逻辑表达式 64
4.1.1逻辑运算符 64
4.1.2逻辑表达式 65
练习4.1 66
4.2选择控制结构 67
4.2.1 if单分支语句 67
4.2.2 if双分支语句 73
4.2.3 if多分支语句 74
4.3条件表达式 78
练习4.2 78
4.4 switch多分支语句 79
练习4.3 84
4.5循环控制语句 84
4.5.1while循环语句 84
4.5.2 for循环语句 89
4.5.3 do while循环语句 94
练习4.4 95
4.6程序跳转语句 96
4.6.1 break语句 96
4.6.2 continue语句 98
4.6.3 goto语句 99
练习4.5 100
4.7多重循环及其应用 101
练习4.6 104
4.8循环程序设计方法 105
4.8.1迭代法 105
4.8.2穷举法 107
本章小结 110
实验四 110
第5章 函数及其应用 112
5.1 C函数概述 112
5.2 C语言函数的定义和调用 113
5.2.1 C语言函数的定义 113
5.2.2 return语句 115
5.2.3函数调用 116
5.2.4函数声明 118
练习5.1 119
5.3引用库函数与自定义函数 120
5.3.1库函数分类 120
5.3.2 #include指令 120
5.4函数参数传递方式 121
练习5.2 123
5.5函数嵌套调用 124
5.5.1嵌套调用的概念 124
5.5.2模块化设计基本方法 124
练习5.3 128
5.6递归函数及其应用 129
5.6.1递归的概念 129
5.6.2递归程序分析 131
练习5.4 133
5.6.3递归程序应用 134
练习5.5 137
5.7变量的作用域与生存期 138
5.7.1局部变量 138
5.7.2全局变量 139
5.7.3变量的存储类型 141
练习5.6 144
5.8函数综合应用——趣味算术游戏 145
练习5.7 152
本章小结 152
实验五 152
第6章 数组及其应用 153
6.1一维数组 153
6.1.1一维数组的定义与引用 153
6.1.2一维数组的初始化 156
练习6.1 158
6.2向函数传递一维数组 159
练习6.2 163
6.3基于数组的常用算法及其应用 164
6.3.1顺序查找 164
6.3.2数据删除 165
6.3.3数据插入 166
6.3.4寻找最大值 167
练习6.3 169
6.3.5数据排序 169
6.3.6数据倒置 174
6.3.7二分查找 176
6.3.8一维数组应用实例 178
练习6.4 180
6.4二维数组 181
6.4.1二维数组的定义、引用及初始化 182
6.4.2二维数组应用实例 184
练习6.5 187
6.5向函数传递二维数组 188
练习6.6 191
6.6字符串及字符数组 191
6.6.1字符串 191
6.6.2字符数组的初始化 191
6.6.3字符数组的输入/输出 192
6.6.4字符串处理函数 194
6.6.5字符串应用实例 197
练习6.7 202
6.7基于数组的递归算法 203
练习6.8 205
本章小结 205
实验六 206
第7章 指针及其应用 207
7.1指针的本质 207
7.2指针变量的定义与初始化 208
7.3间接寻址运算符 210
练习7.1 211
7.4指针与函数 212
7.4.1传值调用与传地址调用 212
7.4.2指针作函数参数的应用实例 214
练习7.2 217
7.5指针和一维数组 218
7.5.1指针的算术运算与关系运算 218
7.5.2应用指针访问一维数组 220
7.5.3深入理解一维数组作函数参数的本质 222
练习7.3 224
7.6字符指针 225
7.6.1使用字符指针指示字符串常量 225
7.6.2利用字符指针访问字符串变量 227
练习7.4 229
7.7指针和二维数组 230
7.7.1列指针 230
7.7.2行指针 231
7.7.3深入理解二维数组作函数参数的本质 233
7.7.4巧用列指针设计通用二维数组处理函数 233
练习7.5 235
7.8指针的高级应用 236
7.8.1指针数组及其应用 236
7.8.2动态内存分配 240
7.8.3二级指针 243
7.8.4指向函数的指针及其应用 246
练习7.6 248
本章小结 249
实验七 249
第8章 结构体及其应用 250
8.1为何要用结构体 250
8.2结构体类型与结构体变量 250
8.2.1结构体类型的声明 250
8.2.2结构体变量的定义 252
8.2.3对结构体变量的操作 253
8.2.4结构体变量的初始化 254
练习8.1 255
8.3指向结构体的指针 256
练习8.2 257
8.4向函数传递结构体 257
8.4.1值传递 257
8.4.2地址传递 258
练习8.3 259
8.5结构体数组 260
8.5.1结构体数组的定义 260
8.5.2结构体数组的初始化与引用 260
8.5.3结构体数组的应用 263
练习8.4 266
8.6动态数据结构——单链表 267
8.6.1单链表的定义 267
8.6.2在单链表插入新结点 268
8.6.3建立单链表 270
8.6.4单链表的遍历 272
8.6.5在单链表中查找结点 273
8.6.6在单链表中删除结点 273
练习8.5 276
本章小结 277
实验八 277
第9章 文件与数据存储 278
9.1引例——学生文件信息的创建 278
9.2文件概述 279
9.2.1流的概念 279
9.2.2文件的分类 279
9.2.3文件指针 281
9.3文件的打开和关闭 281
9.3.1文件的打开 281
9.3.2文件的关闭 283
练习9.1 284
9.4文件检测函数 284
9.4.1检测文件末尾函数 284
9.4.2检测出错函数 284
9.5文件的读/写操作 285
9.5.1字符读/写函数 285
9.5.2字符读/写函数应用实例 285
9.5.3字符串读/写函数 286
9.5.4字符串读/写函数应用实例 287
9.5.5格式化读/写函数 287
9.5.6格式化读/写函数应用实例 288
9.5.7数据块读/写函数 290
9.5.8数据块读/写函数应用实例 290
练习9.2 292
9.6文件的随机读写 293
9.6.1文件的定位 294
9.6.2文件随机读写应用实例 295
练习9.3 299
9.7利用位运算对文件数据加密 299
9.7.1位运算 299
9.7.2数据文件加密实例 301
本章小结 303
实验九 303
第10章C综合性程序设计案例分析 304
10.1软件开发过程概述 304
10.2基于用户角色的图书管理系统案例分析 306
10.2.1问题描述与需求分析 307
10.2.2总体设计与详细设计 307
10.2.3编码 314
10.2.4测试与运行效果 338
10.3课程设计的实施建议与选题设计 340
10.3.1课程设计实施建议 340
10.3.2课程设计选题设计 340
本章小结 341
实验十 341
附录A C语言中的关键字 342
附录B常用字符与ASCII代码对照表 343
附录C运算符的优先级和结合性 344
附录D常用的C语言库函数 345
D.1数学函数 345
D.2字符函数和字符串函数 346
D.3动态存储分配函数 347
D.4其他常用函数 347
附录E全国计算机等级考试二级C语言程序设计考试大纲 349
附录F Visual C++6.0使用指南 352
参考文献 354