本店POD版图书均在书名下有明显红字标注,POD图书属于按需定制,您下单购买后我们才开始印刷,故不可取消订单。
我们一般会在您下单后的7-10个工作日内完成发货,请谨慎下单!商品无质量问题不支持退货,定价和装帧可能会与原书不同,请以实物为准!详情请咨询客服
购买电子版图书请与客服直接,或者到科学出版社电子商务平台直接购买
CCF中学生计算机程序设计-入门篇 |
| 定价 | (咨询特价) |
出版社 | 科学出版社 |
版次 | 1 |
出版时间 | (咨询特价)年10月 |
开本 | 16 |
作者 | 中国计算机学会 |
装帧 | 平装 |
页数 | 272 |
字数 | 336 |
ISBN编码 | 12 |
内容介绍
本丛书是基于《CCF青少年计算机程序设计评级标准》开发的一个系列培训教材。该标准围绕计算机程序设计的知识要求和能力要求,共分十级,其中1-3级为基础级,4-5级为提高级,6-7级为高手级,8-10级为大师级。本丛书将评级内容进行归纳,计划1-3级出1本、4-5级出1本,6-7级出1本,8-10级出1本,共4本教材。
目录
目录
第1章编程如此简单
1.1程序设计概念1
1.2整数算术运算4
1.3实数算术运算8
附录ADev-C++集成开发环境11
第2章数据的存储和读入
2.1变量和变量的类型17
2.2赋值语句和数学表达式21
*2.3数据类型转换32
2.4变量的读入38
*2.5C语言中的scanf语句和printf语句43
2.6顺序结构程序设计实例51
附录B基本数据类型56
附录C常用数学函数57
第3章程序的选择执行
3.1if语句和关系表达式59
3.2逻辑表达式和条件表达式68
3.3嵌套if语句75
3.4switch语句83
*3.5分支结构程序设计实例92
第4章程序段的反复执行
4.1for语句105
4.2while语句119
4.3do-while语句131
4.4多重循环142
*4.5在循环结构中应用位运算156
*4.6循环结构程序设计实例167
附录Dbreak语句和continue语句178
第5章数据的批量存储
5.1一维数组183
5.2活用数组下标192
5.3数值排序和查找204
5.4字符数组220
5.5二维数组233
*5.6数组的综合应用实例245
参考文献261
索引263
在线试读
第1章编程如此简单
为什么计算机能管理庞大的系统?为什么人能指挥计算机按自己的想法做事?计算机能超越人的思维吗?面对计算机,很多人都会带着或多或少的疑问。其实,计算机是通过执行一个个程序来实现各种神奇的功能。人们要指挥计算机做事,需要编写程序,把自己的思想融入程序中,再利用这些程序按照自己的思路去指挥计算机工作。
1.1程序设计概念
【例1.1】用记事本编写一个程序,让计算机告诉大家我爱编程,即“Iloveprogramming.”
程序如下:
1//exam1.1
2#include<iostream>
3usingnamespacestd;
4intmain()
5{
6cout<<"Iloveprogramming."<<endl;
7return0;
8}
编写完这个程序后,大家还会有些疑问,程序为什么要这样写?编程到底要遵循什么样的规则?这个程序编写后怎样让计算机去执行呢?为了回答这些问题,我们必须先弄清一些概念。
1.1.1编程概念
1.程序和计算机语言
程序就是为实现特定目标或解决特定问题而用计算机语言编写的一系列指令序列。
计算机语言是人与计算机之间通信的语言。计算机语言有很多种,比如BASIC语言、PASCAL语言、C语言、C++语言、Java语言等,每种程序语言都有自身所定义的规则,即使是同一个语言也有不同的版本,内部规则也会有少许不同,比如C++语言就有VisualC++、Dev-C++等。
编程可以简单理解为程序员为解决特定问题,按照自己的思路,在遵循特定的计算机语言规则下编写程序的过程。因此,要学好编程,首先选择一种计算机语言,然后按照该程序语言规则编写程序。本书以C++语言规则为例来学习编程。
2.编辑和编译
在某种计算机语言环境下编写程序的过程,叫程序的编辑。程序编辑好后,计算机是不是就可以立即运行呢?其实不然。这个程序在没有被计算机识别之前,仅仅只是一些符号所组成的文本。就像我们读的书籍一样,如果不经过大脑去领会书籍内容所包含的含义,文字永远只能是文字,课本也只能是课本,但经过我们的大脑学习和领会了书籍文字中所包含的内涵和思想,那么看起来死板的文字就成为大脑所学到的知识。程序也一样,也需要计算机去学习和领会程序所包含的含义,这个学习和领悟的过程当然不完全类似人脑对知识的学习,而仅仅是按照计算机语言所对应的规则,对所编写的程序进行解析的过程,这个过程叫翻译。翻译分为两种方尸一种叫解释,是计算机对程序的指令翻译一句执行一句的行为,BASIC语言和Java语言都属于解释语言;另一种叫编译,是计算机对程序的全部指令一次性全部翻译后,再让计算机执行的行为,PASCAL语言和C++语言都属于编译型语言。
高级语言程序要通过编译器才能运行得到结果,不同的计算机语言使用的编译器不同,如不能用C++编译器编辑运行BASIC语言编写的程序,同时,编译后的程序,在不同操作系统环境下进行的解析也会略有区别。
3.集成开发环境
知道了编辑和编译后,自然就需要一个用来编辑程序的软件和一个对程序进行编译的软件。编辑的软件有很多,所有的文本编辑器都可以,比如记事本。编译的软件只能是特指,比如C语言用的是GCC编译器,C++语言用的是G++编译器等。
一个程序编辑后,需要经过编译,方可执行。可万一编写程序时出错了,或者程序思路有问题,那么就要反复对程序进行编辑和编译,显得非常麻烦。为了方便程序的编辑和编译,软件公司开发了程序语言的集成环境,也就是将编辑和编译调试集成在一块,形成了集成开发环境(IntegratedDevelopmentEnvironment,IDE)。IDE对人们学习编程提供了极大的方便。
为了学习方便,本章将在附录A中简单介绍DEVC++的IDE使用方法。当然大家选择C++语言的其他IDE也可,使用方法也与Dev-C++的IDE类似。
1.1.2程序结构
为了弄清C++的编程规则,首先我们看C++程序的基本结构,如图1.1所示。
图1.1C++语言基本结构
由图1.1可以看出,C++程序由头文件、名字空间和主函数组成。
1.头文件
头文件是C++程序对其他程序的引用。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明。include的英文含义是“包括”。格式为:#include<引用文件名>或#include“引用文件名”。
2.名字空间
指明程序采用的名字空间。采用名字空间是为了在C++新标准中,解决多人同时编写大型程序时名字产生冲突问题。比如A、B两个班都有叫张三的人,你要使用A班的张三,必然要先指明是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人。“usingnamespacestd”表示这个程序采用的全部都是std(标准)名字空间,std是英文单词standard(标准)缩写。若不加这句,则该程序中cout和endl都需指明其名字空间的出处。cout语句必须写成std::cout<<"Iloveprogramming."<<std::endl;
3.主函数
日常生活中,我们要完成一件具有复杂功能的事,总是习惯把“大功能”分解为多个“小功能”来实现。在C++程序的世界里,“功能”可称为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其他代码调用。
一个程序,无论复杂或简单,总体上都是一个“函数”,这个函数称为“main函数”,也就是“主函数”。比如有个“做菜”程序,那么“做菜”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜、切菜、炒菜”等子函数。main函数在程序中大多数是必须存在的,程序运行时都是找main函数来执行。
每个函数内的所有指令都需用花括号“{}”括起来。一般每个函数都需要有一个返回值,用return语句返回。
练习
(1)阅读附录A中的Dev-C++集成开发环境,尝试运行图1.1的程序。
(2)熟悉C++程序的基本结构,尝试改变程序,输出你想说的句子。
1.2整数算术运算
【例1.2】把20张画平均分给7个同学,每人分得几张,还剩几张?
分析:每个人分得的张数是20除以7的商,剩余的张数是20除以7的余数。
程序如下:
1//exam1.2
2#include<iostream>
3usingnamespacestd;
4intmain()
5{
6cout<<20/7<<endl;
7cout<<20%7<<endl;
8return0;
9}
5
运行结果:
对于这个解决问题的程序,大家的疑问会是什么呢?cout语句能做什么事?如何表达两个整数相除的商和余数?为了回答这些问题,我们需要学习cout语句的格式和使用,学习算术表达式的计算机表示方式。
1.2.1cout语句
cout是C++的输出语句,C++的输出和输入是用“流”(stream)的方式实现的。
图1.2C++的输出流
在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把数据存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl或'n'为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)输出。输出遇到endl或'n'换行。cout语句的一般格式为:cout<<项目1<<项目2<<…<<项目n;
功能:
(1)如果项目是表达尸则输出表达式的值。
(2)如果项目加引号,则输出引号内的内容。
1.2.2算术运算符
在例1.2中运用cout语句输出算术表达式的值,C++语言为算术运算提供了5种基本算术运算符号:加(+)、减(-)、乘(×)、除(/)还有模(%)。如表1.1所示。
表1.1基本算术运算符
上述运算符的优先级与数学中相同,*、/、%高于+、-。
表1.1别值得注意的是“/”号和“%”,对于“/”号,当参与运算的数含有实数,运算结果是两数相除的值,当参与运算的两个数都是整数,运算结果是两数相除的商,如:例1.2程序中第6行求20/7的商为2;对于“%”是求两个整数相除的余数,如:例1.2程序中第7行求20%7的余数为6。
【例1.3】阅读下列程序和运行结果,学习表达式的书写格尸了解程序中表达式运算先后顺序和数学习惯的数学表达式运算先后顺序的关系。
1//exam1.3
2#include<iostream>
3usingnamespacestd;
4intmain()
5{
6cout<<9/8<<4*(6+3)%5<<(4*6+3)%5<<endl;//输出算式值
7return0;
8}
运行结果:
说明:由于9和8是整数,因此,9/8结果为1;对于式子4*(6+3)%5,先计算4*(6+3)的值为36然后%5,结果为1;对于式子(4*6+3)%5,先计算(4*6+3)的值为27然后%5,结果为2。表达式的运算先后顺序与数学习惯相同。
【例1.4】在例1.3中3个表达式的运行结果紧挨在一起,希望改变输出方尸要求:(1)每个表达式值隔开一个空格;(2)在结果前提示表达式。