科学出版社旗舰店店铺主页二维码
科学出版社旗舰店 微信认证
科学出版社秉承多年来形成的“高层次、高水平、高质量”和“严肃、严密、严格”的优良传统与作风,始终坚持为科技创新服务、为传播与普及科学知识服务、为科学家和广大读者服务的宗旨。
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书

28.40
运费: ¥ 0.00-18.00
CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品图0
CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品图1
CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品图2
CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品图3
CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品缩略图0 CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品缩略图1 CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品缩略图2 CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书 商品缩略图3

商品详情

书名:CCF中学生计算机程序设计-基础篇  
定价:36.0  
ISBN:9787030500298  
作者:中国计算机学会  
版次:1  
出版时间:2016-10  

内容提要:  
本书由CCF组织富有程序设计教学经验的中学老师编写。通过详实的例题,循序渐进地介绍中学生计算机程序设计的各种知识,内容包括模块化编程、字符串处理、数据类型的组合、指针、数据外部存储、数据结构及其应用、简单算法、数学在程序设计中的应用、STL(标准模块库)简要说明等,旨在普及计算机科学教育,培养中学生的计算思维能力。  

目录:  
目录  
第1章 模块化编程—函数  
1.1自定义函数的引入1  
1.2函数的定义3  
1.3函数调用与参数传递5  
1.4变量的作用域9  
1.5函数的应用11  
1.6递归函数20  
第2章 字符串处理—string类型  
2.1string类型的引入33  
2.2string类型的基本操作36  
2.3string类型中字母与数字的关系41  
2.4string类型的应用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.1STL中的一些新概念227  
9.2几个常见的容器介绍232  
9.3几个常见的算法函数240  
索引244  

在线试读:  
第1章模块化编程—函数  
我们处理任何问题都有诸多环节,比如煮饭,先要准备米,将米淘净后,然后根据米的吸水特性加水,弄好后放入电饭煲中,按下电饭煲的煮饭开关,等电饭煲灯熄灭,然后饭就做好了。现在煮饭看起来变得十分简单,其关键原因是煮饭的技术活都被电饭煲干了。电饭煲煮饭是如何控制火候和时间的,其实我们并不关心,我们所关心的是用电饭煲将饭煮熟的结果,这个方法我们叫封装。在计算机程序设计中,封装是一个非常重要的概念,它是实现程序模块化结构的重要手段。在C++中,我们通常采用函数来进行模块封装,对于函数,我们所关心的是对给定的自变量输入,能否得到我们想要的输出。有些函数系统已经做好了,可直接调用,比如诸多的数学函数、字符串处理函数等,有些函数则需要根据自己的需求进行个性开发,这章我们就重点讲授如何创作自己的函数。  
1.1自定义函数的引入  
【例1.1】给出平面上两个点的坐标,求两点之间的曼哈顿距离。  
提示:平面上A点(x1,y1)与B点(x2,y2)的曼哈顿距离为:|x1-x2|+|y1-y2|。  
分析:计算曼哈顿距离可以用前面学过的分支结构来解决。  
程序如下:  
1//eg1.1_1  
2#include<iostream>  
3usingnamespacestd;  
4intmain()  
5{  
6doublex1,y1,x2,y2;  
7doubledx,dy;  
8cin>>x1>>y1>>x2>>y2;  
9if(x1>x2)//计算|x1-x2|  
运行结果:  
输入:1.21.52.53.8  
输出:3.6  
10dx=x1-x2;  
11else  
12dx=x2-x1;  
13if(y1>y2)//计算|y1-y2|  
14dy=y1-y2;  
15else  
16dy=y2-y1;  
17cout<<dx+dy<<endl;  
18return0;  
19}  
可以使用自定义函数来计算|x1-x2|,|y1-y2|。  
程序如下:  
1//eg1.1_2  
2#include<iostream>  
3usingnamespacestd;  
4doubleabs(doublex)//计算x的绝对值函数  
5{  
6if(x>0)  
7returnx;  
8else  
9return-x;  
10}  
11intmain()  
12{  
13doublex1,y1,x2,y2;  
14doubledx,dy,mht;  
15cin>>x1>>y1>>x2>>y2;  
16mht=abs(x1-x2)+abs(y1-y2);  
17cout<<mht<<endl;  
18return0;  
19}  
比较上面两个程序容易发现,使用自定义函数的程序有以下几个优点:  
(1)程序结构清晰,逻辑关系明确,程序可读性强。  
(2)解决相同或相似问题时不用重复编写代码,可通过调用函数来解决,减少代码量。  
(3)利用函数实现模块化编程,各模块功能相对独立,利用“各个击破”降低调试难度。  
1.2函数的定义  
1.2函数的定义  
前面我们用过了很多C++标准函数,但是这些标准函数并不能满足所有需求。当我们需要特定的功能函数时,这就需要我们要学会自定义函数,  
根据需求定制想要的功能。  
1.2.1函数定义的语法  
返回类型函数名(参数列表)  
{  
函数体  
}  
关于函数定义的几点说明:  
(1)自定义函数符合“根据已知计算未知”这一机制,参数列表相当于已知,是自变量,函数名相当于未知,是因变量。如程序eg1.1_2中的abs函数的功能是根据给定的数x计算x的绝对值,参数列表中x相当于已知—自变量,abs函数的值相当于未知—因变量。  
(2)函数名是标识符,一个程序中除了主函数名必须为main外,其余函数的名字按照标识符的取名规则命名。  
(3)参数列表可以是空的,即无参函数,也可以有多个参数,参数之间用逗号隔开,不管有没有参数,函数名后的括号不能省略。参数列表中的每个参数,由参数类型说明和参数名组成。如程序eg1.1_2中abs函数的参数列表只有一个参数,参数数据类型是double,参数名是x。  
(4)函数体是实现函数功能的语句,除了返回类型是void的函数,其他函数的函数体中至少有一条语句是“return表达式;”用来返回函数的值。执行函数过程中碰到return语句,将在执行完return语句后直接退出函数,不去执行后面的语句。  
(5)返回值的类型一般是前面介绍过的int、double、char等类型,也可以是数组。有时函数不需要返回任何值,例如函数可以只描述一些过程用printf向屏幕输出一些内容,这时只需定义函数返回类型为void,并且无须使用return返回函数的值。  
1.2.2函数定义应用实例  
根据上述定义,我们知道C++函数形态有以下四类:  
(1)返回类型函数名(参数列表)。  
(2)返回类型函数名()。  
(3)void函数名(参数列表)。  
(4)void函数名()。  
下面我们一起来看几个例子:  
【例1.2】给定两个非负整数n和m,编写函数计算组合数Cmn。  
分析:首先分析函数的功能,根据给定的n,m计算Cmn。n,m已知,相当于自变量;Cmn未知,相当于因变量。设计以下函数:  
longlongC(intn,intm)  
其中,函数的返回值为Cmn,返回类型为longlong,函数名为C,参数列表中有两个参数n,m,类型都是int。函数体是实现函数功能的语句,根据发现需要三次用到“计算一个数的阶乘”这个功能,因此把这个功能独立出来设计一个函数来实现:  
longlongf(intn)  
该函数的返回值为n!,返回类型为longlong,函数名为f,需要一个参数n,类型为int。  
综上,该函数的代码如下:  
1//eg1.2  
2longlongf(intn)  
3{  
4longlongans=1;  
5for(inti=1;i<=n;i++)  
6ans*=i;  
7returnans;  
8}  
9  
10longlongC(intn,intm)  
11{  
12returnf(n)/(f(m)*f(n-m));  
13}  
提示:  
(1)函数体中的语句可以是对另一个函数的调用。  
(2)对于较大的n,m来说,上述程序可能会产生溢出。  
【例1.3】编写函数输出斐波那契数列的第n项。其中斐波那契数列f(n)的定义如下:  
f(1)=0,f(2)=1  
f(n)=f(n-1)+f(n-2)(n>=2)  
分析:因为该函数不需要返回值,只需要输出f(n)即可,所以该函数的返回类型为void,函数体部分只需计算出f(n)再输出即可。  
函数代码如下:  
1//eg1.3  
2voidoutput(intn)  
3{  
4if(n<=2)  
5cout<<n-1<<endl;  
6else  
7{  
8longlongp1,p2,p3;  
9p1=0;  
10p2=1;  
11for(inti=3;i<=n;i++)  
12{  
13p3=p1+p2;  
14p1=p2;  
15p2=p3;  
16}  
17cout<<p3<<endl;  
18}  
19}  
1.3函数调用与参数传递  
上一节学习了函数的定义方法和四种不同类型的函数,在实际编程中如何调用函数呢?调用函数时参数是如何传递的?参数传递又有几种方法呢?本节将重点学习这些内容。  
1.3.1函数的调用  
1.调用方法  
上一节中讲过函数一共有四种不同的类型,也可以根据返回类型分为两大类:其中一类有返回值,如程序eg1.1_2中的abs函数、例1.2中的f函数和C函数;另一类没有返回值,如例1.3中的output函数。对于有返回值的函数,调用时必须以值的形式出现在表达式中。比如程序eg1.1_2第16行:  
mht=abs(x1-x2)+abs(y1-y2);  
该语句对abs函数的调用出现在赋值语句的右边,程序eg1.2第12行:  
returnf(n)/(f(m)*f(n-m));  
该语句对f函数的调用出现在return语句中,作为C函数的返回值。  
对于没有返回值的函数,直接写“函数名(参数);”即可。如例1.3中,如果需要输出斐波那契数列的第10项,用“output(10);”即可实现。  
程序可以调用任何前面已经定义的函数,如果我们需要调用在后面定义的函数,就要先声明该被调用的函数。声明方法如下:  
返回类型函数名(参数列表);  
程序如下:  
1#include<iostream>  
2usingnamespacestd;  
3intsgn(intn);//声明sgn函数  
4intmain()  
5{  
6intn;  
7cin>>n;  
8cout<<sgn(n)<<endl;  
9return0;  
10}  
11intsgn(intn)  
12{  
13if(n==0)return0;  
14return(n>0)?1:-1;  
15}  
2.形式参数与实际参数  
函数调用需要理解形式参数与实际参数:  
(1)函数定义中的参数名称为形式参数,如longlongC(intn,intm)中的n和m是形式参数,我们完全可以把n换成a,把m换成b,再把函数体中的n换成a,m换成b,函数的功能完全一样。  

(2)实际参数是指实际调用函数时传递给函数的参数的值。如调用函

科学出版社旗舰店店铺主页二维码
科学出版社旗舰店 微信公众号认证
科学出版社秉承多年来形成的“高层次、高水平、高质量”和“严肃、严密、严格”的优良传统与作风,始终坚持为科技创新服务、为传播与普及科学知识服务、为科学家和广大读者服务的宗旨。
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

CCF中学生计算机程序设计-基础篇/信息学奥赛官方指定用书

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:sciencepress-cspm
科学出版社官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏