2011年计算机等级考试二级C++考点分析

C++语言的数据类型
  考点1 基本类型
  C++中的数据类型大体可以分为3类:基本类型、导出类型和用
  户定义类型。基本类型是系统预先定义好的、与硬件直接相关的类型,是构造派生类型的基本元件。它包括:逻辑型、字符型、整型、浮点型和空值型。
  (1)逻辑型:又称布尔型,用关键字bool表示。取值范围只包含true和false,这两个关键字分别对应整逻辑真)和0(表示逻辑假)。
  (2)字符型:又称char型,用关键字 char表示。取值范围包含全部基本字符及ASCII码集对应的全部符号,字符型数据占用1字节(Byte),即8位(bit)空间。
  (3)整型:又称int型,用关键字int表示。取值范围是计算机所能表示的所有整数。整型是C++中最常用的数据类型。
  (4)浮点型:包括单精度型(又称float型)和双精度型(又称double型)。单精度型数据的取值范围是-.4E38~3.4E38(不能超过7位有效数字,若超出,则舍去第7位以后的数字),单精度数据一般占用4字节,双精度型数据一般占用8字节。
  (5)空值型:又称void型,用关键字void表示。取值为空。注意:C++中没有空值型的常量或变量,void主要用于函数和指针的声明。
  小提示:
  void是无值,而不是0,因为0也是一个值。

  考点2  基本类型的派生类型
  在C++语言中,基本类型的字长及其取值范围可以放大和缩小,改变后的类型称为基本类型的派生类型。由基本类型关键字int,char,float和double前面加上类型修饰符short(短类型,缩短字长),long(长类型长字长),signed(有符号类型,取值范围包括正负),unsigned无符号类型,取值范围只包括正)组成。

  考点3  字面常量
  字面常量又称直接常量,C++中有以下几种常量类型。
  (1)逻辑常量:逻辑类型包含的true和false两个取值,就称为逻辑常量。逻辑常量主要用在逻辑运算中。例如两个整数x和y:
  bool a=(x>y);
  若x大于y,则a的值为true;若是其他情况,则为false。
  (2)字符常量:用一对单引号括起来的一个或多个字符称为字符常量。例如:’a’,’\123’,’\n’等。以反斜杠开头的字符常量称为转义字符序列,如’\a’,’\n’等。反斜杠后的字符将被“转义”成具有某种控制功能的字符,如’\a’中的字符a被解释为响铃,如’\n’中的字符n被解释为换行。为了表示作为特殊标记使用的可显示字符,也必须用反斜杠引导,如’\\’表示反斜杠字符自身。
  (3)字符串常量:简称字符串,它们是用双引号括起来的字符序列,例如,“Hello,world!\n"。
  小提示:
  字符串常量与字符常量在计算机内部存储上是有区别的。一个字符串常量在存储时是在给定的字符序列后再加一个空字符(’\o’),而字符常量则不加。
  (4)整型常量:简称整数,十进制数、八进制数和十六进制数是它的3种表示方式。具体内容如表2-2所示。另外,在C++语言中,除了一般的表示方法之外,对于任意一种进制的整型数据还可以添加后缀u(大、小写均可,无符号整型)和l(大、小写均可,长整型)。
  (5)实型常量:简称实数,实型常量有十进制数的定点和浮点两种表示方式。定点表示的实数是以小数形式表示的,例如,3.141,1.236,256.0,52,.23,0.21等都是合法的C++实数。浮点表示的实数是以指数形式表示的,在C++中,指数形式表示为:<数字部分>E(e)<指数部分>。其中,数字部分是实数,指数部分是整数,字  母E (e)前后必须有数字,字母E (e)后必须是整数。例如2004×103在C ++中记为2004E3或2004e3。实型常量分为单精度、双精度和长双精度3类。
  小提示:
  在C++中,小数点前的0可以省略,但小数点不可以省略。
  6)枚举常量:是枚举类型中定义的值(枚举值)。枚举类型(enum类型)用关键字enum表示,属于用户定义类型。声明格式为:
  enum<类型名>{<枚举值表>};
  枚举值有两种定义形式:
  <值名>
  <值名>=<整型常量>
  枚举类型的声明也可以用做成组声明整型符号常量的方法。
  enum类型需要注意的是:一个枚举类型实际是int类型的一个子集;n个枚举值未全部赋值时,它们的值从左至右分别与0,1,…,n一一对应;若第i个枚举赋值的常量值为a,则其后续的未赋常量值的枚举值分别与整数a+1,a+2,…相对应,直到已经被赋了枚举值或结束。


       考点4  变量

  1.变量的定义
  变量是在程序的执行过程中其值可以改变的量。变量有数据类型和初值。变量在使用之前必须首先声明其类型和名称。变量声明语句的一般格式为:
  [<存储类>]<类型名><变量名>[=<初值表达式>],…;
  其中,<存储类>有auto,register,static,extern 4种。当存储类默认时按auto处理。<类型名>是一种根据类型名称,如int,char等基本类型名,或者用户定义的数据类型名。<变量名>是用户定义的一种标识符,表示一个变量,它可以通过后面的选项进行变量初始化。

  变量名的命名遵循如下规则:
  (l)一定不可以是C++关键字;
  (2)第一个字符必须是字母或下画线;
  (3)中间不可以有空格;
  (4)变量名中不可以包含特殊符号。
  <初值表达式>是一个表达式,为变量赋初值。

        例如:char A; //定义了字符型变量A
  int x=2; //定义了x和y两个整型变量,其中,x的初值为2
  在C++中,还有另外一种赋值方法,如给整型变量j赋初值2004,
  可写成:
  int j(2004);

  2.变量的使用方式
  C++中有关变量使用方面的几个概念如下:
  (1)全局变量和局部变量:全局变量也叫外部变量,它是在所有函数定义、类定义或程序块之外声明的变量。如果全局变量在声明时未被初始化,该变量将被系统自动初始化为0。全局变量的作用范围是从定义变量的位置开始直到整个程序结束。而局部变量是在所有函数定义、类定义或程序块之内声明的变量,它只在定义它的函数、类或程序块内有效。
  (2)生存周期与作用域:生存周期是从时间的角度考虑的,是指一个变量从被声明且分配了内存开始,一直到这个变量的声明语句失效且它占用的内存空间被释放为止。而作用域是从空间的角度考虑的,它是指一个变量存储空间的使用范围。
  (3)变量的存储类属性:在C++中有4种存储类别。
  (4) typedef类型说明:typedef类型是用户定义类型,使用关键字typedef声明新的类型名来代替已有的类型名。语法格式为:
  typedef <已有类型名><新类型名>
  如:
  typedef int INTEGER;
  小提示:
  用typedef可以声明各种类型名,但不能用来定义变量。

  考点5  符号常量
  1.符号常量的声明语句
  用eonst修饰的标识符称为符号常量因为符号常量同样需要系统为其分配内存,所以又称为const变量符号常量在使用之前一定要先进行声明,声明的格式为:
  const<类型名><符号常量名>=<初值表达式>,…;
  该语句也可以声明多个符号常量符号常量声明语句既可出现在函数体外,也可出现在函数体内。注意:用类型修饰符const声明的变量只能被读取,该变量必须在声明时进行初始化,并且它的值在程序中不能改变。

  2.使用#define命令定义符号常量
  #define命令定义一个标识符及串,在源程序中每次遇到该标识符时,编译器均用定义的串代替之。这实际上就是定义符号常量,命令格式为:
  #define<符号常量名><字符序列>
  其中,<符号常量名>是C++中用户定义的有效的标识符,又称宏(宏名);<字符序列>是用户给定的用来替换宏的一串字符序列,又称宏替换体,它可以是字符串、数值常量或可计算值的表达式。

        考点6  运算符和表达式的概念
  运算符是一种用来对数据进行操作的符号,在c十+语言中又称为操作符。运算中所需要的数据又称为操作数(或运算分量),运算符与操作数组成的符号序列称为表达式。在C++语言中,根据操作数的个数可将运算符分为单目、双目和三目3类运算符。在C++语言中,运算符有的是一个字符,有的是2个或3个字符,也有的是关键字。
  每种运算都有一种相对应的运算符,有些运算符还可以一符多用。

  考点7  赋值运算
  赋值运算是一种改变存储区域内容的操作,这个内存空间由左值表达式指定。左值是指具有对应的可由用户访问的存储单元,并可由用户改变其值的量。赋值运算是一种双目运算符,运算符是“=”,其作用是将右操作数送到左操作数,该左操作数必须是一个可修改的左值赋位运算的形式为:<变量名>=<表达式>,例如x=2+6。赋值号两边的数据类型应该是一致的,当不一致时,编译器会在赋值前将右操作数转换成与左操作数相同的类型。一个赋值表达式中使用多个赋值运算符可实现多个变量赋值的功能,如表达式(x=y=z=2)与操作序列(z=2;y=z;x=y;)是等价的。
  另外,C++语言中还有许多复合赋值运算符,它们是把右边表达式的值同左边变量的值进行运算后的结果再赋给左边变量。例如,表达式(x+=y+2)等价于表达式(x=x+(y+2))。
  注意:C++与其他语言有点不同,用const修饰的变量是左值,但不能放在赋值号的左边。
  小提示:
  (1)要区别赋值号“=”与等于号“= =”,不可以写错。
  (2)声明语句中使用的符号“=”称为初始化符,它不是赋值运算符。

  考点8  算术运算符和算术表达式
  1.算术运算符
  算术运算中所使用的运算符称为算术运算符。C++提供如下两类算术运算符。
  (1)单目算术运算符:-(负)、++(增量)、-(减量)。
  -(负)的格式为:-<运算分量>。它相当于对运算分量取反。
  ++(增量)的形式有两种,分别是++<运算分量>和<运算分量>++。两者若不参与其他运算的话,++放在运算分量的前后都一样,若参与其他运算,前者是运算分量先加1后进行其他运算,后者是先进行其他运算再将运算分量加1。--(减量)的格式与操作与++(增量)类似。
  (2)双目算术运算符:+(加),-(减),*(乘),/(除)和%(模,取余)。
  它们的含义与数学中的相同,这里不再细讲。
  2.算术表达式
  用算术运算符连接起来的式子称为算术表达式。算术表达式的值的类型有如下规定。
  (1)若参与运算的两个操作数(或运算分量)都为整型时(但具体的类型可以不同,如一个为int型,另一个为char型的情况),则运算结果为int型。
  (2)若参与运算的两个操作数(或运算分量)中至少有一个是单精度型,并且另一个不是双精度型时,则结果为float型。
  (3)若参与运算的两个操作数(或运算分量)中至少有一个是双精度型,则运算结果为双精度型。

 考点9  关系运算符和关系表达式
  关系运算即比较运算,C++提供了6种关系运算符。
  <(小于),<=(小于等于),>(大于),>=(大于等于),= =(等于),!=(不等于)关系运算符都是双目运算符。用关系运算符将两个表达式连接起来,就是关系表达式。如:2>1,(2+1) <3,这两个都是合法的关系表达式。关系表达式的结果类型为布尔型,值只能是true或false。

  考点10  逻辑运算符和逻辑表达式
  C++提供了3种逻辑运算符:!(逻辑非),&&(逻辑与),||(逻辑或)。
  其中,!(逻辑非)是单目运算符,&&(逻辑与)和||(逻辑或)是双目运算符。逻辑运算的运算分量是逻辑型数据,其中,逻辑常量、逻辑变量、关系表达式等都是逻辑型数据。由逻辑型数据和逻辑运算符连接起来的式子就是逻辑表达式。

  考点11  位运算
  位运算是直接对int和char类型数据中的各位(一个int和char类型数据的各位不是0就是1 )进行运算。C++提供了两类位运算符。
  (1)按位逻辑运算符:&(位“与”),^(位“异或”),|(位“或”)和~(位“取反”)。按位与是对两个操作数的各位分别进行与操作,即有0&0 = 0,0&1=0,1&0=0,1&1=1;按位或是两个操作数的对应位中有一个1,则结果的对应位也为1,即有0|0=0,0|1=1,1|0=1,1|1=l;按位异或是判断两个操作数的对应位是否相同,若相同,则结果的对应位取0,若不同则取1,其中,0^0=0,0^1=1,1^0=1,1^1=0;按位取反是对一个数的各位进行“非”运算,即有~1 =0,~0=1。
  (2)移位运算符:<<(左移)和>>(右移)。移位运算是将一个操作数中的各位都向左(用<<)或向右(用>>)移动几位。


  考点12  其他运算

  1.条件运算符
  在C++中,惟一的三目运算是条件运算,条件运算符是“?:”。
  条件表达式的形式为:
  <表达式1>?<表达式2>:<表达式3>
  其含义为若<表达式1>的值为“真”,则条件表达式取<表达式2>的值;否则取<表达式3>的值。
  2.逗号运算符
  在C++中,逗号是一种分隔符,逗号也可作为运算符指明对多个表达式进行顺序求值。逗号表达式的一般形式为:
  <表达式1>,<表达式2>,…,<表达式n>
  其中逗号称为逗号运算符,整个式子称为逗号表达式,逗号表达式的值为最后一个表达式的值。
  3.sizeof运算符
  sizeof运算符也称字长提取符,可用sizeof运算符进行字长提取操作,提取的结果为一个整数。sizeof运算符的使用格式为:
  sizeof(<运算分量>)
  其中,sizeof为关键字,<运算分量>既可以是一个类型名,也可是一个表达式。
  4.圆括号运算符
  C++中圆括号运算符的功能。
  (l)可用于函数调用。其形式为:
  <函数名>(<实参表>)。
  (2)可用于强制类型转换。其形式为:
  (<类型名>)<表达式>,
  强制类型转换即把要转换到的目标数据类型名用圆括号括起来,放在某个变量(或常量)前。
  (3)可用于类型构造。其形式为:
  <类型名>(<表达式>),
  类型构造就是用圆括号中的<表达式>的值来构造一个具有由<类型名>指定的目标数据类型的值。从功能上讲,类型构造类似于强制类型转换。  

 考点13  优先级和结合性
  在C++语言中,为了确定运算符在表达式中的运算顺序,规定每一种运算符既具有优先级,又具有结合性。优先级是指在相邻的两种运算符中,应先执行哪一种。结合性是指两个同优先级的运算符相邻时,应按从左向右的顺序运算,还是按从右向左的顺序运算。使用圆括号将子表达式括起来,可改变默认的运算符的优先级。有关表达式
  运算顺序的3条规则如下。
  (1)带有括号的子表达式优先计算。
  (2)无括号的,按优先级从高到低进行计算。
  (3)有相同优先级的,按结合性进行计算。
  其中优先级高低变化是随着数字的增大而变低的,另外3类运算符(单目运算符、三目运算符和赋值类运算符)是从右向左结合的,其余的运算符都是从左向右结合的。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值