第1章 概述 1
1.1 编程的概念 1
1.1.1 计算机如何工作 1
1.1.2 计算机语言 1
1.1.3 C语言简介 2
1.2 如何学习C语言程序设计 4
1.2.1 C语言编程需要什么 4
1.2.2 学习C语言程序设计的有效方法 4
1.2.3 创建C语言程序的一般步骤 5
1.3 C语言程序的基本结构及书写规范 5
1.3.1 C语言程序的基本结构 5
1.3.2 简单的C程序 6
1.3.3 C语言的“字母”和“单词” 7
1.3.4 C语言的程序书写规范 7
1.4 Visual C++集成编译环境介绍 8
1.4.1 Visual C++集成编译环境的安装 8
1.4.2 Visual C++集成编译环境的简单使用 10
1.5 算法及算法表示 15
1.5.1 算法与程序设计 15
1.5.2 算法的表示 16
练习与自测 18
实验指导 19
第2章 基本数据类型 21
2.1 计算购买实验指导书的总价 21
2.1.1 程序分析 21
2.1.2 常量和变量 22
2.1.3 赋值运算和算术运算 23
2.1.4 整型 25
2.1.5 输入输出函数 26
2.1.6 程序的排错与调试 29
2.2 计算银行存款的本息和 33
2.2.1 程序分析 33
2.2.2 库函数 34
2.2.3 表达式 35
2.2.4 实型 35
2.2.5 各类数值型数据之间的混合运算 37
2.2.6 程序的排错与调试 38
2.3 顺序结构 41
2.3.1 顺序结构 41
2.3.2 顺序结构典型问题——单位及货币换算 42
编程习惯 46
练习与自测 46
实验指导 48
第3章 会思考的程序——选择结构 49
3.1 求整数绝对值(if语句——双分支和条件执行) 50
3.1.1 程序分析 50
3.1.2 关系运算符与关系表达式 51
3.1.3 逻辑运算符与逻辑表达式 52
3.1.4 if语句 54
3.1.5 程序的排错与调试 55
3.2 学生成绩评价(if——多分支结构) 56
3.2.1 程序分析 57
3.2.2 if语句多分支结构 58
3.3 if语句的嵌套 59
3.3.1 程序分析 59
3.3.2 if语句的嵌套 61
3.4 打印英文星期名(switch语句) 62
3.4.1 程序分析 62
3.4.2 switch语句 63
3.5 条件运算符 66
本章知识点总结 67
问与答 67
编程习惯 68
练习与自测 68
实验指导 71
第4章 反复执行,周而复始——循环结构 73
4.1 求1到100的累加和 73
4.1.1 程序分析 73
4.1.2 复合赋值运算符和自增自减运算符 76
4.1.3 if-goto语句构成的循环 77
4.1.4 while语句构成的循环 77
4.1.5 for语句构成的循环 78
4.1.6 do-while语句构成的循环 80
4.1.7 4种循环结构的比较 80
4.1.8 程序的调试与运行 82
4.2 计算a+aa+aaa+aaaa+...+aa...a的累加和 84
4.2.1 程序分析 84
4.2.2 程序的调试与运行 85
4.3 利用泰勒公式求圆周率 86
4.3.1 程序分析 86
4.3.2 程序的调试与运行 88
4.4 求学生平均成绩 89
4.4.1 程序分析 89
4.4.2 程序的调试与运行 90
4.5 打印九九乘法表 91
4.5.1 程序分析 91
4.5.2 循环嵌套 93
4.6 输出100~200之间的素数 94
4.6.1 程序分析 94
4.6.2 break语句 96
4.7 计算2~100以内的素数和 97
4.7.1 程序分析 97
4.7.2 continue语句 98
4.8 拓展应用 99
4.8.1 穷举法 99
4.8.2 迭代法 99
本章知识点总结 100
问与答 100
编程习惯 101
练习与自测 102
实验指导 104
案例:我厉害了——简易自动售货机 105
第5章 批量数据的处理——数组 108
5.1 统计成绩 108
5.1.1 程序分析 108
5.1.2 一维数组 110
5.1.3 程序的调试与运行 115
5.2 打印杨辉三角 116
5.2.1 程序分析 116
5.2.2 二维数组 118
5.2.3 程序的调试与运行 122
本章知识点总结 122
问与答 122
练习与自测 123
实验指导 126
案例:我厉害了——打印日历、学生成绩管理v1.0 127
第6章 模块化与协作开发——函数 131
6.1 计算圆柱体积 132
6.1.1 程序分析 132
6.1.2 函数的定义 133
6.1.3 程序的调试与运行 136
6.2 函数的嵌套调用 139
6.3 5个人求年龄问题 140
6.3.1 程序分析 140
6.3.2 递归 141
6.4 查找最高分和最低分 143
6.4.1 程序分析 143
6.4.2 全局变量和局部变量 144
6.4.3 变量的存储类别 146
本章知识点总结 147
问与答 147
练习与自测 148
实验指导 151
案例:我厉害了——自动售货机v1.0 152
贯穿项目——学生成绩管理系统v2.0 157
第7章 间接访问——指针 166
7.1 获取自动售货机密码(指针的概念) 166
7.2 偷梁换柱——改密码(指针作函数参数) 170
7.3 对学生成绩进行排序(数组名作函数参数) 173
7.3.1 使用指针访问数组 173
7.3.2 用数组名和指针作参数 175
7.3.3 程序的调试与运行 177
7.4 二维数组中学生成绩的输出(指向多维数组的指针) 178
本章知识点总结 182
问与答 182
练习与自测 184
实验指导 185
第8章 字符串处理 187
8.1 将验证码全部改为大写输出 187
8.1.1 程序分析 187
8.1.2 字符型 188
8.1.3 字符型的输入输出 190
8.2 名片排序 191
8.2.1 程序分析 191
8.2.2 字符串常量 193
8.2.3 字符数组 193
8.2.4 字符数组的输入输出 194
8.2.5 字符串处理函数 197
8.3 字符指针 199
8.3.1 使用字符指针访问字符串 199
8.3.2 字符指针作参数 200
本章知识点总结 202
问与答 202
练习与自测 202
实验指导 203
第9章 自定义数据类型 205
9.1 构建学生信息结构体 205
9.2 结构体类型的定义 206
9.2.1 结构体3种方法 206
9.2.2 typedef的使用 207
9.3 结构体变量的使用 208
9.3.1 结构体变量的初始化 208
9.3.2 结构体变量的赋值 208
9.3.3 应用举例 209
9.4 结构体数组 210
9.5 结构体指针 212
9.5.1 结构体指针 212
9.5.2 结构体指针与链表 214
9.6 其他自定义类型 220
9.6.1 共用体 220
9.6.2 枚举类型 222
本章知识点总结 224
问与答 224
练习与自测 225
实验指导 226
第10章 数据持久化——文件 229
10.1 将短句“Hello World!”写入到文件 229
10.1.1 程序解析 230
10.1.2 文件概述 230
10.1.3 文件操作步骤 231
10.1.4 文件打开、关闭函数 232
10.2 将学生信息保存到文件(fprintf) 234
10.3 从文件读取学生信息(fscanf) 237
10.4 文件的复制(fgetc和fputc) 238
10.5 二进制文件(数据块读写fread和fwrite) 241
10.6 文件定位函数 245
本章知识点总结 248
练习与自测 248
实验指导 249
第11章 位运算 251
11.1 IP地址转换器 251
11.2 位运算的概念 252
11.3 位运算符 253
11.4 位域 255
本章知识点总结 258
练习与自测 258
实验指导 259
第12章 预处理 260
12.1 宏定义 260
12.1.1 不带参数的宏 260
12.1.2 带参数的宏 263
12.2 文件包含 264
12.3 条件编译 265
本章知识点总结 268
问与答 268
练习与自测 268
实验指导 270
附录A C语言中的关键字 272
附录B 运算符和结合性 273
附录C C库函数 274
附录D ASCII表 280
参考文献 281