“GESP编程能力等级认证一本通”是专门为中小学生编写的一套学习C++编程和算法的图书。本套图书严格围绕中国计算机学会(CCF)发布的“CCF编程能力等级认证(GESP)C++认证标准”而设计。
本书对应C++二级,共15章,内容包括多组输入数据的处理、数列问题及递推、循环的嵌套——二重循环、程序控制结构综合应用、特殊的数及增长很快的数、一维和二维数表、输出有规律的字符图形、枚举算法基础、非数值型数据——字符和字符串、字符型数据综合应用、调用系统函数求解问题、函数定义及调用、日期和时间的处理、函数及程序控制结构综合应用、程序设计题目与测试数据设计。
本书配备了题库、课件、课程视频(在线)等资源,可以作为中小学编程社团的教学用书,也可以作为少儿编程培训机构的培训用书,还可以作为少儿编程等级考试和编程竞赛的入门参考书。
1.考纲对标:严格对标 CCF GESP C++ 二级认证标准编写,章节覆盖全部核心考点,搭配真题练习,助力稳扎稳打备考。
2.实力编撰:一线教师、NOI教练、教研员联合编写,贴合教学与备考实际,内容专业度高。
3.资源完备:配套代码、课件、在线课程、小虫 OJ 评测平台,从学习到刷题全流程支撑。
4.社群助力:专属 QQ 读者群,方便实时答疑、交流学习,解决自学痛点。
5.实战导向:15 章梯度内容 + 真题训练 + 在线评测,适配编程社团、培训机构教学,也适合学生自学与能力提升。
王桂平,计算机科学与技术专业博士、副教授、硕导。从 2003 年开始从事大学生程序设计竞赛指导工作,带队参加过浙江省、重庆市、四川省、广东省大学生程序设计大赛,以及中国大学生程序设计大赛、国际大学生程序设计大赛、中国高校计算机大赛——团体程序设计天梯赛、蓝桥杯大赛等各类程序与算法设计类赛事,指导的学生获得国家级奖项 100 余项、省级奖项 1000 余项;主持省部级教学研究项目5项(含重大项目1项),主持重庆市一流课程 1 门;以第一作者发表教学研究论文近 20 篇,以第一作者发表科学研究论文 30 余篇,其中 SCI 论文 9 篇、EI论文 10 篇;主持省部级科研项目 3 项,主研国家级科研项目 3 项。著有《图论算法理论、实现及应用》《程序设计方法及算法导引》《C++ 趣味编程及算法入门》《C++编程与信息学竞赛数学基础》《信息学竞赛教程(初级)》等多部图书;多所中小学兼职信奥教练。
张兵,中国计算机学会 GESP&PTA 自由度服务中心负责人、重庆大学继续教育学院家校社中心主任、“傲梦少年”联盟负责人。在编程教育与信奥教育、青少年人工智能、青少年多元化成长路径、医工融合等领域均有深入研究。此外,还主导并参与了 1 项重庆市技术创新与应用示范项目、1 项重庆市科技型企业技术创新与应用发展专项项目。
周祖松,NOI 金牌教师,重庆市育才中学信息学竞赛总教练,重庆市基础教育教研项目评审专家库成员。指导学生参加全国青少年信息学奥林匹克竞赛(NOI),其中 8 人荣获金牌,7 人进入国家集训队;指导学生参加全国青少年信息学奥林匹克联赛(NOIP),其中 100 多人获一等奖。
第 1章 多组输入数据的处理 001
1.1 单组输入数据和多组输入数据 001
1.2 多组输入数据的3种输入方式 002
1.3 案例1:a+b问题(第 1种输入方式) 002
1.4 案例2:a+b问题(第 2种输入方式) 003
1.5 案例3:a+b问题(第3种输入方式) 004
1.6 练习1:闰年的判断(第 1种输入方式) 005
1.7 练习2:水仙花数(第 2种输入方式) 006
1.8 练习3:时间规划(第3种输入方式) 007
1.9 基础知识练习(GESP真题) 008
第 2章 数列问题及递推 011
2.1 数列及广义上的数列 011
2.2 用程序实现数列的递推 011
2.3 案例1:求数列1, 2, 4, 7, 11, …的第n项 012
2.4 案例2:兔子问题与Fibonacci数列 013
2.5 案例3:走台阶问题 015
2.6 练习1:求数列1, 2, 2, 3, 3, 3, …的第n项 017
2.7 练习2:小杨做题(GESP真题) 018
2.8 练习3:吃糖果(每天吃1颗、2颗或3颗) 019
2.9 基础知识练习(GESP真题) 021
第3章 循环的嵌套—二重循环 023
3.1 从九九乘法表说起 023
3.2 循环的嵌套 023
3.3 案例1:累计相加(GESP真题) 024
3.4 流程图的规范表示 026
3.5 案例2:小杨的H字矩阵(GESP真题) 027
3.6 案例3:求多个正整数的位数 028
3.7 练习1:求1n+2n+3n+…+an 029
3.8 练习2:求多个班级的总分 030
3.9 练习3:统计幸运数个数 031
3.10 基础知识练习(GESP真题) 032
第4章 程序控制结构综合应用 038
4.1 程序控制结构的并列和嵌套 038
4.2 三重及多重循环 039
4.3 案例1:筛选质数(GESP真题) 039
4.4 案例2:乘法问题(GESP真题) 041
4.5 案例3:输出全部质因数 042
4.6 练习1:判定多个数是否为质数 043
4.7 练习2:数位和最大值(GESP真题) 045
4.8 练习3:美丽数字(GESP真题) 046
4.9 基础知识练习(GESP真题) 047
第5章 特殊的数及增长很快的数 059
5.1 特殊的数 059
5.2 增长很快的数 059
5.3 案例1:数字黑洞(GESP真题) 060
5.4 案例2:自幂数判断(GESP真题) 061
5.5 案例3:输出1~n的阶乘 063
5.6 练习1:雷劈数 064
5.7 练习2:连号的数 065
5.8 练习3:交替乘法 066
5.9 基础知识练习(GESP真题) 067
第6章 一维和二维数表 072
6.1 从杨辉三角说起 072
6.2 一维数表和数列 072
6.3 二维数表—矩阵 073
6.4 案例1:一维1, 2, 3, 2, 3, 4 073
6.5 案例2:二维1, 2, 3, 2, 3, 4 075
6.6 案例3:等差矩阵(GESP真题) 077
6.7 练习1:数表1, 2, 2, 4, 4, 4, 4 077
6.8 练习2:求n×m个数的和 079
6.9 练习3:输出数字图案 080
6.10 基础知识练习(GESP真题) 082
第7章 输出有规律的字符图形 086
7.1 字符图形的规律及实现方法 086
7.2 案例1:输出星号三角形(实心) 090
7.3 案例2:小杨的X字矩阵(GESP真题) 091
7.4 案例3:小杨的日字矩阵(GESP真题) 092
7.5 练习1:输出星号三角形(空心) 094
7.6 练习2:小杨的N字矩阵(GESP真题) 095
7.7 练习3:输出字符图形Y 096
7.8 基础知识练习(GESP真题) 097
第8章 枚举算法基础 103
8.1 枚举算法的思想 103
8.2 枚举算法的实现要点 104
8.3 案例1:n个苹果放入3个不同的盘子 105
8.4 案例2:n个苹果分成3堆 106
8.5 案例3:百鸡问题(GESP真题) 107
8.6 练习1:求和(GESP真题) 108
8.7 练习2:数三角形(GESP真题) 109
8.8 练习3:幂和数(GESP真题) 110
8.9 基础知识练习(GESP真题) 111
第9章 非数值型数据—字符和字符串 117
9.1 字符和字符串 117
9.2 ASCII编码 118
9.3 字符型变量和字符型常量 119
9.4 字符串常量 120
9.5 字符和字符串的输入/输出 121
9.6 案例1:字母转整数 122
9.7 案例2:统计字符串中各类字符的个数 123
9.8 案例3:画正方形(GESP真题) 124
9.9 练习1:提取整数并判断是否为质数 125
9.10 练习2:数字之和 126
9.11 练习3:画三角形(GESP真题) 127
9.12 基础知识练习(GESP真题) 128
第 10章 字符型数据综合应用 133
10.1 字符转换 133
10.2 字符编码 133
10.3 案例1:字母后移4位转换 133
10.4 通过取余运算构成像钟表一样的环状序列 135
10.5 案例2:简单的字符串解密 136
10.6 案例3:字符串编码 137
10.7 练习1:简单的字符串加密 138
10.8 练习2:计算单词的得分 139
10.9 练习3:字符串解码 140
10.10 基础知识练习(GESP真题) 141
第 11章 调用系统函数求解问题 143
11.1 数学里的函数和C++语言中的函数 143
11.2 平方和平方根、立方和立方根 143
11.3 幂运算及pow函数 145
11.4 常用的数学函数及相关的数学知识 145
11.5 其他常用的系统函数 146
11.6 案例1:求正方形的边长和圆的直径 146
11.7 案例2:勾股数(GESP真题) 147
11.8 案例3:平方之和(GESP真题) 149
11.9 练习1:求正方体的边长和圆球的直径 150
11.10 练习2:寻找数字(GESP真题) 151
11.11 练习3:平方根和立方根的差 152
11.12 基础知识练习(GESP真题) 153
第 12章 函数定义及调用 155
12.1 函数的分类 155
12.2 案例1:求两个数的最大值(函数实现) 155
12.3 函数的定义及调用 156
12.4 函数参数 157
12.5 函数声明及函数的原型 158
12.6 案例2:判定质数(函数实现) 159
12.7 案例3:求正整数各位数字和(函数实现) 160
12.8 练习1:求两个数的和(函数实现) 160
12.9 练习2:判定闰年(函数实现) 161
12.10 练习3:求正整数的位数(函数实现) 162
12.11 基础知识练习(GESP真题) 163
第 13章 日期和时间的处理 165
13.1 日期和时间处理基础知识 165
13.2 案例1:一年中的第几天 167
13.3 案例2:判断日期是否合法 168
13.4 案例3:时间跨越(GESP真题) 169
13.5 练习1:一年中的第几秒 171
13.6 练习2:比较两个日期的大小 172
13.7 练习3:今天是星期几 173
13.8 基础知识练习(GESP真题) 174
第 14章 函数及程序控制结构综合应用 175
14.1 通过函数设计简化程序控制结构 175
14.2 案例1:质数日期 175
14.3 案例2:计数(GESP真题) 177
14.4 案例3:一辈子的第几天 178
14.5 练习1:求平面上三角形的面积 180
14.6 练习2:求一个整数的回文数步数 181
14.7 练习3:自幂数判断(函数实现) 183
14.8 基础知识练习(GESP真题) 184
第 15章 程序设计题目与测试数据设计 187
15.1 程序设计题目的在线评测原理 187
15.2 随机数函数 188
15.3 在线程序设计题目的设计 188
15.4 案例:求p/q 189
15.5 基础知识练习(GESP真题) 191
附录A 本书配套资源使用指南 193
附录B 基础知识练习答案 194
参考文献 199