第2章内置数据类型与基本输入输出精选PPT.ppt
第2章内置数据类型与基本输入输出第1页,此课件共55页哦主要内容n什么是数据类型?n标识符n常量和变量n操作符和表达式n数据类型间的关系n简单的输入、输出2第2页,此课件共55页哦1、什么是数据类型?数据类型数据类型是指:值的集合以及在这些值上可以进行的操作注意,在数据类型的概念中包含了两个方面:1.数据的取值范围2.数据上的操作3第3页,此课件共55页哦nC+数据类型可以分为n简单数据类型、n结构数据类型n地址数据类型 4第4页,此课件共55页哦C+数据类型简单数据类型结构数据类型地址数据类型内置用户自定义整型浮点型char short int long boolFloat double long doubleenum指针引用数组数组 结构结构 联合联合 类类 Struct union classunsignedsigned5第5页,此课件共55页哦2.标识符nC+语言中的基本符号(token)包括:n保留字保留字(reserved word)n 标识符标识符(identifier)n常量常量(constant)n操作符操作符(operator)n分隔符分隔符6第6页,此课件共55页哦n程序段及其基本符号n int mgAge;float myWeight;myAge=10;myWeight=30.1;nint保留字nmyAge标识符n;分隔符nfloat保留字nmyWeight标识符n=操作符(赋值运算)n10常量(字面值)n30.1常量(字面值)7第7页,此课件共55页哦空白符及其作用n空白符(whitespace characters),包括:n 空格符(blank)n 制表符(tab)n 回车换行符(enter)注意注意:空白符不是基本符号,在程序编译时,将被忽略。主要作用是:使程序的层次分明、可读性更强。8第8页,此课件共55页哦nint mgAge;float myWeight;myAge=10;myWeight=30.1;nint mgAge;nfloat myWeight;nmyAge=10;nmyWeight=30.1;n以上两个程序段表达的是相同的内容n读起来下面的更容易9第9页,此课件共55页哦标识符的概念n标识符是程序员给自己定义的类型名、函数或数据对象(data object)起的名名字字,用于引用该类型、函数或数据对象。n和现实世界的事物等的名称一样,标识符具有指代作用,能够区分彼此。n标识符需要遵循一定的规则(语法)10第10页,此课件共55页哦标识符的规则n由字母或下划线开头的由字符、数字与下划线组成的序列。n以下标识符是合法的:nmyAge nmyWeight n y2000 n_t ns2i nbookTitle nBookTitle11第11页,此课件共55页哦n以下标识符是不合法的:n40pigs 不能以数字开头。nMy money 不能出现空格。nLength-10 不能出现连字号。nmyhotmail 不能出现符。nint 是保留字,由系统使用,程序员不能再重复定义该标识符。12第12页,此课件共55页哦使用标识符的注意事项n保留字不能作为程序中的标识符。n标识符对字母的大小写敏感。大小写不同的标识符不同。n使用有意义的,可读性较强的标识符。n必须以字母(a-z,A-Z)或下划线(_)开头n当标识符过长时,通常采用缩写的形式 13第13页,此课件共55页哦3.常量和变量常量和变量n一个标识符可以表示常量或变量n常量:在程序运行过程中数据的值不不容许改变n变量:在程序运行过程中数据的值容许改变n如何区分常量和变量?14第14页,此课件共55页哦n声明声明(declaration)n通过声明可以命名标识符并表明它代表什么。n声明是一个将标识符与一个数据对象(常量和变量的统称)、一个函数或一种数据类型相联系的语句n可以理解为起名的一个过程,以后程序员就可以使用标识符来指代数据对象、函数或数据类型15第15页,此课件共55页哦const double PI=3.14159;int myAge;n标识符PI是一个常量(3.14159)的名字,这个常量的数据类型是doublen标识符myAge是一个变量的名字,该变量的数据类型是int16第16页,此课件共55页哦n在C+中,标识符必须先声明、后使用n在C+中,数据对象(常量和变量)、函数和数据类型的申明方式不同。n本章介绍变量和常量的申明。函数和数据类型的申明在以后的章节中进一步介绍。17第17页,此课件共55页哦变量和变量的声明n运行时,程序需要的数据存放在内存中n在C+中,用变量命名内存中的一个存储位置n变量的两面:n对程序员:是一个和处理的问题相关的一个内容可变的数据的名称,如myAgen对计算机:理解时,将一个标识符和一个存储位置相关联,如处理myAge这个数据时,从哪里得到数据?n由编译程序完成,程序员不需要关心数据存放的位置18第18页,此课件共55页哦n变量定义(声明)的语法:n数据类型 标识符=初值,标识符=初值;n如:char responseY;n命名了一个变量标识符response;n编译器分配1 个字节的内存单元和标识符response相关联;n规定该内存单元存储char数据类型的数据,且在程序运行时容许改变;n将response对应内存单元的内容,也即变量值置为字符Y.19第19页,此课件共55页哦n变量由四个部分组成:n变量名:程序员指定n数据类型:程序员指定n内存地址:编译器确定n变量值:20第20页,此课件共55页哦变量值n初值n声明时给定的变量值n如:int myAge 10;n赋值n声明后由赋值语句修改变量值nmyAge 30;21第21页,此课件共55页哦例:n有效的变量申明语句:n/第一、二击所击倒瓶数nint firstThrow,secondThrow;n/总的得分nint totalScore0;n/存款及税率nfloat accountBalance,taxRate;n/用户相应(Y or N)nchar response;n/是否找到相应的账号 nbool found=false;22第22页,此课件共55页哦注意n申明语句必须由;结束;n可以在一个语句中申明多个具有相同数据类型的变量;n申明语句中若不带初值,则该变量的值未确定。n在申明变量时加适当的注释将有助于对程序的理解。23第23页,此课件共55页哦常量和常量的定义 n常量分为两种:n字面常量(literal constant):数据的字面形式定义它的数据类型和值.nZ和9表示字符常量,n9 和12表示整型数值常量,n30.1和0.23e-2表示浮点型数值常量n“hello”和“Good morning”表示字符串常量。n命名常量(named constant):加以命名的常nconst 数据类型 标识符常量值;nconst int AGE_MATURE=18;nconst float PI=3.14159;24第24页,此课件共55页哦n命名常量的主要作用:n使程序的可读性更强,n当常量使用比较频繁时,修改常量的值比较容易 25第25页,此课件共55页哦内置数据类型的常量和变量定义方法内置数据类型的常量和变量定义方法n内置数据类型 nC+中的内置数据类型n整型:包含以char,short,int,long,bool等保留字作为类型名的数据类型。n浮点型:包含以Float,double,long double等保留字作为类型名的数据类型。26第26页,此课件共55页哦n每一种数据类型都规定了:n数据的存储方式n取值范围n对数据进行的操作 n例26说明掌握这些性质的重要性27第27页,此课件共55页哦字符常量和变量nASCII码n字符常量:n括在单引号中的字符被称为字符常量,如A,a,3,_等.n特殊字符的表示:转移字符n字符的整数表示n八进制表示:ddd,1到3位八进制数ddd为ASCII码所代表的字符n十六进制表示:xhh,1到2位十六进制数hh为ASCII码所代表的字符28第28页,此课件共55页哦n字符变量nunsigned|signed char 标识符字符常量,标识符 字符常量;nchar letter=A;n/申明了一个字符变量 letter并赋初值为字符Anunsigned char pixelValue=255;n/申明了一个无符号字符变量 pixelValue并赋初值为255nchar responseA=x59,responseB=116;n/八进制表示和十六进制表示的字符初值29第29页,此课件共55页哦整数类型常量和变量 n常量表示法:n十进制n八进制:以0开头 n十六进制:以0 x开头n0 0 0 x0n5 05 0 x5n9 011 0 x09n82 0122 0 x52n123 0173 0 x7B 30第30页,此课件共55页哦n整数变量nunsigned|signed long int|short int|int 标识符=初始值,标识符 初始值;n例int age,workDays;/申明两个整数变量age,workDayslong factorial;/申明一个长整型变量 factorialshort row,colomn ;/申明两个短整型变量row,colomn31第31页,此课件共55页哦实数类型常量和变量 n实数常量n两种表示法:n带小数点的表示法:.5 .025 2.625.-3.88 +7.56 n科学计数法n以实数10的幂表示的数n2.5E-28 27E18 18e10 1e-1032第32页,此课件共55页哦n实数变量nfloat|double|long double 标识符=初始值,标识符 初始值;n例:nfloat average;/申明一个浮点变量averagendouble power;/申明一个双精度变量 powernlong double distance0;n/申明一个长双精度变量distance,初始值设为033第33页,此课件共55页哦布尔类型常量和变量 n常量n取值只有两个:nfalse,ntruentrue和false是C+的保留字n表示法ntrue/false表示法n整数表示法:非0为true,0为false 34第34页,此课件共55页哦n布尔变量nbool 标识符=初始值,标识符 初始值;n例:nbool flagtrue;n/申明一个布尔变量flag并初始化为truenbool marker 0;n/申明一个布尔变量marker并初始化为0,也即false 35第35页,此课件共55页哦字符串类型常量和变量 n常量n字符串常量由双引号括起来的字符序列表示 n例:n“My name is Jones n”n“12345”n“Hi,x7come on”n“”nquality36第36页,此课件共55页哦n双引号的作用n区分字符串和C+程序中的其他部分。n“12345”和12345不同n“quality”和quality不同。37第37页,此课件共55页哦n字符串变量和命名字符串常量字符串变量和命名字符串常量 n使用C+标准库定义的string类型n在程序中增加以下语句n#include nusing namespace std;n字符串变量的申明:nstring 标识符 初始值,标识符=初始值;n字符串常量的申明:nconst string 标识符字符串常量;38第38页,此课件共55页哦3.操作符和表达式n操作符n在C+中,操作符表示对数据的操作。n操作符按所操作的数据的个数分为:n一元操作符n二元操作符n三元操作符。n操作符操作的数据被称为操作数。39第39页,此课件共55页哦n表达式n将操作符和操作数按照一定语法形式组成的符号序列,该符号序列可以计算得到属于某种数据类型的值n表达式的值的数据类型由操作符和操作数的数据类型决定。40第40页,此课件共55页哦n最简单的表达式n常量或变量标识符,表达式的值是常量或变量的值n例:n3.14159(字面常量)nmyAge(变量)nRATE(命名常量)41第41页,此课件共55页哦n复杂表达式n构成:n表达式可以作为另一个操作符的操作数,从而构造更复杂的表达式n求值n操作符的优先级及结合率 42第42页,此课件共55页哦各种操作符n赋值操作符 n变量 表达式n例:nint myAge;nint yourAge;nmyAge 10n/将10赋值给myAge变量nmyAge=yourAgen/将yourAge的当前值赋给myAge变量nyourAge myAgen/将myAge的当前值赋给yourAge变量43第43页,此课件共55页哦n算术操作符和算术表达式算术操作符和算术表达式n简单的算术表达式简单的算术表达式n只包含一个操作符(负号),(减号),*,/,%)的表达式。n操作符/的运算结果和两个操作数的数据类型有关 44第44页,此课件共55页哦n表达式 值 表达式类型n5/10 0 shortn5/10.0 0.5 long doublen5/0 错(除数不能为0)n2*3 6 shortn2*3.0 6.0 long doublen5+5.0 10.0 long doublen5+5 10 shortn7-9.0 -2.0 long doublen7-9 -2 shortn5%10 0 shortn5.0%10 错(两个操作数必须都是整型的)45第45页,此课件共55页哦n有以下声明:nint numInt;nfloat numFloat;n可以构造以下的表达式:nnumInt+numFloatnnumInt-numFloatnnumInt/2;nnumInt%2nnumInt*3.0nnumFloat/5.046第46页,此课件共55页哦n复杂表达式:n将简单表达式作为其他操作符的操作数n例:(注意运算的优先级)nnumFloat=numInt+numFloat nnumFloat=numInt numFloatnnumInt=numInt/2;nnumInt=numInt%2nnumFloat=numInt*3.047第47页,此课件共55页哦关系操作符和关系表达式 n关系操作符;=2 truen32 falsen2=0 falsen2!=0 truen3.04.0 truenMR true n“ABC”“DEF”truen字符和字符串的大小由字符在ASCII字符集中出现的次序决定。48第48页,此课件共55页哦逻辑操作符和逻辑表达式 n逻辑操作符:&|!n逻辑表达式n进行两个操作数的逻辑运算n值的数据类型是bool。n构造方法:nbool类型的变量和常量n逻辑表达式 逻辑操作符 逻辑表达式n关系表达式 逻辑操作符 关系表达式n逻辑操作符的真值表49第49页,此课件共55页哦n#include n using namespace std;n n int main()n n int x,y,z;n bool a,b,c;n x=3;n y=4;n z=5;n a=x y;/比较x是否大于y,a的值为falsen b=z y;/比较z是否大于y,b的值为truen c=!a;/求a的逻辑非,c的值为truen cout a=a endl b=bendl;n cout !a=cendl;n n c=a|b;/求a和b的逻辑或,c的值为truen cout a|b=c endl;n c=a&b;/求a和b的逻辑与,c的值为falsencout a&b=c y成立,则表达式的值为x,否则表达式的值为y。52第52页,此课件共55页哦数据类型之间的关系 当表达式中存在不同类型的操作数时,某些操作数需要进行类型转换 n隐式类型转换:编译器自动转换n转换规则 n显式(强制)类型转换:程序员通过以下语句转换:n数据类型(表达式)或 (数据类型)表达式nfloat(num1num2)/2n(num1+num2)/float(2)n(num1+num2)/(float)2n隐式类型转换可能会丢失数据,因此当表达式中存在不同数据类型时,要特别注意。53第53页,此课件共55页哦简单的输入和输出n要用到库函数,在程序中需增加以下语句:ninclude nusing namespace std;n输出 ncout 变量;54第54页,此课件共55页哦n#includenusing namespace std;nconst double PI=3.1415926;nint main()nnfloat radius,height,volume;/申明变量ncout radius;/用户输入数值以回车结束ncoutendlheight;/用户输入数值以回车结束nvolume=1.0/3.0*PI*radius*radius*height;/计算圆锥的体积ncoutendlthe volume of the cone is volumeendl;/输出结果nreturn 0;nn程序运行的结果如下:nplease input the radius of the cone:12.3nplease input the height of the cone:23.4nthe volume of the cone is 3707.27n55第55页,此课件共55页哦