




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(中职)Visual C+程序设计基础(中职)Flash 8.0基础第2章 基本数据类型及表达式ppt课件第2章 基本数据类型及表达式要点:数据类型、常数、变量、运算符与表达式程序主要是对数据进行处理,首先要存储数据:用多大的空间存储数据、怎样存,进行什么运算 根据数的特点决定数据类型 根据处理方法决定选用常量或变量或数组 同时要起名字、知道存贮结构 根据数据类型决定采用的运算符与表达式 同时要知道运算优先顺序和方向 第二章 基本数据类型及表达式2.1 词法符号2.2 基本数据类型2.3 常量与变量2.4 运算符与表达式2.1 词法符号2.1.1字符集2.1.2标识符2.1.3关键字字符集:即
2、程序中允许出现的符号(ASCII码字符集)每种程序设计语言都使用一些特定的字符来构造基本词法单位,这些字符构成的集合就叫做字符集。 26个小写字母(az)、26个大写字母(AZ) 10个数字(09) 其他符号:+ - * / = |? %,( ):;.!“_#& (空格)2.1.1字符集同一个符号在不同位置出现时有不同的含义 例: 3 * 2 *p符号单独使用与组合使用时含义不同 例:= 与 = & 与 &不论何种语言,在写字符串时不受字符集限制需注意的几点:字符集的字符必须是半角(ASCII码字符集)命名规则:以字母或下划线开头,后跟字母、数字、下划线组成的串长度:标识符长度任意(C+编译器
3、不同)例: name、total、sub_1、a11、_A11合法 2b、sum 1、s$1非法标识符 标识符:一个名字,由一串符号构成。作为标志与识别,常用来标识常量、变量、数据类型、函数等2.1.2 标识符注意:在标识符里区分大小写字母例: name Name NAME一个标识符不能分行书写不同标识符习惯上取有意义的名字,如sum、aver等,尽量不要重名。习惯上变量名、函数名常用小写字母又叫保留字(Reserved word),是预先定义好的,被系统占用的标识符,具有特定的含义。注:一般标识符不能取关键字2.1.3 关键字2.2 基本数据类型构造类型基本类型空类型(void)字符型实型整
4、型 枚举型类(class)略基本型 (int)短整型 (short)长整型 (long)单精度型(float)双精度型 (double)长双精度型(long double)P15 图2-1指针类型 *数组结构体(union)共用体(struct)无符号型(unsigned)无符号整型( unsigned int)无符号短整型(unsigned short)无符号长整型( unsigned long) 基本数据类型 (P15表2-2) 不同数据类型的存储位数不同,数的范围不同进行数据处理时,根据数的特点决定数据类型数据类型字节范围整型int4 -2147483648 2147483647字符型c
5、har1-128 +127实型单精度float410-38 10+38 (7)双精度double810-308 10+308(15)2.3.1 常量整型常量长整形常量实型常量字符常量字符串常量符号常量 常量:是指在程序运行过程中,其值不变的量。常量都具有一定的数据类型,由其表示方法决定。在程序中不必对常量进行任何说明就可以使用。主要有以下几种:2.3 常量与变量#include void main()double r,s,a;coutr;s=2*r*3.14;a=r*r*3.14;couts=sendl;coutarea=aendl;数据是以常量或变量的形式来描述的1. 整型常量整型常量: 不
6、带小数点小数表示法:由符号、数字和小数点组成 (必须有小数点)如 -.123 , -0.123指数形式:由尾符、尾数、阶码标志e (E)、阶符、 整数阶码构成 如:-1.23e-3 45.6E5注:浮点常量总是以双精度(Double)形式出现3. 实型常量又称浮点数double2. 长整型常量整型常量中,若在末尾加上字母l(或L),则该常数为长整型常量 4.字符常量一般字符常量:键盘上有该符号 例:b转义字符常量:不能从键盘上直接输入以 开始的字符序列,表示控制代码单引号括起来的单个字符,值为其ACSII码值, 单引号是定界符,不是常量本身的内容如:a A 2,注:0与0不同如 (P15表2-
7、3) n表示回车换行 表示单引号 表示双引号字符常数的存储方式:ASCII码值,占一个字节如 A 对应的ASCII码值为: 65=0101=0X41=01000001B010000018位A: 65a: 970: 48字符串常量:双引号括起来的一串字符 例 3a9d#=s 2天津ABC5.字符串常量存储:依次存放各自的ASCII码,尾部自动加字符串结束标志0,即:001100000100000100111001010001003 a 9 d # = s 0长度:为该串中含字符的个数,不含结束标志,即串长度。上例串长度为:7注: 在字符串里,可以使用转义字符的书写方式,以下字符串含。ASk3 (
8、错!)ASk3例如:输出字符串 ASk30OLLEH例:字符串“HELLO”的内存表示字符串结束标志ASk3coutASk3;3)能进行的运算不同 a+r+5 合法 字符常量可以与整型数进行加/减运算 a+r+5 非法 字符常量与字符串常量的区别1) 表现形式不同 字符常量用 定界符不同 字符串常量用 2) 内存中所占空间不同 a :字符常量, 存储其ASCII码值, 占据一个字节 a :字符串常量,占据两个字节, 即:a 与0 的ASCII码值4) 存放两者的变量不同 字符常量用 字符变量 字符串常量用 字符数组 6.符号常量 C+中常量可以是常数,也可以是代表固定不变的值的名字符号常量。比
9、如程序中经常用到某个常数,此时可以定义一个名字来表示此常数,以便改进程序的可读性。 例如:计算圆面积或圆周长要用到3. 1415926 (不能直接用),可定义为符号常量。定义符号常量一般形式: const 数据类型 符号常量=表达式; 例如:const double PI=3.1415926; const double PI= ; error一般用大写字母#include void main()double r,s,a;coutr;s=2*r*3.14;a=r*r*3.14;couts=sendl;coutarea=aendl;#include const double PI=3.14;voi
10、d main()double r,s,a;coutr;s=2*r*PI;a=r*r*PI;couts=sendl;coutarea=aij; k=i+j;注意:不能重复定义一个变量例:int a,b,c; double x,y,c;没有存放字符串的变量 char a; a=d3$*j; (错!)2.4 运算符与表达式重要 程序中的大部分数据处理是通过运算符和表达式来实现的,很多语句也是由表达式构成的。对常量或变量进行运算或处理的符号称为运算符,参与运算的对象称为操作数,用运算符将操作数连接起来就构成了表达式。 运算符在使用时,应注意: 运算符的目数。即参与运算的操作数个数,可分为单目、双目和三
11、目运算符。 运算符的优先级。指不同运算符在表达式中出现时计算的次序,优先级高的先计算,优先级低的后计算。 运算符的结合性。指相邻的两个运算符优先级别相同时的运算次序,是从左向右算,还是从右往左算。对从左向右进行运算的运算符,称为左结合,反之称为右结合。 P21的表2-4中列出了各种运算符及其优先级和结合性。操作数:运算符:圆括号:优先级: 相邻两个运算符之间的运 算顺序结合性: 优先级相同时起作用,左、右结合性常量、变量、函数或其他表达式改变运算符的运算次序组成值书写对数学式子要写成表达式,没有上、下标、分式,只有圆括号,乘号不能省略例如:A+32+7.23*6/3-(4+3) / 3说明运算
12、的含义2.4.1 表达式表达式的组成、优先级及书写原则左结合: 一个运算符对其操作数从左到右进行规定的运算,称此运算符是左结合的。右结合: 与左结合相反,即:从右到左。 式子 运算符 c+表达式 结合性 593 * / 5*9/3 左结合结合性举例表达式的书写原则 乘号不能省略。例如,x乘以y,应书写为:x*y,而不能写成xy,这样,编译器会认为xy是一个变量名。 括号必须成对出现,而且只能使用圆括号,表达式中可以出现多个圆括号,但是必须配对出现。 表达式中没有上标或下标,也没有分式。例如变量名x2不能写成x2。 2.4.2 算术运算符1.算术运算符及表达式 由算术运算符连接操作数组成的表达式
13、称为算术表达式,实现算术运算。下表按优先级由高到低列出了C+中的算术运算符。 算术运算符操作目数结合性-负号1右结合*/%乘2左结合除2取余2+-加2左结合减23、求模运算%:要求两个操作数必须均为整型。-(负号)* / %+ -算术运算符 (p20 表2-5)结合性算术表达式1、整数相除结果为整数;分子分母 值为0 例 3/5值为02、除数不能为0;单目双目双目高低有一个值,注意其类型4、乘号不能省略注意:2.常用的数学函数 C+提供了大量的内部函数供用户编程时使用。内部函数按功能可分为数学函数、字符串函数、输入输出函数、图形函数等。使用内部函数时,应把相关的头文件通过#include预处理
14、命令包含到程序中。下表列出一些常用数学函数,使用数学函数,应在程序的最前面加入文件包含命令:#include 函数名含义范例结果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.02.4.2 算术运算符 式子 c+表达式 (a+b)/(c-d)a*a*asinxsin(x)sqrt(g)cosxcos(x)exp(x)算术表达式举例#include#include 取余算术运算符 %两个整数相除
15、后的余数,其符号和被除数的符号相同。例: 8%5 运算结果: 9%12 运算结果: -15%12 运算结果: 12%(-15 ) 运算结果: 2%2 运算结果: / 可对不同数据类型进行操作% 只对整数进行操作区别39 -312 0 注:字符型数据可以进行运算char c1,c2;int i;c1=A; c2=c1+32; i=c2;存储:该字符的ASCII码值与整型数据可以通用,可以相互赋值,占1个字节。659797小写字母a的ASCII码的值防止整数溢出错误!例: short int i=1000,j=1000,k; k=i*j; short int 类型数的范围是 3276832767
16、结果: k=1000*2000=100000032767 产生整数溢出,但C+系统不报警。要引起注意:可改变i ,j ,k为long类型变量来解决。 见下例16960=0 x42401000*1000=1000000=0 xf4240C=1000*1000=1000000=0 xf424032767 正溢出 1000000表示成16位是0 x4240是16960的补码。2.4.3 赋值运算符2.赋值表达式1.赋值运算符 用赋值运算符将变量和表达式连接起来则构成赋值表达式,一般形式为:= 赋值过程 :先求表达式的值,转换类型,再赋值int a,b;a=2.4+3.8; /类型不同要转换,a=6;
17、b=a+3; /类型相同不需要转换a=a+b; 基本赋值运算符为“=”,其功能是将某个表达式的值赋给一个变量,即存入变量所对应的存储空间。优先级仅高于逗号表达式,从右向左赋值运算符的注意事项: = = =由于赋值运算符是右结合性的,可不加括号注意赋值运算符不是等于号,赋值运算符左边只能是变量名,不可以是常量或其他表达式x+y=z/error3=a+7/errorint a,b;b=(a=2.4+3.8);b=a=2.4+3.8注意赋值表达式的值和类型右左 双目运算符可与赋值运算符组合成复合赋值运算符。赋值运算符与算术运算符组合成的复合赋值运算符为:+=、-=、*=、/=、%=,由这些运算符连接
18、而成的表达式称为复合赋值表达式。 格式:=()例如:a+=1a=a+1a*=6+2x%=y+3a=a*(6+2)x=x%(y+3)int a=12;a+=a-=a*=a例2.2 输出赋值表达式的运算结果。#include void main()int a,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)coutat btctdte;运行结果为:2 1 5 6 3说明:使用赋值的目的是为了保存赋值号右边表达式的值,即保存计算结果。将计算结果保存到变量中,就可以在后面的操作中使用该值了。 3.自增、自减运算
19、自增自减运算符: + - - 单目区别:要求操作数必须是变量自增自减表达式: i+ 先取值,后自加,等价于:i=i+1 +i 先自加,后取值,等价于:i=i+1 -i 先自减,后取值,等价于:i=i-1 i- 先取值,后自减,等价于:i=i-1先自增减,再计算 +i -i先计算,再自增减 i+ i-表达式的值与变量的值程序段1:#include void main() int i=1,j; j=i+; couti“t”iostream.h void main() int i=1,j; j=+i ; couti“t”j;2 1结果:例2.3自增、自减运算符的应用 。#includevoid ma
20、in()int i=2,j=2,m,n;m=i+; /n=+j; /coutmtnendl; coutitjendl;运行结果为:23 33表达式2表达式n,功能:从第一个开始(左),依次计算每个表达式的值,最后(右)一个表达式的值即为逗号表达式的值。2.4.4 逗号运算符例: int a,b,c,d;则: a=1,b=a+2,c=b+3值: 表达式1,C+中逗号也是一个运算符,在所有运算符中它的优先级别最低 优先级别:最低为了将逗号表达式的值赋给变量,必须加圆括号例: int a,b,c,d; d=(a=1,b=a+2,c=b+3); coutdendl; / 结果:d=62.4.5 类型转换问题提出:什么时候、为什么需要类型转换?进行双目运算时,要求两个操作数的类型必须相同:当运算符两边的操作数的数据类型不一致时,VC+系统要先转换为同一类型,然后再进行运算。即先转换,再运算,运算结果的类型同操作数的类型。两种类型转换的方法: 必定转换、 强制类型转换longchar系统自动转换:由编译系统自动完成int doublefloat低高char向unsigned int 转换当操作数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全网络空间安全态势评估与预警能力提升考核试卷
- 服装产品摄影与视觉营销考核试卷
- 林木售卖合同范本
- 水泥墩合同范本
- 科技教育融合下的职业教育发展新方向
- 建立企业内部品牌文化的必要性计划
- 保安工作中的信息共享机制计划
- 开展水资源评估的必要性计划
- 笋子销售合同范本
- 出钱投资合同范本
- 2024年四川绵阳初中学业水平考试英语试卷真题(含答案详解)
- 2024至2030年中国数字压力表行业投资前景及策略咨询研究报告
- 《SPIN顾问式销售》课件
- 2025届河南省郑州市外国语学校高三考前热身英语试卷含解析
- 【初中数学】2024-2025学年人教版七年级数学上册期末模拟练习
- 统编版九年级道德与法治上册期中考试卷带答案
- 公司关爱基金方案
- 燃料电池+基础理论动力学+热力学+研究方法
- 2023深信服日志审计系统用户手册
- 全国职业院校技能大赛高职组(社区服务实务赛项)考试题及答案
- 心房颤动诊断和治疗中国指南(2023) 解读
评论
0/150
提交评论