已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验2.1 Java符号与表达式1 实验目的 (1)熟悉基本数据类型及其占用空间大小,熟悉标识符的定义特点;(2)熟悉常见转义字符的含义;(3)掌握不同类型数据的赋值转换原则,熟悉自动转换与强制转换的含义;(4)掌握常用运算符的使用。2 知识要点2.1 基本数据类型、变量(1)标识符的命名原则:以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。(2)基本数据类型(见表2-1)表2-1 基本数据类型类型标识含义所占字节默认值byte字节型10short短整型20int整型40long长整型80float单精度浮点型40.0Fdouble双精度浮点型80.0Dchar字符型20boolean布尔型1falsel 八进制表示形式:以0(零)开头,如:012;l 十六进指表示形式:以0x开头,如:0xa1;l 整数默认int型,长整数可在后面加L;l 实数默认双精度型,要明确表示为float型在数据后加F。l 布尔型数据只有true和false两个值;l 字符型数据是用单引号括起来。2.2 特殊字符转义符Java字符采用Unicode编码。“ ” (反斜杠)在字符表示或字符串中有特殊作用,它和之后的字符合并解释,用于表示一些特殊字符。见表2-2。表2-2 常见转义符转义字符描述单引号字符双引号字符反斜杠r回车n换行f走纸换页t横向跳格b退格2.3 自动类型转换与强制类型转换(1) 自动转换次序byte-shortcharintlongfloatdouble 按照箭头所示方向,处于左边的数据类型的数据可以自动转换赋值给右边的数据类型的变量,但反之,将处于右边的数据类型的数据赋值给处于左边的数据类型的变量必须经过强制转换。(2) 布尔类型不能与其他类型进行转换;(3) 赋值时强制转换可能导致数据丢失精度。2.4 输出语句的使用(1)print()方法与println()的差异是前者输出后不换行,而后者换行。(2)输出时可以通过“+”号将任何数据与字符串拼接。如果拼接的是基本类型变量,则在其位置输出变量值,如果是对象,则在其位置输出对象的toString()方法的返回结果。2.5 容易用错的运算符(1)+或-的位置相关性。不妨假设原来a值为4,则使用+或-运算符后的结果如表2-3所示。表2-3 +和运算符的位置相关性使用形式原来a值运算后a值表达式的值a+454+a455a-434-a433(2)赋值运算(=)与相等比较(=)的差异赋值语句形式:变量名=表达式;功能:计算表达式的结果,并将结果给变量赋值,变量的结果也为赋值表达式的结果。“=”是关系运算符,是比较运算符两边的数据是否相等。表达式的结果为true或false。(3)求余(%)与除号(/)的使用注意两个整数进行除法运算是整除,结果将不包含小数部分,而一个是整数、另一个为实数,则转化为实数后再计算,结果为实数。具体样例见表2-4。表2-4 求余与除号运算符运算结果说明7 / 51整除的商7 %52求整除后的余数7.0 / 5.01.4 实数除7.0 / 51.4转化为实数运算7 / 5.01.4转化为实数运算7.0 % 5.02.0求余数(4)逻辑与(&)与逻辑或(|)的使用,尤其是副作用。逻辑运算符有可能不必计算运算符两边的表达式即可确定结果,其副作用见表2-5。表2-5 逻辑运算符的附加特点表达式何时结果为true附加特点op1 & op2op1 和 op2都是trueop1为false时,不计算op2op1 | op2op1 或 op2是trueop1为true时,不计算op2(5)位运算符的使用移位运算符左移1位将数值增大1,右移则缩小1倍;按位逻辑运算相当于每位的1对应true,0对应false的逻辑运算,将各位的运算结果拼接后的数据即为结果。各类位运算符的具体功能见表2-6。表2-6 各类位运算符的功能运算符用法操作op结果是op按比特位求反Op1 op2将op1右移op2个位(带符号)Op1 op1 op2将op1右移op2个位(不带符号的右移)&Op1 & op2op1 和 op2都是1时,相应的位才是1|Op1 | op2op1 或 op2是1时,相应的位为1Op1 op2op1和op2是不同值时,相应的位为1(6)运算符的优先级 在一个表达式中运算的优先次序由相邻运算符的优先级决定,同一级运算符的运算次序根据运算符的结合性决定运算次序。如果是左结合则按自左向右的次序进行。3 样例分析样例1: 调试分析以下程序的运行结果: public class test public static void main(String a) int m=0; System.out.println(m+=+m+); System.out.println(+m=+(+m); boolean x; x=(53)&(4=6); System.out.println(x=+x); m=m%2; System.out.println(result=+m+1); int y=m*m+2*m-1; System.out.println(m=+m+,y=+y); 【输出结果】m+=0 +m=2 x=false result=01 m=0,y=-1【说明】(1) 注意m+和+m的求值差异;(2)注意输出语句中与字符串的拼接运算次序。字符串“result”先与m的值拼接,然后再与1拼接。样例2:已知梯形的上底为3,下底为5,高为2.4,求其面积。【参考程序1】 public class Area public static void main(String a) double x=3; / 上底 double y=5; / 下底 double z=2.4; / 高 double s=(x+y)*z/2; /计算面积 System.out.println(面积=+s); 【参考程序2】 public class Area public static void main(String a) double s=(3+5)*2.4/2; /计算面积 System.out.println(面积=+s); 【说明】计算机编程解法可以是多样的,只要能实现目标即可。但要注意程序的可读性,对引入的变量通常要加以注释。4 上机练习 基本题1) 编程观察如下输出语句: System.out.println(hello test escape char);在“escape”处换上各种转义字符测试输出效果。如何实现如下输出:Hello test Hello test2) 设有如下代码段,考虑赋值转换问题:int a=234;byte b=a;System.out.println(a=+a+,b=+b);将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。3) 编写一个程序求半径R为10的圆的面积。公式为:S=R2注:可用Math类的常量PI表示(即Math.PI)。 提高题1) 设有一个边长为30的等边三角形,三角形内有一个内切圆,计算除内切圆外三角形内其它部分的面积。 【提示】先算三角形面积,再计算圆的面积,其差即为结果。2) 调试分析以下程序的运行结果:public class test public static void main(String a) int m=10,n=517; System.out.println(n % m); System.out.println(n / m); System.out.println(m 2);System.out.println(m & n);System.out.println(Integer.toBinaryString(m); System.out.println(Integer.toBinaryString(m 2); 注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算时,注意观察二进制的数据变化规律。5 思考题1)现有一个int类型的整数和一个double类型的数进行加法运算,则得到的结果类型为: Aint类型 B. double类型 C. float类型 D. long类型 2)下面程序段的输出结果是: int a = 2; System.out.print( a+); System.out.print( a); System.out.print(+a); A333 B334 C234 D233 3) 以下代码的输出结果?public class Test int x=3; public static void main(String argv) int x= 012; System.out.println(x); A12 B012 C10 D3 4) 下列定义语句正确的是:Achar c=n; Bint i=12; Cfloat f=2.8; Dboolean b=null;5)检查如下代码:public class Quiz2_l public static void main(String args) int a = 8; int b = -8; System.out.print(a1) ); 下列哪条语句正确描述了程序在编译和运行时的行为?A编译成功,输出为“32,-4 ”B. 编译成功,输出为“16,4 ”C. 编译成功,输出为“32,2147483644”D. 编译成功,输出为“16,2147483644”E. 编泽器拒绝表达式 b,因为不能对一个负数应用操作符6)以下代码中变量result的可能类型有哪些? byte b = 11; short s = 13; result = b * +s;Abyte, short, int, long, float, doubleBboolean, byte, short, char, int, long, float, doubleCbyte, short, char, int, long, float, doubleDbyte, short, charEint, long, float, double7)以下代码的输出结果为: System.out.println( +2 + 3); System.out.println(2 + 3); System.out.println(2 + 3 +); System.out.println(2 + +3); A第3行出现编译错误B输出23, 5, 5 和23.C输出5, 5, 5 和23.D输出 23, 5, 23 和23.8)设有如下变量说明:byte myByte;int myInt;long myLong;char myChar;float myFloat;double myDouble; 以下赋值语句哪个需要强制转换。AmyInt = myByte;BmyInt = myLong;CmyByte = 3;DmyInt = myChar;EmyFloat = myDouble;FmyFloat = 3;GmyDouble = 3.0;9)考虑如下两语句: 1. boolean passingScore = false & grade = 70; 2. bool
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年敬老院年度工作总结8篇
- 2025年we前端面试题及答案
- 2025年下半年嘉兴平湖市交通系统下属事业单位招考高层次紧缺人才易考易错模拟试题(共500题)试卷后附参考答案
- 2025企业设备抵押担保借款合同及注意事项(合同协议范本)
- 2025标准关于解除劳动合同协议书样本参考
- 2025年下半年吉林通化市市直事业单位公开选调2号(94人)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林抚松县住房和城乡建设局招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林市事业单位公开招聘工作人员(含专项)(3号)(756人)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉安市吉安县永和镇吉州窑景区招考讲解员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年厦门市闽台渔轮避风港管理处招考易考易错模拟试题(共500题)试卷后附参考答案
- 《建筑结构检测与加固》 试题试卷及答案
- 2022河湖无人机巡查作业技术导则
- 《突发事件概述》课件
- 初中物理实验教学专题讲座
- 对外汉语教学的测试和评估教学课件
- 大脑的奥秘:神经科学导论学习通超星课后章节答案期末考试题库2023年
- 环境保护税课件
- 课本剧林教头风雪山神庙剧本
- 农业生态与环境保护教案
- NY 623-2002内蒙古白绒山羊
- 甲状腺微创消融治疗手术知情同意书
评论
0/150
提交评论