实验2 数据类型、运算符和表达式.doc
《实验2 数据类型、运算符和表达式.doc》由会员分享,可在线阅读,更多相关《实验2 数据类型、运算符和表达式.doc(6页珍藏版)》请在咨信网上搜索。
实验2 数据类型、运算符和表达式 一、实验目的和要求 1.掌握常量的表示法【字符和字符串常量、短整型、整型和长整型、实数(float)和双精度实数(double)】。 2.掌握各种类型变量的说明及初始化。 3.掌握各种运算符和各类表达式 (1)算术运算、逻辑运算、关系运算、++和 ――运算、三目条件运算符; (2)运算符的优先级、结合规则和目数的概念; (3)类型的自动转换和强制类型转换; (4)表达式的组成、左值和赋值,逻辑表达式的求值优化。 二、实验准备 知识点: 1.数据类型 C++提供了十分丰富的数据类型,除基本类型外,还提供了 。基本数据类型中包括字符型,可用 表示,占用 字节;整型,可用 表示,占用 字节;实型,可用 表示,占用 字节;双精度型,可用 表示,占用 字节;无值型,可用 表示,占用 字节。 2.标识符的命名规则 标识符命名应以 开始,由 组成,长度 。 3.常量 (1)常量可分为 、 、 、 和 。 (2)十进制整数常量以 开头;八进制整数常量以 开头,由 组成;十六进制整数常量以 开头,由 组成;长整型数以 结尾;无符号整型数以 结尾;无符号长整型数以 结尾。 (3)指数形式的实型常量要求在E或e前 ,且在E或e之后的指数部分 。 (4)字符常量是以 括起来的 个字符。转义序列以 开始,后跟一个 或一个 的办法来表示一个字符。若转义字符后是一个整型常量,它必须是 和 进制,且其对应的十进制取值范围必须在 之间,该八进制数以 开头,也可以不以 开头,而 进制数必须以 开头。‘\t’表示 ;‘\n’表示 ;‘\\’表示 ; (5)字符串常量是以 括起来的 个字符;字符串常量与字符常量的存放格式的区别是 。 (6)标识符常量可用两种方法定义标识符常量:一种是使用 ,另一种是利用常量说明语句 。 4.变量 变量要求 在前, 在后;变量说明语句可以出现 ,同一变量只能作 次定义性说明;首次引用变量时,变量必须有一个 ;对变量赋初值的三种方法: 、 和通过输入流cin对变量赋初值。 5.运算符与表达式 (1)算术运算 C++中的算术运算符有两个单目运算符(只有一个操作数的运算符): 和 ;五个双目运算符(有两个操作数的运算符):+(加)、―(减)、*(乘)、/(除)和 。 (2)关系运算 C++提供六种关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、= =(等于)、!=(不等于)。前面4种(>,<,>=,<=)优先级相同,后两种(==,!=)优先级相同,前4种高于后两种。结合性都为右结合。关系运算符是完成两个操作数的比较运算,即比较两个操作数的数值大小。运算的结果为一整数,当关系成立时,其运算结果为 ;当关系不成立时,其运算结果为整数 。 关系运算的结果 参与表达式的运算。 (3)逻辑运算 C++中提供三种逻辑运算符:逻辑非(!)、逻辑与(&&)和逻辑或(||);第一个运算符是单目运算,后两转者是双目运算符。在计算过程中,要注意&&的优先级低于!优先级,但高于||的优先级。!为左结合,而其它两个为右结合。逻辑运算要注意逻辑表达式的副作用:对于a&&b&&c,只有a为 时,才需要计算b的值,因为当a为 时,不管后面的项如何,都能得到该表达式的值就为0。同样只有在a和b都为 的情况下才需要计算c的值。;对于a||b||c,只要a为 ,就不需要判断b和c的值,而只有当a、b都为 时才需要计算c项。 (4)赋值运算 C++中赋值运算符分为两种:单一赋值运算符(=)和复合赋值运算符(+=, –=, *=, /=, %=, &=, ^=, |=, <<=, >>= ),都为双目运算符,结合性为左结合,其运算法则为:将左操作数与右操作数进行相应的运算,再将结果赋给左操作数。对于赋值运算符,其左操作数必须为 。 (5)sizeof()运算符 sizeof()运算符是用来计算 ,它为单目运算符。该运算符与其它类型的基本运算符稍有不同,它的操作数必须在括号内,其使用格式为: sizeof(<类型>) 或sizeof(<表达式>) (6)自增、自减运算 自增运算符“++”和自减运算符“--”都具有两种形式,且它们都是单目运算符,操作数必须为变量,一般是整型变量,但也可以是实型或字符型变量。 ++i (前置自增: ) i++ (后置自增: ) --i (前置自减: ) i-- (后置自减: ) (7)逗号运算 逗号运算符的优先级为所有运算符中最低的,结合性为右结合。逗号表达式的一般形式为: <表达式1>,<表达式2>, … , < 表达式n> 其运算顺序为按从左到右的顺序依次求出各表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。 (8)条件运算 条件运算符“? :”为三目运算符,要求有三个操作对象,使用格式为: <表达式1> ? <表达式2> : <表达式3> 计算过程为:先计算<表达式1>,若其值不等于0,则计算<表达式2>,并将计算的值作为该条件表达式的值;否则求解<表达式3>的值,并将该值作为条件表达式的值。 其优先级高于赋值和逗号运算,左结合。 (9)常用运算符的优先级 高 !++ —— 负号 算术运算 关系运算 逻辑运算 条件运算 赋值运算(含复合赋值) 低 逗号运算 (10)类型转换 在求表达式值的过程中,对于双目运算符,通常会出现两个操作数的类型不一致的情形,这时就要求将这两个操作数转换为同一类型,然后再进行运算。可以分为三种情况的转换: 不同类型数据的混合运算、赋值时的类型转换和强制类型转换,分别要注意这三种情况的数据类型的转换。 练习题 1.下列定义变量和常量的方法中指出哪些是错误的,如何修改? (1)const k=10; (2)int i.j;int i=10; (3)#define pp=3.14 (4)const int j; 答:(1) (2) (3) (4) 2.下列符号中,哪些是合法的标识符? Abs3 3block a+b _else Class sum for my_class fun(4) a-b 答:(1)合法的有 (2)不合法的有 3.设有如下的变量说明: int a=2,b=3,c=9; float x=2.3,y=4.5,z=6.0; char cha1=’a’,ch2=’b’; 请计算以下表达式及各变量的值: (1)sizeof(a+3.4) (2)x++ +ch1 (3)!a--&&a>b||x (4)a=a+2,b++,c=b+d (5)a+=b*=c+ch1 答: 1 2 3 4 5 4.设有如下的变量说明: int m=3,n=9,k=15; int a=0,b=0,c=0; 请计算以下表达式及各变量的值: (1)a=m>n && ++k (2)a+=m<=n && !n++ && k++ (3)a=n>=k&&b++||++c (4)a*=m<n||++b && (c=4) (5)a=m+++n (6)a=m++ + ++n (7)a=m*k+n*k++ (8)a=++m*k+m 1 2 3 4 5 6 7 8 5.用C++表达式描述下列命题: (1) a大于b且b大于c;答: (2) a大于b或大于c; 答: (3) a大于b且小于c; 答: (4) a不能被b整除; 答: 6.C++关系表达式中的关系成立时,则该关系表达式的值为 7.int x=-5,y;cout <<(x>0?1:x<0?-1:0);输出的结果为 。 程序分析 1.在数学式中,变量x和y的取值为整数,而变量a和b的取值为实数,在C++程序中对应的正确表达式是 A.3/5*x*y/a/b B. 3*x*y/5/a/b C. 3*x*y/5*a*b D. 3/a/b/5*x*y 答案为:D。注意整数和整数相除得到的结果仍为整数。要保证表达式的值为实数,必须使第一个除法运算其中一个操作数为实数。 2.设有四个常数:①4e0.5,②‘\87’,③0x5a,④“\””,其中符合C++语法规则的常量是 A.②③ B.②④ C.③④ D.①② 答案为:C。其中①式指数部分必须是整数,②转义字符序列中八进制值只允许出现数字0-7。所以只有③和④是合法的。 3.设有说明 “int x=5,y=7,z=8;”,执行表达式 “z+=x++||y++||++z”后,则x、y、z的值分别为 A.6、7、9 B. 6、8、10 C. 6、8、8 D. 6、8、1 答案为:A。按照逻辑或(||)运算的优化,只有当左操作数值为0时才计算右操作数的值。表达式中涉及了自增、逻辑和赋值三种运算,按照优先级首先计算自增运算x++,取出x的值5参加运算,然后x自增1为6;所以第一个自增表达式的值为5,就不再计算后面的两个自增表达式了,直接得到整个逻辑表达式的值为1,通过复合赋值操作赋给z,所以z的值为9。 4.设有语句 “int a=258,b; unsigned char c; b=c=a; “,则b的值是 。 a为整型数,占用4个字节的存储空间,在系统中存储为00000000 00000000 00000001 00000010,c为无符号的字符型,占用一个字节的内存空间。将变量a的值赋给变量c, 只能将a的低8位赋给变量c,所以c的值为00000010,转化为十进制数为2。再将c的值赋给变量b,所以b的值为2。 5.设有语句 “char s[]= “Rep\0Ch”;int m=sizeof(s);”,则m的值是 。 答案为:7。 sizeof()运算符是用来用来计算某种类型或数据所占用的字节数,s所占用的字节数由字符中所含字符的个数加上字符串的结束标记,所以m的值是7。 6.设有四个常数:①4e0.5,②‘\87’,③0x5a,④“\””,其中符合C++语法规则的常量是 A.②③ B.②④ C.③④ D.①② 答案为:C。其中①式指数部分必须是整数,②转义字符序列中八进制值只允许出现数字0-7。所以只有③和④是合法的。 7.能用作用户自定义的标识符为 A.friend B. –var C. 3Xyz- D. Float 答案为:D。按照标识符的命名规则,选项(A)为关键字,选项(B)以短横线开始,选项(C)中含有短横线。由于在C++中是严格区分大小写的,所以 “Float” 和 “float”是两个不同的符号,float是关键字,而Float则是合法的标识符。 三、实验内容 1.有如下程序: #include <iostream.h> void main(void){ int a=1,b=3,c=2; int sum; sum=a1+b+c cout<<"a="<<a<<"\tb="<<b<<"\tc="<<c<<"\tsum="<<sum<<endl; } 请回答以下问题: ①编译上述程序后,在“output”输出窗口显示有 行错误; ②第一行的错误信息为 ;可翻译成 ;因此,针对该错误提示,我们应将第 行语句修改为 。 ③第二行的错误信息为 ;可翻译成 ;因此,针对该错误提示,我们应将第 行语句修改为 。 ④上述两步完成后再编译,则在输出窗口显示的信息为 。 ⑤该程序运行的结果是 ⑥针对上述错误,我们得出的结论是 2.有如下程序: #include <iostream.h> void main(void){ sum=a+b; int a=1,b=3,c; int c=a+b+sum; cout<<"a="<<a<<"\tb="<<b<<"\tsum="<<sum<<endl; } 请回答以下问题: ①编译上述程序后,在“output”输出窗口显示有 行错误; ②第一行的错误信息为 ;可翻译成 ;第二行的错误信息为 ;可翻译成 ;第三行的错误信息为 ;可翻译成 ;因此,针对上述错误提示,我们应这样修改: ③第四行的错误信息为 ;可翻译成 ;因此,针对该错误提示,我们应将第 行语句修改为 。 ④该程序运行的结果是 ⑤针对上述错误,我们得出的结论是 3.有如下程序: #include <iostream.h> void mian(void){ int a,b,t; cin>>a>>b; t=a*b; cout<<"a="<<a<<'\t'<<"b="<<b<<"\t="<<t<<endl; } 请回答以下问题: ①编译上述程序后,在“output”输出窗口显示有 行错误;该错误信息为 ;可翻译成 ;因此,针对该错误提示,我们可这样修改: 。 ②该程序运行的结果是 ③针对该错误,我们得出的结论是 4.有如下程序: #include <iostream.h> void main(void){ int a=1,b=3,c; c+1=a+b; cout<<"c="<<c<<endl; } 请回答以下问题: ①编译上述程序后,在“output”输出窗口显示有 行错误;该错误信息为 ;可翻译成 ;因此,针对该错误提示,我们可这样修改: 。 ②该程序运行的结果是 ③针对该错误,我们得出的结论是 6- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验2 数据类型、运算符和表达式 实验 数据类型 运算 表达式
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文