第02章基本数据类型运算符与表达式PPT讲稿.ppt
第02章基本数据类型运算符与表达式第1页,共77页,编辑于2022年,星期日本章主要内容(1)熟悉和掌握C+中数据类型的分类及使用,注意它与C数据类型间的区别。(2)熟练掌握C+中各种运算符的使用。(3)熟练掌握C+中表达式的描述和计算。(4)理解和掌握C+中数据的输入和输出。2第2页,共77页,编辑于2022年,星期日2.1 数据类型 lC+提供了十分丰富的预定义数据类型,称为基本数据类型。l除了基本数据类型外,C+还提供了构造数据类型,包括数组、结构体、共用体(联合体)、枚举和类等。lC+可以使用的数据类型如图所示:3第3页,共77页,编辑于2022年,星期日2.1.1 基本数据类型lC+提供的5种基本数据类型各自所占的内存空间是不同的,因此所表示的数据的范围大小也不同。l在5种基本数据类型中:字符型用于处理ASCII码字符整型用于处理整型数据浮点型用于处理带小数的实数布尔型用于表示的逻辑的true和false无值型主要用于处理函数和指针4第4页,共77页,编辑于2022年,星期日2.1.2 类型修饰符C+的类型修饰符包括:signed 有符号型unsigned无符号型short短型long长型5第5页,共77页,编辑于2022年,星期日l在基本数据类型(除void类型外)前加上类型修饰符后,C+的基本数据类型如表2.2所示:6第6页,共77页,编辑于2022年,星期日l说明:(1)表中带 的部分表示是可以省略的,如short int可以写为short int或简写为short,二者的含义是相同的。(2)4种修饰符都可以用来修饰整型和字符型。用signed修饰的类型的值可以为正数或负数,用unsigned修饰的类型的值只能为正数。(3)用short修饰的类型的值一定不大于对应的整数,用long修饰的类型的值一定不小于对应的整数。7第7页,共77页,编辑于2022年,星期日2.2 常量和变量l数据可分为常量和变量两大类。常量(Constant):l是指在程序的执行过程中其值不会发生改变的数据。变量(Variable):l是指在程序执行过程中其值可以被改变的数据。8第8页,共77页,编辑于2022年,星期日2.2.1 常量l常量按照不同的数据类型可以分为:字符型常量、整型常量、浮点型常量以及字符串常量等。l程序是根据程序中常量的书写格式来区分它是属于哪种类型的常量。9第9页,共77页,编辑于2022年,星期日1整型常量l由于整数类型可分为int,short int等类别,因此整型常量也可分为以上类别。注意:在程序中书写整型常量时没有小数部分。在程序中,用户根据需要分别可以用十进制、八进制和十六进制的形式书写整型常量。(1)十进制格式:由数字)十进制格式:由数字0至至9和正、负号组成,书写时直接写出数字,和正、负号组成,书写时直接写出数字,如如123,516等。若为等。若为long int型的常量,需在常量后加一个字母型的常量,需在常量后加一个字母l或或L,例,例如如123L。10第10页,共77页,编辑于2022年,星期日(2)八进制格式:以0开头的数字(0至7)序列,如011,010007,0177777等。如011表示八进制数11,即(11)8,它相当于十进制数9。(3)十六进制格式:以)十六进制格式:以0 x或或0X开头的数字(数字开头的数字(数字0至至9、字母、字母a至至f)序列,如)序列,如0 x11,0 x78AC,0 xFFFF等。如等。如0 x11表示十六进制数表示十六进制数11,即,即(11)16,它相当于十进制数,它相当于十进制数17。11第11页,共77页,编辑于2022年,星期日2浮点型常量l浮点型常量可以用十进制小数形式或指数形式表示。注意:在程序中无论采用十进制小数形式还是指数形式,在内存中都是以指数形式存储的。12第12页,共77页,编辑于2022年,星期日(1)十进制小数形式:一般由整数部分和小数部分组成,也可省略其一,但不能二者皆省。例如:0.345也可表示为.345,45.0也可表示为45.;如果在实数的数字后面加上字母F或f,表示此数为单精度浮点数;如果加上字母L或l,表示此数为长双精度数。13第13页,共77页,编辑于2022年,星期日(2)指数形式:也就是通常所讲的科学记数法的描述形式。数符 数字部分 指数部分其中,数字分部分和指数部分缺一不可,指数部分以其中,数字分部分和指数部分缺一不可,指数部分以E或或e开始,开始,E或或e表示后面的数是以表示后面的数是以10为底的幂为底的幂.如如:10-4可表示为可表示为1e-4,但不能写成,但不能写成e-4,如如:-0.00726可以表示为可以表示为-0.726e-2,-7.26e-3,-72.6e-4等形式,它们所起的作用是相同的。等形式,它们所起的作用是相同的。14第14页,共77页,编辑于2022年,星期日3字符型常量字符型常量分为普通的字符常量和转义字符常量。(1)普通的字符常量 用一对单引号括起来的一个字符就是字符型常量,如s,Y都是合法的字符常量。15第15页,共77页,编辑于2022年,星期日注意:单引号只是字符与其他部分的分隔符,不是字符的一部分,并单引号只是字符与其他部分的分隔符,不是字符的一部分,并且不能用双引号代替单引号,如且不能用双引号代替单引号,如 YY不代表字符常量。不代表字符常量。字符常量只能包括一个字符,如字符常量只能包括一个字符,如 abab 是不合法的。是不合法的。在单引号中的字符不能是单引号或反斜杠,在单引号中的字符不能是单引号或反斜杠,和和都是非法的字都是非法的字符常量符常量字符常量区分大小写,如字符常量区分大小写,如YY和和yy表示两个不同的字符常量。表示两个不同的字符常量。16第16页,共77页,编辑于2022年,星期日(2)转义字符常量l在C+中,有一些字符用于控制输出或编译系统本身保留,无法作为字符常量来表示。lC+规定,采用反斜杠后跟一个字母来代表一个控制字符,反斜杠后的字符不再作原有的字符使用,而具有新的含义。转义字符在屏幕上是不能显示的。C+中常用的转义字符如表2.3所示。17第17页,共77页,编辑于2022年,星期日4字符串常量l用一对双引号括起来的一个或多个字符的序列称为字符串常量或字符串。l字符串以双引号为定界符,双引号不作为字符串的一部分,可以将转移字符加入字符串,转义字符占用一个字节。如:Hello A Good Morning!I sayn 都是合法的字符串常量。18第18页,共77页,编辑于2022年,星期日l字符串中的字符的个数称为该字符串的长度。l字符串常量要用字符数组来存放。l在存储时,系统自动在字符串的末尾加以字符串结束标志,即转义字符 0 。如 Hello 在内存中占用6个字节,I sayn 占用7个字节。19第19页,共77页,编辑于2022年,星期日l字符串可以写在多行上,必须用续行符反斜线 表示下一行字符是这一行字符的延续。例如:coutThis is a book.;该语句输出结果为:This is a book.20第20页,共77页,编辑于2022年,星期日5符号常量l常量也可用一个标识符来表示,称为符号常量。l符号常量的一般定义格式如下:#define 符号名 常量值例如:#define MAX 30 /不是语句,末尾不加分号main().此处,#define 语句定义MAX为30,凡在程序中出现MAX的地方都代表30,它可与常量进行运算。21第21页,共77页,编辑于2022年,星期日l使用符号常量可以使得符号的含义更加清楚,在需要改变常量值时,只需改变第一行中的常量值即可,程序中所有的MAX的值都会相应地改变。注意:(1)它不同于变量,在其作用域内其值不能改变和赋值。上例中如再用MAX=40;这一语句进行赋值则是错误的。(2)符号常量名一般用大写,而变量名用小写,以示区别。22第22页,共77页,编辑于2022年,星期日程序中常量的表示方法 在程序中的常量有以下3种表示方法。(1)在程序中直接写入常量例如:-200,3.4E-10,A,1,0 x120,045,5.35,1000lint i;char s;float f;i=20;s=a;f=2.0;23第23页,共77页,编辑于2022年,星期日(2)利用#define定义宏常量#define 宏名 常数例如:#define PI 3.14s=2*PI*r;24第24页,共77页,编辑于2022年,星期日(3)利用const定义正规常数 const 数据类型标识符 常数名=常量值;l说明:const必须放在被修饰类型符和类型名的前面。数据类型是一个可选项,用来指定常数值的数据类型,如果省略了该数据类型,那么,C+编译程序认为它是int类型。25第25页,共77页,编辑于2022年,星期日2.2.2 变量变量1变量的概念l变量是用于保存程序运算过程中所需要的原始数据、中间运算结果和最终结果的其值可以改变的量。2定义变量l每一变量都要先定义、后使用;l定义变量3种格式:修饰符 数据类型标识符 变量名列表;修饰符 数据类型标识符 变量名=初始化值;修饰符 数据类型标识符 变量名1=初始值1,变量名2=初始值2,;26第26页,共77页,编辑于2022年,星期日说明:(1)此处的类型标识符表示要定义的变量所属的数据类型,它可以是前面介绍的的数据类型标识符中的一种。例如int,double,bool等。(2)变量名是每个变量的名称,由用户自己命名,要遵循命名规则。(3)定义变量时,可以在类型前面加上一些修饰符来表示这些变量的使用方法。l C+中常用的变量定义修饰符如表2.4所示。27第27页,共77页,编辑于2022年,星期日如:char a,b;/定义字符型变量aextern int c;/c在其它函数中已经定义,这里只 是用到该变量,对该变量进行声明static int i=1000;/定义静态整型变量i,i的初始值为1000float a=2,b=3,c;/定义变量 a,b,c,且a、b的初始值分别为2,328第28页,共77页,编辑于2022年,星期日3变量的初始化l在定义变量的同时可以给变量赋一个初值,称为变量的初始化。l方法是在定义变量时,在变量名的后面写上“=初值”。29第29页,共77页,编辑于2022年,星期日例如:int a=3,b=3*(2+9);在对多个变量赋于同一初值时,必须分别指定。应当写成:int a=3,b=3,c=3;或者:int a,b,c=3;a=b=c;而不能写成:int a=b=c=3;30第30页,共77页,编辑于2022年,星期日4定义变量的位置变量的定义一般可有以下3种位置。(1)在函数体内部在函数体内部定义的变量称为局部变量,这种局部变量只在进入定义它的函数体时起作用,离开该函数体后该变量就消失(被释放),即不再起作用。因此,不同函数体内部可以定义相同名称的变量,而互不干扰。31第31页,共77页,编辑于2022年,星期日如:void func1(void)int y;y=2;void func2(void)int y;y=-100;本例中两个函数体内部都分别定义了变量y,但它们都只能在各自的函数体内起作用,互不干扰,都是局部变量。32第32页,共77页,编辑于2022年,星期日(2)形式参数当定义一个有参函数时,函数名后面括号内的变量统称为形式参数。int is_in(char*a,char b)while(*a)if(*a=b)return 1;else a+;return 0;本例中函数is_in()后面括号内的变量a和b是该函数的形式参数,它们都只能在该函数体内起作用,是该函数的局部变量。33第33页,共77页,编辑于2022年,星期日(3)全局变量l在所有函数体的外部定义的变量,其作用范围是整个程序,并在整个程序运行期间有效。l【例2-1】全局变量的使用。34第34页,共77页,编辑于2022年,星期日2.3 运算符和表达式2.3.1 算术运算符和算术表达式l算术运算符就是对数据进行算术运算的运算符。l如:加、减、乘、除等,是在程序中使用最多的一种运算符,C+的算术运算符如表2.5所示。35第35页,共77页,编辑于2022年,星期日1自增和自减运算符自增(+)和自减(-)的作用是使变量的值增1或减1。l运算符(+)和(-)既可放在变量的前面,也可放在变量的后面,但作用的效果是不同的,如表2.6所示。【例2-2】自增和自减运算符的使用。36第36页,共77页,编辑于2022年,星期日2数据类型转换lC+中类型转换有两种方式,即隐式类型转换和显式类型转换。(1)隐式类型转换在表达式中经常会有不同类型的数据进行运算,此时编译器会自动将它们转换为相同类型后再进行运算,赋值时将所赋值转换成被赋值变量类型,这种由编译器自动完成的类型转换称为隐式类型转换。隐式类型转换是按照从低到高的顺序进行的,如图2-2所示。37第37页,共77页,编辑于2022年,星期日低高38第38页,共77页,编辑于2022年,星期日例如:e=5*b+3.14-3L/2.0的顺算顺序如下:进行5*b的运算,先将b转换成整数98,运算结果为490。进行490+3.14的运算,将490和3.14转换成double型,结果为493.14。计算3L/2.0,首先转换为double型,结果为1.5。进行493.14-1.5的运算,结果为double型的491.64。39第39页,共77页,编辑于2022年,星期日(2)显式类型转换l显式类型转换,也称为强制类型转换,指编程人员利用类型转换运算符显式地将某一数据从一种数据类型转换为另一种数据类型。类型名(表达式)或 (类型名)表达式l【例2-3】显式类型转换。40第40页,共77页,编辑于2022年,星期日2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符的用法格式为:变量名 赋值运算符 常量、变量或表达式说明:被赋值的目标即赋值运算符左边的量必须是变量,而不能是常量或表达式。也就是说,常量或表达式是不能被赋值的。lC+中的赋值运算符如表2.7所示。41第41页,共77页,编辑于2022年,星期日(3)意区分赋值运算符“=”与数学上的“等号”int x,y;/定义变量x,y为int类型变量x=10;/将变量x赋值为10 x=x+20;/将30赋给变量xy=x+;/将x的值赋给y(值为30),变量x值变成31。y-=x+5;/等价于y=y-(x+5);表达式值为-6,y值为-6x%=y+10 /等价于x=x%(y+10);表达式为3,y值为342第42页,共77页,编辑于2022年,星期日2.3.3 sizeof运算符运算符lsizeof运算符的功能是求某一数据类型或某一变量在内存中所占空间的字节数。sizeof(变量名或数据类型)或 sizeof 变量名或数据类型lsizeof运算符的应用如【例2-4】所示。43第43页,共77页,编辑于2022年,星期日2.3.4 关系运算符和关系表达式 l关系运算符就是对两个量之间进行比较,判断比较结果的运算符。C+的关系运算符如表2.8所示。44第44页,共77页,编辑于2022年,星期日l由关系运算符将两个表达式连接形成的运算式子称为关系表达式,一个关系表达式的值是一个逻辑值。表达式 关系运算符 表达式l其中:表达式可以是算数表达式、关系表达式、逻辑表达式、赋值表达式或字符表达式。当关系表达式成立时,其值为真(1);当关系表达式不成立时,其值为假(0)。45第45页,共77页,编辑于2022年,星期日l假设a=1,b=20,c=3,则:ab?a:b的值为4。50第50页,共77页,编辑于2022年,星期日2.3.7 位运算符 1位运算符及其运算规则l位是计算机表示信息的最小单位,一般用0和1表示。l位运算符是指能进行二进制位运算的运算符。l位运算符的运算对象必须为整数。C+提供的位运算符如表2.11所示。51第51页,共77页,编辑于2022年,星期日位运算的运算规则为:(1)按位与&:两个运算量相应的位都是1,则该位的结果值为1,否则为0。(2)按位或|:两个运算量相应的位只要有一个是1,则该位的结果值为1,否则为0。(3)按位异或:两个运算量相应的位不同,则该位的结果值为1,否则为0。52第52页,共77页,编辑于2022年,星期日(4)按位取反:将运算量的每一位取反,即将1变0,0变1。(5)按位左移:将操作数中的每一位向左移动指定的位数,移出的位被舍弃,空出的位补0。(6)按位右移算术运算符关系运算符逻辑运算符条件运算符赋值运算符C+中,对表达式求值时,先按优先级确定运算次序,再将优先级相同的运算符按结合性进行运算。57第57页,共77页,编辑于2022年,星期日2.4 数据的输入与输出l在C+语言中,数据的输入和结果的输出是分别使用系统所提供的输入流对象cin和输出流对象cout来完成的。l在使用过程中,只要在程序的开头嵌入相应的头文件“iostream.h”即可。58第58页,共77页,编辑于2022年,星期日2.4.1 数据的输出coutl输出流对象cout输出数据语句的一般格式为:cout数据1数据2数据n;l说明:(1)cout是系统预定义的一个标准输出设备(一般代表显示器);“”是输出操作符,用于向cout输出流中插入数据(2)cout的作用是向标准输出设备上输出数据,被输出的数据可以是常量、已有值的变量或是一个表达式。l【例2-5】cout语句的使用59第59页,共77页,编辑于2022年,星期日l(3)可以在cout输出流中插入C+中的转义字符。如:lcout the value of a:n;lcouta;l表示输出完字符串Input the value of a:后,在下一行输出变量a的值。l(4)可以将多个被输出的数据写在一个cout中,各输出项间用“”操作符隔开即可,但要注意cout首先按从右向左的顺序计算出各输出项的值,然后再输出各项的值。如:cout value of a:a value of b:b The result is:sqrt(a*a+b*b);l再如:设变量i的值为10,则couti,i+,i+;的输出结果为:12,11,10l(5)一个cout语句也可拆成若干行书写,但注意语句结束符“;”只能写在最后一行上。如:对于上面的语句也可写成如下形式:60第60页,共77页,编辑于2022年,星期日lcout value of a:/注意行末无分号l al value of b:l bl The result is:l sqrt(a*a+b*b);/在此处书写分号l(6)在cout中,实现输出数据换行功能的方法:既可使用转义字符“n”,也可使用表示行结束的流操作子endl。如:lcoutThis is first Line.nThis is second line.;l上面语句可等价地写为:lcoutThis is first Line.endlThis is second line.;61第61页,共77页,编辑于2022年,星期日l(7)在cout中还可以使用流控制符控制数据的输出格式,但使用这些流控制符时,要在程序的头上嵌入头文件#include。常用的流控制符及其功能如表2.14所示。l表2.14 I/O流的常用控制符控制符功能dec十进制数输出hex十六进制数输出oct八进制数输出setfill(c)在给定的输出域宽度内填充字符csetprecision(n)设显示小数精度为n位setw(n)设域宽为n个字符setiosflags(ios:fixed)固定的浮点显示62第62页,共77页,编辑于2022年,星期日setiosflags(ios:scientific)指数显示setiosflags(ios:left)左对齐setiosflags(ios:right)右对齐setiosflags(ios:skipws)忽略前导空白setiosflags(ios:uppercase)十六进制数大写输出setiosflags(ios:lowercase)十六进制数小写输出setiosflags(ios:showbase)按十六八进制输出数据时,前面显示前导符0 x;63第63页,共77页,编辑于2022年,星期日l 设置域宽:所谓域宽就是被输出数据所占的输出宽度(单位是字符数)。设置域宽可以使用流控制符setw(n)和cout的方法cout.width(n)l 其中n为正整数,表示域宽。但是,cout.width(n)和setw(n)二者都只对下一个被输出的数据有作用,若一个输出语句内有多个被输出的数据,而要保持一定格式域宽时,需要在每一输出数据前加上cout.width(n)或setw(n)。l 此外,当参数n的值比实际被输出数据的宽度大时,则在给定的域宽内,数据靠右输出,不足部分自动填充空格符;若被输出数据的实际宽度比n值大时,则数据所占的实际位数输出数据,设置域宽的参数n不再起作用。64第64页,共77页,编辑于2022年,星期日l【例例2-6】cout流控制符setw的使用。l#include l#include lvoid main()lint a=21,b=999;l coutsetw(3)asetw(4)asetw(5)aendl;l coutsetw(3)bsetw(4)bsetw(5)bendl;l coutsetw(3)a+bsetw(4)a+bsetw(5)a+bendl;l其输出结果是:l21 21 21 /程序中第一个cout的输出结果l999999 999 /程序中第二个cout的输出结果l102010201020 /程序中第三个cout的输出结果65第65页,共77页,编辑于2022年,星期日l 设置域内填充字符:在默认情况下,当被输出的数据未占满域宽时,会自动在域内靠左边填充相应个数的空格符。但我们也可以设置在域内填充其他的字符,方法是利用cout的fill方法cout.fill(c)或setfill(c)。cout.fill(c)上和 setfill(c)可以对所有被输出的数据起作用。l【例例2-7】在例2-6的基础上增加域内填充字符的功能。l#include“iostream.h”l#include“iomanip.h”lvoid main()lint a=21,b=999;l cout.fill(#);/设置域内填充字符为#字符l coutsetw(3)asetw(4)asetw(5)aendl;lcoutsetw(3)bsetw(4)bsetw(5)bendl;lcout.fill(%);/将域内填充字符改为%字符 coutsetw(3)a+bsetw(4)a+bsetw(5)a+bendl;l66第66页,共77页,编辑于2022年,星期日l其输出结果是:l#21#21#21 /程序中第一个cout的输出结果,未占满域宽的部分填充#字符。l999#999#999 /程序中第二个cout的输出结果l10201020%1020 /程序中第三个cout的输出结果,未占满 域宽的部分填充%字符。l 当采用流控制符设置填充字符时,上面程序代码也可等价地改为:l#include l#include lvoid main()linta=21,b=999;lcoutsetw(3)setfill(#)asetw(4)asetw(5)alendl;lcoutsetw(3)bsetw(4)bsetw(5)bendl;lcoutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)la+bendl;l67第67页,共77页,编辑于2022年,星期日 设置输出数据的进位计数制:在默认情况下,被输出的数据按十进制格式输出。设置输出数据的进位计数制:在默认情况下,被输出的数据按十进制格式输出。但可以使用流控制符但可以使用流控制符hexhex和和octoct控制数据的输出格式为十六进制和八进制,一旦控制数据的输出格式为十六进制和八进制,一旦设置成某种进位计数制后,数据的输出就以该种数制为主,可利用流控制符设置成某种进位计数制后,数据的输出就以该种数制为主,可利用流控制符decdec将数制重新成十进制。将数制重新成十进制。【例例2-8】在例】在例2-72-7的基础上增加设置输出数据进位计数制的功能。的基础上增加设置输出数据进位计数制的功能。#include#include void main()int a=21,b=999;/设置以十六制格式输出数据设置以十六制格式输出数据coutsetw(3)setfill(#)hexasetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;/设设置置以以八八制制格式输出数据格式输出数据coutsetw(3)setfill(#)octasetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;/设置以十制格式输出数据设置以十制格式输出数据coutsetw(3)setfill(#)decasetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;68第68页,共77页,编辑于2022年,星期日l程序的输出结果为:l#15#15#15 /以十六进制格式输出数据l3e7#3e7#3e7l3fc%3fc%3fcl#25#25#25 /以八进制格式输出数据l17471747#1747l17741774%1774l#21#21#21 /以十进制格式输出数据l999#999#999l10201020%102069第69页,共77页,编辑于2022年,星期日l 设置浮点数的输出格式:对于浮点数,既可以用小数格式输出,也可以用指数格式输出。这可以分别通过setiosflags(ios:fixed)和setiosflags(ios:scientific)来控制。l【例例2-9】已知圆的半径r=6.779,计算并输出圆的周长和面积,要求分别用指数和小数两种格式输出。l#include l#include lvoid main()l const double pi=3.14159;l double r=6.779,c,s;l c=2.0*pi*r;/计算圆的周长l s=pi*r*r;/计算圆的面积70第70页,共77页,编辑于2022年,星期日l/以指数格式输出圆的面积和周长l cout圆的周长(指数)为:setiosflags(ios:scientific)cendl;l cout圆的面积(指数)为:sendl;l/以小数输出圆的面积和周长l cout圆的周长(小数)为:setiosflags(ios:fixed)cendl;l cout圆的面积(小数)为:setiosflags(ios:fixed)s变量名1变量名2变量名n;l说明:(1)cin是系统预定义的一个标准输入设备(一般代表键盘);“”是输入操作符,用于从cin输入流中取得数据,并将取得的数据传送给其后的变量,从而完成输入数据的功能。72第72页,共77页,编辑于2022年,星期日(2)cin的功能是:当程序在运行过程中执行到cin时,程序会暂停执行并等待用户从键盘输入相应数目的数据,用户输入完数据并回车后,cin从输入流中取得相应的数据并传送给其后的变量。(3)“”操作符后除了变量名外不得有其他数字、字符串或字符,否则系统会报错。(4)cin后面所跟的变量可为任何数据类型,若变量为整型数据类型,则在程序运行过程中从键盘输入数据时,可分别按十进制、八进制或十六进制格式输入该整数。73第73页,共77页,编辑于2022年,星期日(5)当程序中用cin输入数据时,最好在该语句之前用cout输出一个需要输入数据的提示信息,以正确引导和提示用户输入正确的数据。(6)当一个cin后面同时跟有多个变量时,则用户输入数据的个数应与变量的个数相同,各数据之间用一个或多个空格隔开,输入完毕后按回车键;或者,每输入一个数据按回车键也可。74第74页,共77页,编辑于2022年,星期日2.5 综合实例l【例2-10】运算符和表达式的运用。75第75页,共77页,编辑于2022年,星期日小结l程序的核心任务是对数据进行加工和处理。l在C+中,任何数据都是有类型,不同数据类型所占的存储单元的大小不同,因而表示数的范围大小也不同。l另外,根据数据在程序运行过程中是否发生变化将数据分为常量和变量,常量的值固定不变且数据类型是由用户在程序中的书写格式来决定;而变量则必须在程序中进行明确的定义,即定义其名称和类型,在程序中,任何变量都要遵循先定义后使用的规则。76第76页,共77页,编辑于2022年,星期日小结lC+为每种运算符规定了一个运算的优先级和结合特性,以控制各种运算的顺序,利用圆括号可以改变表达式的运算顺序。l当在表达式中进行运算的数据类型不同时,C+将自动进行隐式转换。当然,用户也可利用强制类型转换的方法进行转换。lC+源程序中数据的输入和输出通常利用输入/输出流对象cin和cout来完成,要求在程序的开头需要嵌入头文件iostream.h。77第77页,共77页,编辑于2022年,星期日