第一部分? 编程基础
第 1 章 GESP 介绍与二进制 / 2
1.1 GESP 介绍 / 2
1.1.1 什么是 GESP / 2
1.1.2 GESP 的语言和级别 / 3
1.1.3 GESP 的考试频次和题目安排 / 4
1.1.4 为什么要参加 GESP 认证考试 / 4
1.2 二进制 / 4
1.2.1 感受二进制 / 5
1.2.2 数码和基数 / 5
1.2.3 二进制表示 / 6
1.2.4 二进制转十进制 / 6
1.2.5 常见的二进制数 / 8
1.3 八进制和十六进制 / 9
课后作业 / 9
延伸阅读:二进制数是一类特殊的数吗 / 10
第 2 章 计算机基础知识 / 11
2.1 计算机组成部分 / 11
2.1.1 五大部件 / 11
2.1.2 图灵机模型 / 13
2.1.3 冯·诺依曼体系结构 / 14
2.2 计算机的发展历史 / 14
2.2.1 机械计算器 / 15
2.2.2 电子计算机 / 15
2.2.3 冯·诺依曼体系结构的计算机 / 15
2.3 计算机的数据存储 / 16
课后作业 / 17
延伸阅读:什么叫便携性 / 18
第 3 章 程序的基本概念 / 19
3.1 软件的概念 / 19
3.1.1 软件的分类 / 19
3.1.2 软件和程序的区别 / 20
3.1.3 软件不能干什么 / 21
3.2 程序设计语言 / 22
3.2.1 机器语言 / 23
3.2.2 汇编语言 / 23
3.2.3 高级语言 / 23
3.3 编写程序的过程 / 24
3.3.1 编辑代码 / 24
3.3.2 编译 / 25
3.3.3 运行 / 25
3.3.4 调试 / 25
3.4 集成开发环境 / 26
课后作业 / 27
延伸阅读:聊天软件为什么能叫机器人 / 27
延伸阅读:算盘为什么不是现代计算机的鼻祖 / 27
第 4 章 程序基本语句 / 29
4.1 使用 DevC++ / 29
4.1.1 打开 DevC++ / 30
4.1.2 创建文件 / 30
4.1.3 保存文件 / 31
4.1.4 输入代码 / 31
4.1.5 编译代码 / 31
4.1.6 运行程序 / 32
4.2 分析代码 / 32
4.2.1 头文件 / 32
4.2.2 名字空间 / 33
4.2.3 主函数 / 33
4.2.4 输出语句 / 34
4.2.5 返回语句 / 34
4.2.6 字符串 / 34
4.2.7 语法规则 / 35
4.3 输出语句 / 35
4.3.1 基本用法 / 35
4.3.2 换行符 / 35
4.3.3 链式调用 / 36
4.3.4 输出算式的值 / 36
4.4 注释语句 / 37
课后作业 / 38
延伸阅读:cout 是一个函数吗 / 38
第 5 章 体验编程流程 / 39
5.1 程序解决问题的步骤 / 40
5.2 解答编程题的流程 / 40
5.2.1 审题 / 41
5.2.2 确定算法和程序结构 / 41
5.2.3 用自然语言描述代码 / 41
5.2.4 写代码 / 42
5.2.5 用样例数据测试 / 43
5.2.6 调试 / 43
5.3 代码解释 / 43
5.4 常见的编译错误 / 44
课后作业 / 45
编程基础总结 / 46
课后作业 / 49
第二部分? 算术运算
第 6 章 基本算术运算 / 51
6.1 加减乘除余 / 51
6.2 详解除法运算 / / 54
6.3 详解求余运算 % / 54
6.4 / 和 % 的应用 / 55
课后作业 / 56
第 7 章 基本数据类型 / 57
7.1 数值型数据类型 / 57
7.1.1 整型 / 58
7.1.2 长整型 / 58
7.1.3 单精度型 / 59
7.1.4 双精度型 / 59
7.1.5 浮点数相除 / 59
7.1.6 如何选择类型 / 59
7.2 非数值型数据类型 / 60
7.2.1 字符型 / 60
7.2.2 布尔型 / 62
7.3 常数的数据类型 / 62
课后作业 / 63
延伸阅读:计算机中的实数 / 64
第 8 章 运算规则 / 65
8.1 表达式 / 65
8.2 优先级 / 65
8.3 类型自动转换 / 67
8.4 sizeof 操作符 / 68
课后作业 / 69
延伸阅读:测试样例数据的重要性 / 69
第 9 章 变量的定义与使用 / 71
9.1 变量的定义 / 71
9.1.1 什么是变量、常量、常数 / 71
9.1.2 定义变量 / 72
9.1.3 变量命名规则 / 73
9.1.4 关键字 / 73
9.1.5 定义常量 / 73
9.2 变量的使用 / 74
9.2.1 赋值语句 / 74
9.2.2 变量的初始化 / 75
9.2.3 再谈赋值语句 / 76
课后作业 / 77
第 10 章 输入语句 / 78
10.1 cin(C++ 风格) / 78
10.1.1 基本语法 / 78
10.1.2 串联使用 >> / 78
10.1.3 数据不一致的情形 / 79
10.2 scanf(C 风格) / 80
10.3 通用头文件 / 81
课后作业 / 82
延伸阅读:时刻和时间段的区别 / 83
第 11 章 输出语句 / 85
11.1 输出语句的作用 / 85
11.2 cout(C++ 风格) / 86
11.2.1 基本语法 / 86
11.2.2 串联使用 << / 86
11.2.3 字符串 / 87
11.3 printf(C 风格) / 87
11.3.1 格式符:%d / 88
11.3.2 格式符:%c / 89
11.3.3 格式符:%f / 90
11.3.4 多个格式符一起使用 / 90
11.3.5 格式符:%% / 91
11.3.6 进制格式符 / 91
11.4 特殊符号 / 92
11.5 临时变量 / 93
11.6 使用输出语句调试 / 94
课后作业 / 95
第 12 章 高级算术运算 / 96
12.1 复合赋值运算符 / 96
12.2 自增 / 自减运算符 / 97
12.3 赋值语句串联 / 98
12.4 逗号运算符 / 100
12.5 变量重复使用 / 101
课后作业 / 101
延伸阅读:后 ++ 和后 -- / 102
第 13 章 算术运算应用 / 104
13.1 位数拆分 / 104
13.2 时间转换 / 105
13.3 最小的倍数 / 107
课后作业 / 108
算术运算总结 / 110
课后作业 / 115
第三部分? 分支语句
第 14 章 if-else 分支语句 / 118
14.1 分支语句简介 / 119
14.2 关系运算符 / 120
14.3 关系表达式 / 120
14.4 单分支、双分支和多分支 / 121
14.5 问号表达式 / 124
14.6 中途退出程序 / 124
14.7 延迟定义变量 / 125
课后作业 / 126
延伸阅读:能使用中文编写代码吗 / 126
第 15 章 分支语句应用以及逻辑运算符“与” / 128
15.1 最值计算 / 128
15.2 水仙花数判断 / 129
15.3 优等生判断 / 130
15.4 逻辑运算符:与 / 130
15.5 回文数判断 / 131
课后作业 / 132
延伸阅读:有趣的自幂数 / 133
第 16 章 逻辑运算符“或”和“非” / 134
16.1 k 幸运数判断 / 134
16.2 逻辑运算符:或 / 134
16.3 特长生判断 / 135
16.4 逻辑运算符:非 / 136
16.5 逻辑运算符总结 / 136
16.5.1 优先级 / 136
16.5.2 短路特性 / 137
16.6 闰年判断 / 138
课后作业 / 139
延伸阅读:闰年是怎么形成的 / 139
第 17 章 布尔数据类型 / 141
17.1 组合招生政策 / 141
17.2 布尔型(bool) / 142
17.3 bool 变量的值 / 142
17.4 逻辑表达式 / 142
17.5 非 0 即为真 / 144
课后作业 / 145
第 18 章 数据类型转换 / 147
18.1 强制类型转换 / 147
18.1.1 强制类型转换与精度无关 / 148
18.1.2 强制类型转换会丢失数据 / 149
18.2 隐式类型转换 / 149
18.2.1 赋值时的隐式类型转换 / 149
18.2.2 表达式中的隐式类型转换 / 152
18.2.3 两种类型的转换同时发生 / 154
18.2.4 转换发生的时机 / 154
课后作业 / 155
第 19 章 分支结构应用 / 157
19.1 字母大小写转换 / 157
19.2 字母循环平移加密 / 158
19.3 数字字符转数值 / 160
19.4 招生政策 2.0 / 162
课后作业 / 163
延伸阅读:为什么需要数字字符 / 164
第 20 章 switch 分支语句 / 165
20.1 switch 的一般写法 / 166
20.2 省略 break / 168
20.3 switch 应用 / 169
20.3.1 求每月天数 / 170
20.3.2 求奖金数目 / 171
课后作业 / 172
分支语句总结 / 173
课后作业 / 177
第四部分? 循环语句
第 21 章 for 循环语句 / 179
21.1 循环 / 179
21.2 for 循环语句的语法规则 / 179
21.3 循环变量的作用范围 / 181
21.4 for 循环应用:求个数 / 182
课后作业 / 184
第 22 章 for 循环基本应用 / 185
22.1 求和 / 185
22.2 求幂运算 / 186
22.3 求约数 / 186
22.4 求最值 / 189
课后作业 / 190
第 23 章 for 循环特性 / 191
23.1 不同的循环方式 / 191
23.1.1 跳跃循环 / 191
23.1.2 递减循环 / 192
23.1.3 指数循环 / 193
23.2 省略表达式 / 193
23.2.1 省略表达式 1 / 193
23.2.2 省略表达式 2 / 194
23.2.3 省略表达式 3 / 195
23.2.4 同时省略 / 195
23.3 循环体中改变循环变量的值 / 195
23.4 多个循环变量 / 196
23.5 一次都不执行 / 196
23.6 空循环 / 197
23.7 死循环 / 197
23.8 break 和 continue / 198
课后作业 / 198
第 24 章 for 循环高级应用 / 200
24.1 素数判断 / 200
24.1.1 常见代码 / 200
24.1.2 第一次优化 / 201
24.1.3 第二次优化 / 203
24.2 完全平方数判断 / 205
24.3 使用 break 省略表达式 2 / 207
24.4 break 的应用 / 207
课后作业 / 208
延伸阅读:世界上存在最大的素数吗 / 209
第 25 章 验证和调试代码 / 210
25.1 用特殊数据测试 / 210
25.1.1 边界数据 / 211
25.1.2 完全平方数 / 212
25.2 减少循环的次数 / 213
25.3 使用输出语句调试 / 213
课后作业 / 214
第 26 章 while 和 do-while 循环 / 215
26.1 while 循环 / 215
26.2 求阶乘 / 218
26.3 do-while 循环 / 218
26.4 是使用 for 循环还是 while 循环 / 220
课后作业 / 220
第 27 章 while 循环应用 / 222
27.1 倒着显示各个位数 / 222
27.2 时间轮转 / 223
27.3 胜利的奖赏 / 225
课后作业 / 226
延伸阅读:国王的奖赏 / 226
循环语句总结 / 228
课后作业 / 232
综合练习 / 233
课后作业参考答案 / 240