




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1c基本数据类型及表达式实用第二章数据类型及表达式2.1词法符号2.2基本数据类型2.3常量与变量2.4运算符与表达式第1页/共54页§2.1词法符号 P132.1.1字符集2.1.2标识符2.1.3关键字第2页/共54页2.1.1字符集
1.字符集:即程序中允许出现的符号(ASCII码字符集)每种程序设计语言都使用一些特定的字符来构造基本词法单位,这些字符构成的集合就叫做字符集。
26个小写字母(a~z)、26个大写字母(A~Z)
10个数字(0~9)其他符号:+-*/=\|?^%,()<>:;‘{}[].!“_#&(空格)第3页/共54页同一个符号在不同位置出现时有不同的含义 例:3*2*p符号单独使用与组合使用时含义不同 例:=
与
==&
与
&&不论何种语言,在写字符串时不受字符集限制2.注意以下几点:字符集的字符必须是半角(ASCII码字符集)第4页/共54页命名规则:以字母或下划线开头,后跟字母、数字、下划线组成的串长度:标识符长度任意(C++编译器不同)例:name、total、sub_1、a11、_A11合法
2x、sum1、s$1非法标识符标识符:一个名字,由一串符号构成。作为标志与识别,常用来标识常量、变量、数据类型、函数等2.1.2标识符
1.标识符第5页/共54页注意:在标识符里区分大小写字母例:nameNameNAME
一个标识符不能分行书写不同标识符
习惯上取有意义的名字,如sum、 aver等。习惯上变量名、函数名常用小写字母第6页/共54页又叫保留字(Reservedword),是预先定义好的,被系统占用的标识符,具有特定的含义。注:一般标识符不能取关键字2.1.3关键字第7页/共54页2.2基本数据类型构造类型基本类型空类型(void)字符型实型整型
枚举型类(class)略基本型(int)短整型(short)长整型(long)单精度型(float)双精度型(double)长双精度型(longdouble)指针类型*数组结构体(union)共用体(struct)无符号型(unsigned)无符号整型(unsignedint)无符号短整型(unsignedshort)无符号长整型(unsignedlong)第8页/共54页
基本数据类型
不同数据类型的存储位数不同,数的范围不同进行数据处理时,根据数的特点决定数据类型数据类型字节范围整型int4-2147483648~2147483647字符型char1-128~+127实型单精度float410-38
~10+38(7)双精度double810-308
~10+308(15)第9页/共54页2.3.1常量整型常量实型常量字符常量字符串常量符号常量常量:是指在程序运行过程中,其值不变的量。常量都具有一定的数据类型,由其表示方法决定。在程序中不必对常量进行任何说明就可以使用。主要有以下几种:2.3常量与变量#include<iostream.h>voidmain(){ doubler,s,a; cout<<"PleaseinputR="; cin>>r; s=2*r*3.14; a=r*r*3.14; cout<<"s="<<s<<endl; cout<<"area="<<a<<endl;}数据是以常量或变量的形式来描述的第10页/共54页1.整型常量整型常量:
不带小数点整型常量可用十进制、八进制和十六进制的形式表示(1)十进制整数(2)八进制整数:以数字0开头的,由数字0~7组成的常数。例如:0177,033等。而123、039则是不合法的八进制常数。(3)十六进制整数:以数字0x或0X开头的,由数字0~9A¬F(或a~f)组成的常数。例如:0x10、0x3e而1a,0xgf、20h则不合法。长整型常量:在十进制、八进制、十六进制表示的整型常量中,若末尾加上字母l或(L)则说明该常数为长整型常量。如:12l,034l、0x3FL等。第11页/共54页小数表示法:由符号、数字和小数点组成(必须有小数点)如-.123,-0.123指数形式:由尾符、尾数、阶码标志e(E)、阶符、整数阶码构成如:-1.23e-345.6E5注:浮点常量总是以双精度(Double)形式出现,若要表示Float型常量,必须在实型常量后面加F或f。2.实型常量又称浮点数第12页/共54页3.字符型常量一般字符常量:键盘上有该符号例:'b'转义字符常量:用来表示一些不可显示或无法从键盘键入的控制字符。以
\引导的字符序列单引号括起来的单个字符,值为其ASCII码值,
单引号是定界符,不是常量本身的内容如:'a''A''2',注:'0'与0不同如(P17表2-3)
'\n'表示回车换行
'\''表示单引号
'\"'表示双引号第13页/共54页字符常数的存储方式:ASCII码值,占一个字节,如'A'对应的ASCII码值为:
65=0101=0X41=01000001B010000018位A:65a:970:48C++允许字符型数据参与数值运算第14页/共54页字符串常量:双引号括起来的一串字符
例"3a9d#=s"
"2天津ABC"4.字符串常量存储:在内存中依次存放每个字符的ASCII码,尾部自动加字符串结束标志'\0',即:001100000100000100111001010001003a9d#=s\0长度:为该串中含字符的个数,不含结束标志\0。上例串长度为:7第15页/共54页注:
在字符串里,可以使用转义字符的书写方式,以下字符串含"。"A"Sk3"
(错!)"A\"Sk3"例如:输出字符串A"Sk3\0OLLEH例:字符串“HELLO”的内存表示字符串结束标志A\Sk3cout<<"A\\Sk3";思考:‘a’与“a”的区别?第16页/共54页3)能进行的运算不同
'a'+'r'+5
合法字符常量可以与整型数进行加/减运算
"a"+"r"+5
非法
字符常量与字符串常量的区别1)表现形式不同字符常量用''
定界符不同字符串常量用""2)内存中所占空间不同
'a'
:字符常量,存储其ASCII码值,占据一个字节
"a"
:字符串常量,占据两个字节,即:a与\0的ASCII码值4)存放两者的变量不同字符常量用字符变量字符串常量用字符数组第17页/共54页
5.符号常量C++中常量可以是常数,也可以是代表固定不变的值的名字——符号常量。比如程序中经常用到某个常数,此时可以定义一个名字来表示此常数,以便改进程序的可读性。例如:计算圆面积或圆周长要用到3.1415926(不能直接用),可定义为符号常量。定义符号常量一般形式:
const
数据类型
符号常量=表达式;
例如:constdoublePI=3.1415926;constdoublePI=;error一般用大写字母#include<iostream.h>voidmain(){ doubler,s,a; cout<<"PleaseinputR="; cin>>r; s=2*r*3.14; a=r*r*3.14; cout<<"s="<<s<<endl; cout<<"area="<<a<<endl;}#include<iostream.h>constdoublePI=3.14;voidmain(){ doubler,s,a; cout<<"PleaseinputR="; cin>>r; s=2*r*PI; a=r*r*PI; cout<<"s="<<s<<endl; cout<<"area="<<a<<endl;}3.1415926;第18页/共54页(1)符号常量定义时必须初始化。如:
constdoublePI; PI=3.1415926; //error(2)定义中“表达式”只能是常量表达式,不能含有变量和函数。注意:例:constintCOUNT=5+1;right
constdoubleA1=5+sin(x);error第19页/共54页2.3.2变量1)变量:指在程序运行过程中其值可以改变的量2)变量要素:名字、类型和值(地址)3)C++程序中:变量的作用:用来存放数据使用变量前必须首先定义变量名和变量的数据类型,为此变量在内存中分配一定的存储单元,并将在该单元中存放变量的值。变量的类型不同占内存单元数不同,见P15表2-2存储字节数。
第20页/共54页变量的定义的一般格式/变量定义语句数据类型名变量名表;基本类型关键字:char字符型
int整型long长整型float浮点数double双精度数多个变量之间用逗号“,”分隔例:charc;
inti,j,k;longl1,l2;floatx,y,z;doublet1,t2;“先定义,后使用”变量类型:决定为该变量分配多大的存储空间决定该变量可参与何种运算变量名:规则遵循标识符的命名规则第21页/共54页例:inti,j,k;变量值:存储空间内的值变量的地址:
存储空间惟一的地址ki=3;j=5;ij35ji4个字节对变量的操作:存(赋值)和取(使用)i=3,j=5;k=i+j;取出i,j的值,求和后存入kk8第22页/共54页inti=3,j=5,k=i+j;变量赋值与初始化1)初始化:定义同时赋值2)赋值:定义后用赋值运算符“=”给变量赋值inti,j,k;i=3;
j=5;
k=i+j;3)也可定义后用输入语句从键盘输入变量的值inti,j,k;cin>>i>>j;k=i+j;第23页/共54页注意:不能重复定义一个变量例:inta,b,c;doublex,y,c;没有存放字符串的变量
chara;a="d3$*j";(错!)第24页/共54页2.4运算符与表达式2.4.2、算术运算符2.4.4、逗号运算符2.4.1、表达式重要2.4.5、类型转换2.4.3、赋值运算符第25页/共54页操作数:运算符:圆括号:优先级:
相邻两个运算符之间的运算顺序结合性:
优先级相同时那个运算符起作用,左、右结合性常量、变量、函数或其他表达式改变运算符的运算次序组成值书写没有上、下标、分式;括号只能出现圆括号;乘号不能省略例如:'A'+32+7.23*6/3-(4+3)/3说明运算的含义表达式第26页/共54页左结合:一个运算符对其操作数从左到右进行规定的运算,称此运算符是左结合的。右结合:
与左结合相反,即:从右到左。
式子运算符c++表达式结合性5×9÷3*/5*9/3左结合-5*6负号为右结合X=5=右结合结合性举例第27页/共54页赋值运算符与赋值表达式逗号运算符与逗号表达式逻辑运算符与逻辑表达式算术运算符与算术表达式C++中常用的运算符及其表达式有以下几种:优先级别低高关系运算符与关系表达式C++中常用的运算符及其表达式有以下几种:一、常用运算符与表达式C++中常用的运算符和表达式有以下几种:第28页/共54页3、求模运算%:要求两个操作数必须均为整型。两个整数相除后的余数,其符号和被除数的符号相同。-(负号)*/%+-二、算术运算符和算术表达式算术运算符(p23表2-5)结合性算术表达式中混有多种数据时,注意结果的类型1、整数相除结果为整数;分子<分母值为0
例3/5值为02、除数不能为0;单目双目双目高低例:8%5运算结果:
9%12运算结果:
-15%12运算结果:
12%(-15)运算结果:
39-312第29页/共54页常用的数学函数
#include<math.h>
函数名含义范例结果sin(x)正弦函数sin(0)0cos(x)余弦函数cos(0)1exp(x)以e为底的指数函数exp(3)20.086fabs(x)求绝对值fabs(-2.6)2.6pow(x,y)xypow(2,3)8.0sqrt(x)平方根sqrt(16)4.0第30页/共54页
式子c++表达式(a+b)/(c-d)a*a*asinxsin(x)sqrt(g)cosxcos(x)exp(x)算术表达式举例<math.h>#include第31页/共54页注:字符型数据可以进行运算charc1,c2;inti;c1='A';c2=c1+32;i=c2;字符的ASCII码值与整型数据可以通用,可以相互赋值,占1个字节。659797小写字母a的ASCII码的值第32页/共54页防止整数溢出错误!!!例:shortinti=1000,j=1000,k;k=i*j;shortint类型数的范围是–32768~32767
结果:k=1000*2000=1000000>32767
产生整数溢出,但C++系统不报警。要引起注意:可改变i,j,k为long类型变量来解决。第33页/共54页三、赋值运算符和赋值表达式=赋值表达式:<变量>=<表达式>赋值运算符:赋值过程:inta,b;a=2.4+3.8;//类型不同要转换,a=6;b=a+3; //类型相同不需要转换a=a+b;先求表达式的值,转换类型,再赋值优先级仅高于逗号表达式,从右向左第34页/共54页inta,b;b=(a=2.4+3.8);b=a=2.4+3.8注意赋值表达式的值和类型,当赋值号左右不一致时,要将表达式的值类型转换为变量的类型右左<变量1>=<变量2>=……<变量n>=<表达式>由于赋值运算符是右结合性的,可不加括号注意赋值运算符不是等于号,赋值运算符左边只能是变量名,不可以是常量或其他表达式
x+y=z //error 3=a+7 //error第35页/共54页读程序,写结果#include<iostream.h>#include<math.h>voidmain(){shortinti;doubled;longl;floatf;L=d=i=f=20/3;cout<<f<<l<<d<<i<<endl;}第36页/共54页复合的赋值运算
格式:<变量><双目运算符>=<表达式><变量>=<变量><双目运算符>(<表达式>)算术运算符复合
+=,-=,*=,/=,%=(p26)例如:a+=1a=a+1a*=6+2x%=y+3a=a*(6+2)x=x%(y+3)inta=12;a+=a-=a*=a第37页/共54页例2.2输出赋值表达式的运算结果。#include<iostream.h>voidmain(){ inta,b,c,d,e=7; a=b=1; c=5; d=a=a+1; d*=a+b; //等价于d=d*(a+b) e%=c-b; //等价于e=e%(c-b) cout<<a<<"\t"<<b<<"\t"<<c<<"\t"<<d<<"\t"<<e;}运行结果为:21563说明:使用赋值的目的是为了保存赋值号右边表达式的值,即保存计算结果。将计算结果保存到变量中,就可以在后面的操作中使用该值了。
第38页/共54页四、自增自减运算符与表达式自增自减运算符:++--
单目区别:要求操作数必须是变量自增自减表达式:
i++
先取值,后自加,等价于:i=i+1
++i先自加,后取值,等价于:i=i+1--i
先自减,后取值,等价于:i=i-1i--
先取值,后自减,等价于:i=i-1先自增减,再计算++i--i先计算,再自增减i++i--表达式的值与变量的值第39页/共54页程序段1:#include<iostream.h>voidmain(){inti=1,j;j=i++;cout<<i<<“\t”<<j;}结果:
22i++与++i的区别举例程序段2:#include>iostream.h>voidmain(){inti=1,j;j=++i;cout<<i<<“\t”<<j;}21结果:第40页/共54页#include<iostream.h>#include<math.h>voidmain(){inti=3,j=2;intm,n;m=(i++)*(j++);cout<<m<<endl;cout<<i<<j<<endl;m=(++i)*(++j);cout<<m<<endl;cout<<i<<j<<endl;m=i+++++j;cout<<m<<i<<j<<endl;}例2.4自增、自减运算符的应用。第41页/共54页表达式2表达式n,……,功能:从第一个开始(左),依次计算每个表达式的值,最后(右)一个表达式的值即为逗号表达式的值。五、逗号运算符(p27)例:inta,b,c,d;则:
a=1,b=a+2,c=b+3值:
表达式1,第42页/共54页优先级别:最低为了将逗号表达式的值赋给变量,必须加圆括号例:inta,b,c,d;d=(a=1,b=a+2,c=b+3);cout<<d<<endl;//结果:d=6思考一下各变量及逗号表达式的值X=y=(z=3,2*3)X=y=z=3,2*3X=(y=z=3,2*3)第43页/共54页类型转换问题提出:什么时候、为什么需要类型转换? 进行双目运算时,要求两个操作数的类型必须相同:当运算符两边的操作数的数据类型不一致时,VC++系统要先转换为同一类型,然后再进行运算。
即先转换,再运算,运算结果的类型同操作数的类型。两种类型转换的方法:
Ó
自动类型转换、Ó
强制类型转换第44页/共54页longchar系统自动转换:由编译系统自动完成intdoublefloat低高当操作数类型不同时系统进行的转换小空间向大空间转换1自动类型转换箭头表示转换方向第45页/共54页'A'+32+7.23*6-5/3intintdoubledouble运算结果的类型为:第46页/共54页2强制类型转换(类型名)操作数或类型名(操作数)这也是一个表达式,该表达式的值是把操作数的数据类型强行转换为前面指定的数据类型后的值。操作数:可以是常量、变量、函数、表达式若为表达式,则要用括号将表达式括起来一般形式:例如:(long)2 (int)4.8 (double)5/3 (double)(5/3)1.0000001.6666672L4使用强制类型转换运算符来实现第47页/共54页举例:#include<iostream.h>voidmain(){doublex=5.6;inti;
i=int(x);cout<<“i=“<<i<<“\nx=“<<x<<“\n”;}
运行结果:i=5x=5.6说明x变量的类型没变注意一:是一种运算,表达式的值类型转换,而操作数的类型不变。(若为变量,不能改变变量的的数据类型。)第48页/共54页注意二:
当操作数是表达式,用以下形式转换时,表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度不锈钢水箱安全性能评估合同
- 二零二五年度企业车辆绿色出行奖励与监督合同
- 吉安市城投公司及下属子公司2024年公开招聘线下及实操笔试参考题库附带答案详解
- 2025浙江嘉兴市嘉善福德曼液压机械有限公司招聘2人笔试参考题库附带答案详解
- 2025广东省汕特建设集团有限公司招聘专业技术人才4人笔试参考题库附带答案详解
- 2025年福建福州地铁春季校园招聘105人笔试参考题库附带答案详解
- 2025年广东佛山市三水海江昇平建设工程有限公司招聘企业工作人员27人(第一批)笔试参考题库附带答案详解
- 2025安徽蚌埠市城市投资控股集团有限公司所属公司社会招聘11人笔试参考题库附带答案详解
- 树脂瓦施工方案
- 飞机技术知识培训课件
- 生物-湖北省鄂东新领先协作体2025届高三下学期2月调考(二模)试题和答案
- 6 千人糕 教学设计-2023-2024学年语文二年级下册统编版
- DeepSeek:从入门到精通3天教程
- 社会问题(第三版)课件汇 向德平 第1-7章 社会问题概述 - 人口问题
- 深圳2025年广东深圳市公办中小学招聘事业单位工作人员178人笔试历年参考题库附带答案详解
- 7 鹿角和鹿腿 第二课时 公开课一等奖创新教学设计
- 2025届高考化学二轮复习:晶胞的相关性质及计算(含解析)
- 2024年沙洲职业工学院高职单招职业适应性测试历年参考题库含答案解析
- 2024年山东铝业职业学院高职单招数学历年参考题库含答案解析
- 2024年山东劳动职业技术学院高职单招语文历年参考题库含答案解析
- 融合智慧数据的图书馆数智服务平台研究
评论
0/150
提交评论