版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章
简单数据及运算清华大学郑莉学习目标掌握常量与变量的概念及其定义和初始化方法;掌握C++的基本数据类型;掌握基本类型数据的运算实现方法。2目录2.1程序中的数据2.2基本数据类型2.2.1整数类型2.2.2浮点数类型2.2.3字符类型2.2.4字符串类型2.2.5布尔类型3目录(续)2.3简单运算2.3.1算术运算2.3.2赋值运算2.3.3逗号运算2.3.4关系运算2.3.5逻辑运算2.3.6sizeof运算2.3.7位运算4目录(续)2.4语句2.4.1声明语句2.4.2表达式语句2.4.3复合语句52.1程序中的数据常量在源程序中直接写明的数据,其值在整个程序运行期间不可改变,这样的数据称为常量。变量在运行过程中从计算机的外部设备(例如键盘、硬盘)读取的,这些数据的值在程序运行过程中允许改变,这样的数据称为变量。6例2-1:读入并显示整数#include<iostream>usingnamespacestd;intmain(){intradius; cout<<"Pleaseentertheradius!\n";cin>>radius; cout<<“Theradiusis:”<<radius<<‘\n’; cout<<"PIis:"<<3.14<<'\ncout<<"Pleaseenteradifferentradius!\n";cin>>radius; cout<<"Nowtheradiusischangedto:"<<radius<<'\ncout<<"PIisstill:"<<3.14<<'\n'; return0;}72.1程序中的数据运行结果:Pleaseentertheradius!2Theradiusis:2PIis:3.14159Pleaseenteradifferentradius!3Nowtheradiusischangedto:3PIisstill:3.141592.1程序中的数据例2-1(续)例2-2:为常量命名#include<iostream>usingnamespacestd;intmain(){constdoublepi(3.14159); intradius; cout<<"Pleaseentertheradius!\n";cin>>radius; cout<<"Theradiusis:"<<radius<<'\n'; cout<<"PIis:"<<pi<<'\n'; cout<<"Pleaseenteradifferentradius!\n";cin>>radius; cout<<"Nowtheradiusischangedto:"<<radius<<'\n';cout<<"PIisstill:"<<pi<<'\n‘;return0;}92.1程序中的数据运行结果:Pleaseentertheradius!2Theradiusis:2PIis:3.14159Pleaseenteradifferentradius!3Nowtheradiusischangedto:3PIisstill:3.141592.1程序中的数据例2-2(续)例2-3:变量的初始化#include<iostream>usingnamespacestd;intmain(){constdoublepi(3.14159); intradius(0); cout<<"Theinitialradiusis:"<<radius<<'\n'; cout<<"PIis:"<<pi<<'\n‘;。cout<<"Pleaseenteradifferentradius!\n";cin>>radius; cout<<"Nowtheradiusischangedto:"<<radius<<'\n';cout<<“PIisstill:”<<pi<<‘\n’; return0;}112.1程序中的数据运行结果:Theinitialradiusis:0PIis:3.14159Pleaseenteradifferentradius!3Nowtheradiusischangedto:3PIisstill:3.141592.1程序中的数据例2-3(续)2.2.1整数类型基本的整数类型
Int按符号分符号的(signed)和无符号的(unsigned)按照数据范围分
短整数(short)和长整数(long)char类型132.2基本数据类型2.2.1整数类型(续)十进制整数
[±]若干个0~9的数字,但数字部分不能以0开头,正数前边的正号可以省略。八进制整数八进制整常量的数字部分要以数字0开头,一般形式为:[±]0若干个0~7的数字十六进制整数十六进制整常量的数字部分要以0x开头,一般形式为:[±]0x若干个0~9的数字及A~F的字母(大小写均可)142.2基本数据类型例2-4:整数变量的定义与输出#include<iostream>usingnamespacestd;intmain(){shortinti;unsignedshortintj;j=50000;i=j;cout<<“Shortintis:”<<i<<endl;cout<<“Shortunsignedintis:”<<j<<endl;return0;}152.2基本数据类型——2.2.1整数类型运行结果:Shortintis:-15536Unsignedshortintis:50000例2-4(续)2.2基本数据类型——2.2.1整数类型例2-5:不同类型整数的最值#include<iostream>#include<iostream>#include<limits>usingnamespacestd;intmain(){cout<<”Minofshortis:”<<SHRT_MIN<<endl;cout<<”Maxofshortis:”<<SHRT_MAX<<endl;cout<<”Minofintis:”<<INT_MIN<<endl;cout<<”Maxofintis:”<<INT_MAX<<endl;cout<<”Minoflongis:”<<LONG_MIN<<endl;cout<<”Maxoflongis:”<<LONG_MAX<<endl;cout<<”Maxofunsignedshortis:”<<USHRT_MAX<<endl;cout<<”Maxofunsignedintis:”<<UINT_MAX<<endl;cout<<”Maxofunsignedlongis:”<<ULONG_MAX<<endl;return0;}172.2基本数据类型——2.2.1整数类型运行结果:Minofshortis:-32768Maxofshortis:32767Minofintis:-2147483648Maxofintis:2147483647Minoflongis:-2147483648Maxoflongis:2147483647Maxofunsignedshortis:65535Maxofunsignedintis:4294967295Maxofunsignedlongis:4294967295例2-5(续)2.2基本数据类型——2.2.1整数类型例2-6:整型常量的应用#include<iostream>#include<limits>usingnamespacestd;intmain(){intisample,osample,hsample;unsignedlongulsample;cin>>isample>>oct>>osample>>hex>>hsample;cout<<isample<<';'<<oct<<osample<<';‘<<hex<<hsample<<endl;isample=123;osample=0173;hsample=0x7B;ulsample=4294967295UL;192.2基本数据类型——2.2.1整数类型例2-6(续)cout<<dec<<isample<<';'<<oct<<isample<<';'<<hex<<isample<<endl;cout<<dec<<osample<<';'<<oct<<osample<<‘;’<<hex<<osample<<endl;cout<<dec<<hsample<<‘;’<<oct<<hsample<<‘;’<<hex<<hsample<<endl;cout<<dec<<ulsample<<';'<<oct<<ulsample<<';'<<hex<<ulsample<<endl;return0;}202.2基本数据类型——2.2.1整数类型运行结果:12301730x7B123;173;7b123;173;7b123;173;7b123;173;7b4294967295;37777777777;ffffffff例2-6(续)2.2基本数据类型——2.2.1整数类型2.2.2浮点数类型单精度float双精度double扩展精度longdouble222.2基本数据类型2.2.2浮点数类型(续)一般形式
例如,12.5,-12.5等指数形式
double例如,0.345E+2表示0.345×102,-34.4E-3表示-34.4×10-3,其中,字母E可以大写或小写。当以指数形式表示一个实数时,整数部分和小数部分可以省略其一,但不能都省略。例如:.123E-1,12.E2,1.E-3都是正确的,但不能写成E-3这种形式。需要注意的是,在浮点文字量的中间不能出现空格。232.2基本数据类型例2-7:不同类型浮点数的应用#include<iostream>#include<limits>usingnamespacestd;constfloatPI_FLOAT=3.1415926f;constdoublePI_DOUBLE=3.1415926;constlongdoublePI_LDOUBLE=3.1415926;intmain(){floatnRadiusFloat=5.5f,nAreaFloat;doublenRadiusDouble=5.5,nAreaDouble;longdoublenRadiusLDouble=5.5,nAreaLDouble;nAreaFloat=PI_FLOAT*nRadiusFloat*nRadiusFloat; nAreaDouble=PI_DOUBLE*nRadiusDouble*nRadiusDouble;242.2基本数据类型——2.2.2浮点数类型例2-7(续)nAreaLDouble=PI_DOUBLE*nRadiusDouble*nRadiusDouble;cout<<“nAreaFloat=”<<nAreaFloat<<”,sizeof(nAreaFloat)=”<<sizeof(nAreaFloat)<<endl;cout<<“nAreaDouble=”<<nAreaDouble<<”,sizeof(nAreaDouble)=”<<sizeof(nAreaDouble)<<endl;cout<<“nAreaLDouble=”<<nAreaLDouble<<”,sizeof(nAreaLDouble)=”<<sizeof(nAreaLDouble)<<endl;return0;}252.2基本数据类型——2.2.2浮点数类型运行结果:nAreaFloat=95.0332,sizeof(nAreaFloat)=4nAreaDouble=95.0332,sizeof(nAreaDouble)=8nAreaLDouble=95.0332,sizeof(nAreaLDouble)=8例2-7(续)2.2基本数据类型——2.2.2浮点数类型2.2.3字符类型字符变量关键字char字符常量单引号括起,例如:’a’,’D’,’$’等转义字符不可显示字符,无法通过键盘输入字符,例如响铃、换行、制表符、回车等272.2基本数据类型2.2.3字符类型(续)转义字符换行符(newline)\n水平制表键(horizontaltab)\t垂直制表键(verticaltab)\v退格键(backspace)\b回车键(carriagereturn)\r进纸键(formfeed)\f响铃符(alert(bell))\a反斜杠键(backslash)\\问号(questionmark)\?单引号(singlequote)\’双引号(doublequote)\”一般的转义序列采用如下格式:\ooo这里的ooo代表三个八进制数字组成的序列。八进制序列的值代表该字符在机器字符集里的数字值。例如:\7(响铃符)\14(换行符)\0(null)\062(‘2’)282.2基本数据类型2.2.4字符串类型C风格的字符串采用字符数组
关键字charC风格的字符串和C++风格的字符串采用标准C++类库中的String类字符串常量C风格的字符串常量是双引号中的一串字符。例如:“Hellow”;292.2基本数据类型2.2.4字符串类型(略)字符串与字符的区别字符串与字符是不同的,以“Hellow”为例,它在内存中的存放形式是按串中字符的排列顺序存放,每个字符占一个字节,并在末尾添加’\0’作为结尾标记。而字符仅占一个单元。302.2基本数据类型例2-8:字符数据的应用#include<iostream>usingnamespacestd;intmain(){cout<<'A'<<''<<'a'<<endl;//输出普通字符cout<<"one\ttwo\tthree\n";//使用水平制表符cout<<"123\b\b45\n";//使用退格符cout<<"Alert\a\n";//使用响铃键return0;}312.2基本数据类型——2.2.4字符串类型运行结果:Aaonetwothree145Alert例2-8(续)2.2基本数据类型——2.2.4字符串类型2.2.5布尔类型布尔类型说明符关键字bool布尔常量true,false用途常用来表示关系比较、相等比较或逻辑运算的结果.332.2基本数据类型例2-9:定义bool类型的变量并进行相关算术运算#include<iostream>usingnamespacestd;intmain(){boolbV1=true,bV2=false;cout<<”boolvaluebV1=”<<bV1<<endl;cout<<”boolvaluebV2=”<<bV2<<endl;intnV1=bV1,nV2=0;bV1=nV2;cout<<”intvaluenV1=”<<nV1<<endl;cout<<”boolvaluebV1=”<<bV1<<endl;return0;}342.2基本数据类型——2.2.5布尔类型运行结果:boolvaluebV1=1boolvaluebV2=0intvaluenV1=1boolvaluebV1=0例2-9(续)2.2基本数据类型——2.2.5布尔类型2.3.1算术运算算术运算符自增(++),自减(--);加(+),减(-),乘(*),除(/);取余(%)。算术表达式由算术运算符构成的表达式称为算术表达式。362.3简单运算2.3.1算术运算(续)算术运算符的优先级372.3简单运算优先级运算符结合性高低后置
++后置––左→右前置
++前置––右→左*/%左→右+–左→右例2-10:算术运算#include<iostream>usingnamespacestd;intmain(){intval1=24;intval2=5;doubleval3=24;doubleval4=5;cout<<“int/int,24/5=”<<val1/val2<<endl;cout<<“int/int,24%5=”<<val1%val2<<endl;val2=-5;cout<<“int/int,24%(-5)=”<<val1%val2<<endl;cout<<“double/double,24/5=”<<val3/val4<<endl;382.3简单运算——2.3.1算术运算例2-10(续)//cout<<“double/double,24%5=”<<val3%val4<<endl;cout<<“double/int,24/5=”<<val3/val2<<endl;cout<<“int/double,24/5=”<<val1/val4<<endl;val1=5;cout<<
“val1=”<<val1<<endl;cout<<val1++<<
“,”;cout<<++val1<<”,”
;cout<<val1--<<”,”
;cout<<--val1<<endl
;val1=5;cout<<
“val1=”<<val1<<endl;
cout<<
val1++<<”,”<<++val1<<”,”<<val1--<<”,”<<--val1<<endl;}
392.3简单运算——2.3.1算术运算运行结果:int/int,24/5=4int/int,24%5=4int/int,24%(-5)=4double/double,24/5=4.8double/int,24/5=-4.8int/double,24/5=4.8val1=55,7,7,5val1=54,5,4,5例2-10(续)2.3简单运算——2.3.1算术运算2.3.2赋值运算基本赋值运算符
=
例如:intival; ival=2; charch; ch=‘A’;。复合赋值运算符*=、
/=、%=、
+=、-=、>>=、<<=、&=、ˆ=、|=表达式E1op=E2等效于
E1=E1opE2。例如:a+=b等同于a=a+b412.3简单运算例2-11:赋值运算的应用#include<iostream>usingnamespacestd;intmain(){intival1,ival2;doublefval;charcval;
ival1=1;ival2=2;cout<<"ival1="<<ival1<<endl;cout<<"ival2="<<ival2<<endl;
ival1=ival2=0;ival1=fval=0;ival1=cval='a‘;
422.3简单运算——2.3.2赋值运算例2-11(续) cout<<"ival1="<<ival1<<endl;cout<<"ival2="<<ival2<<endl;cout<<"fval="<<fval<<endl;cout<<"cval="<<cval<<endl;
intival3=fval=8;cout<<"ival3="<<ival3<<endl;cout<<"fval="<<fval<<endl;cout<<
“ival1=”<<ival1<<”,ival2=”<<ival2<<endl;ival2=-ival1++
;cout<<”ival2=-ival1++,ival1=”<<ival1<<
“,ival2=”<<ival2<<endl;ival1=++ival2+ival1;cout<<”ival1=++ival2+ival1,ival1=”<<ival1<<endl;return0;}432.3简单运算——2.3.2赋值运算运行结果:ival1=1ival2=2ival1=97ival2=0fval=0cval=aival3=8fval=8ival1=97,ival2=0ival2=-ival1++,ival1=98,ival2=-97ival1=++ival2+ival1,ival1=2例2-11(续)2.3简单运算——2.3.2赋值运算2.3.3逗号运算逗号表达式逗号表达式是一系列由逗号分开的表达式。这些表达式从左向右计算。逗号表达式的结果是最右边表达式的值。例如:
boolbval=true;intival1,ival2; (bval)?ival1=1,ival2=ival1:ival2=2,ival1=ival1; cout<<”ival1=”<<ival1<<endl; cout<<”ival2=”<<ival2<<endl;
在运行时将输出下列内容 ival1=1 ival2=1452.3简单运算2.3.4关系运算用途用于比较数据之间的大小关系,其运算结果只能为true或false。
优先级关系运算符的优先级相同,运算次序为自左至右。关系表达式由关系运算构成的表达式,称为关系表达式。462.3简单运算2.3.4关系运算(续)关系运算符472.3简单运算运算符作用应用语法<判断是否左侧操作数小于右侧操作数,是则结果为true,否则结果为false。expres1<expres2<=判断是否左侧操作数小于或等于右侧操作数,是则结果为true,否则结果为false。
expres1<=expres2>判断是否左侧操作数大于右侧操作数,是则结果为true,否则结果为falseexpres1>expres2>=判断是否左侧操作数大于或等于右侧操作数,是则结果为true,否则结果为false。expres1>=expres2==比较两边的操作数是否相等,如果相等,运算结果为true,如果不相等,运算结果为false。expres1==expres2!=比较两边的操作数是否不相等,如果不相等,运算结果为true,如果相等,运算结果为false。expres1!=expres22.3.5逻辑运算逻辑运算与(&&)或(||)非(!),运算结果是布尔量。优先级逻辑非(!)运算的优先级高于关系运算,而&&和||的优先级低于关系运算和相等运算。关系运算符的优先级相同,运算次序为自左至右。482.3简单运算2.3.5逻辑运算(续)逻辑运算符492.3简单运算运算符作用应用语法!逻辑非。如果操作数的值为true,运算结果为false,反之运算结果为true。!expres&&逻辑与。当两个操作数均为true是,运算结果为true。只要有一个操作数为false,运算结果就是false。expres1&&expres2||逻辑或。当两个操作数均为falsee是,运算结果为false。只要有一个操作数为true,运算结果就是true。expres1||expres2例2-12:比较数据并输出结果#include<iostream>usingnamespacestd;intmain(){intival1=1,ival2=2,ival3=3,ival4=4;boolnFlag;nFlag=ival1==ival2?true:false;cout<<”Is1equals2?:”<<nFlag<<endl;nFlag=ival1<ival2?true:false;cout<<”Is1lessthan2?:”<<nFlag<<endl;nFlag=(ival1<ival2&&ival3<ival4)?true:false;cout<<”Is1lessthan2and3lessthan4:”<<nFlag<<endl;}502.3简单运算——2.3.5逻辑运算运行结果:Is1equals2?:0Is1lessthan2?:1Is1lessthan2and3lessthan4:1例2-12(续)2.3简单运算——2.3.5逻辑运算2.3.6sizeof运算Sizeof功能返回一个对象或类型的字节长度。三种形式sizeof(类型名称);sizeof(对象)sizeof对象522.3简单运算例2-13:sizeof运算符的应用#include<iostream>#include<iostream>#include<string>usingnamespacestd;intmain(){cout<<“sizeof(short)=”<<sizeof(short)<<endl;cout<<"sizeof(unsignedshort)="<<sizeof(unsignedshort)<<endl;cout<<“sizeof(int)=”<<sizeof(int)<<endl;cout<<"sizeof(unsignedint)="<<sizeof(unsignedint)<<endl;cout<<“sizeof(long)=”<<sizeof(long)<<endl;532.3简单运算——2.3.6sizeof运算例2-13(续)cout<<"sizeof(unsignedlong)="<<sizeof(unsignedlong)<<endl;cout<<"sizeof(float)="<<sizeof(float)<<endl;cout<<“sizeof(double)=”<<sizeof(double)<<endl;cout<<"sizeof(longdouble)="<<sizeof(longdouble)<<endl;cout<<"sizeof(char)="<<sizeof(char)<<endl;return0;}542.3简单运算——2.3.6sizeof运算运行结果:sizeof(short)=2sizeof(unsignedshort)=2sizeof(int)=4sizeof(unsignedint)=4sizeof(long)=4sizeof(unsignedlong)=4sizeof(float)=4sizeof(double)=8sizeof(longdouble)=8sizeof(char)=1例2-13(续)2.3简单运算——2.3.6sizeof运算2.3.7位运算562.3简单运算运算符作用使用语法~按位非,将操作数的每一位翻转,原来是0的变为1,原来是1的变为0~expres<<左移,将操作数的各位依次左移,右端补0expres1<<expres2>>右移,将操作数的各位依次右移,有符号数的右端补原来的符号位值,无符号数的右端补0expres1>>exp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度公务员考试《常识》试题含完整答案详解(各地真题)
- 2024-2025学年度执业兽医通关题库【有一套】附答案详解
- 骨科患者脊柱手术护理查房
- 2024-2025学年度河南应用技术职业学院单招《英语》模拟题库附答案详解【基础题】
- 2024-2025学年反射疗法师大赛理论试题预测试卷附参考答案详解(满分必刷)
- 2024-2025学年度公务员考试《常识》测试卷含答案详解(夺分金卷)
- 2024-2025学年度一级建造师题库及一套完整答案详解
- 2024-2025学年公务员考试《常识》练习题附完整答案详解(各地真题)
- 2024-2025学年度环境影响评价工程师之环境影响评价相关法律法规考前冲刺练习题含完整答案详解【易错题】
- 2024-2025学年度九江理工职业学院单招《英语》经典例题含答案详解【B卷】
- 2025年中华联合财产保险股份有限公司招聘笔试参考题库含答案解析
- 第10课 当代中国的法治与精神文明建设 课件(共25张)
- 2025年上海上海久事集团招聘笔试参考题库含答案解析
- 播种育苗课程设计
- 环境设计专业的职业规划
- 新媒体系列《主播素养》项目1-主播职业道德认知ZFF
- 泵站养护服务方案
- 《管理学基础与实务》第二版 课件 第一章 管理、管理者与管理学
- 大便失禁性相关皮炎的3C集束化方案
- 催乳师培训课件
- FZ∕T 54047-2020 循环再利用涤纶低弹丝
评论
0/150
提交评论