《C++程序设计及项目实践》 课件 第2章 常量、变量、表达式_第1页
《C++程序设计及项目实践》 课件 第2章 常量、变量、表达式_第2页
《C++程序设计及项目实践》 课件 第2章 常量、变量、表达式_第3页
《C++程序设计及项目实践》 课件 第2章 常量、变量、表达式_第4页
《C++程序设计及项目实践》 课件 第2章 常量、变量、表达式_第5页
已阅读5页,还剩41页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章常量、变量、表达式2.1常量2.2变量及数据类型2.3运算符及表达式111C++提供了三种主要类型的常量:字面常量(直接给出的值,如整数、小数、字符和字符串)符号常量(用#define定义)命名常量(用const或constexpr这两种关键字定义)。2.1常量22字面常量实例1#include<iostream>usingnamespacestd;/*功能:输出数据常量*/intmain(){cout<<123<<endl;//整数cout<<12.34<<endl;//浮点数cout<<'A'<<endl;//字符cout<<"C++program"<<endl;//字符串cout<<false<<endl;//布尔值-假cout<<true<<endl;//布尔值-真return0;}33字面常量实例2#include<iostream>usingnamespacestd;intmain(){cout<<"1)"<<123<<endl;//十进制整数cout<<"2)"<<0b1010<<endl;//二进制整数cout<<"3)"<<0456<<endl;//八进制整数cout<<"4)"<<0x789<<endl;//十六进制整数cout<<"5)"<<12.34<<endl;//十进制小数形式的浮点数cout<<"6)"<<5.678e2<<endl;//指数形式的浮点数cout<<"7)"<<'z';//小写字符cout<<'\t';//转义字符cout<<'Z'<<endl;//大写字符return0;}44变量是程序运行过程中值可以发生变化的量,程序可以对变量进行读取和赋值的操作。2.2变量及数据类型55变量细节变量代表程序中存储数据的内存位置。变量的声明需要给出其类型和名称,例如使用程序语句“intnumber;”声明了一个整数类型(int)的变量number。变量可以被初始化,即在声明时赋予初始值。66变量实例#include<iostream>usingnamespacestd;intmain(){inti;//定义了整型变量ii=123;//给变量i赋值cout<<i<<endl;//输出变量i的值intj;//定义了整型变量jcin>>j;//输入数据到变量j中cout<<j<<endl;//输出变量j的值return0;}77标识符标识符是C++系统规定的名字,可以用来表示变量,函数等的名字,标识符是包含字母、数字、下划线的字符序列。以字母或下划线开头,比如_x,a1,a_123等均是合法的标识,而1a就不合法。对于系统已经内置的关键字、函数名、类名等不能用于用户定义的变量名,比如int不能用来作为变量名。在C++中,标识符是区分大小写的,也就是不同大小写的两个标识符是互不相同的两个标识符,比如ab123和Ab123是两个不同的标识符。88基本输入C++把数据从外部输入设备到内存传输的过程用输入流对象表示,cin为输入流对象,也就是负责将数据从外部输入设备(键盘,硬盘,网络等,常用的设备为键盘)输送到内存中。比如从键盘输入一个整数到变量i中,可以用cin>>i来表示。输入设备cin内存(变量)>>

99基本输出C++把数据从内存传输到外部设备的过程用输出流对象表示,cout为输出流对象,负责将数据从内存传输到外部输出设备(显示器,打印机,硬盘,网络等,常用的设备为显示器)。比如将一个整数i输出到显示器上,可以用cout<<i来表示。cout输出设备内存(变量或常量)<<

1010基本输入输出实例111.#include<iostream>2.usingnamespacestd;3.intmain()4.{5.inti,j,k,l;//定义4个整型变量6.cin>>i>>j>>k7.>>l;//输入4个整数8.cout<<i<<j<<endl9.<<k<<endl10.<<l;//输出4个整数11.return0;12.}11数据类型C++中的数据类型不仅仅包括整数数据类型(简称整型)int,还包括长整型long,短整型short,字符型char,单精度浮点型float,双精度浮点型double等数据类型。整型还分成有符号类型signed和无符号类型unsigned两类,12sizeof(数据类型或变量名)运算符,使用该运算符可以获得相关数据类型或变量在内存中所占据的字节数。。不同数据所占内存1313不同数据的所占内存#include<iostream>usingnamespacestd;intmain(){shorts=11;//定义并初始化短整型变量scout<<"sizeofshortint:"<<sizeof(s)<<endl<<"valueofshortint:"<<s<<endl<<endl;return0;}14符号常量与命名常量形式上类似于变量,本质上是常量。分别是用#define、const或constexpr二种方式进行了修饰定义。符号常量定义的形式:#define符号名值命名常量定义的形式:(1)const数据类型变量名=值;(2)constexpr数据类型变量名=值;15符号常量与命名常量实例#include<iostream>usingnamespacestd;#definePI3.14159intmain(){constfloatE=2.71828f;constexprdoubleG=9.8;cout<<"PI:"<<PI<<endl<<"E:"<<E<<endl<<"G:"<<G<<endl;return0;}1616162.3运算符及表达式运算符实现各类数据或变量之间进行运算,也是构成各类表达式和程序语句的基础,包括:赋值运算符、算术运算符、关系运算符、逻辑运算符等。用运算符及括号将操作数连接起来的规范的式子,称为表达式。17赋值运算符“=”为赋值运算符。其作用是将”=”右侧的操作数(常量、变量、表达式等)赋给左侧的变量。其语法形式为:

变量名=表达式(常量,变量等);18#include<iostream>usingnamespacestd;intmain()4.{5.inti=1;6.i=i+1;7.cout<<i<<endl;8.i='a';cout<<i<<endl;i=4.987;cout<<i<<endl;return0;}19算术运算符支持算术运算的运算符,主要包括加法运算符号”+”,减法运算符”-“,乘法运算符”*”,除法运算符”/”,求余运算符”%”等。这里的运算符均需要两个操作数,也称为二目运算符。这里的两个操作数可以为变量、常量、表达式等。20#include<iostream>usingnamespacestd;intmain(){cout<<"1)15+4="<<15+4<<endl;cout<<"2)15-4="<<15-4<<endl;cout<<"3)15*4="<<15*4<<endl;cout<<"4)15/4="<<15/4<<endl;cout<<"5)21%4="<<21%4<<endl;return0;}21C++程序设计及项目实践自增自减运算符自增运算符(++)使变量的值增加1,自减运算符(--)使变量的值减少1。其操作数为单一的变量,所以为单目运算符。自增自减运算符可以放在变量之前(前置),也可以放在变量之后(后置)。2222C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){inti=10;i++;cout<<"1)i="<<i<<endl;++i;cout<<"2)i="<<i<<endl;i--;cout<<"3)i="<<i<<endl;--i;cout<<"4)i="<<i<<endl;return0;}2323C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){inti=10;intj=i++;cout<<"1)i="<<i<<"\tj="<<j<<endl;j=++i;cout<<"2)i="<<i<<"\tj="<<j<<endl;j=i--;cout<<"3)i="<<i<<"\tj="<<j<<endl;j=--i;cout<<"4)i="<<i<<"\tj="<<j<<endl;return0;}2424C++程序设计及项目实践关系运算符关系运算符也是一个双目运算符,其可以实现两个数的比较。比较的结果为1或0。关系运算符包括:小于(<),小于等于(<=),大于(>),大于等于(>=),等于(==),不等于(!=)。25C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){inta(10),b(20);boolc;c=a<b;cout<<"1)a<b\t"<<c<<endl;c=a<=b;cout<<"2)a<=b\t"<<c<<endl;c=a<=a;cout<<"3)a<=a\t"<<c<<endl;return0;}26C++程序设计及项目实践逻辑运算符逻辑运算符主要包括逻辑与(&&),逻辑或(||),逻辑非(!)三种运算符。逻辑与运算符与逻辑或运算符均为双目运算符,逻辑非为单目运算符。运算功能的描述如下: (1)逻辑与两个操作数中只有均为真时,结果才为真,其他均为假。 (2)逻辑或两个操作数中只要有一个为真时,结果就为真,其他均为假。 (3)逻辑非取操作数的相反值。27C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){boola(true),b(false),result;cout<<boolalpha<<"1)a\t"<<a<<"\tb\t"<<b<<endl;result=a&&b;cout<<"2)a&&b\t"<<result<<endl;result=a||b;cout<<"3)a||b\t"<<result<<endl;result=!b;cout<<"4)!b\t"<<result<<endl;return0;}28C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){boolresult;cout<<boolalpha;intc(-1),d(0);cout<<"5)c\t"<<c<<"\td\t"<<d<<endl;result=c&&d;cout<<"6)c&&d\t"<<result<<endl;result=c||d;cout<<"7)c||d\t"<<result<<endl;result=!c;cout<<"8)!c\t"<<result<<endl;result=(c<0)&&(d>0);cout<<"9)(c<0)&&(d>0)\t"<<result<<endl;return0;}29C++程序设计及项目实践逻辑运算真值表aba&&ba||b!a布尔值非布尔值布尔值非布尔值true非0true非0truetruefalsetrue非0false0falsetruefalsefalse0true非0falsetruetruefalse0false0falsefalsetrue30C++程序设计及项目实践逻辑短路(1)对A&&B运算时,这里A,B为表达式,若已经计算A为false,则B部分不再进行计算,直接返回false。只有A部分运行结果为true时候,B部分会进行进一步计算。(2)对A||B运算时,若已经计算A为true,则B部分不再进行计算,直接返回true。只有A部分运行结果为false时候,B部分会进行进一步计算。31C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){boolb1(true),b2(true);(b1=3<2)&&(b2=3<2);cout<<boolalpha<<"1)b1:"<<b1<<"\tb2:"<<b2<<endl;b1=b2=true;cout<<"2)b1:"<<b1<<"\tb2:"<<b2<<endl;b1||(b2=3<2);cout<<"3)b1:"<<b1<<"\tb2:"<<b2<<endl;return0;}32C++程序设计及项目实践位运算符位运算符是对操作数的位进行相应的操作,主要包括:与(&),或(|),取反(~),异或(^),左移(<<),右移(>>)等运算符。取反运算符为单目运算符,其他运算符均为双目运算符。33C++程序设计及项目实践#include<iostream>usingnamespacestd;intmain(){unsignedshortinta(127),b(128),c;c=a&b;cout<<"1)a&b\t"<<c<<endl;c=a|b;cout<<"2)a|b\t"<<c<<endl;c=~a;cout<<"3)~a\t"<<c<<endl;c=a^b;cout<<"4)a^b\t"<<c<<endl;return0;}34位运算真值表aba&ba|b~aa^b00001001011110010111110035移位操作#include<iostream>usingnamespacestd;intmain(){unsignedshortinta(127),c;c=a<<4;cout<<"5)a<<4\t"<<c<<endl;c=a>>4;cout<<"6)a>>4\t"<<c<<endl;return0;}36类型转换运算符类型转换包括隐式类型转换和强制类型转换。隐式类型转换不需要用户指定,系统直接在进行相关运算时自动转换,这种现象称为赋值兼容。强制类型转换需要用户使用:类型名(表达式)或者(类型名)(表达式)的方式进行转换。37#include<iostream>#include<typeinfo>usingnamespacestd;intmain(){charc='A';unsignedcharuc='B';boolis=typeid(c+uc)==typeid(char);cout<<boolalpha<<"1)isc+ucchar?\t"<<is<<endl;is=typeid(c+uc)==typeid(int);cout<<"2)isc+ucint?\t"<<is<<endl;return0;}38级别名称1longdouble2double3float4unsignedlonglong5longlong6unsignedlong7long8unsignedint9int转换规则char,short相关类型在计算时均升级为int。不同级别数据运算时,低级数据均升级为高级数据类型。在int和long长度相等时,unsignedint在和long相关数运算时,结果为unsigndlong类型。当数据赋值给左值(赋值号左侧变量)时,数据均强制转换为左值数据类型。39复合赋值运算符在赋值运算符“=”之前可以加上先前的其他运算符,比如算术运算符、位操作运算符等构成复合赋值运算符,这些运算相当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论