北京邮电大学电信工程学院计算机技术中心课件

上传人:沈*** 文档编号:245180453 上传时间:2024-10-07 格式:PPT 页数:103 大小:535KB
返回 下载 相关 举报
北京邮电大学电信工程学院计算机技术中心课件_第1页
第1页 / 共103页
北京邮电大学电信工程学院计算机技术中心课件_第2页
第2页 / 共103页
北京邮电大学电信工程学院计算机技术中心课件_第3页
第3页 / 共103页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,-,*,-,C+,大学基础教程,第2章 基本数据类型与表达式,哈尔滨工业大学计算机学院,ICES,企业智能计算中心,程序中最基本的元素是,数据类型,,根据数据类型可以为,变量,或,常量,分配内存空间,将变量、常量和,运算符,结合在一起组成,表达式,,进行复杂的运算和处理。,第2章 基本数据类型与表达式,2.1 词法记号和标识符,2.2 基本数据类型,2.3 变量和常量,2.4 运算符和表达式,2.5 基本输入输出,2.1 词法记号和标识符,2.1 词法记号和标识符,1、C+,字符集,英文字母,:,AZ,az,数字字符,:09,特殊字符,:,+ - * / % = !,# ., ( ) 空格,2024/10/7,5,2.1 词法记号和标识符,1、什么是关键字?,预先定义好的标识符,,C+,编译器对其进行特殊处理。,2、如何识别关键字?,使用,VC+ 6.0,的编辑环境时,缺省是,蓝色,的字符即为关键字。,2024/10/7,6,2.1 词法记号和标识符,3、标识符,标识符是程序员声明的单词,它命名程序正文中的一些实体,如函数名、变量名、类名、对象名等。,C+,标识符的构成规则如下:,1、不能是,C+,的关键字;,2、第一个字符必须是大写、小写字母或下划线;,3、不包含空格和“+、-、;”等特殊字符;,4、为方便输入,长度一般不超过31个字符。,2024/10/7,7,2.1 词法记号和标识符,例如:,合法的标识符:,apple、_Student、_123、No1、max_num,不合法的标识符:,51,job、max,num、-,abc,注意:,C+,的表示符是大小写敏感的,即,abcABC,。,2024/10/7,8,2.1 词法记号和标识符,4、分隔符,分隔符用于分隔程序中的正文,在,C+,中使用下列字符作为分隔符:,( ) ,:;,这些分隔符不表示实际的操作,仅用于构造程序。比如“;”,用来作为一句完整语句的结束。,2024/10/7,9,2.1 词法记号和标识符,5、空白,在,C+,语句中经常出现空白(制表符、空格、空行)等,通常都忽略不计。,2024/10/7,10,2.1 词法记号和标识符,2.2、基本数据类型,什么是数据类型?,数据是程序处理的对象,数据根据其本身的特点进行分类,从而形成不同的数据类型。,例如:数学中有自然数、整数、实数,2024/10/7,12,2.2、基本数据类型,基本数据类型,整型:,int,字符型:,char 、,wchar_t,实型:,float、double,逻辑型:,bool,2024/10/7,13,2.2、基本数据类型,自定义数据类型,数组:,type,指针:,type*,引用:,type&,空类型:,void,结构:,struct,联合:,union,枚举:,enum,类:,class,2024/10/7,14,2.2、基本数据类型,修饰符,在,C+,中描述为了更加准确的描述数据类型,提供了4个关键字用来修饰基本的数据类型:,1、长型,long,2、,短型,short,3、,有符号,signed,4、,无符号,unsigned,2024/10/7,15,1、short:,仅用来修饰,int,,,称为短整型,占2字节内存,也可直接简写为,short;,2、long:,仅修饰,int,和,double,,因为在不同的编译环境中使用,long,修饰的数据所占内存不同,这里列出的是在,VC+6.0,的环境下的。,3、unsigned:,用来修饰,char、short,和,int,,,表示该数据类型为无符号数。,4、signed:,用来修饰,char、short,和,int,,,表示该数据类型为有符号数,为缺省设置。,2024/10/7,16,2.2、基本数据类型,数据类型和内存空间,不同的数据类型,加上不同的修饰符就具有了不同的特点,在内存中占用的空间也不同,因而其所能表示的数值范围也不尽相同。,内存单元的单位是字节,因此用来表示数据类型的长度的单位也是字节。,2024/10/7,17,2.2、基本数据类型,注意,整型,int,的长度等于机器的字长:,16位机:,int,=2字节;,32位机:,int,=4字节。,但是,short,和,long,表示的数据长度是固定的,任何支持标准,C+,的编译器都是如此,因而如果需要编写可移植性好的程序,应将整型声明为,short,或,long。,2024/10/7,18,2.2、基本数据类型,例题,编写一个程序,输出基本数据类型,char,int, float,double,bool,的长度。,提示:,使用,sizeof,(,数据类型) 能够获取不同数据类型的长度。,2024/10/7,19,/输出基本数据类型的长度,#,include ,using namespace std;,void main(),cout,“char :”,sizeof(char,)“,字节,n;,cout,int,:,sizeof(int,),字节,n;,cout,float :,sizeof(float,),字节,n;,cout,double:,sizeof(double,),字节,n;,cout,bool,:,sizeof(bool,),字节,n;,2.3,变量和常量,2.3,变量和常量,概述,程序所处理的数据不仅分为不同的数据类型,而且每种类型的数据还分为变量和常量。程序在运行中就是通过这些变量和常量来操作数据的。,什么是变量?,在,C+,中,变量是存储信息的地方。变量的实质是内存中的一个地址空间,在这个地址空间中可以进行数据的存储和读取。,2024/10/7,22,2.3,变量,变量定义的格式:,数据类型 变量名1,变量名2,变量名,n;,例如:定义各种类型的变量,int,num;,float f;,char,ch,;,short s;,double area, length;,2024/10/7,23,2.3,变量,说明,在创建或定义变量时,需要指明该变量的,数据类型,和,名称,。,数据类型:决定变量的存储方式和可以进行的操作;,变量名称:用来区分不同的变量。,变量一旦被定义,则系统自动为其分配应占的内存。,2024/10/7,24,2.3,变量,变量名称的定义遵循标识符定义的规则,实际上变量名称就是其中一种标识符。常用的命名约定有三种:,1、Unix,环境常用的命名法,my_age、num_of_student,2、驼峰式命名法,myAge、numOfStudent,3、匈牙利标记法,iMyCar、bIsRight,2024/10/7,25,2.3,变量,赋值,使用赋值运算符“=”可以将一个值赋给变量。,例如:,unsigned short age;,age = 18;,或者,unsigned short age = 18;,2024/10/7,26,2.3,变量,我们可以一次定义多个相同数据类型的变量,也可以一次为多个变量初始化:,char ch1=a, ch2=b ;,int,height=10, width=6, area ;,特性:,变量可以被多次赋值,但每次赋值后,原值都会被新值覆盖。,2024/10/7,27,例2.2:赋值运算符的使用,#,include ,using namespace std;,void main(),int,myAge,= 18;,cout,“,myAge,=”,myAge,endl,;,myAge,= 20;,cout,“,myAge,=”,myAge,endl,;,运行结果:,myAge,=18,myAge,=20,2.3,变量,typedef,为已有的数据类型定义一个同义词,或者叫做别名。,例如:,typedef,unsigned,int,UINT;,关键字 数据类型 别名赋值,注意:,使用,typedef,定义同义词时并不分配内存空间。,2024/10/7,29,2.3,常量,严格来说,常量又分成符号常量和常数。,符号常量,:,代表一个固定不变值的名字;,常数,:,程序中使用的具体的数据。,2024/10/7,30,2.3,常量,符号常量,C+,中提供了一个关键字,const,,,用来区分常量和变量。并且由于常量代表一个固定的值,并且该值在程序运行过程中不能够被改变,所以要求,常量在定义的时候必须进行初始化,。,例如:,const,int,i=10 ;,关键字 数据类型 常量名=初始值;,2024/10/7,31,2.3,常量,define,关键字,在,C,语言中使用预编译指令#,define,也能够定义常量。,例如:,#,define PI,3.1415927,关键字 常量名 值,该语句属于预编译指令,不属于,C+,语句,因而行尾不需要使用分号。并且由于,C+,是向下兼容的,因而,C,语言的程序能够在,C+,的编译器下顺利运行。但是在,C+,编程中,建议使用,const,替代#,define,定义常量。,2.3,常量,整型常数,十进制数:100,8进制数:0144,16进制数:0,x64,用,U,或,u,表示无符号,整型,,如65535,U,。,用,L,或,l,表示长,整型。,默认的是,int,型。,2024/10/7,33,2.3,常量,实型常数,1 小数形式,例如:,0.123、23.12,2 指数形式,例如:,123,e5,或123,E5 =123*10,5,注意:,e,前面必须有数字,,e,后面必须是整数,实常数默认为,double,型,可用后缀,F(f,),表示实数常数为,float,型。,2024/10/7,34,2.3,常量,字符常数,1、用单引号扩起来的一个字符,,例如:,a、 ?,。,2、,转义字符,以开头的字符序列,代表特殊的意义。,例如:,n、t,、”,2024/10/7,35,a0x07bell(,响铃),n0x0A,换行,r0x0D,回车,t0x09,制表符,v0x0B,垂直跳格,b0x08Backspace,0x5C,0x22,双引号,0,x27,单引号,ddd,1-3,位8进数,xhh,1-2,位16进数,例2.3,:打印特殊字符,#,include ,using namespace std;,void main(),cout,“,输出字母:” ,aa,endl,;,cout,“,输出字母:” ,nn;,运行结果:,输出字母:,a (,蜂鸣器响一声),输出字母:,n (,换行),2.3,常量,反斜杠还可以和八进制数或十六进制结合起来表示相应的,ASCII,码。表示形式如下:,ddd,:13,位八进制数,xhh,:12,位十六进制数,我们知道在十六进制的,ASCII,码表中,字母,az,的,ASCII,值是61,H7AH,,因此我们也可以使用如下两句代码替代例2.3中的输出,达到同样的结果。,cout,“,输出字母:” ,x61x07,endl,;,cout,“,输出字母:” ,x6Ex0A;,2.3,常量,字符变量,char ch1=a,ch2=97, ch3=/064,原因:,在内存中,字符数据以,ASCII,码存储,即以整数表示,所以,,C+,中字符数据和整数可以相互赋值。,2024/10/7,39,例2.4,:字符数据和整型数据的转换,#,include ,using namespace std;,void main(),int,n=a;,char,ch,= 97;,cout,”,输出内容:”,n,endl,;,cout,”,输出内容:”,ch,endl,;,运行结果:,输出内容:97,输出内容:,a,注意:变量在输出时,根据其本身的数据类型进行输出。,2.3,常量,字符串常量,由一对双引号括起来的字符序列,,例如:,“,how do you do?”,“hello world!”,2024/10/7,41,2.3,常量,字符和字符串的区别,1、,字符常量和字符串常量是不同的,字符串常量以,/0,结尾。,例如:字符串,Hello,在内存中的形式:,2、,“,a”,不等于,a,”a,”,占2个字节,,a,1,个字节,H e l l o 0,a 0,a,2024/10/7,42,2.3,常量,字符串变量,char a20=“Hello worldn”;,char b5=“a”;,char c=a;,思考,字符串,“/,x07Operatingtsystem”,有几个字符?显示结果如何?,2024/10/7,43,2.3,常量,逻辑常数,逻辑型常数只有两个:,false(,假,),和,true(,真,),。在显示器上显示为0和1。,2024/10/7,44,2.4,运算符和表达式,2.4 运算符和表达式,1、表达式,2、语句和块,3、运算符,赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、逗号运算符,2024/10/7,46,2.4 运算符和表达式,表达式,变量、常量是存放数据的地方,那么在,C+,语言中这些数据是如何处理和计算的呢?,在,C+,语言中将变量、常量和运算符有机结合在一起组成的就是,表达式,,利用表达式,C+,可以进行复杂的运算和处理。,2024/10/7,47,例如:,3.2 /简单表达式,值为3.2,2+3 /常量表达式,值为5,a /,简单表达式,值为变量,a,的值,x=(,a+b,)*c; /,较为复杂的表达式,表达式是可以嵌套的,比如,y=x=,a+b,,,该表达式先将,a,和,b,进行相加,然后将结果赋值给,x,,再将,x=,a+b,的值赋给,y。,2.4 运算符和表达式,2.4 运算符和表达式,表达式,定义:,表达式是,操作符,、,操作数,和,标点符号,组成的序列。,操作符:,+ - * /,等,操作数:变量、常量、数组等,标点符号:空格、回车等,2024/10/7,49,2.4 运算符和表达式,语句和块,C+,中所有的操作运算都通过表达式来实现。由表达式和结尾的“;”组成一个,C+,语句;多条,C+,语句通过大括号括起来,组成一个块语句,例如:,int,temp = x;,x = y;,y = temp;,一般来说属于同一个逻辑关系的多条语句组成块语句。,2024/10/7,50,2.4 运算符和表达式,运算符,运算符具有,优先级,和,结合性,。,优先级:,级别高的先运算,级别低的后运算。例如: * / 高于 + -,结合性:,自左向右结合还是自右向左结合。例如:,1+2+3,+,自左向右结合。,2024/10/7,51,2.4 运算符和表达式,运算符,根据运算符对操作数的要求不同,分成:,一元运算符:,仅需要一个操作数的运算符,例如,+,等,二元运算符:,需要两个操作数的运算符,例如:,+、-、*、/,等,形如“ 操作数1 运算符 操作数2 ”,三元运算符:,需要三个操作数的运算符,只有条件运算符,“,?:”,。,2024/10/7,53,2.4 运算符和表达式,赋值运算符,1、赋值运算符就是“,=,”,例如:,float f=3.15,2、,左值,:可以合法的放在“=”左边的操作数,右值,:可以合法的放在“=”右边的操作数,常量都是右值,所以不能够放在“=”的左边被赋值;,变量既是左值又是右值,可以放在任何位置。,2024/10/7,54,2.4 运算符和表达式,算术运算符,C+,提供的算术运算符包括“+,-,*,/,%,+,-”,1、二元运算符:,+(加),-(减),*,/,%,2、,一元运算符:,+(正号),-(负号),+,-,2024/10/7,55,2.4 运算符和表达式,算术运算符,注意:,1、,“/”,根据操作数不同,运算规律也不同:,整型数为整除运算:例如,5/2=2;,浮点数为通常意义的除法:即,5.0/2.0=2.5。,2、,“%”,取余数运算符,只能对整型数进行操作,不允许对浮点数进行操作。,2024/10/7,56,2.4 运算符和表达式,算术运算符,C+,中提供了两个特殊的运算符:,+,-,表示将操作数减1。,+、-运算符根据操作数的位置不同,又称为前置(+,i),和后置(,i+),1、前置(+,i):,先自身加1,然后再将加1的值作为(+,i),表达式的值;,2、后置(,i+):,将,i,作为,(,i+),表达式的值,然后自身再加1。,2024/10/7,57,例,2.6,:自增运算符的使用,#,include ,using namespace std;,void main(),int,i =1;,cout,”i=”i,endl,;,cout,”i+:”i+,endl,;,cout,”i=”i,endl,;,cout,” +i:”+i,endl,;,cout,”i=”i,endl,;,1,1,2,3,3,2.4 运算符和表达式,算术运算符,在,C+,中可以将算术运算符和赋值运算符结合在一起进行运算,因此,C+,还提供5种复合的赋值运算符,+=,-=,*=,/= 和%=,。,例如:,x+=y,相当于,x =,x+y,x-=y,相当于,x =,x-y,x*=y,相当于,x = x*y,x/=y,相当于,x =,x/y,x%=y,相当于,x =,x%y,2024/10/7,59,例如:,#,include ,using namespace std,void main(),int,x=2,y=3;,x*=y+8;,cout,x,endl,;,原因:,x*=y+8,等价于,x=x*(y+8),/显示22,2.4 运算符和表达式,算术运算符,这些运算符的优先级由高到低依次为:,1、+(正号),-(负号),+,-,2、*,/,%,3、+、-,4、=、+=、-=、*=、/=、%=,2024/10/7,61,2.4 运算符和表达式,注意,在进行算术运算时,很可能出现溢出,溢出是指在给一个变量赋值时超出了其数据类型表示的范围。溢出不会引起编译错误的,但运行结果会出现偏差。,例如:,short,int,i=40000;,cout,i=、=、=、=、,2、=、!=,由关系运算符将两个表达式连接起来,就是关系表达式;关系表达式的结果类型为,bool,,,值只能为,true,或,false,,,屏幕显示为1或0。,2024/10/7,63,例如,int,a=1, b=2, c=3;,cout,a=b,endl,;,cout,a!=b,endl,;,cout,=b,endl,;,cout,abb=ca+5;,cout,db & b+),cout,”b,的值没有被改变。”,endl,;,cout,b,endl,;,运行结果:2,2024/10/7,66,2.4 运算符和表达式,位运算符,一般高级语言:,byte,C,语言:,bit,C+,语言中提供了六个位运算符,可以对整数进行位操作,分别是按位与(,&,),按位或(,|,),按位异或(,),按位取反(,),左移位(,)。,2024/10/7,67,2.4 运算符和表达式,按位与(&),按位与操作的作用是将两个操作数对应的每一位分别进行,逻辑与,操作。,例如:计算3 & 5,3:0 0 0 0 0 0 1 1,5:0 0 0 0 0 1 0 1,3 &5:0 0 0 0 0 0 0 1,例如:,将,char a;,的最低位置0:,取,int,a;,的低字节:,a=a ,char c= a ,2024/10/7,68,2.4 运算符和表达式,按位或(|),按位或操作的作用是将两个操作数对应的每一位分别进行逻辑或操作。,例如:计算3 | 5,3:0 0 0 0 0 0 1 1,5:0 0 0 0 0 1 0 1,3 |5:0 0 0 0 0 1 1 1,例如:,将,int,a;,的低字节置1:,a = a | 0xff;,2024/10/7,69,2.4 运算符和表达式,按位异或(),按位异或操作的作用是将两个操作数对应的每一位分别进行异或操作。,具体运算规则:,11=0,00=0,10=01=1,例如:计算35,3:0 0 0 0 0 0 1 1,5:0 0 0 0 0 1 0 1,3 5:0 0 0 0 0 1 1 0,2024/10/7,70,2.4 运算符和表达式,按位异或(),例如:,如果使8位二进制数01111010的后四位翻转?,可以将该二进制数与00001111进行异或操作:,0 1 1 1 1 0 1 0,()0 0 0 0 1 1 1 1,0 1 1 1 0 1 0 1,2024/10/7,71,2.4 运算符和表达式,按位取反(,),按位取反是一个一元运算符,它的作用是将两个操作数对应的每一位分别进行取反操作。,具体运算规则:,1=0,0=1,。,例如:计算5,5:0 0 0 0 0 1 0 1,5:1 1 1 1 1 0 1 0,2024/10/7,72,2.4 运算符和表达式,左移:,按照指定的位数将一个二进制数值向右移动,右移后,移出的低位舍弃。,如果是,无符号数则高位补0,,如果是有符号数则高位补符号位或0,在,VC+6.0,环境下,高位补符号位。,2024/10/7,73,例子,char a= -8;,a =a2;,cout,”a=”(,int)a,endl,;,例子,char a=2;,a =a1;,cout,”a=”(,int)a,=。,例如:,x&=y,相当于,x =,x&y,x|=y,相当于,x =,x|y,x=y,相当于,x =,xy,x=y,相当于,x = x=y,相当于,x = xy,2024/10/7,76,2.4 运算符和表达式,位运算符,这些位运算符的优先级由高到低依次为:,1、,2、,3、&,4、,5、|,6、&=,|=,=,=,2024/10/7,77,2.4 运算符和表达式,条件运算符,条件运算符语法格式为:,表达式1?(表达式2):(表达式3);,运算的结果是:如果表达式1的值为真,则返回表达式2的值,否则返回表达式3的值。,例1:,x = ab ? a : b;,例2:,int,x=0, y=1;,cout,y?x:y,),endl,;,2024/10/7,78,2.4 运算符和表达式,逗号运算符,逗号表达式的语法格式为:,表达式1,表达式2,表达式,n;,C+,顺序计算表达式1,表达式2,表达式,n,的值,并将最后一次计算的结果作为逗号表达式的结果。,例如:,int,a,b,c,;,a=1,b=2,c=,a+b,;,2024/10/7,79,例子,int,a,b,c,d,;,d=(a=1,b=2,c=,a+b,a+b+c,);,cout,d,endl,;,6,2.4 运算符和表达式,数据类型转换,当表达式中出现多种数据类型的混合运算时,往往需要进行类型转换。表达式中的类型转换分成两种:,1、隐式类型转换,2、强制类型转换。,2024/10/7,81,2.4 运算符和表达式,1、隐式类型转换,各种二元运算符在进行运算时都要求两个操作数的数据类型一致。如果类型不一致,则系统自动对数据进行转换(隐式类型转换)。,转换的基本原则,:,将精度较低、范围较小的类型转换成精度较高、范围较大的类型。,char short ,int, long float double,2024/10/7,82,2.4 运算符和表达式,1、隐式类型转换,对于同一种精度的无符号数和有符号数,在进行算术运算中,有符号数向着无符号数方向进行隐式类型转换:,signed unsigned。,例如:,int,a=100;,unsigned,int,i=99;,cout,i - a,endl,思考一下,如果将,unsigned,int,i=99;,改为,unsigned short i=99;,结果如何?,2024/10/7,83,2.4 运算符和表达式,1、隐式类型转换,逻辑运算符要求参与运算的操作数为,bool,类型,如果是其他类型,则系统自动将其转换成,bool,类型,转换规则:,0为,false,,非0为,true,。,赋值运算符要求“=”左右两边的操作数数据类型相同,如果类型不一致,则自动将右边的操作数类型向着左边的操作数类型转换。,例如:,int,i=3.15;,cout,i,endl,;,2024/10/7,84,2.4 运算符和表达式,2、强制类型转换,强制类型转换通过是类型说明符和括号来实现的显式转换,其语法格式为:,(数据类型名)表达式,或 数据类型名(表达式),例如:,int,i=97;,cout,(,char)i,endl,;,float f=3.75;,cout,(,int)f,”,就可以将键盘键入的数据读入到变量中。语法格式为:,cin,变量1变量2变量,n;,例如:,int,a,b,;,char,ch,;,cin,ab,ch,;,2024/10/7,88,2.5,I/O,流控制,2、标准输出流,cout,cout,负责将变量或常量中的数据输出到屏幕,使用插入操作符,“”,就可以将变量或常量的数据显示在屏幕上。,例如:,cout,”Hello world!n”;,cout,能够自动识别,“”,后面的数据类型并进行显示,并且可以从左到右一次显示多个变量。,2024/10/7,89,例子,#,include ,using namespace std;,void main(),int,a,b,;,char,ch,;,cout,ab,ch,;,cout,”a=”a” b=”b”,ch,=”,ch,endl,;,2.5,I/O,流控制,3、,IO,流的格式控制,库文件,iomanip,常用控制符:,setfill(c,),设置填充字符,setw(n,),设置域宽为,n,2024/10/7,91,2.5,I/O,流控制,设置输出宽度和填充字符,setw(n,),设置域宽,即设置,“”,符号后面的数据占用的屏幕宽度。,setfill(c,),设置填充字符,即,“”,符号后面的数据长度小于域宽时,使用什么字符进行填充。,2024/10/7,92,setw(n,),和,setfill(c,),例1:,cout,setw(8)asetw(8)b,endl,;,输出结果:,例2:,cout,setfill,(*)setw(5)a,endl,;,输出结果:,_ _ _ _ _ _ _,a_ _ _ _ _ _ _b,*,a,#,include ,#include ,using namespace std;,void main(),cout,setfill,(*),setw(2)n,setw(3)n,setw(4)n,setw(5)n,setw(6)n,setw(7)n,setw(8)n;,*,*,*,*,*,*,*,2.5,I/O,流控制,注意1,除了,setw,(),控制符外,其他控制符一旦设置,则对其后的所有输入输出产生影响。而,setw,(),控制符只对其后输出的第一个数据有效,对其他数据没有影响,所以如下代码:,cout,setw(8) a b,endl,;,输出结果:,_ _ _ _ _ _ _,ab,2024/10/7,95,2.5,I/O,流控制,注意2,setw,(),的默认为,setw(0),,,意思是按实际输出。如果输出的数值占用的宽度超过,setw(int,n),设置的宽度,则按实际宽度输出。,例如:,float f=0.12345;,cout,setw(3)f,endl,;,0.12345,2024/10/7,96,2.5,I/O,流控制,3、,I/O,流的格式控制,C+,默认输出浮点数的有效位为6位,那么要想控制输出的,数据的长度,,该如何呢?,比如:,float f=3.1234567;,如何让显示结果为3.12?,C+,提供了,setprecision(int,n),可以控制显示浮点数的有效位。,2024/10/7,97,#,include ,#include ,using namespace std;,void main(),float f=17/7.0;,cout,f,endl,;,cout,setprecision(0)f,endl,;,cout,setprecision(1)f,endl,;,cout,setprecision(2)f,endl,;,cout,setprecision(3)f,endl,;,cout,setprecision(6)f,endl,;,cout,setprecision(8)f,endl,;,2.42857,2.42847,2,2.4,2.43,2.42857,2.4285715,2.5,I/O,流控制,3、,I/O,流的格式控制,如何控制小数的位数?,setiosflags(ios:fixed,),控制符是用定点方式表示浮点数,将,setprecision(int,n),和,setiosflags(ios:fixed,),结合,可以使用,setprecision(int,n),控制小数点右边小数的个数。,2024/10/7,99,#,include ,#include ,using namespace std;,void main(),float f=17/7.0;,cout,setiosflags(ios:fixed,);,cout,setprecision(0)f,endl,;,cout,setprecision(2)f,endl,;,cout,setprecision(3)f,endl,;,cout,setprecision(4)f,endl,;,2,2.43,2.429,2.4286,2.5,I/O,流控制,3、,I/O,流的格式控制,如何控制指数表示的小数个数?,setiosflags(ios:scientific,),控制符使用指数方式显示浮点数,将,setprecision(int,n),和,setiosflags(ios:scientific,),结合,可以使用,setprecision(int,n),控制指数表示法的小数位数。,2024/10/7,101,#,include ,#include ,using namespace std;,void main(),float f=17/7.0;,cout,setiosflags(ios:scientific,);,cout,setprecision(2)f,endl,;,cout,setprecision(3)f,endl,;,cout,setprecision(4)f,endl,;,2.43,e +000,2.429,e +000,2.4286,e +000,总结,1、基本数据类型有哪些?,2、如何定义和使用变量和常量?变量和常量的异同?,3、运算符的优先级?,4、数据类型如和转化?,5、I/O,流的使用技巧,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!