第1章 C语言概述 1
1.1 C语言简介 2
1.1.1 计算机语言简介 2
1.1.2 C语言的历史 3
1.1.3 C语言的特点 3
1.1.4 C语言的标准 4
1.1.5 C和C++ 4
1.2 简单C程序的介绍 5
1.2.1 C语言程序的结构 5
1.2.2 C语言程序的开发流程 7
1.2.3 程序注释 9
1.2.4 输入和输出函数简介 10
1.3 集成开发环境 11
1.3.1 Turbo C++ 3.0 11
1.3.2 Visual C++ 6.0 14
1.4 实践案例:编写学生成绩管理程序 17
1.5 动手练一练 19
1.5.1 练习题 19
1.5.2 上机实践 20
第2章 数据类型 21
2.1 数据类型的定义与分类 22
2.2 变量与常量 23
2.2.1 变量 23
2.2.2 常量 24
2.3 标识符和关键字 25
2.3.1 标识符 26
2.3.2 关键字 26
2.4 整型数据 27
2.4.1 整型常量 27
2.4.2 整型变量 28
2.5 浮点型数据 29
2.5.1 浮点型常量 29
2.5.2 浮点型变量 30
2.6 字符型数据 32
2.6.1 字符型常量 32
2.6.2 字符型变量 32
2.7 类型转换 34
2.8 C99中新增的数据类型 36
2.9 实践案例:不同类型之间的运算 36
2.10 动手练一练 37
2.10.1 练习题 37
2.10.2 上机实践 38
第3章 运算符和表达式 39
3.1 运算符概述 40
3.2 基本运算符 40
3.2.1 算术运算符 40
3.2.2 赋值运算符 43
3.2.3 自增和自减运算符 44
3.2.4 关系运算符 46
3.2.5 逻辑运算符 48
3.3 位运算符 50
3.3.1 位逻辑运算符 50
3.3.2 位移运算符 52
3.3.3 复合位赋值运算符 53
3.4 其他运算符 53
3.4.1 条件运算符 53
3.4.2 逗号运算符 55
3.4.3 sizeof运算符 55
3.5 运算符的优先级和结合性 56
3.6 表达式 57
3.7 实践案例:打印购物清单 58
3.8 动手练一练 60
3.8.1 练习题 60
3.8.2 上机实践 61
第4章 顺序结构 62
4.1 算法简介 63
4.1.1 什么是算法 63
4.1.2 算法示例 63
4.2 算法描述方式 65
4.2.1 自然语言描述方式 65
4.2.2 流程图描述方式 65
4.2.3 N-S流程图描述方式 67
4.2.4 伪代码描述方式 69
4.2.5 计算机语言描述方式 70
4.3 顺序结构中的语句 71
4.3.1 语句编写方式 71
4.3.2 表达式语句 72
4.3.3 空语句 72
4.3.4 复合语句 73
4.4 格式化输出和输入函数 73
4.4.1 printf()函数 74
4.4.2 scanf()函数 78
4.5 实践案例:判断是否为素数 80
4.6 动手练一练 83
4.6.1 练习题 83
4.6.2 上机实践 85
第5章 分支结构 86
5.1 if分支语句 87
5.1.1 单分支if语句 87
5.1.2 双分支if语句 89
5.1.3 多分支if语句 90
5.1.4 if嵌套语句 92
5.2 switch分支语句 94
5.2.1 switch语句的基本形式 94
5.2.2 switch语句中的break 96
5.3 实践案例:了解两种分支语句的优缺点 97
5.4 动手练一练 100
5.4.1 练习题 100
5.4.2 上机实践 101
第6章 循环结构 102
6.1 for循环语句 103
6.1.1 for循环语句格式 103
6.1.2 for循环实例 106
6.2 while循环语句 107
6.2.1 while循环语句格式 107
6.2.2 while循环语句实例 108
6.3 do while循环语句 109
6.3.1 do while循环语句格式 109
6.3.2 do while循环语句实例 110
6.4 循环控制语句 111
6.4.1 break语句和continue语句 111
6.4.2 goto语句 113
6.5 循环嵌套 115
6.5.1 循环嵌套格式 115
6.5.2 利用循环嵌套打印菱形 116
6.6 实践案例:求素数 117
6.7 动手练一练 119
6.7.1 练习题 119
6.7.2 上机实践 121
第7章 数组 122
7.1 了解数组 123
7.1.1 使用数组的好处 123
7.1.2 数组的概念 124
7.1.3 数组的维数 125
7.2 一维数组 126
7.2.1 一维数组的声明 126
7.2.2 一维数组的存储 126
7.2.3 一维数组的引用 127
7.2.4 一维数组的初始化 128
7.3 二维数组 129
7.3.1 二维数组的声明 129
7.3.2 二维数组的存储 130
7.3.3 二维数组的引用 131
7.3.4 二维数组的初始化 132
7.4 字符数组和字符串 133
7.4.1 一维字符数组 133
7.4.2 了解字符串 134
7.4.3 字符串的输入输出 135
7.4.4 字符串的输入输出函数 136
7.4.5 二维字符串数组 137
7.5 多维数组 138
7.6 数组的基本应用 139
7.6.1 反转字符串 139
7.6.2 查找最大值 140
7.6.3 数据排序 141
7.7 实践案例:二维数组行和列的元素互换 142
7.8 动手练一练 144
7.8.1 练习题 144
7.8.2 上机实践 145
第8章 函数 146
8.1 函数简介 147
8.1.1 C语言中的函数 147
8.1.2 函数的分类 147
8.2 定义函数 148
8.2.1 定义无参函数 148
8.2.2 定义有参函数 149
8.2.3 定义函数的注意事项 150
8.3 声明函数 151
8.3.1 声明函数的语法格式 151
8.3.2 声明函数的位置 152
8.4 函数的参数 153
8.4.1 形式参数与实际参数 153
8.4.2 值参数 155
8.4.3 引用参数 156
8.5 函数的调用和返回值 158
8.5.1 函数调用的一般形式 158
8.5.2 函数返回值 159
8.5.3 函数的嵌套调用 161
8.5.4 函数的递归调用 163
8.6 数组作为函数的参数 166
8.7 函数中的变量作用域 169
8.7.1 局部变量 169
8.7.2 全局变量 171
8.8 实践案例:学生成绩管理 172
8.9 动手练一练 176
8.9.1 练习题 176
8.9.2 上机实践 178
第9章 指针 179
9.1 地址和指针的概念 180
9.1.1 什么是地址 180
9.1.2 什么是指针 181
9.2 指针变量 182
9.2.1 定义指针变量 183
9.2.2 使用指针变量 183
9.2.3 指针变量作为函数的参数 186
9.3 指针与数组 188
9.3.1 指向数组元素的指针与指向数组的指针 188
9.3.2 指针变量在数组中的运算 190
9.3.3 数组元素的操作 193
9.3.4 指向多维数组的指针变量 196
9.3.5 数组名(指针)作为函数参数 201
9.4 指针与字符串 204
9.4.1 字符串指针 204
9.4.2 字符串指针作为函数参数 206
9.4.3 字符指针和字符数组的区别 207
9.4.4 字符指针数组 209
9.5 指针与函数 211
9.5.1 指向函数的指针 211
9.5.2 返回指针值的函数 212
9.6 二级指针 214
9.7 实践案例:编写简单的成绩统计程序 216
9.8 动手练一练 221
9.8.1 练习题 221
9.8.2 上机实践 222
第10章 结构体与枚举体 224
10.1 结构体 225
10.1.1 定义结构类型 225
10.1.2 定义结构变量 226
10.1.3 引用结构变量 228
10.1.4 初始化结构变量 229
10.1.5 结构体应用举例 230
10.2 结构体数组 231
10.2.1 定义结构体数组 231
10.2.2 初始化结构体数组 233
10.2.3 结构体数组应用举例 234
10.3 指针与结构体 235
10.3.1 指向结构体变量的指针 235
10.3.2 指向结构体数组的指针 237
10.3.3 结构体变量作为函数的参数 239
10.3.4 指向结构体变量的指针作为函数的参数 240
10.4 用typedef定义类型 241
10.5 枚举类型 243
10.5.1 定义枚举类型及变量 243
10.5.2 使用枚举类型的一些说明 244
10.5.3 枚举类型应用举例 244
10.6 实践案例:员工信息录入和输出 247
10.7 动手练一练 249
10.7.1 练习题 249
10.7.2 上机实践 251
第11章 预处理指令 252
11.1 宏定义指令 253
11.1.1 不带参数的宏定义 253
11.1.2 带参数的宏定义 255
11.2 文件包含指令 259
11.2.1 文件包含指令的语法格式 259
11.2.2 文件包含指令应用实例 260
11.2.3 文件包含指令注意事项 262
11.3 条件编译指令 263
11.3.1 #ifdef指令 264
11.3.2 #ifndef指令 265
11.3.3 #if指令 266
11.4 实践案例:根据不同时间输出不同问候 267
11.5 动手练一练 270
11.5.1 练习题 270
11.5.2 上机实践 272
第12章 操作字符及字符串 273
12.1 字符的操作 274
12.1.1 检查英文字母函数 274
12.1.2 检查字母数字函数 275
12.1.3 检查控制字符函数 276
12.1.4 十进制数字检查函数 276
12.1.5 可打印字符检查函数 277
12.1.6 包含空格的可打印字符检查函数 278
12.1.7 格式字符检查函数 278
12.1.8 小写英文字母检查函数 279
12.1.9 大写英文字母检查函数 280
12.1.10 十六进制数字检查函数 280
12.2 字符串的存储 281
12.2.1 字符串的静态存储 281
12.2.2 字符串的动态存储 282
12.3 检测字符串长度函数 283
12.4 查找字符串 284
12.4.1 查找字符位置函数 284
12.4.2 查找相同字符函数 285
12.4.3 查找包含字符位置函数 285
12.4.4 查找包含字符函数 286
12.4.5 查找子串函数 287
12.4.6 字符查找函数 288
12.4.7 字符包含函数 289
12.5 比较字符串 289
12.5.1 比较字符串函数 290
12.5.2 比较部分字符串函数 291
12.5.3 比较时忽略大小写函数 292
12.5.4 包含结束符的比较函数 293
12.6 连接字符串 294
12.6.1 连接字符串函数 294
12.6.2 连接部分字符函数 295
12.7 复制字符串 295
12.7.1 复制字符串函数 295
12.7.2 复制部分字符函数 296
12.7.3 更省事的复制函数 297
12.7.4 字符串复制函数 298
12.7.5 带终止字符的复制函数 298
12.7.6 字符串移动函数 299
12.8 字符和字符串的转换 300
12.8.1 大小写字母的转换 300
12.8.2 转换大小写字符串 301
12.8.3 字符串与数值的转换 302
12.9 其他字符串函数 303
12.9.1 字符串反转函数 303
12.9.2 替换字符串中的字符函数 303
12.9.3 分解字符串函数 304
12.10 实践案例:字符串函数操作系统 305
12.11 动手练一练 307
12.11.1 练习题 307
12.11.2 上机实践 308
第13章 文件操作 309
13.1 文件的概念 310
13.1.1 文件的分类 310
13.1.2 文件指针 311
13.2 打开文件与关闭文件 311
13.2.1 打开文件 312
13.2.2 关闭文件 313
13.3 文件的读写 314
13.3.1 fgetc()函数与fputc()函数 314
13.3.2 fgets()函数与fputs()函数——字符串读写函数 316
13.3.3 fread()函数与fwrite()函数 317
13.3.4 fscanf()函数与fprintf()函数——格式化读写函数 319
13.4 文件的定位 320
13.4.1 重置文件指针 321
13.4.2 定位文件指针 322
13.4.3 获取文件指针位置 323
13.5 出错检测 324
13.5.1 feof()函数 324
13.5.2 ferror()函数 325
13.5.3 clearerr()函数 325
13.6 实践案例:通讯录程序 326
13.7 动手练一练 332
13.7.1 练习题 332
13.7.2 上机实践 335
第14章 图书管理系统 336
14.1 需求分析 337
14.2 系统设计 338
14.3 系统实现 339
14.3.1 创建工程 339
14.3.2 功能选择界面 340
14.4 图书管理模块 342
14.4.1 录入图书信息 342
14.4.2 浏览图书信息 344
14.4.3 添加图书信息 345
14.4.4 修改图书信息 346
14.4.5 删除图书信息 347
14.4.6 查找图书信息 347
14.5 学生借书模块 348
14.5.1 注册一个账号 348
14.5.2 借书操作 348
14.5.3 查看账号信息 349
14.5.4 清除账号信息 350
14.6 总结 350
练习题参考答案 351