Java语言基础实验.docx

上传人:牧羊曲112 文档编号:4219771 上传时间:2023-04-10 格式:DOCX 页数:10 大小:126.96KB
返回 下载 相关 举报
Java语言基础实验.docx_第1页
第1页 / 共10页
Java语言基础实验.docx_第2页
第2页 / 共10页
Java语言基础实验.docx_第3页
第3页 / 共10页
Java语言基础实验.docx_第4页
第4页 / 共10页
Java语言基础实验.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Java语言基础实验.docx》由会员分享,可在线阅读,更多相关《Java语言基础实验.docx(10页珍藏版)》请在三一办公上搜索。

1、浙江大学城市学院实验报告课程名称面向对象程序设讣实验工程名称Java语言基础实验学生姓名专业班级学号实验目的和要求1. 掌握Java语言的基本数据类型、字符串、数组2. 掌握Java语言的运算符、表达式、语句3. 能够编写Java应用程序二. 实验内容1. 局部变量与final变量实验2. 基本数据类型与转换实验3. 算术运算的精度问题实验4. 移位运算实验5. 运算赋值实验6. 短路逻辑运算实验7. 编程实验:输出Unicode特泄区间的字符。&编程实验:分析输入的数字三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果)1. 局部变量与final变量实验。编写以下程序,并回答问题。

2、public class LocalVariablcInitExample public static void main(String args) int a oSystem.out.print(a)ofinal int b = 100。b+oSystem.out.print(b)c(1)程序的错误1、System.out.print(a)o出错,局部变量a没有进行过初始化或赋值2、b+。岀错,不能对终态局部变量b赋值。它必须为空白,并且不使用复合赋值(2)改正方式public class LocalVariablelnitExample public static void main(St

3、ring args) int a=10 oSystem.out.print(a)ofinal int b= 100Systeni.out.print(b)o2.基本数据类型与转换实验。编写以下程序,分析代码的输出结果,并回答问题。 class Test2public static void main(String args)System.out.println(M第1段测试代码输出”)。System.out.println(byle)255)oSystem.out.println(short)65535)0System.out.println(byte)-129)。System.out.pri

4、ntln(byte)129)oSystem.out.println(byte) 128)。System.out.printing第2段测试代码输出”)。int i= 123456789 cfloat f =仁System.out.println(f)0longj=123456789123456789L, double d = j。System.out.println(d)oSystem.out.println(H第3段测试代码输出System.out.println(077) System.out.println(0x77)oSystem.out.println(77)o请分析并回答以下问题:

5、(1) 分析第1段代码,说明在什么情况下,int类型的数字转换为byte或者short类型, 会岀现符号变化,即正数变负数,负数变正数?为何输出会不同?答:在强制类型转换时,如果数值超过目标类型的取值范用,那么某些数据位会被强行 截断(即数据截断),从而导致数据丢失,甚至符号丢失。例如:byte的取值范围是-272U, int类型的255不在这个范围内,强制转换的结果是 -lo(2) 分析第2段代码,说明整数类型向浮点型转型是否可能岀现精度损失,是否需要强 制转换。答:整数类型向浮点型转型可能会出现精度损失不需要强制转换,可以自动类型转换。(3) 分析第3段代码,说明整数的八进制、十六机制、十

6、进制的书写格式(即字而值格 式)都是什么?答:八进制:首字母为0 ,包括0到7之间的字符所组成的字符序列;十六进制:以0x(或者0X)开始,包括0到9、以及A到F十六个符号组成的字 符序列;十进制:由0到9十个字符组成的字符序列,一般首字符不可为0。3. 算术运算的精度问题实验。编写以下程序,并回答问题。class Test3public static void main(String args)short a = 10aa = a + 2obyte b= lob = b + 1 oshort a = 10=byte b = 5oa = a + bochar c = a 寫C = C+lo(1

7、) 程序的错误1、类型不匹配:不能从int转换为short ,不能从int转换为byte,不能从int转 换为char2、局部变虽a、b重复(2) 改正方式class Test3 public static void main(String args)short a = 10oa = (short)(a + 2)obyte b = 1 ob = (byte)(b + 1)。short d = 10obyte e = 5od = (short)(d + e)oc = (char)(c+l)o4. 移位运算实验。编写以下程序,分析代码的输出结果,并回答问题。 class Test4public s

8、tatic void main(String) args)System, out. printing第1段测试代码输出”)。System.out.println( 1 32)oSystem.out.println(l L32)oSystem.out.printlnC第2段测试代码输出”)。System.out.println( 105)oSystem.out.println(-105)。System.out.printing第3段测试代码输出”)aSystem.out.println( 1 31 )。System.out.println( 1 L31)。System.out.println(

9、1 Lvv63)。System.out.printing第4段测试代码输出”)。System.out.println( 1100) System.out.println(l L 100)。System.out.printlnC第5段测试代码输出”)。System.out.println(72)oSystem.out.println(7 1 vv 1) System.out.printing第6段测试代码输出”)aint n = 34o int q=7oSystem.out.println(qn)oq= 7。for(int i = 0o ivn。i+)q = qUSystem.out.print

10、ln(q)oSystem.out.printing第7段测试代码输出”)。int m = 2000000000aSystcm.out.println(m 1 )oSystem.out.println(m*2)oSystem.out.printing第8段测试代码输出”)aSystem.out.println(-2 1)。System.out.println(-2l)o请分析并回答以下问题:(1) 分析第1段代码,为何输出会不同?答:im类型为32为,所以右移32位还是其本身,long类型为64为,所以右移32位, 低位被舍弃,髙位补0,最终结果为0。(1) 分析第2段代码,正整数右移的最小值是

11、什么?负整数右移的最大值是什么? 答:正整数右移的最小值是0,负整数右移的最大值是-1。(2) 分析第3段代码,三个语句输岀为何不同?答:int类型右移31位,符号位就是K符号位1代表为负数,long类型右移31位, 只能说明扩大了 2的31次方,long类型右移63位,符号位就是1,符号位1代表为负数(3) 分析第4段代码,两个语句输出为何不同?答:int类型左移100位,和右移4位一样,100除以32的余数。long类型左移100位,和 右移36位一样,100除以64的余数。(4) 分析第5段代码,两个移位运算是否等价?答:等价。 分析第6段代码,qn与将q不断左移1位(共移动n位)是否相

12、同?什么条件 下相同?答:不相同,在n=2的情况下相同。(6) 分析第7段代码,左移1位与乘2是否等价?左移1位是否一定值翻倍?答:等价。如果不是移到最髙位,符号位上,则不一定翻倍。(7) 分析第8段代码,和有何差别?答:结果是J,结果是2147483647。5. 运算赋值实验。编写以下程序,并回答问题。class Test5public static void main(String args) byte a = 10。a = a 1 o /是否岀错?a = 1 o 是否出错?char c = a 寫C = C+lo /是否出错?C+= lo /是否出错?(1)程序的错误类型不匹配:不能从i

13、nt转换为byte ,不能从int转换为char。(2)改正方式piiblicclass Test5 publicstatievoid main(String args) byte a = 10。a =(byte) ( a l)o / 是否出错?a = lo /是否出错?char c = 1 aoc =(char) ( c + l)o / 是否出错?C += 1=/是否出错?(3)运算赋值的特点。运算赋值时无需强制转换。6. 短路逻辑运算实验。编写以下程序,并回答问题。class test6public static void inain(String args) int x = 1, z =

14、 2oSystem, out. printing第1段测试代码输出”)。if(false&(x = (z= 1)System.out.println(x)oelseSystem.out.println(z)oz = 2 x =1 oSystem.out.printing第2段测试代码输出”)。if(true&(x = (z = 1)&false)System.out.println(x)oelseSystem.out.println(z)ox=0o z = 2oSystem.out.printlnC1第3段测试代码输出”)。 if(truell(x = (z= 1)System.out.pri

15、ntln(z)oX=0o Z = 2eSystem.out.printing第4段测试代码输出”)。if(falsell(x = (z=l)lltrue)System.out.println(z)o请分析并回答以下问题:(1)第1段代码的输出结果是什么,为何?答:结果是2。没有计算(x = (z=l), z仍等于2,输岀z的值,即输出2。(2) 第2段代码的输出结果是什么,为何?答:结果是1。计算了(x = (z=l), z被赋值为1,输岀z的值,即输出1。(3) 第3段代码的输出结果是什么,为何?答:结果是2。没有计算(x=(z=l), z仍等于2,输出z的值,即输出2。(4) 第4段代码的

16、输出结果是什么,为何?答:结果是1。计算了(x = (z=l), z被赋值为1,输岀z的值,即输岀2。7. 编程实验:输出Unicode特定区间的字符。功能要求:屏幕输出所有大写英文字母、 小写字母)、某两个汉字字符之间的所有Unicode字符。程序:publicclass test7 publicstatievoid main(String args) char i。for(i=1 ao i=1z1o i+)System out.printIn(i)ofor(i=y i=,Z, o i+)System out; .println (i) ofor (i=f 啊iv二邛可 i+)System

17、out;.printIn (i)。程序运行截图是:&编程实验:分析输入的数字。功能要求:输入若干个数字,依次判断这些数字是否 是奇数、平方数、素数,并输出判断信息。设计要求:需要设计静态方法isOdd(int n)来判 断参数n是否是奇数:相似地,还需要设汁静态方法isSquareNumber(int n)和isPrime(int n), 来分别用于判断参数n是否是平方数、素数。程序:import j ava util *。 publicclass test8 publicstaticvoid main(String args) Scanner scanner=new Scanner(Syst

18、em in)。System, out .println (请输入若干数字(以英文字符结束):)。while(scanner hasNextlnt() int n=scanner nEKtlnt()o ifIsOdd(n)System out; printin (n+为奇数)。elseSystem out; printin (n+“ 彳、迄奇数)oif (isSquareNuinber (n)Sysout;, printin (“+为平方数)。elseSyst?m out;.printin (n+彳:是计数)。if (IsPrlrae (n)System out; printin (+为素数)。

19、elseSystem out; printin (n+彳、是势;数)。staticboolean isOdd(int n)if (n%2=0)returnfalseoelsereturntrue。statiuboolean isSquareNumber(int n) int j ofor(j =1o jn/2o j+) if (j*j=n)returntrueoreturnfalse。staticboolean isPrime(int n) int j ofor(j =2o jn/2o j+) if(n%j=0)returnfalseo:returntrue。程序运行截图是:【iwnlaw怦册J妙 Qwxce &回丄心“I引 B Q 4.必|矍z护Snart Jwl19:39Stobkt,Bbe Sech 牛呢ct gun tr(fov. Meb二 珞 O Q 兰曲& a $四. 讨论、心得(可写遇到的问题及解决方法,或者对技术的理解等)本次实验我了解到java与C+有许多相同之处,如if else的用法,但也有很多的不同之 处,如输入与输出的方法,还有不同类型的运算等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号