CCF中学生计算机程序设计 基础篇

CCF中学生计算机程序设计 基础篇 pdf epub mobi txt 电子书 下载 2025

中国计算机学会 著
图书标签:
  • CCF
  • 青少年编程
  • 计算机基础
  • 程序设计
  • Python
  • 算法
  • 信息学竞赛
  • 入门
  • 基础篇
  • 教学教材
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 科学出版社
ISBN:9787030500298
版次:1
商品编码:11986531
包装:平装
丛书名: 青少年计算机程序设计等级培训教材
开本:32开
出版时间:2016-10-01
用纸:胶版纸
页数:256
正文语种:中文

具体描述

产品特色

编辑推荐

适读人群 :小学、初中、高中计算机程序设计爱好者,大学ACM程序设计竞赛选手
noip竞赛必备书,经典

内容简介

本丛书是基于《CCF青少年计算机程序设计评级标准》开发的一个系列培训教材。该标准围绕计算机程序设计的知识要求和能力要求,共分十级,其中1-3级为基础级,4-5级为提高级,6-7级为高手级,8-10级为大师级。本丛书将评级内容进行归纳,计划1-3级出1本、4-5级出1本,6-7级出1本,8-10级出1本,共4本教材。

作者简介

江 涛:全国先进工作者、中学特级教师、全国信息学奥林匹克高级指导教师、佛山市南海区十佳教师


宋新波:全国青少年信息学奥赛金牌指导教师、广东省青少年信息学竞赛优秀辅导员、中山市十大杰出青年,荣获中山市学科竞赛突出贡献奖


朱全民:全国师德先进个人、雅礼中学特级教师、国际金牌指导教师、NOI十大杰出指导教师



内页插图

目录

第1章?模块化编程—函数


1.1  自定义函数的引入................................................... 1


1.2  函数的定义............................................................. 3


1.3  函数调用与参数传递................................................ 5


1.4  变量的作用域.......................................................... 9


1.5  函数的应用........................................................... 11


1.6  递归函数.............................................................. 20


第2章?字符串处理—string类型


2.1  string类型的引入................................................... 33


2.2  string类型的基本操作............................................. 36


2.3  string类型中字母与数字的关系................................ 41


2.4  string类型的应用................................................... 48


本章小结...................................................................... 52


第3章?数据类型的组合—结构和联合


3.1  结构体(struct)的引入............................................. 61


3.2  结构体(struct)的使用............................................. 66


*3.3  结构体(struct)的扩展............................................. 72


*3.4  联合(union)的定义和使用........................................ 76


*3.5  枚举(enum)的定义和使用........................................ 79


本章小结...................................................................... 81


第4章?功能强大的利器—指针


4.1  指针概念、定义与内存分配..................................... 85


4.2  指针的引用与运算.................................................. 87


4.3  指针与数组........................................................... 90


4.4  指针与字符串........................................................ 95


*4.5  函数指针和函数指针数组........................................ 97


4.6  指针的扩展......................................................... 100


本章小结.................................................................... 104


第5章?数据外部存储—文件


5.1  数据存储的分类................................................... 109


5.2  文件类型变量的定义及引用................................... 110


5.3  文件的重定向...................................................... 116


本章小结.................................................................... 118


第6章?数据结构及其运用


6.1  什么是数据结构................................................... 125


6.2  线性表的储存结构及其应用................................... 126


6.3  队列及其应用...................................................... 138


6.4  栈及其运用......................................................... 145


6.5  二分及其快速排序................................................ 151


第7章?简单算法


7.1  什么是算法......................................................... 169


7.2  高精度数值处理................................................... 171


7.3  简单枚举算法...................................................... 178


7.4  模拟算法............................................................. 184


7.5  简单动态规划...................................................... 187


7.6  用递归实现回溯算法............................................. 199


第8章?数学在程序设计中的应用


8.1  常用数学函数...................................................... 207


8.2  质因数的分解...................................................... 209


8.3  最大公约数的欧几里德算法................................... 212


8.4  加法原理与乘法原理............................................. 216


8.5  排列与组合......................................................... 219


8.6  圆排列、可重集排列............................................. 222


第9章?STL(标准模板库)简要说明


9.1  STL中的一些新概念.............................................. 227


9.2  几个常见的容器介绍............................................. 232


9.3  几个常见的算法函数............................................. 240


索引    245



前言/序言


由中国计算机学会(CCF)组编的“CCF中学生计算机程序设计教材”面世了。


早在1984年,邓小平就提出“计算机的普及要从娃娃抓起”。这很有先见之明,但这里的“计算机普及”是泛指,并未明确普及哪些内容。在过去的三十多年中,中小学广泛开展了计算机普及活动,2000年教育部也曾发文,要在全国中小学开展信息技术教育。但事实上,现有的所谓“普及”大多成了对计算机工具的认识,而不是对中小学生智力的开发和思维的训练,因而效果不佳。CCF早在1984年就创办了“青少年信息学奥林匹克竞赛NOI”,这是面向那些学有余力的中学生的一项计算机科学(CS)教育活动,但具备开展这项活动的学校并不很多,每年参加NOI联赛的学生不过七八万,比例很小,因而普及的面并不大。


计算机科学教育的核心是算法设计和编程,这要求学生面对一个给定的现实问题要能够找到一个正确和高效的办法(算法)并将其变成计算机能理解的语言(程序设计语言),进而让计算机计算出人们需要的结果来。像快递员最佳路径算法就是一个典型的现实问题。这个过程并不容易,因为将一个问题抽象并构造一个模型,需要一定的数学基础,还得理解计算机的特点,“指挥”计算机干活。这还涉及欲求解问题的“可计算性”,因为并不是任何问题都可以由计算机求解的。计算机也并不知道什么是“问题”,是人告诉计算机,如何按照一步一步的程序求解。这个过程,就会训练一个人求解问题的能力,相应地,其具备的让计算机做事的思维能力称之为“计算思维”(Computational Thinking)。我们平常操作计算机(包括手机这些终端设备)仅仅像开关电灯那样简单,并不会使我们具备计算思维能力,而只有通过上述步骤才能训练这样的能力。随着计算机和网络的发展,未来越来越多的工作将和计算(机)有关(据美国政府的统计是51%以上)。我们必须知道如何让计算机做事,起码知道计算机是如何做事的,这就要求普及计算机科学教育(注意:不是计算机教育,也不是信息技术教育)。


美国政府已经把在中小学普及计算机科学当成一种国策(CS for All,每一个人学习计算机科学),并投入40亿美元落实这一项目。奥巴马总统说“在新经济形态中,计算机科学已不再是可选技能,而是同阅读、写作和算术一样的基础技能……因此,我制定了一项计划,以确保所有孩子都有机会学习计算机科学。”美国政府已明确把计算机教育列入(从幼儿园到12年级)教育体系K12中。英国从2014年起,对中小学的计算机课程进行重大改革,5岁的儿童就开始学写程序。英国教育部启动了“计算机在学校”(Computing at School,CAS)项目。新西兰等国也把计算机编程课当作中学的必修课,并为此投入资金培训教师。未来的竞争不是资源的竞争,而是人才的竞争,如果不具有计算素养和技能,则在未来的社会中处于被动地位。


CCF作为一个负责任的学术社会组织,应该勇于承担起CS普及的任务,这比NOI更加艰巨,更难。不过有NOI三十多年发展的基础,会对未来CS的普及提供有益的经验。


普及计算机科学教育的难点在于师资,而培训师资需要合适的教材。CCF组织富有程序设计教学经验的中学老师编写了“CCF中学生计算机程序设计教材”,分为入门篇、基础篇、提高篇和专业篇,只要有一定数学基础的老师,均可从入门篇修起。学习编程并不像人们想象的那么困难,只要从现实中遇到的(简单)问题出发,循序渐进,通过和计算机的互动,一旦入门就好办了,以后就可以逐步深入下去。


感谢朱全民、陈颖、徐先友、江涛、邱桂香、宋新波、汪星明、屈运华、廖晓刚等老师的贡献,他们花了两年时间写成了这套教材。感谢吴文虎教授、王宏博士审阅本书,在此向他们表示感谢。



杜子德


中国计算机学会秘书长


2016 年8 月29 日




《探索代码的奥秘:面向未来的编程启蒙》 在这信息爆炸、技术飞速迭代的时代,掌握一门通用语言——编程,已不再是少数专业人士的专属技能,而是开启无限可能、赋能未来的关键钥匙。无论你是对人工智能的奇妙运作充满好奇,还是想亲手创造属于自己的数字世界,亦或是希望在日益数字化的社会中拥有更强的竞争力,编程都将是你不可或缺的伙伴。 《探索代码的奥秘:面向未来的编程启蒙》正是为你量身打造的一本入门读物。本书旨在打破编程的神秘感,用最平实易懂的语言,最生动有趣的案例,引领你一步步走进编程的奇妙世界。我们不追求速成,而是着眼于为你打下坚实的基础,培养你的逻辑思维能力和解决问题的能力,让你在未来的学习和实践中能够游刃有余。 本书的独特之处与价值: 拒绝枯燥,拥抱趣味: 我们深知学习的动力源于兴趣。因此,本书摒弃了传统教材的刻板风格,将抽象的编程概念融入一个个引人入胜的故事、游戏设计、甚至是生活中的小助手开发场景。你将不再是机械地记忆代码,而是通过解决实际问题、实现有趣想法来理解编程的魅力。 循序渐进,夯实基础: 本书内容设计遵循由浅入深的原则,从最基础的计算机工作原理、数据类型、变量、运算符等概念讲起,逐步深入到流程控制(顺序、选择、循环)、函数、数组、字符串等核心知识点。每一个概念的讲解都配以清晰的代码示例和详细的步骤解析,确保你能够理解每一个细节,并能够独立完成练习。 注重思维,培养能力: 编程不仅仅是学习一种语言,更重要的是培养一种思维方式。本书将着重训练你的逻辑思维、分解问题的能力、抽象思维以及创造性思维。我们鼓励你从不同的角度思考问题,找到最优的解决方案,并学会如何将复杂的问题分解成更小的、可管理的部分。 实践先行,学以致用: “纸上得来终觉浅,绝知此事要躬行”。本书强调实践的重要性,每一章都会提供相应的实践练习题,涵盖从简单的代码实现到稍微复杂的项目设计。你将有机会亲手编写代码,运行程序,调试错误,从而将学到的知识转化为实际的技能。 面向未来,打好基础: 虽然本书侧重基础,但我们始终关注编程语言和技术的最新发展趋势。我们选择的入门语言和概念,都是当前及未来编程领域的基础,能够为你进一步学习更高级的语言和技术(如Python、Java、JavaScript等)以及更复杂的领域(如Web开发、数据科学、人工智能等)打下坚实的基础。 高质量的代码示例: 本书提供的所有代码示例都经过精心设计和严格测试,力求简洁、清晰、高效,并且符合行业标准。通过阅读和模仿这些高质量的代码,你将能够逐步养成良好的编程习惯。 本书将带你踏上怎样的探索之旅? 第一部分:编程世界的初印象 什么是计算机?它怎么“思考”? 在这一章,我们将揭开计算机神秘的面纱,了解它的基本组成部分(硬件和软件),以及它是如何一步步执行我们给出的指令的。我们将用最通俗的比喻来解释二进制、CPU、内存等核心概念,让你对计算机有一个宏观的认识,为后续的学习打下基础。 你的第一个“魔法咒语”——第一个程序 别担心,我们不会一开始就让你写出惊天动地的东西。我们将带你体验编写、运行并看到你的第一个程序的诞生。你将学会如何使用开发工具(IDE),如何输入代码,以及如何让计算机输出你想要的信息。这个过程将让你感受到编程的即时反馈和成就感。 数据:计算机的“食粮” 计算机需要处理各种各样的数据,比如数字、文字、真假等等。本章将介绍不同的数据类型,如整数、小数、布尔值(真/假)以及字符串。你将学习如何存储和操作这些数据,为接下来的计算和逻辑判断做好准备。 变量:数据的“收纳箱” 想象一下,你需要记住很多信息,怎么办?我们可以用“收纳箱”来存放它们,并给每个箱子一个名字。变量就是编程中的“收纳箱”,它用来存储数据,并且可以随时改变里面的内容。我们将学习如何声明、赋值和使用变量。 运算符:让数据“动起来” 光有数据还不够,我们还需要对数据进行各种运算,比如加减乘除、比较大小等等。本章将介绍各种常用的运算符,包括算术运算符、比较运算符和逻辑运算符。你将学会如何运用它们来处理数据,进行数学计算和逻辑判断。 第二部分:指令的“千变万化”——控制程序的流程 顺序执行:程序的“一条路走到黑” 在大多数情况下,程序会按照我们写的顺序一行一行地执行指令,就像按照菜谱一步步做菜一样。我们将学习如何安排指令的顺序,让程序按照我们的意愿一步步前进。 选择的智慧:当程序“学会思考” 生活中我们经常需要根据不同的情况做出不同的选择,比如“如果下雨,就带伞;否则,就不用带”。程序也一样,我们可以通过“if-else”语句让程序在不同的条件下执行不同的代码块,实现“选择”的功能。 循环的魅力:重复的力量 有些任务需要重复执行很多次,比如“每天早上都要刷牙”。在编程中,我们可以利用循环来自动化重复性的任务,大大提高效率。我们将学习不同的循环结构,如“for”循环和“while”循环,并掌握如何巧妙地使用它们。 函数的奇妙世界:代码的“乐高积木” 当我们的程序变得越来越复杂时,将所有代码堆在一起会显得杂乱无章。函数就像“乐高积木”,可以将一小段具有特定功能的代码打包起来,并在需要的时候随时调用。这将帮助我们组织代码,提高复用性,并让程序结构更加清晰。 第三部分:构建更复杂的结构——数据与程序模块化 数组:批量存储的“工具箱” 如果我们需要存储一组相同类型的数据,比如一个班级所有同学的分数,一个一个地去存储会非常麻烦。数组提供了一种高效的方式来存储和管理一组数据。我们将学习如何创建、访问和操作数组。 字符串:文字的“魔法世界” 计算机不仅能处理数字,还能处理文字。字符串就是用来表示文本的数据类型。我们将学习如何创建、连接、查找和修改字符串,实现各种有趣的文本处理功能。 (可选)面向对象初步:让程序“像生活一样” (此部分将根据整体篇幅和读者接受程度进行精简或扩展,旨在初步介绍面向对象编程的思想,为后续更深入的学习打下基础,但不会涉及过于复杂的概念,例如类的继承、多态等)在这一部分,我们将初步接触面向对象编程(OOP)的思想。我们将会用更贴近现实生活中的“事物”来比喻,比如“车”、“人”等,理解如何将数据和操作数据的方法封装在一起,让我们的程序更易于理解和维护。 本书的目标读者: 对计算机和编程充满好奇,希望了解代码如何工作的初学者。 希望培养逻辑思维能力和解决问题能力的青少年。 正在为未来的科技发展做准备,希望提前掌握一项重要技能的学生。 任何想要跨出舒适区,体验创造数字世界的乐趣的成人。 学习本书,你将收获: 扎实的编程基础: 掌握编程中最核心的概念和语法,为后续深入学习打下坚实基础。 清晰的逻辑思维: 通过大量的练习和案例,训练你的逻辑分析和问题解决能力。 创造的喜悦: 亲手编写程序,实现自己的想法,体验创造的成就感。 面向未来的竞争力: 掌握一项在数字化时代越来越重要的技能。 自信心: 克服对编程的恐惧,建立起学习和探索新技术的信心。 《探索代码的奥秘:面向未来的编程启蒙》不是一本速成手册,而是一段令人兴奋的探索之旅。我们邀请你加入这场旅程,一起揭开代码的神秘面纱,用你的智慧和创造力,开启属于你的数字未来!让我们一起,从“0”开始,构建无限可能!

用户评价

评分

这本书的排版和内容组织给我留下了深刻的印象。打开来,首先映入眼帘的是一个清晰的目录,列出了所有章节以及主要内容,非常方便查找。我最喜欢的是它在讲解某个编程概念时,往往会先给出一个实际的应用场景,然后引出需要用到的编程知识。比如,在讲到“循环”的时候,它会先描述一个需要重复执行的操作,例如打印出1到100的数字,然后再告诉我们如何用循环语句来实现。这种“需求驱动”的学习方式,让我觉得学到的东西都是有用的,能够解决实际问题,而不是空中楼阁。书中的代码示例也非常简洁明了,注释清晰,每一个重要的语句都会有详细的解释,不像有些书的示例代码动辄几十行,让人望而生畏。我尤其喜欢它在解释“函数”这个概念时,用了“一个独立的工具箱”的比喻,让我们理解到函数就是一段可复用的代码,可以完成特定的任务。这种形象的比喻,加上实际的代码演示,让我对函数的理解一下子清晰了很多。总而言之,这本书的“接地气”和“易理解”的特点,对于初学者来说,绝对是事半功倍的学习利器。

评分

《CCF中学生计算机程序设计 基础篇》这本书的文字风格非常亲切,没有那种高高在上的学术腔调,读起来就像在和一位经验丰富的老师聊天。作者在讲解过程中,常常会穿插一些小贴士或者“温馨提示”,提醒我们一些容易出错的地方,或者分享一些提高编程效率的小技巧。我记得在讲到“字符串处理”的时候,书中就列举了好几种不同的方法来截取和连接字符串,并且详细分析了每种方法的优劣,这对我来说非常有启发。另外,这本书还有一个我非常欣赏的特点,就是它非常注重逻辑思维的培养。在讲解每一个新的概念之前,都会先引导我们思考“为什么我们需要这个?”,然后再解释“它是什么?”,最后才是“如何用?”。这种层层递进的提问方式,能够帮助我们建立起完整的知识体系,而不是零散地记忆一些代码片段。书中的案例分析也做得非常出色,它不仅仅是展示代码,更是分析代码的思路和背后的逻辑,让我们学会如何去“读懂”代码,而不是简单地“复制粘贴”。

评分

这本《CCF中学生计算机程序设计 基础篇》的封面设计简直让人眼前一亮,简洁大气,蓝白相间的配色透露着科技感,又不会过于冰冷,非常符合它面向中学生的定位。拿到手里,纸张的触感也很好,厚实且光滑,印刷清晰,字体大小适中,看起来就让人有翻阅的冲动。我特别喜欢书中那种循序渐进的讲解方式,不像有些教程上来就抛出一堆复杂的概念,这本书从最基本的“什么是程序”、“如何给电脑下达指令”这样通俗易懂的例子入手,就像一位耐心的老师,一步一步地引导你走进编程的世界。即便你之前对编程毫无概念,也能在阅读的过程中逐渐建立起逻辑思维能力,理解代码是如何工作的。书中的插图和图表运用也非常恰当,将抽象的编程概念形象化,让学习过程不再枯燥乏味。很多地方都会用一些生活化的比喻,比如把循环比作每天重复的刷牙洗脸,把条件判断比作下雨天是否需要带伞,这些都大大降低了学习的门槛,让原本可能觉得“高大上”的编程,变得亲切起来。对于我这样才刚刚开始接触编程的学生来说,这样的引导简直是太及时了,它不仅仅是传授知识,更重要的是培养了我对编程的兴趣和信心,让我觉得原来编程并不是那么遥不可及。

评分

不得不说,《CCF中学生计算机程序设计 基础篇》在内容的前沿性和实用性上做得相当不错。虽然是基础篇,但它并没有回避一些未来学习中会遇到的重要概念,比如一些简单的面向对象思想的初步引入,虽然篇幅不多,但已经为我们打下了概念基础。我印象特别深刻的是,书中有专门一章讲解如何利用编程来解决一些生活中的小问题,比如一个简单的计算器程序,或者一个自动生成生日祝福语的小工具。这些案例都非常贴近我们的生活,让我们切实感受到编程的实用价值,也激发了我们自己动手去尝试解决问题的动力。而且,书中所用的编程语言版本也是比较新的,使用的语法和函数都是当前主流的,这对于我们将来继续深入学习非常有帮助,避免了学到一些过时的知识。最重要的是,这本书不仅仅是在教我们写代码,更是在培养我们的“计算思维”,也就是如何将一个问题分解成更小的、可管理的部分,并用逻辑的方式去解决它。这种思维方式,无论是在编程领域还是其他学科,都是极其宝贵的财富。

评分

坦白说,我最开始拿到《CCF中学生计算机程序设计 基础篇》的时候,并没有抱太大的期待,想着可能就是市面上那种泛泛而谈的入门书。但是,翻开之后,我的看法彻底改变了。它在“基础篇”这个定位上做得非常到位,几乎每一个概念的引入都经过了深思熟虑。例如,在讲解变量的时候,作者没有直接给出定义,而是通过一个“小盒子”的比喻,让你先理解数据是可以存储和变化的,然后再逐步引出“变量”这个术语。这种“先感受,后定义”的方式,比枯燥的理论讲解要有效得多。我特别欣赏书中对算法的初步介绍,虽然是基础篇,但已经触及到了排序和查找这样核心的算法思想。而且,它讲解的方式非常巧妙,没有直接展示复杂的伪代码,而是通过一些小故事或者场景模拟,让你在不知不觉中就理解了算法的逻辑。书中的习题设计也很有针对性,每一章后面的练习题都紧密结合了该章节的内容,而且难度循序渐进,从最简单的“填空”到需要独立思考的小项目,都能帮助我们巩固所学。做完这些习题,我感觉自己对基础知识的掌握扎实了很多,也体会到了编程的乐趣在于解决问题的过程。

评分

书不错,值得细读。

评分

东东已经收到了,质量不错,物流很快很给力,让孩子学习起来,期待看到好的效果!

评分

写的挺细的,内容不多,入门感觉还可以。

评分

哈哈哈哈哈哈哈哈呵呵哈哈哈

评分

CCF推荐购买的,不错不错!!!!!!!信息学竞赛必备!!!

评分

还不错,刷题一直用着,挺好挺好

评分

很好很好很好很好很好很好很好很好很好很好

评分

是正版书,上午买下午到

评分

很好!!!!!!!!!!!!

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有