资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,C+,语言基础,1,.,C+,程序实例,1,#include,using namespace std;,int main(),coutHello!n;,coutWelcome to C+!n;,return 0;,运行结果,:,Hello!,Welcome to C+,!,2,.,C+,字符集,C+,字符集是,C+,程序中可以使用的基本符号,大小写的英文字母:,A,Z,,,a,z,数字字符:,0,9,特殊字符:例如,空格,!#%&*_,(,下划线,),+=-/,“,;.,(),3,.,C+,词法记号(类似单词),关键字,C+,预定义的单词,标识符,程序员声明的单词,它命名程序正文中的一些实体,文字,在程序中直接使用符号表示的数据,操作符,用于实现各种运算的符号,分隔符,如,;,用于分隔各个词法记号或程序正文,空白符,空格、制表符(,TAB,键产生的字符)、换行符(,Enter,键所产生的字符)和,注释,的总称,4,.,C+,字符集类似英语的,字母,或者汉语的,笔画,。,C+,的词法符号类似英语的,单词,或汉语的,字,。,C+,程序类似英语的,十四行诗,或者汉语的,诗词歌赋,。,C+,字符集、词法符号、程序关系,5,.,C+,词法记号,关键字,关键字又称保留字,是,C+,预定义的单词,关键字是,C+,中具有固定意义的一批英文单词或其缩写,有专门的用途,用在固定的位置,,不能移作它用,。,C+,中共有,74,个关键字,/,保留字,每一个都有自己的故事。,6,.,C+,常用关键字及分类,数据类型说明符与修饰符,bool char wchar_t class const double enum float int long short signed struct union unsigned void volatile,存储类型说明符,auto extern inline register static,访问说明符,friend private protected public,其它说明符,asm operator template this typedef virtual,语句与标号,break case catch continue default do else for goto if return switch throw try while,运算符及逻辑值,delete false new sizeof true,7,.,C+,词法记号,标识符,构成规则:,以大写字母、小写字母或下划线,(_),开始,由大写字母、小写字母、下划线,(_),或数字,09,组成。,注意事项,标识符区分大小写,标识符长度任意(取决于操作系统),提倡使用“见名知义”的标识符,避免使用系统已定义的标识符(系统保留字),8,.,例,:,判断下面哪些是合法的标识符:,MyFile,94Salary,Salary94,Salary 94,amount,$amount,void,f3.5,Num_of_Student,9,.,C+,程序实例,2,#,include,using namespace std,;,int main,(),const int,PRICE=30;,int,num,total;,float,v,r,h;,num=10;,total=num*PRICE;,couttotalendl;,r=2.5;,h=3.2;,v=3.14159*r*r*h;,coutvendl;,return 0;,10,.,数据类型,数据类型告诉我们存储单元中的数据的形式,及可以对存储单元中的数据执行哪些操作。,C+,的数据类型可以分为,基本类型,、,构造类型,、,指针类型,、,空类型(,void,),四个大类。,11,.,基本数据类型,数据类型,关键字,字节数,数值范围,字符型,char,1,-128,127,整 型,int,4,-2147483648,2147483647,单精度浮点型,float,4,(3.4E-38,3.4E38),双精度符点型,double,8,(1.7E-308,1.7E308,布尔型,bool,1,true,false,12,.,类型修饰符,C+,还允许在基本数据类型前加上类型修饰符,来更具体地表示数据类型。,C+,的类型修饰符包括:,signed,有符号,unsigned,无符号,short,短型,long,长型,13,.,数据类型标识符,字节数,数值范围,常量写法举例,Char,1,-128,127,A,0,n,signed char,1,-128,127,56,unsigned char,1,0,255,100,short int,2,-32768,32767,100,signed short int,2,-32768,32767,-3456,unsigned short int,2,0,65535,0 xff,int,4,-2147483648,2147483647,1000,signed int,4,-2147483648,2147483647,-123456,unsigned int,4,0,4294967295,0 xffff,14,.,数据类型标识符,字节数,数值范围,常量写法举例,long int,4,-2147483648,2147483647,-123456,long long,8,-,263,263-1,-3246,unsigned long int,4,0,4294967295,123456,float,4,(3.4E-38,3.4E38),2.35,-53.231,,,3E-2,Double,8,(1.7E-308,1.7E308),12.354,-2.5E10,long double,10,(1.2E-4932,1.2E4932),8.5E-300,15,.,说明,:,(,1,)表中带,的部分表示是可以省略的,如,short int,可以写为,short int,或简写为,short,,二者的含义是相同的。,(,2,),四种修饰符都可以用来修饰整型。,用,signed,修饰的类型的值可以为正数或负数,用,unsigned,修饰的类型的值只能为正数。,(,3,)用,short,修饰的类型,其值一定不大于对应的整数,用,long,修饰的类型,其值一定不小于对应的整数。,16,.,C+,的构造类型是基本类型的组合,包括数组、结构体和联合体等,指针类型是对基本类型或构造类型的地址进行操作的一种数据类型。,空类型,(void),是什么 也没有的一种特殊数据类型,仅用在有限的一些情况下,通常用作无返回值函数的返回类型。,有时也被归类到基本类型,17,.,常量,在,C+,语言中,数据分为常量和变量两大类。,由于程序中的数据是有类型的,所以常量和变量都是有类型之分的。,常量按照不同的数据类型可以分为:字符型常量、整型常量、浮点型常量,以及字符串常量等。,程序是根据程序中常量的书写格式来区分它是哪种类型常量的。,18,.,整型常量,在程序中书写整型常量时,没有小数部分。用户可根据需要分别可以用十进制、八进制和十六进制的形式书写:,十进制格式:由数字,0,至,9,和正、负号组成,书写时直接写出数字,如:,123,,,-516,,,+1000,等。,八进制格式:以数字,0,开头的数字(,0,至,7,)序列,,0111,,,010007,,,0177777,等。,十六进制格式:以,0 x,或,0X,开头的数字(数字,0,至,9,、字母,A,至,Z,)序列,如,0 x78AC,,,0 xFFFF,等。,19,.,浮点型常量,只能用十进制来表示。可以用小数或指数形式表示,不分单精度和双精度类型。如:,34.5,,,.345,,,1.5e-3,20,.,字符型常量,(,1,)用一对单引号括起来的一个字符,单引号只是字符与其他部分的分割符,不是字符的一部分,并且,不能用双引号代替单引号。在单引号中的字符不能是单引号或反斜杠。如:,a,A,#,合法的字符常量,非法的字符常量,“,A”,不代表字符常量,(,2,)另一种表示字符常量的方法是使用转义字符。,C+,规定,采用反斜杠后跟一个字母来代表一个控制字符,具有新的含义。,21,.,C+,中常用的转义字符,转义字符,含义,ASCII,码值(十进制),a,响铃(,BEL,),7,b,退格(,BS,),8,n,换行(,LF,),10,r,回车(,CR,),13,t,水平制表(,HT,),9,v,垂直制表(,VT,),11,反斜杠,92,单引号,39,”,双引号,34,0,空格符(,NULL,),0,ddd,任意字符,3,位八进制数,xhh,任意字符,2,位十六进制数,22,.,字符串常量,用一对双引号括起来的一个或多个字符的序列称为字符串常量或字符串。字符串以双引号为定界符,双引号不作为字符串的一部分。如:,“,Hello,”,,,“,Good Morning!,”,,,“,I say:,“,Goodbye!,”,字符串中的字符数称为该字符串的长度,在存储时,系统自动在字符串的末尾加以字符串结束标志,即转义字符,0,。,23,.,符号常量,常量也可用一个标识符来代表,称为符号常量。如:,#define PRICE 30,int main(),cout PRICEendl;return 0;,使用符号常量应,注意,以下几个方面:,(,1,)它不同于变量,在作用域内其值不能改变和赋值。,如:在上例中如再用,PRICE=40;,这一语句进行赋值则是错误的。,(,2,)符号常量名一般用大写,而变量名用小写,以示区别。,24,.,在程序中的常量有以下三种表示方法:,(,1,)在程序中直接写入常量(词法记号中的,文字,),如:,-200,,,3.4E-10,A,,,1,,,0 x120,,,045,,,5.35,,,1000l,(,2,)利用,#define,定义宏常量(,符号常量,),一般格式:,#define,宏名 常数,如:,#define PI 3.14,s=2*PI*r;,程序中常量的表示方法,25,.,(,3,)利用,const,定义正规常数,(,常变量,),格式:,const,数据类型标识符 常量名,=,常量值;,说明,:,const,必须放在被修饰类型符和类型名前面,数据类型是一个可选项,用来指定常数值的数据类型,如果省略了该数据类型,那么编译程序认为它是,int,类型,如:,const int a=10;,表示定义了一个初始值为,10,的整型常量,它在程序中不可改变,但可用于表达式的计算中,26,.,1,变量的概念及特点,程序中的变量是用于保存程序运算过程中所需要的原始数据、中间运算结果和最终结果的,因此,,每一变量就相当于一个容器,对应着计算机内存中的某一块存储单元。,变量的值具有以下两个特点:,(,1,),“,一充即无,”,:即将一个新数据存放到一个变量中时,该变量中原来的值消失,变量的值变成了新值。,如:执行完语句,int i;i=10;i=20;,后,i,的值为,20,,而不是,10,。,变 量,27,.,(,2,),“,取之不尽,”,:,可将某个变量的值与程序中的其它数据进行各种运算,在运算过程中,如果没有改变该变量的值时,那么,不管用该变量的值进行多少次运算,其值始终保持不变。,如:语句,int i,j,k;i=10;j=i+10;k=i+j*5;,其中,,i,的值可无限制地多次使用,但它的值始终保持值,10,,因为在程序中没有改变变量,i,的值。,28,.,2,定义变量,(,变量声明,),程序中的每一变量,都要先定义,后使用,。,定义变量一般有以下三种格式:,数据类型标识符 变量名;,数据类型标识符 变量名,=,初始化值;,数据类型标识符 变量名,1=,初始值,1,,变量名,2=,初始值,2,,,;,29,.,如:,char a;,/,定义字符型变量,a,int i=1000;/,定义整型变量,i,,,i,的初始值为,1000,;,float a=2,b=3,c;,/*,定义浮点型变量,a,、,b,、,c,且,a,、,b,的初始值分别为,2,、,3,。,*,/,30,.,3,定义变量的位置,在程序中的不同位置采用不同的变量定义方式,决定了该变量具有不同的特点。变量的定义一般可有以下三种位置:,(,1,)在函数体内部,在函数体内部定义的变量称为,局部变量,,这种局部变量只在进入定义它的函数体时起作用,离开该函数体后该变量就消失(被释放),即不再起作用。因此,不同函数体内部可以定义相同名称的变量,而互不干扰。如:,31,.,void func1(),int y;,y=2;,void func2(),int y;,y=-100;,32,.,(,2,)形式参数,当定义一个有参函数时,函数名后面括号内的变量,统称为形式参数。如:,int is_in(char*a,char b),while(*a),if(*a=b),return 1;,else,a+;,return 0;,33,.,(,3,)全局变量:在所有函数体外部定义的变量,其作用范围是整个程序,并在整个程序运行期间有效。如:,int count;/,定义,count,变量是全局变量,void func1();,void func2();,int main(),count=10;,func1();,34,.,void func1(),int temp;,temp=count;,func2();,printf(“count is%d”,count);/,输出,10,void func2(),int count;,for(count=1;counta,变量名一般要以小写字母开头,且见名知义。,36,.,算术运算符和算术表达式,算术运算符就是对数据进行算术运算,如:加、减、乘、除等,是在程序中使用最多的一种运算符,,C+,的算术运算符如表所示。,运算符和表达式,37,.,运算符,功能,数据类型,例子,-,负号,数值,x=-y;,+,加,数值,z=x+y;,-,减,数值,z=x-y;,*,乘,数值,z=x*y,/,除,数值,z=x/y;,%,求余,整数,z=x%y,+,自加,数值,z+,或,+z,C+,的算术运算符,-,自减,数值,z-,或,-z,38,.,(1+x)/(3*x),(2*x-3)*x+2)*x)-5,3.14*sqrt(r),b*b-4.0*a*c,39,.,算术运算符注意事项,算术运算符,/,有整除和一般除法两种功能。如果两个操作数都是整数,,/,的功能就是整除,否则就是一般除法。例如:,3/2=1,3/2.0=1.5,3.0/2=1.5,a+,与,+a,(,a-,与,-a,),a+,的功能是:,a,的值增,1,,,a+,的值是,a,增加前的值;,+a,的功能是:,a,的值增,1,,,+a,的值是,a,增加后的值;,+a,可以用作左值,即能放在赋值号的左边。,40,.,赋值运算符和赋值表达式,赋值运算符的功能将某个数据的值赋给某个变量。,格式:变量名 赋值运算符 表达式,说明:,(,1,)被赋值的目标,即赋值运算符左边的量必须是变量,而不能是常量或表达式。,41,.,(,2,),C+,中的赋值运算符表,(,3,),要注意区分赋值运算符,“,=,”,与数学上的,“,等号,”,间的区别,赋值运算符,例子,等价形式,=,x=x+y,x=x+y,+=,x+=y+z,x=x+(y+z),-=,x-=y+z,x=x-(y+z),*=,x*=y+z,x=x*(y+z),/=,x/=y+z,x=x/(y+z),%=,x%=y+z,x=x%(y+z),42,.,关系运算符和关系表达式,关系运算符就是对两个量之间进行比较的运算符。,关系运算符,含义,例子,10,=,小于或等于,(x+y)*2,大于,x+yz,=,大于或等于,x-y=a*b+2,=,等于,x+y=a+b,!=,不等于,x-y!=0,43,.,由关系运算符将两个表达式连接形成的运算式子是关系表达式,一个关系表达式的值是一个逻辑值,当为真时,值为,1,,为假时,值为,0,。,如:假设,a=1,,,b=20,,,c=3,,则,a10),&,逻辑与,(i1)&(ic),的值为,1,(真)。,46,.,(,2,)在逻辑表达式的求值过程中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符。,a&b&c,只有,a,为真时,才需要判别,b,的值,只有,a,和,b,的值都为真时才需要判别,c,的值。如:,int i=10;,则表达式,i&(i=0)&(+i),的值为,0,(假),该表达式运算结束后,变量,i,的值为,0,,而不是,1,。,47,.,a|b|c,只要,a,为真,就不必须判断,b,和,c,;只有,a,为假,才判别,b,;,a,和,b,都为假才判别,c,。如:,int i=1,j;,则表达式,i+|i+|i+,的值为,1,(真),运算结束后,变量,i,的值为,2,,而不是,4,。,48,.,int n=3,m=6;,if(n4)&(m+10),cout“m should not changed.n”;,cout“m=“mendl;,49,.,对于数学上的表示多个数据间进行比较的表达式,在,C+,中要拆写成多个条件并用逻辑运算符连接形成一个逻辑表达式。如:在数学上,要表示一个变量,a,的值处于,-1,和,-9,之间时,可以用,-9a-9)&(a-1),,而不能写成,-9a-1,。因为,假设变量,a,当前的值为,-5,,它的值确实处在,-1,和,-9,之间,但在,C+,语言中求,-9a-1,时,从左向右进行计算,先计算,-9a,,得,1,(真),此时该表达式可简化为,1-9)&(ab?a:b,的值为,4,51,.,条件表达式可以嵌套:,xy?”great than”,:,x=y?”equal to”,:”,less than”,它等价于:,(xy)?”great than”,:,(x=y)?”equal to”,:”,less than”),在条件表达式中,如果后面两个表达式的值类型相同,均为左值,则该条件表达式的值为左值表达式。,int x=5;,long a,b;,(x?a:b)=1;,(x?x:a)=2;/error:x,和,a,不同类型,(x=2?1:a)=3;/error:1,非左值,52,.,位运算符,1,位运算符及其运算规则,所谓位运算符是指能进行二进制位运算的运算符。,C+,提供的位运算符:,运算符,含义,例子,&,按位与,i&128,|,按位或,j|64,按位异或,j12,按位取反,j,按位左移,i,按位右移,j2,53,.,位运算的运算规则为:,(,1,)按位与,&,:两个运算量相应的位都是,1,,则该位的结果值为,1,,否则为,0,;,(,2,)按位或,|,:两个运算量相应的位只要有一个是,1,,则该位的结果值为,1,,否则为,0,;,(,3,)按位异或,:两个运算量相应的位不同,则该位的结果值为,1,,否则为,0,;,(,4,)按位取反,:将运算量的每一位取反。,54,.,(,5,)按位左移,:将操作数中的每一位向右移动指定的位数,移出的位被舍弃,空出的位补,0,或补符号位。,55,.,例子,如:,a=5,,,b=6,,则:,a 00000101 00000101,00000101,b&00000110,00000110,00000110 00000110,00000100 00000111 00000011,11111001,即:,a&b=4,,,a|b=7,,,ab=3,,,b=249,。,56,.,2,复合位运算符,位运算符与赋值运算符结合可以形成复合位运算符。,运算符,例子,等价形式,&=,x&=y+z,x=x&(y+z),|=,x|=x+2,x=x|(x+2),=,x=y,x=xy,=,x=y+z,x=x=,x=y+z,x=x(y+z),57,.,逗号运算符,逗号运算符的运算优先级是最低的。一般形式为:表达式,1,,表达式,2,,,,表达式,N,在计算逗号表达式的值时,按从左至右的顺序依次分别计算各个表达式的值,而整个逗号表达式的值和类型是由最右边的表达式决定。,如:有语句,int a=3,b=4,;则表达式,a+,b+,a+b,的值为,9,。,再如:设有,int i;,则表达式,i=1,i+=2?i+1:i+4,的值为,6,。,58,.,该运算符的功能是将某一数据从一种数据类型向另一种数据类型进行转换。其使用的一般形式:,数据类型标识符(表达式),(数据类型标识符)表达式,如:,int,i=2;,float,a,b,;,a=,float(i,);,/,将变量,i,的类型强制转换为浮点型,,并将其值赋给变量,a,b=(,float)i,;,/,将变量,i,的类型强制转换为浮点型,,并将其值赋给变量,b,强制类型转换运算符,59,.,每个运算符都有自己优先级和结合性。当一个表达式中包含多个运算符时,要确定运算的结果,必须首先确定运算的先后顺序,即运算符的优先级和结合性。,C+,中运算符的优先级和结合性如表,2.11,所示。,运算符的优先级与结合性,60,.,优先级,运算符,结合性,1,():,-.*-*,自左至右,2,!+-+-*&(,类型,)sizeof new delete,自右至左,3,*/%,自左至右,4,+-,自左至右,5,自左至右,6,=,自左至右,7,=!=,自左至右,8,&,自左至右,9,自左至右,10,|,自左至右,11,&,自左至右,12,|,自左至右,13,?:,自右至左,14,=+=-=*=/=%=&=|=,自右至左,15,自左至右,C+,中运算符的优先级和结合性,61,.,输出流对象输出数据的语句格式为:,cout,数据,1,数据,2,数据,n;,说明:,(,1,),cout,是系统预定义的一个标准输出设备(一般代表显示器);,“,”,是输出操作符,用于向,cout,输出流中插入数据。,(,2,),cout,的作用是向标准输出设备上输出数据,被输出的数据可以是常量、已有值的变量或是一个表达式。,数据的输出,cout,62,.,(,3,)可以在,cout,输出流中插入,C+,中的转义字符。如:,cout“Input the value of a:n;,couta;,表示输出完字符串,Input the value of a:,后,在下一行输出变量,a,的值。,(,4,)可以将多个被输出的数据写在一个,cout,中,各输出项间用,“,”,操作符隔开即可,但要注意,cout,首先按,从右向左的顺序,计算出各输出项的值,然后再输出各项的值。,63,.,如:,cout value of a:a value of b:b The result is:sqrt(a*a+b*b);,再如:设变量,i,的值为,10,,则,couti,i+,i+;,的输出结果为:,12,11,10,(,5,)一个,cout,语句也可拆成若干行书写,但注意语句结束符,“,;,”,只能写在最后一行上。如:对于上面的语句也可写成如下形式:,64,.,cout value of a:/,注意行末无分号,a,value of b:,b,The result is:,sqrt(a*a+b*b);/,在此处书写分号,65,.,(,6,)在,cout,中,实现输出数据换行功能的方法:既可使用转义字符,“,n,”,,也可使用表示行结束的流操作,endl,。,如:,coutThis is first Line.nThis is second line.;,上面语句可等价地写为:,coutThis is first Line.endlThis is second line.;,66,.,(,7,)在,cout,中还可以使用流控制符控制数据的输出格式。,I/O,流的常用控制符,控制符,功能,dec,十进制数输出,hex,十六进制数输出,oct,八进制数输出,setfill(c),在给定的输出域宽度内填充字符,c,setprecision(n),设显示小数精度为,n,位,setw(n),设域宽为,n,个字符,setiosflags(ios:fixed),固定的浮点显示,67,.,setiosflags(ios:scientific),指数显示,setiosflags(ios:left),左对齐,setiosflags(ios:right),右对齐,setiosflags(ios:skipws),忽略前导空白,setiosflags(ios:uppercase),十六进制数大写输出,setiosflags(ios:lowercase),十六进制数小写输出,setiosflags(ios:showbase),按十六八进制输出数据时,前面显示前导符,0 x,;,68,.,设置域宽:所谓域宽就是被输出数据所占的输出宽度(单位是字符数)。设置域宽可以使用流控制符,setw(n),和,cout,的方法,cout.width(n),其中,n,为正整数,表示域宽。但是,,cout.width(n),和,setw(n),二者都只对下一个被输出的数据有作用,若一个输出语句内有多个被输出的数据,而要保持一定格式域宽时,,需要在每一输出数据前加上,cout.width(n),或,setw(n),。,69,.,此外,当参数,n,的值比实际被输出数据的宽度大时,则在给定的域宽内,数据靠右输出,不足部分自动填充空格符;若被输出数据的实际宽度比,n,值大时,则数据所占的实际位数输出数据,设置域宽的参数,n,不再起作用。,70,.,例,cout,流控制符,setw,的使用。,#include,using namespace std;,int main(),int a=21,b=999;,coutsetw(3)asetw(4)asetw(5)aendl;,cout.width(3);,coutb;,cout.width(4);,coutb;,return 0;,71,.,其输出结果是:,21 21 21 /,程序中第一个,cout,的输,出结果,999999,72,.,设置域内填充字符:在默认情况下,当被输出的数据未占满域宽时,会自动在域内靠左边填充相应个数的空格符。但我们也可以设置在域内填充其他的字符,方法是利用,cout,的,fill,方法,cout.fill(c),或,setfill(c),。,cout.fill(c),上和,setfill(c),可以对所有被输出的数据起作用。,73,.,例,在例,2-2,的基础上增加域内填充字符的功能。,#include,using namespace std;,int main(),int a=21,b=999;,cout.fill(#);/,设置域内填充字符为,#,字符,coutsetw(3)asetw(4)a,setw(5)aendl;,74,.,coutsetw(3)bsetw(4),bsetw(5)bendl;,cout.fill(%);/,将域内填充字符改为,%,字符,coutsetw(3)a+bsetw(4),a+bsetw(5)a+bendl;,return 0;,75,.,其输出结果是:,#21#21#21 /,程序中第一个,cout,的输出结果,,未占满域宽的部分填充,#,字符。,999#999#999 /,程序中第二个,cout,的输出结果,10201020%1020 /,程序中第三个,cout,的输出结果,,未占满域宽的部分填充,%,字符。,76,.,设置输出数据的进位计数制:在默认情况下,被输出的数据按十进制格式输出。但可以使用流控制符,hex,和,oct,控制数据的输出格式为十六进制和八进制,一旦设置成某种进位计数制后,数据的输出就以该种数制为主,可利用流控制符,dec,将数制重新成十进制。,77,.,int a=21,b=999;,coutsetw(3)setfill(#)hexaendl;,coutsetw(3)bendl;,coutsetw(3)setfill(#)octbendl;,coutsetw(3)bsetw(4),bsetw(5)bendl;,coutsetw(3)setfill(#)decaendl;,coutsetw(3)bsetw(4),bsetw(5)bendl;,78,.,程序的输出结果为:,#15 /,以十六进制格式输出数据,3e7,#25 /,以八进制格式输出数据,1747,#21 /,以十进制格式输出数据,999,79,.,设置浮点数的输出格式:对于浮点数,既可以用小数格式输出,也可以用指数格式输出。这可以分别通过,setiosflags(ios:fixed),和,setiosflags(ios:scientific),来控制。,80,.,例,已知圆的半径,r=6.779,,计算并输出圆的周长和面积,要求分别用指数和小数两种格式输出。,#include,using namespace std;,const double pi=3.14159;,int main(),double r=6.779,c,s;,c=2.0*pi*r;/,计算圆的周长,s=pi*r*r;/,计算圆的面积,81,.,/,以指数格式输出圆的面积和周长,cout“,圆周长,(,指数,),为:,”,setiosflags(ios:scientific)cendl;,cout“,圆的面积,(,指数,),为:,”sendl;,/,以小数输出圆的面积和周长,cout“,圆的周长,(,小数,),为:,”,setiosflags(ios:fixed)cendl;,cout“,圆的面积,(,小数,),为:,”,setiosflags(ios:fixed)s,变量名,1,变量名,2,变量名,n;,说明:,(,1,),cin,是系统预定义的一个标准输入设备,(,2,),cin,的功能是:当程序在运行过程中执行到,cin,时,程序会暂停执行并等待用户从键盘输入相应数目的数据,用户输入完数据并回车后,,cin,从输入流中取得相应的数据并传送给其后的变量中。,数据的输入,cin,84,.,(,3,),“,”,操作符后除了变量名外不得有其他数字、字符串或字符,否则系统会报错。,如:,cinx=x;/,错误,因含有字符串,x=,cin,x,x;/,错误,因含有字符,x=,cinx10;/,错误,因含有常量,10,85,.,(,4,),cin,后面所跟的变量可为任何数据类型,若变量为整型数据类型,则在程序运行过程中从键盘输入数据时,可分别按十进制、八进制或十六进制输入该整数。,86,.,当按十进制格式输入整数时,可直接输入数据本身即可;,若以十六进制输入整数时,数据前要冠以,0 x,或,0X,;,若按八进制格式输入整数时,数据前要冠以数字,0;,若,cin,后面的变量为浮点类型(单精度或双精度)时,可分别按小数或指数的格式输入该浮点数。,若,cin,后面的变量为字符类型时,可直接输入字符数据而不能在字符的两端加单引号。,注意,:,87,.,(,5,)当程序中用,cin,输入数据时,最好在该语句之前用,cout,输出一个需要输入数据的提示信息,以正确引导和提示用户输入正确的数据。如:,coutx;,(,6,)当一个,cin,后面同时跟有多个变量时,则用户在输入数据时的个数应与变量的个数相同,各数据之前用一个或多个空格隔开,输入完后按回车键;或者,每输入一个数据按回车键也可。,如对于以下程序段:,88,.,int x;,double a;,char c1;,coutxac1;,cout,整数:,x,浮点数:,a,字符:,c1;,89,.,运行过程中,屏幕上显示,“,输入一个整数、一个浮点数和一个字符,:,”,,用户输入数据的格式可以是:,1003.14a,或者:,100 3.14 a,或者:,100,3.14,a,最后程序的输出结果为:,“,整数:,100,浮点数:,3.14,字符:,a,”,90,.,
展开阅读全文