新書推薦:

《
透过地图看欧洲格局:从拿破仑时代到冷战时期
》
售價:HK$
118.8

《
柳岸居藏日本画
》
售價:HK$
184.8

《
中国古代科技遗产
》
售價:HK$
217.8

《
历史深处的南丝路 一部关于南丝路的纪实性文学作品
》
售價:HK$
86.9

《
中国航天立体翻翻书
》
售價:HK$
63.8

《
国家工业密码
》
售價:HK$
140.8

《
普通法司法管辖区所得税:从起源到1820年上下册
》
售價:HK$
217.8

《
舞乐中国·佳人的长袖舞
》
售價:HK$
44.0
|
編輯推薦: |
1.全方位覆盖GESP C 一级大纲,从计算机基础到编程实战,一步到位。
2.专为中小学生量身定制,轻松文风,揭开编程的神秘面纱。
3.概念先行,实战演练,让孩子不仅知其然,更知其所以然。
4.一题多解,难易兼顾,满足不同学生的学习需求。
5. 精选例题 历年真题 课后习题,及时巩固所学。
6. 附赠PPT课件与视频讲解,扫码即得,让学习更轻松。
|
內容簡介: |
本书是针对 GESP 一级的 C 大纲量身定制的,以浅显易懂、细致入微的语言,介绍 GESP C 一级所涵盖的内容,包括计算机基础与编程环境、计算机历史、程序的结构、数据类型与变量、输入输出语句、分支结构以及循环结构,书中对历年的考试真题进行详细解析,并配备大量的习题供大家练习和巩固。本书也包含一些延伸阅读的内容,旨在增加趣味性和扩展大家的知识面。
來源:香港大書城megBookStore,http://www.megbook.com.hk 本书的适读人群为自学编程的学生,以及从事中小学生编程教育的老师,特别适合准备参加GESP 考试的学生。
|
關於作者: |
的能力,成为人工智能时代有竞争力的数字化人才。沈根成 毕业于复旦大学数学系,硕士学历,曾在宏碁、纬创、惠普、微福思担任高级程序员和部门经理职位,精通C、C 、.Net 等多种编程语言。现从事青少年编程培训工作,致力于培养出一批优秀的少年程序员,帮助他们掌握扎实的编程基础,培养创新思维和解决问题
|
目錄:
|
第一部分 编程基础
第 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
|
內容試閱:
|
致大朋友
随着科技的日益发达和计算机的普及,编程已经成为一项的技能。也已经发出了通知,要求把信息技术课程从兴趣课变为必修课,并大幅度提升了学生在编程、算法方面的思维要求。可以说,编程教育已经得到国家层面和很多有识之士的重视,并且编程学习日趋低龄化。
与此同时,中国计算机学会发起并主办的 GESP,即编程能力等级认证(Grade Examination of Software Programming),为青少年计算机和编程学习者提供了一个学业能力验证的平台。GESP 覆盖中小学全学段,符合条件的青少年均可参加认证。GESP 旨在提升青少年的计算机和编程教育水平,推广和普及青少年计算机和编程教育。
获得 GESP 证书,不仅可以体现学生的编程水平,而且可以受到各省市重点中学的欢迎,比如现在很多重点中学都把获得 GESP 作为招生条件之一。很多中小学生也趁此机会,早早地投入到了编程学习中,各种编程培训机构也如雨后春笋般涌现出来,推出各种形式的编程培训课程,笔者也是在这个大潮流中投身到了中小学生编程教育之中。
在对中小学生进行编程培训的过程中,笔者发现,目前市面上虽然有很多 C 书籍,但是跟 GESP 完全匹配的几乎没有。GESP 的考试内容覆盖面很广,从计算机发展历史到计算机组成、计算机工作原理、计算机网络,从编程到算法、流程图、数据编码,甚至还涉及GESP本身的一些考试规则等,可以说包罗万象、一应俱全,但另一方面又都不是很深。
而目前市面上的 C 书籍,不仅没有涵盖那么多编程语言之外的东西,而且没有跟 GESP的 8 个等级适配,有些书一本就覆盖了 GESP 一级到五级甚至六级的内容。因而,笔者深刻感受到需要一套与 GESP 完全适配的书籍的重要性。
另外,在培训期间,笔者也意识到,针对成年人的教课方式不能照搬到中小学生身上。因为很多知识点是存在依赖关系的,一般成年人的教课方式都是遵循点—线—面的方式并且按照逻辑顺序来的,先讲述各个概念,再讲解它们能干什么,然后讲解在实际生活中的应用。比如,对于数据类型、变量、算术运算,按照逻辑顺序应该先讲解数据类型,然后讲解变量,再讲解算术运算,因为要讲解算术运算,就离不开变量,因为程序中的算术运算都是对变量的运算;而要讲解变量又离不开数据类型,因为变量声明时必须指定数据类型。
在笔者的第一期课程中,就采取了这种方式。但是发现小朋友们听得云里雾里。数据类型对大家来说是个全新的概念,整型和长整型到底有啥区别,单精度和双精度又有什么不同?你跟他们讲所占的空间不同,存储方式不同,大家也是似懂非懂。然后再讲变量,变量到底是个什么概念,为什么变量要有数据类型?中小学生由于知识和思维的局限,对这些概念很难掌握。加上有些孩子同时在学习 Scratch 和 Python,不同的语言定义的数据类型并不一样,很多概念堆在一起就会打架。
为此,在第二期课程中,笔者放弃了这种传统的点—线—面的方式,先不讲数据类型和变量,一上来就先讲算术运算,需要定义变量的地方就先让大家照抄。因为编程的核心价值是算法,而算法的基础是运算,NOI 最终考查的也是算法,所以运算才是重点,数据类型和变量都是辅助性质的东西。等到基本的运算讲完以后,再慢慢引入数据类型和变量的概念,大家就容易理解多了。
还有一个例子是关于布尔类型、逻辑表达式以及分支语句。分支语句需要使用逻辑表达式,而逻辑表达式的值是布尔类型的,所以要严格按照顺序来讲,则必须先讲布尔类型,然后讲逻辑表达式,再讲分支语句。但是布尔类型太抽象了,如果逻辑表达式不结合具体例子,那么也讲不明白。所以在讲解时,笔者先讲分支语句,即先讲应用,再讲逻辑表达式,最后讲布尔类型。
还有很多其他的例子,这里不一一列举。笔者想说的是,为了让这些内容便于中小学生理解,笔者花了大量的心思,有时候一节一小时的课程,准备讲义要花好几天,要反复修改好几次。但是,当发现这样的讲解小朋友们更容易听得懂时,感觉一切付出都是值得的。
中小学生是祖国的未来和希望,培养中小学生是整个社会的责任。笔者觉得,自己在中小学生编程培训方面的经验和体会不应该自己独有,应该分享给全天下从事中小学生编程培训的老师。于是,笔者把所有的讲义整理成文字,每级一本或每两级一本,形成一个系列,希望能给大家带来帮助。
基于此,这个系列最大的特点是与 GESP 完全适配,这也是与其他 C 书籍最大的区别。这个系列严格按照 GESP 的 8 个等级以及历年的考试真题来安排内容,这句话有两个含义。第一,内容的广度跟 GESP 大纲匹配,比如一级里讲到了计算机历史、计算机组成部分,二级里会讲到网络基础和流程图等。第二,它讲解的深度跟 GESP 大纲匹配,同时又稍许超前一点点。这是因为,GESP 的考试经常会有一些“超纲”的题目,比如说数组,在大纲里是属于三级的,但在二级的考题里也有一些数组的影子,这就使得本书中的有些主题要在不同的级别里讲解两次,第一次比较浅,第二次比较深。
本书涵盖的内容
本书是这个系列中的第一本,涵盖 GESP C 一级的大纲,包括:
? 计算机基础与编程环境。
? 计算机历史。
? 变量的定义与使用。
? 基本数据类型(整型、浮点型、字符型、布尔型)。
? 控制语句结构(顺序、循环、选择)。
? 基本运算(算术运算、关系运算、逻辑运算)。
? 输入输出语句。
本书分成 4 部分。第一部分编程基础,内容包括 GESP 介绍、二进制基础、计算机硬件和发展历史、程序的概念和编程的流程等;第二部分算术运算,讲解数据类型、变量的定义与使用、各种算术运算、输入输出语句、位数拆分、时间转换等;第三部分分支结构,介绍 if-else 语句、switch 语句、逻辑运算符、数据类型转换,以及它们在奇偶数判断、k幸运数判断、回文数判断、水仙花数判断、闰年判断、优等生判断、特长生判断、凯撒加密、公约数、公倍数等方面的应用;第四部分循环语句,讲解 for 循环、while 循环、do-while循环,以及它们在素数判断、完全平方数判断、数列求和、幂运算、阶乘运算等方面的应用。本书的特点
(1)与 GESP 一级的考试大纲完全适配,前面介绍过这是本系列最大的特点。
(2)文风轻松、接地气,深入“为什么”的层面。本书对各种概念和语法娓娓道来,就像和人聊天的感觉。不像有些书籍只是把概念往那儿一放,本书仔细地讲解了为什么需要引入这些概念,比如为什么要有数据类型,为什么需要定义变量,为什么需要输出语句,为什么需要布尔数据类型,等等,确保大家不但知其然,而且知其所以然。
(3)数学知识先解释。在讲解各种应用的时候,自然离不开一些数学知识,比如什么叫素数,什么叫完全平方数,什么叫平方根。为了兼顾不同年龄段的学生,本书对所有的数学知识都先解释一遍,并反复举例。
(4)实战演练。在讲解各种语法知识时,会通过大量的例题和练习来帮助消化,其中很多都是 GESP 真题,几乎涵盖了 GESP 自推出以来所有的考题。
(5)一题多解。本书对同一个问题有时会给出多种解法,并对有些解法进行非常详细的解释,比较它们的优劣,这些解释可能会用到一些大家还没有学到的概念,读者可以根据自己的实际情况选择阅读或跳过。比如素数的判断,给出了 3 份代码,前两份效率差,但易于理解,第三份效率高,但用到了平方根的概念,低年级的小朋友理解起来就有点困难,这时就可以跳过第三份代码。
(6)难易兼存。每章后面都有很多作业,这些作业有难有易,这样各个年龄段的孩子都能各取所需,避免有些孩子望而生畏,而另一些孩子又觉得过于简单。本书中的编程题,题面描述一般都很简单,这一方面是为了节约版面,另一方面也是为了让大部分孩子都能理解。但 GESP 的考题(包括其他信息学的竞赛)题面描述都很长,非常考验大家的阅读理解能力。为了尽量让准备参加 GESP 考试的孩子适应 GESP 的考试模式,本书中的部分题目也采用了场景式的题目描述,即先构造一个应用场景,再延伸出一道题目,让题目看起来很“复杂”。
(7)例题的连贯性。随着知识点的深入,例题会越来越难,但大部分书中的例题是互不相关的。笔者觉得,虽然知识点越来越难,但它们是连贯的,那么例题是不是也可以连贯起来呢?在笔者的精心构思下,创造出了一个连贯的主题“重点中学的招生政策”。这个政策开始为“优等生策略”,即各门功课都很优秀,解题时使用逻辑运算符与(&&);然后推出“特长生策略”,即只要有一门特别优秀就行,解题时使用逻辑运算符或(||);然后推出“组合招生政策”,即优等生和特长生二选一,解题时需要同时使用逻辑运算符与和或;接着又推出“招生政策 2.0”,加入新的课程,条件更加复杂,避免了“跛脚”(即有一门课特别差)的现象,代码中需要用到各种逻辑运算符以及隐式类型转换;最后又推出“招生政策 3.0”,不是看一次成绩,而是看几次的平均成绩,这时就需要在原来的基础上添加循环。就这样,通过一个招生的主题,把所学到的知识全部连贯在了一起。
本书的适用人群
本书是为 GESP 量身定制的,因而特别适合准备参加 GESP 等级考试的学生,以及从事 GESP 编程培训的老师。同时由于本书结构上的安排,对于那些不以考试或竞赛为目的的学生来说,也是一个很好的选择。对于编程老师,每章基本上对应两课时(按 1 小时 1 课时计算),对于自学编程的学生,则可根据自己的实际情况动态调整进度。
除课后作业外,书中有很多例题和练习,分成 3 类:
【例题】:这类题目是正文内容的一部分,以老师讲解或者自己看书为主,并不要求大家自己解答。
【真题解析】:这类题目跟例题一样,以老师讲解为主,区别在于这些题目是以往考试的真题。
【课堂练习】:这类题目是给学生练习的,学生先自己做,然后老师再讲解答案。对于自学的学生,也应该先自己尝试解答,然后再看答案。
所有的课后作业都附带了答案,在本书的最后。
本书另外附带 PPT 课件和视频讲解,供大家参考,扫描封底的“本书资源”二维码即
可获得这些资源。
致谢
特别感谢中国计算机学会 GESP 组委会主席王延平教授、《软件简史》和《软件调试》作者暨格蠹科技创始人张银奎老师、Boolan 首席咨询师及 C 专家吴咏炜老师,感谢你们在百忙之中为本书撰写推荐语,你们的专业认可给予我莫大的鼓舞。
诚挚感谢清华大学出版社编校团队,感谢你们的专业支持,使本书得以顺利出版;特别感谢王中英编辑,您不厌其烦地协助文字润色、图片编辑和版面设计,为本书的品质提供了坚实保障。
衷心感谢国网湖南省岳阳公司高级工程师余捻宏老师,是您的启发和鼓励,让我萌生了将教学心得整理成书的想法。感谢学生家长赵娟、朱博渊、阮小芬、黄婷婷、严翠红、罗文浩、商晶莹等,感谢你们对我编程培训工作的鼎力支持,感谢你们愿意与我分享孩子成长的喜悦和生活点滴。
还要感谢我的妻子陶娟女士和我的儿子,感谢他们在生活中的陪伴,感谢妻子为我做默默无声的后勤工作,才让本书能够尽早跟大家见面。祝愿我们永远幸福、健康、快乐。
书中引用的真题解析,都来自 CCF 历年的 GESP 试卷,书中部分图片来自网络,在此一并表示感谢!
最后,由于时间仓促,书中难免有错误疏漏之处,还请读者批评指正。
沈根成
2025 年 4 月 18 日于上海联航路盛格塾
致小朋友
小朋友们,大家好!你听说过编程吗?编程就是在电脑上编写代码来解决实际问题,比如算一算你今年一共收了多少压岁钱,或者你这次考试,各门功课加起来一共考了多少分,或者如果你很厉害,还可以编一个小游戏。想一想吧,你不再需要拿出纸和笔,把数据记录下来,列个竖式来计算。你只要打开电脑,运行你编写的程序,把数据输入进去,它就能帮你计算出结果。而且你只要编写一次,以后可以反复使用。这是多么神奇和有趣的事情啊!
实际上,上面所列举的只是两个很简单的例子。编程的应用非常广泛,如今我们的生活早就离不开程序了。我们跟别人聊天沟通使用的微信是一个程序,我们在网上购物时进入的淘宝网站是一种程序,我们写文章使用的 Word、做讲义使用的 PPT 都是程序,甚至在我们的各种家电设备中,都有小程序存在。另外,我们如果想要让电脑模拟人类来思考,更是离不开程序。
编程不光神奇和有趣,学习编程还有很多好处。编程可以让大家养成严谨的习惯,编写代码时,要求大家严格按照代码规范来书写,不可以有半点马虎。编程能提高大家的抽象思维和想象的能力,编程时我们往往要在脑海里构思一幅图画,想清楚代码的结构,使用什么算法等。编程也能提高大家的总结能力和举一反三的能力,通过分析不同题目的代码,找出其中的规律,可以总结出一个结论,进而就能解决类似的问题。编程还能提高大家的创新能力,通过对同一道题目采用不同的解法,打开我们的思路,让我们的大脑变得更加灵活。
此外,编程对小朋友们的升学也有实实在在的好处。通过学习编程,去参加编程能力等级认证(即 GESP)考试,获得 GESP 证书,就可以轻松进入你喜欢的重点中学。如果沿着这条路走下去,后续参加全国青少年信息学奥林匹克竞赛(NOI)并获奖,那么像北大、清华这样的高等名校就会向你抛来橄榄枝。
编程有好几种语言可以选择,到底应该选择哪种语言呢?其实这并没有绝对的答案,GESP 一~四级的认证可以选择 3 种语言:Scratch、Python、C 。Scratch 有点类似搭积木,在游戏中学习编程,适合低年级的小朋友。但是 GESP 五~八级就没有 Scratch 了,只剩Python 和 C ,其中 Python 简单易学,初学者容易上手。但是到了 NOI 竞赛,又只能选择 C 了。所以综合考虑下来,笔者觉得不如一开始就学习 C 。
那么,如何才能学好 C 编程呢?一本好的教材是必要的。虽然目前市面上有不少关于少儿编程的书籍,但是完全跟 GESP 考试大纲吻合的还没有。本书是完全按照 GESP考试大纲编排的教程,涵盖了 GESP 一级 C 的所有内容。本书在讲解各个概念时,尽量使用小朋友们能够看得懂的语言,并且列举了大量的例子。本书有大量的真题解析,这些真题全部来自 GESP 的试卷。本书也配有很多课后作业,这些作业难度有深有浅,大家可以根据自己的实际情况来选择。如果小朋友们想自学的,本书也附带视频讲解,只需扫描封底的二维码就可以找到视频链接。
本书还有一个特点,就是大部分章节的最后都会有延伸阅读,这些延伸阅读的内容大多是一些有趣的小故事,可以帮助大家理解本章学习的内容,同时拓宽大家的视野。比如在讲解闰年判断的时候,延伸阅读部分就讲解了闰年的形成原因;在讲解水仙花数判断的时候,延伸阅读部分就介绍了自幂数的知识。
最后,希望小朋友们喜欢这本书,希望每个小朋友都能成为编程高手!
沈根成
2025 年 4 月 18 日于上海联航路盛格塾
|
|