第 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 014
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 C 99 中新增的数据类型 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 语句中的 break96
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