全国计算机等级考试教程——二级C++语言程序设计 (全国计算机等级考试教程(无纸化考试专用))(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-25 22:28:40

点击下载

作者:全国计算机等级考试教材编写组未来教育教学与研究中心

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

全国计算机等级考试教程——二级C++语言程序设计 (全国计算机等级考试教程(无纸化考试专用))

全国计算机等级考试教程——二级C++语言程序设计 (全国计算机等级考试教程(无纸化考试专用))试读:

前言

全国计算机等级考试由教育部考试中心主办,是国内影响最大、参加考试人数最多的计算机水平考试。它的根本目的是以考促学,这决定了其报考门槛较低,考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习和使用计算机的实际情况选考不同级别的考试。本书面向选考二级C++语言程序设计的考生。一、为什么编写本书

计算机等级考试的准备时间短,一般从报名到参加考试只有近4个月的时间,留给考生的复习时间有限,并且大多数考生是非计算机专业的学生或社会人员,基础比较薄弱,学习起来比较吃力。

通过对考试的研究和对数百名考生的调查分析,我们逐渐摸索出一些减少考生(尤其是初学者)学习困难的方法,以帮助考生提高学习效率,取得更好的学习效果。因此我们策划、编写了本书,并将多年研究出的教学和学习方法贯穿全书,帮助考生巩固所学知识,顺利通过考试。二、本书的优势

1. 一学就会的教程

本书的知识体系都经过巧妙设计,力求将复杂问题简单化,将理论难点通俗化,让读者一看就懂,一学就会。

针对初学者和考生的学习特点和认知规律精选内容,分散难点,降低台阶。

例题丰富,深入浅出地讲解和分析复杂的概念和理论,力求做到概念清晰、通俗易懂。例如:

typedef类型说明。

使用关键字typdef可以为已有类型名定义一个新类型名,其语法格式为:

typedef<已有类型名><新类型名>

typedef类型说明并没有定义新的数据类型,它只是给某个已有的数据类型起了一个别名。

例如:

typedef int INT;

typedef double R;

typedef short SHORT;

typedef float FLOAT;

上面的语句分别给int,double,short和float取了一个别名。

精心为考生设计学习方案,设置各种栏目引导和帮助考生学习。

2. 衔接考试的教程

我们深入分析和研究了历年考试真题,结合考试的命题规律选择内容,安排章节,坚持多考多讲、少考少讲的原则。在讲解各章节的内容之前,都详细介绍了考试的重点和难点,从而帮助考生安排学习计划,做到有的放矢。

3. 书与多媒体结合的教程

本书所配的光盘主要提供两部分内容:多媒体课堂和上机真考模拟系统。多媒体课堂用视频串讲演示各种案例的操作步骤,使学习变得轻松、高效;上机真考模拟系统可模拟真实考试环境,帮助考生提前感受考试全过程。使用了本书的光盘,就等于把辅导老师请回了家。三、如何使用书中栏目

本书设计了 3个小栏目,分别为“考试点津”、“请注意”和“请思考”。

1. 考试点津

考试点津是从对应模块提炼的重点内容,读者可以通过它明确本部分内容的学习重点和掌握程度。

2. 请注意

该栏目主要提示读者在学习过程中容易忽视的问题,以引起重视。

3. 请思考

介绍完一部分内容后,以这种形式给出一些问题让读者思考,使读者能做到举一反三。

希望本书在备考过程中能够助您一臂之力,让您顺利通过考试,成为一名合格的计算机应用人才。

由于时间仓促,书中难免存在疏漏之处,恳请广大读者批评指正。本书责任编辑信箱为:lisha@ptpress.com.cn。编者第1章C++语言概述章前导读通过本章,你可以学习到:◎C++语言的发展◎C++语言的5种合法词汇◎C++语言的特点◎C++语言的两种基本框架◎面向对象的3个特征◎开发一个C++程序的过程通常包括编辑、编译、链接、运行和调试等步骤◎C++语言的基本符号本章学习流程图1.1 C++语言的发展考试点津

【了解】C++语言的发展

20世纪60年代,Martin Richards作为计算机软件人员,开发了作为记述语言使用的BCPL语言(Basic Combined Programming Language)。1970年,Ken Thompson在继承BCPL 语言优点的基础上发明了实用的B语言。1972年,贝尔实验室的Dennis Ritchie和Brian Kernighan在B语言的基础上,做了进一步的充实和完善,设计出了C语言。

C语言以其独有的特点风靡全球,其特点为:

语言简洁,使用灵活、方便。

具有丰富的运算符和数据类型。

可以进行低级操作,适合开发系统软件。

程序的运行效率高。

代码可移植性好。

同时,C语言的局限性也很明显:

类型检查机制较弱。

缺少支持代码复用的语言结构。

不适合大型软件开发。

为了满足开发大规模程序的需要,1980年贝尔实验室的Bjarne Stroustrup和他的同事们在C语言的基础上,从Simula 67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言。最初称为“带类的C”,1983年取名为C++。经过不断的完善和发展,成为目前的C++语言。

1985年由Bjarne Stroustrup编写的《C++程序设计语言》一书的出版,标志着C++1.0版本的诞生。此后,贝尔实验室于1989年和1993年分别推出了C++2.0版本和C++3.0版本。表1-1列出了各个版本中C++语言的新特性。表1-1 C++语言支持的新特性1.2 C++语言的特点考试点津

【了解】C++语言的特点1 C++是一种面向对象的程序设计语言

C++语言集中体现了近年程序设计和软件开发的新思想和新技术,是一种面向对象的程序设计语言。面向对象是不同于面向过程的一种编程思想,其特点主要体现在:

抽象数据类型。

封装和信息隐藏。

以继承和派生方式实现程序的重用。

以函数重载和虚函数来实现多态性。

以模板来实现类型的参数化。2 C++语言来源于实践

一般的高级程序设计语言是由计算机科学家在科研和教学环境中设计出来的。但是C++语言却是由从事实际系统开发工作的程序员在实践中创造的。因此C++语言往往从编写实际程序的角度出发,为程序员提供了各种实用、灵活、高效的语言特性。这些良好的特性使得C++语言在很多领域被广泛的应用。3 C++语言是C语言的超集

C++语言是C语言的超集,也就是说C++语言包含了C语言的全部语法特性。因此,每一个C语言编写的程序都是一个C++程序。C++语言的设计宗旨就是在不改变C语言语法规则的基础上扩充新的特性。

由于C++语言很好地兼容了C语言,因此,C++语言具有明显的优势。

C++语言继承了C语言简明、高效、灵活等众多优点。

以前使用C语言编写的大批软件可以不加任何修改,直接在C++语言开发环境下维护。

C语言程序员只需要学习C++语言扩充的新特性,就可以很快地使用C++语言编写程序。1.3 面向对象程序设计考试点津

【理解】面向对象的3个主要特征

面向对象程序设计(Object- Oriented Programming,OOP)是20世纪80年代发展起来的一种程序设计方法,通过模拟现实世界中的事物和关系,利用抽象、分类、归纳等方法来构造软件系统。C++语言是一种面向对象的程序设计语言,充分支持面向对象思想中的3个主要特征:封装性、继承性、多态性。1 封装性指将数据和算法捆绑成一个整体,这个整体就是对封装性象,描述对象的数据被封装在其内部。

通过对象提供的算法来进行操作,而无须知道对象内部的数据是如何表示和存储的,这种思想被称为信息隐藏。例如,使用者不必知道一部手机内部电路的具体构造和工作原理,就可以用它来打电话,发短信。C++语言通过建立用户类型“类”来支持封装性和信息隐藏。用户创建的类可以被看成一个完全封装的实体,并作为一个整体单元来使用。2 继承性指一种事物保留了另一种事物的全部特征,并在无继承性需重新编写原来的类的情况下对这些功能进行扩展。

例如,麻雀具有鸟类动物的所有特征,这种生理特性,称为继承。在C++语言中,也经常使用这一特性。C++语言采用继承来支持代码的重复使用,增强效率。程序可以在现有类型的基础上扩展功能来定义新类型。3 多态性指当多种事物继承自一种事物时,同一种操作在它多态性们之间表现出不同的行为。

例如,“麻雀”继承了“鸟类”动物的所有特征,“画眉鸟”同样也继承了“鸟类”动物的特征。但是“麻雀”和“画眉鸟”却有完全不同的行为,这就是我们现实中出现的多态。C++语言在设计时也采用了这一特性。它使用函数重载、模板、虚函数来支持多态性。请思考用代码如何说明函数的多态性。1.4 C++语言的基本符号考试点津

【掌握】C++语言的基本符号

组成语言的最小元素是基本符号。英语中有26个拉丁字母,汉语中有4000多个常用单字,它们都是组成各自语言的基本符号。同样,作为一种计算机程序设计语言,C++语言也有其基本符号。C++语言的基本符号可以分为3类。

字母:包括大小写英文字母,共52个符号。

数字:包括0~9,共10个符号。

特殊符号:包括+- * / =,• —:;?\ " '~|!# % &( )[]{}^<>和“空格”共30个符号。

这3类符号共计92个,它们组成了 C++语言的基本符号集合。1.5 C++语言的词汇考试点津

【掌握】C++语言的5种合法词汇

词汇是C++语言的基础。C++语言只有5种合法词汇:关键字、标识符、字面常量、运算符和标点符号。1.5.1 关键字

关键字也称为保留字,它是由C++语言预先定义好的一类单词。C++语言中关键字一共有61个,包括ANSI C标准规定的32个关键字,如表1-2所示;ANSI C++标准补充的另外29个关键字,如表1-3所示。每个关键词在C++语言中都有特殊的含义和一定的功能,不能作为其他词汇使用。表1-2 ANSI C标准规定的关键字表1-3 ANSI C++标准补充的关键字1.5.2 标识符

标识符是用户为程序中各种需要命名的“元素”所起的名字。这些“元素”包括类、对象、结构、变量、符号常量、函数、函数的参数等。标识符的组成要符合如下的规则。

标识符是一个以字母或下画线开头的,由字母、数字、下画线组成的字符串。例如,count、_PI、_342JIJIN都是合法的标识符。

标识符不能与任意一个关键字同名。例如,sizeof、new等。

标识符中的字母区分大小写。例如,PI与pi是不同的标识符。

标识符的有效长度为32个字符。如果程序中的标识符超过这个长度,超出的部分被忽略不计。1.5.3 字面常量

常量是指在程序中固定不变的值。常量一般有两种表示形式,即符号常量和字面常量。C++语言中符号常量的名字就是一个标识符,而字面常量却是以字符方式存在的常量。例如,设置常量SITA等于1.0,SITA为符号常量,1.0为字面常量。字面常量分为整型、浮点型、字符型和字符串型4类。例如:整型123、浮点型123.456、字符型V、字符串“hello”。1.5.4 运算符

运算符是对程序中的数据进行操作的一类单词。C++语言中运算符有以下4种。

单字符组成的运算符,例如:+,-,*,/等。

双字符组成的运算符,例如:<<,<=,&&等。

3个字符组成的运算符,例如:<<=,>>=等。

关键字运算符,例如:new,delete,sizeof等。1.5.5 标点符号

标点符号是在程序中起分隔内容和界定范围作用的一类符号。C++语言的标点符号如表1-4所示。表1-4 C++语言的标点符号1.6 C++程序的基本框架考试点津

【了解】C++语言的两种基本框架

C++语言继承了C语言的编程方式,和C语言一样可以实现结构化程序设计。此外,C++语言还是面向对象的编程语言,可以实现面向对象的程序设计。所以C++程序设计中有两种基本框架:结构化程序设计框架,面向对象程序设计框架。1.6.1 结构化程序设计框架

在C++的结构化程序设计框架中,函数是程序的基本组成单元。程序的主体通常由若干函数定义构成。函数是程序中完成一定功能的模块。各个函数之间通过参数、返回值和全局变量来进行数据通信。

使用结构化程序设计方法编写出的C++程序包括一个主函数和若干用户定义的函数。函数与函数之间是相对独立的并且是并行的,函数之间可以相互调用。同一个函数可以被一个或多个函数调用多次。主函数由系统调用,在主函数中可调用其他函数。

一般地,C++程序的结构化程序设计框架可以表示为:1.6.2 面向对象程序设计框架

除了结构化的编程设计框架,C++的主要设计方式是面向对象的。在C++的面向对象程序设计框架中,类是程序的基本组成单元。类可以把数据和函数封装在一起,用以描述事物的属性和对事物的操作。类与类之间通过封装而具有明确的独立性,并通过成员、友元、参数、继承和派生等关系,达到相互通信和联络的目的。

在结构化程序设计中,除了主函数之外,所有函数之间一律“平等”,不存在层次关系。这样的设计方式在程序规模稍大时,就会使整体结构变得混乱。在面向对象程序设计中,类与类之间能够按照逻辑关系组成有条理的层次结构,从而使一个复杂程序变得条理清晰。具体在第6章阐述。1.7 C++程序的开发过程考试点津

【了解】C++程序的开发过程

C++程序的开发过程主要包括编辑、编译、链接、运行和调试等步骤。下面分别对这几个步骤进行阐述。1 编辑

编辑是C++程序开发过程的第一步,主要包括文本的输入和修改。Visual C++6.0是最常用的C++集成开发环境。在Visual C++6.0集成开发环境中,可以使用编辑窗口来对C++程序进行编辑与修改。当完成了C++程序的编辑后,应将输入的程序文本保存为以.cpp为扩展名的文件,头文件应以.h为扩展名。

可以新建一个Win32 Console Application项目,添加一个.cpp文件,并输入例1-1的代码。2 编译

编译是由源程序文件转换到目标文件的过程。在Visual C++6.0集成开发环境中,可以使用编译(Compile)命令将一个.cpp源文件转换成一个.obj的目标文件。如果出现编译错误,则需要审查输入的代码是否有语法错误。如果编译通过,则进入下一步骤。3 链接

链接是将目标代码(.obj文件)变成可执行程序(.exe文件)的过程。在Visual C++6.0 集成开发环境中,可以使用生成(Build)命令进行链接。此步骤一般不会出现问题。4 运行和调试

运行可执行程序,查看运行结果。在Visual C++6.0集成开发环境中,可以使用执行(Execute)命令来运行程序。如果程序的运行结果不正确,需要使用调试器对可执行程序进行跟踪调试来查找错误发生的原因。在Visual C++6.0集成开发环境中,用户可以很方便地进入调试状态,对程序进行设置断点、单步执行、观察变量等操作。

这里建议读者对HelloWorld程序(见【例1-1】)编辑并运行一次,模拟一下C++程序的开发过程。【例1-1】HelloWorld程序。

如果运行成功,【例1-1】程序代码的输出为:

HelloWorld

一般地,C++程序的开发过程如图1-1所示。图1-1 C++程序开发过程课后总复习【答案链接】

选择题

1. 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。

A. -369

B. 369

C. 0.369

D. 整数集合{1,2,3,4,5}

2. 面向对象方法中,继承是指( )。

A. 一组对象所具有的相似性质

B. 一个对象具有另一个对象的性质

C. 各对象之间的共同性质

D. 类之间共享属性和操作的机制

3. 下列字符串中不能作为C++标识符使用的是( )。

A. INT

B. test

C. _1481

D. 1 temp

4. 下列术语中,能表明面向对象思想主要特征的是( )。

A. 封装性

B. 灵活性

C. 安全性

D. 可靠性

5. 下列字符串中可以用作C++标识符的是( )。

A. 1481var

B. test-1481

C. true

D. _123

6. 以下不能定义为用户标识符的是( )。

A. Main

B. _0

C. _int

D. sizeof

7. 下列符号中能作为C++标识符的是( )。

A. 1 abc

B. _abc1

C. double

D. if第2章数据类型、运算符和表达式章前导读 通过本章,你可以学习到:◎ C++语言的5种基本类型◎变量的使用方式、符号常量使用语句◎各种基本类型所占用的字节大小◎赋值运算符、算术运算符和关系运算符的定义◎各数据类型的定义和使用方法◎常量的6种类型◎运算符的优先级◎各种常量类型的定义和使用方法◎运算符的具体操作◎变量的定义本章学习流程图2.1 C++语言的数据类型

C++语言是一种使用非常广泛的计算机编程语言,C++程序中的每个变量或常量都要拥有一种数据类型。C++语言的数据类型大概分为3类。

基本类型:是C++语言预先定义好的数据类型,包括字符型、逻辑型、整型、浮点型和空值型。

导出类型:由已知类型构造出来的数据类型,包括数组、指针和引用。

用户定义类型:由用户给出具体定义后才能使用的数据类型,包括枚举类型和类类型。

本章仅介绍基本类型。导出类型和类类型将分别在第4章和第6章介绍。2.1.1 基本类型考试点津

【理解】C++语言的5种基本类型1 字符型

字符型用关键字char表示,因此又称为char型。字符型的取值范围是全部基本字符以及ASCII码集或扩充ASCII码集对应的全部符号。字符型数据占用1个字节(Byte)。字符集与单字节整数是根据ASCII码对应的,例如,字母b的ASCII码值是98,因此可以将其看作是用来表示单字节整数的整型。字符型在整数中的取值范围是:

有符号字符型取值范围为-128 ~ 127。

无符号字符型取值范围为0~255。2 逻辑型

逻辑型用关键字bool表示,因此又称为bool型(布尔型)。逻辑型的取值只包含true和false,它们都是C++语言关键字。其中:

true对应整数1,表示逻辑真。

false对应整数0,表示逻辑假。3 整型

整型用关键字int表示,因此又称为int型,它是C++语言中最常用的数据类型。整型数据的取值范围是计算机所能表示的所有整数。整数数据所占据的存储空间大小根据机器的不同而有所差别。4 浮点型

浮点型包括单精度型和双精度型两种。

单精度型用关键字float表示,又称float型。

双精度型用关键字double表示,又称double型。

浮点型对应着数学中实数的概念,即带有小数点的数。浮点型数据有一定范围和精度。

单精度型取值范围为-3.4E38~3.4E38,但不能超过7位有效数字。

双精度型取值范围为-1.7977E308~1.7977E308,但不能超过15位有效数字。5 空值型

空值型用关键字void表示,因此又称为void型。空值型的取值为空。C++语言中不存在void型的常量或变量。所有函数说明都必须指明返回值类型,没有返回值的函数应说明为void类型;另外,void类型还可以用来声明一个指针变量,表示该指针的数据类型尚不确定。考试点津

【理解】基本类型的派生类型2.1.2 基本类型的派生类型基本类型C++语言中,基本类型的字长及其取值范围可以放大的派生类和缩小,改变后的类型就叫做基本类型的派生类型型。

派生类型声明符是由基本类型关键字char、int、float、double前面加上类型修饰符组成的。类型修饰符包括:

short 短类型,缩短字长;

long 长类型,加长字长;

signed 有符号类型,取值范围包括正负值;

unsigned 无符号类型,取值范围只包括正值。

表2-1列出了基本类型及其常用派生类型在32位计算机上占用的字节长度和取值范围。表2-1 基本类型及其常用派生类型请思考unsigned和signed类型有什么差别?【例2-1】不同类型的整型数据间的赋值,请思考输出结果。

不同类型的整型数据间的赋值归根到底就是一条:按存储单元中的存储形式直接传送。同时,内存中的数是以补码(一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”)的形式存放的。因此,short int b =- 1说明b在内存中存储的是111.111.111.1111,将b赋值给a,则a对应的内存空间存储的也是111.111.111.1111。由于a是unsigned short类型,再次取出a时结果就成了 65535。2.2 常量考试点津

【掌握】常量的5种类型

常量指程序执行过程中值不变的量。

常量有两种表示形式:字面常量和符号常量。

字面常量的类型是根据书写形式来区分的,例如,100、-3.14、'b'、“hello”等都是字面常量。字面常量的类型有:整型、浮点型、字符型、字符串型,每个字面常量的字面本身就是它的值。

符号常量是一个标识符,在程序中必须遵循“先声明,后使用”的原则。它的定义和使用将在2.3节中介绍。1 逻辑常量

逻辑常量只包含true和false两个取值,主要用在逻辑运算中。此外,由于逻辑值对应着整数1或0,所以它也能够像其他整数一样出现在表达式中,参与各种整数运算。2 字符常量

字符常量简称字符,它以单引号作为起止符号,单引号中间有一个或若干个字符。例如,'a'和'A'单引号中间有一个字符,这是一般意义上的字符常量。除此之外还有一种特殊形式的字符常量,例如,'\ n'、' \x5e'等以“\”开头的包括多个字符的字符序列也都是符合规定的字符常量。

在C++语言中为了表示一些特殊的字符(如回车、换行等),引入了“转义”字符概念。在转义字符序列中,用反斜线“\”引导的下一个字符失去了原来的含义,而转义为具有某种控制功能的字符。例如,'\n'中的字符n通过反斜线的转义后就成为一个换行符。为了表示作为特殊标记使用的可显示字符,也需要用反斜杠引导,例如,“\”表示单引号字符,若直接使用程序会出错。另外,还允许用反斜线引导一个具有1~3位的八进制整数,如'\ 123';以及一个以字母x(大、小写均可)作为开始标记的具有1~2位的十六进制整数,如'\ x21'。它们对应的字符就是以这个整数作为ASCII码的字符。表2-2列出了 C++语言中的字符转义序列。表2-2 C++语言中的字符转义序列

转义序列也可以同其他字符一样出现在字符串中。例如,“\tbc”中的首字符为水平制表符,输出它时将使光标后移8个字符位置;“abcde \ n”字符串中含有6个字符,最后一个为换行符。

字符串常量是用双引号括起来的字符序列。字符串常量与字符常量在计算机内部存储上是有区别的。一个字符串常量在存储时是在给定的字符序列后再加一个空字符('\0'),而字符常量则不加。具体可以参考【例2-2】。【例2-2】编写一个字符串长度的函数strlen( )。3 整型常量

整型常量就是整型常数,简称整数,它有十进制、八进制和十六进制3种表示方式。

十进制整数,以正号(+)或负号(-)开头,由首位非0的一串十进制数字组成。例如:100、123。

八进制整数,以数字0开头,后面接若干个八进制数字(借用十进制数字中的0~7)。八进制整数前面不带正负号,全部默认为正数。例如:0123、055。

十六进制整数,以数字0和字母x(大、小写均可)开头,后面接若干个十六进制数字(借用十进制数字0~9,字母A~F或a~f)。例如:0x9A、0x4B5。

对于C++语言中任一种进制的整数,除了一般表示方法之外,还允许给它们添加后缀字母u或1(大、小写均可),分别表示无符号整型(unsigned int)数和长整型(long int)数。在一个整数的末尾可以同时使用u和1,并且对排列无要求。例如:55L、100LU、0123U、0x123L。【例2-3】整型常量的定义。4 实型常量

实型常量简称实数,有十进制的定点和浮点两种表示方法。

定点表示,简称定点数,实际上是以小数形式表示实数。例如:123、123.456、-123.12。

浮点表示,简称浮点数,实际上是以指数形式表示实数。

浮点表示的实数是由一个十进制整数或定点数后接一个字母E(大、小写均可)和一个1~3位的十进制整数所组成,例如:3.23E005、1.234E-2、2.6E123。字母E之前的部分称为该浮点数的尾数,之后的部分称为该浮点数的指数,该浮点数的值就是它的尾5-2数乘以10的指数幂,即:3.23E005=3.23×10、1.234E-2=1.234×10、12321.6E123 =21.6×10。

对于一个浮点数,它的尾数的小数点在最左边第一个非零的数字后面,则称为规格化浮点数,类似于数学中的科学计数法。例如:3.23E005、1.234E-2是规格化浮点数,21.6E123是非规格化的。

实数常量分为单精度(float)、双精度(double)和长双精度(long double)3类。

float类型数据占内存4字节,提供7位有效数字。

double类型数据占内存8字节,提供15位有效数字。

long double类型数据占内存10字节,提供19位有效数字。

对于一个定点数或浮点数,C++语言自动按一个双精度(double)来存储。但是,在定点数或浮点数后面加上字母F(大、小写均可),则自动按一个单精度数存储。例如,3.23E005和3.23E005F虽然数值相同,但是3.23E005是一个双精度数,3.23E005F是一个单精度数。5 枚举常量

枚举常量是枚举类型中定义的值,即枚举植。枚举类型属于用户定义类型,用关键字enum表示,因此又称为enum类型。用户通常利用枚举类型定义程序中需要使用的一组相关符号常量。声明格式为:

enum<类型名>{<枚举值表>};

语法说明:

enum是关键字,指出要定义的是枚举类型。

<类型名>是标识符,即由用户给出的具体枚举类型名。

<枚举值表>包含多个枚举值,用逗号分隔开,每个枚举值就是一个枚举常量。枚举值有两种定义形式。

<值名>。

<值名>=<整型常量>。

例如:

关于枚举型有如下4点需要说明。

一个enum类型实际上是int类型的一个子集,它的每一个枚举值代表一个整数。

枚举类型的声明也可作为成组声明若干整型符号常量的方法。

n个枚举值全部未赋常量值时,它们自左至右分别与整数0,1…n-1对应。

若第i个枚举值赋常量值为m,则其未赋常量值的后续枚举值分别与整数m+1,m+2…对应,直到下一个赋了值的枚举值或结束。因此,为枚举值所赋的整型常量值应从左至右递增。

由于枚举类型属于用户定义数据类型,一旦枚举类型被定义就可以使用它来定义变量。

例如:

其中,up的值为1,down的值为2,left的值为3,right的值为4。2.3 变量考试点津

【理解】变量的定义2.3.1 变量的定义变量是程序中用于存储信息的单元,它对应某个内

变量存空间。

在定义变量时需要指明数据类型和变量名。这些信息说明了变量的内存空间的大小,以及变量中要存储值的类型。变量名代表存储空间,因此程序可以在变量中存储值和取出值。

变量必须遵循“先声明,后使用”的原则。变量声明语句的一般格式为:

[<存储类>]<类型名><变量名>[=<初值表达式>],…];

语法说明:

<存储类>有4种,分别是auto、register、static、extern,存储类默认按auto类处理。

<类型名>为已存在的一种数据类型名称,如char、short、int、long、float、double等基本数据类型名,或者用户定义的数据类型名。

<变量名>是用户定义的一个标识符,用来表示一个变量,可以通过<初值表达式>对变量进行初始化。C++语言中标识符是区分大小写的,something和Something是不同的变量名。

<初值表达式>是一个表达式,它的值就是赋予变量的初值。

变量名的命名遵循如下规则。

不能是C++语言关键字。

第一个字符必须是字母或下画线。

中间不能有空格。

变量名中不能包括点号(.)、分号(;)、逗号(,)、引号(")、加号(+)、减号(-)之类的特殊符号。变量名中除了能使用26个英文大小写字母和数字外,只能使用下画线“_”。【例2-4】编写主程序,使含有实数r和整数n两个参数的函数,输出r的n次幂。

该程序的main函数中定义了变量r和n,分别为double和int类型,并且没有指定初值。power函数中定义了变量i和result,分别为int和double类型,其中result的初值为1.0。2.3.2 变量的使用方式考试点津

【掌握】变量的使用方式

C++语言中变量的使用非常灵活、广泛。有关变量的使用我们需要掌握以下几个方面。1 全局变量和局部变量。

全局变量是在所有函数定义、类定义和程序块之外声明的变量。未进行专门初始化的全局变量会被系统自动初始化为0。全局变量的作用范围是从定义变量的位置开始直到整个程序的结束。

局部变量是在某个函数定义、类定义或程序块之内声明的变量。局部变量只能在声明它的函数、类或程序块中被访问。【例2-5】全局变量和局部变量。2 生存期与作用域

生存期是从时间的角度考虑的,是指一个变量从被声明且分配了内存开始,直到该变量声明语句失效且它占用的内存空间被释放为止。因此:

一个全局变量的生存期从声明开始,直到程序结束。

一个局部变量的生存期从声明开始,直到包含此变量的最近的一个程序块结束。

作用域是从空间的角度考虑的,是指变量名可以代表该变量存储空间的使用范围。

一般情况下,变量的作用域与其生存期一致。由于C++语言允许在不同的程序段为不同变量取同一名字,因此一个变量名的作用域可能小于其生存期。具体可以参考【例2-6】。【例2-6】作用域与生存期。

理论上int类型的变量a的生存期为3~10行;char类型的变量a的生存期为6~8行。而实际上int类型的变量a的作用域为3~5行和9~10行;char类型的变量a的作用域与生存期一致。3 变量的存储类属性

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载