Java语言基础实验

上传人:m**** 文档编号:53414773 上传时间:2022-02-10 格式:DOC 页数:10 大小:257.50KB
返回 下载 相关 举报
Java语言基础实验_第1页
第1页 / 共10页
Java语言基础实验_第2页
第2页 / 共10页
Java语言基础实验_第3页
第3页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
浙江大学城市学院实验报告课程名称 面向对象程序设计实验项目名称 Java语言基础实验学生姓名 专业班级 学号 .实验目的和要求1. 掌握Java语言的基本数据类型、字符串、数组2. 掌握Java语言的运算符、表达式、语句3. 能够编写Java应用程序.实验内容1. 局部变量与final变量实验2. 基本数据类型与转换实验3. 算术运算的精度问题实验4. 移位运算实验5. 运算赋值实验6. 短路逻辑运算实验7. 编程实验:输出 Unicode特定区间的字符。8. 编程实验:分析输入的数字三.实验结果与分析(可将程序运行结果截屏,也可分析运行结果)1. 局部变量与final变量实验。编写以下程序,并回答问题。public class Localvariable In itExample public static void main( Stri ng args) int a ;System.out.pri nt(a);final int b = 100;b+;System.out.pri nt(b);(1) 程序的错误1、System.out.print(a);出错,局部变量 a没有进行过初始化或赋值2、 b+;出错,不能对终态局部变量b赋值。它必须为空白,并且不使用复合赋值(2) 改正方式public class LocalVariable In itExample public static void main(String args) int a=10 ;System.out.pri nt(a);final int b = 100;System.out.pri nt(b);2.基本数据类型与转换实验。编写以下程序,分析代码的输出结果,并回答问题。class Test2public static void main(String args)(”第1段测试代码输出”);System.out.pri ntln (byte)255);System.out.pri ntln (short)65535);System.out.pri ntln (byte)-129);System.out.pri ntl n( (byte)129);System.out.pri ntl n( (byte)128);(”第2段测试代码输出”);int i = 123456789;float f = i;System.out.pri ntl n(f);double d = j;System.out.pri ntl n( d);(”第3段测试代码输出”);System.out.pri ntln(077);System.out.pri ntln( 0x77);System.out.pri ntl n( 77);请分析并回答以下问题:(1) 分析第1段代码,说明在什么情况下,int类型的数字转换为 byte或者short类型, 会出现符号变化,即正数变负数,负数变正数?为何输出会不同?答:在强制类型转换时,如果数值超过目标类型的取值范围,那么某些数据位会被强行截断(即数据截断),从而导致数据丢失,甚至符号丢失。例如:byte的取值范围是-2727-1, int类型的255不在这个范围内,强制转换的结果是-1。(2) 分析第2段代码,说明整数类型向浮点型转型是否可能出现精度损失,是否需要强 制转换。答:整数类型向浮点型转型可能会出现精度损失,不需要强制转换,可以自动类型转换。 分析第3段代码,说明整数的八进制、十六机制、十进制的书写格式(即字面值格 式)都是什么?答:八进制:首字母为 0,包括0到7之间的字符所组成的字符序列;十六进制:以0x (或者0X)开始,包括0到9、以及A到F十六个符号组成的字 符序列;十进制:由0到9十个字符组成的字符序列,一般首字符不可为0。3. 算术运算的精度问题实验。编写以下程序,并回答问题。class Test3public static void main( Stri ng args)short a = 10;a = a + 2;byte b = 1; b = b + 1;short a = 10; byte b = 5;a = a + b;char c = a;c = c+1;(1)程序的错误1、 类型不匹配:不能从 int转换为short,不能从int转换为byte,不能从int转换为char2、局部变量 a、b重复(2) 改正方式class Test3 public static void main(String args) short a = 10;a = (short)(a + 2);byte b = 1; b = (byte)(b + 1);short d = 10;byte e = 5;d = (short)(d + e);char c = a; c = (char)(c+1);4. 移位运算实验。编写以下程序,分析代码的输出结果,并回答问题。class Test4public static void main(String args)(”第1段测试代码输出”);System.out.pri ntln (132);System.out.pri ntln (1L32);(”第2段测试代码输出”);System.out.pri ntln( 105);System.out.pri ntln (-105);(”第3段测试代码输出”);System.out.pri ntln (131);System.out.pri ntln (1L31);System.out.pri ntln (1L63);(”第4段测试代码输出”);System.out.pri ntln (1100);System.out.pri ntln (1L100);(”第5段测试代码输出”);System.out.pri ntl n(72);System.out.pri ntln (711);(”第6段测试代码输出”);intn = 34; int q=7;System.out.pri ntln(qn);q= 7;for(i nt i = 0;i n; i+)q = q1;System.out.pri ntl n(q);(”第7段测试代码输出”);int m = 2000000000;System.out.pri ntln(m 1);System.out.pri ntln (-21);请分析并回答以下问题:(1)分析第1段代码,为何输出会不同?答:int类型为32为,所以右移32位还是其本身,long类型为64为,所以右移32位, 低位被舍弃,高位补 0,最终结果为0。(1)分析第2段代码,正整数右移的最小值是什么?负整数右移的最大值是什么? 答:正整数右移的最小值是0,负整数右移的最大值是 -1。(2) 分析第3段代码,三个语句输出为何不同?答:int类型右移31位,符号位就是1。符号位1代表为负数,long类型右移31位, 只能说明扩大了 2的31次方,long类型右移63位,符号位就是1,符号位1代表为负数(3) 分析第4段代码,两个语句输出为何不同?答:int类型左移100位,和右移4位一样,100除以32的余数。long类型左移100位,和 右移36位一样,100除以64的余数。(4) 分析第5段代码,两个移位运算是否等价?答:等价。(5) 分析第6段代码,q1 ”和“ -11 ”有何差别? 答:“ -11 ” 结果是-1,“ -11 ” 结果是 2147483647。5. 运算赋值实验。编写以下程序,并回答问题。class Test5public static void main(String args) byte a = 10;a = a 1; /是否出错?a = 1; /是否出错?char c = a;c = c + 1;/是否出错?c += 1; /是否出错?(1)程序的错误类型不匹配:不能从 int转换为byte ,不能从int转换为char。(2)改正方式public class Test5 public static voidmain( Stri ng args) byte a = 10;a =( byte )( a 1);/ 是否岀错?a = 1;/是否出错?char c =a;c =( char )( c + 1);/ 是否岀错?c += 1;/ 是否出错?(3) 运算赋值的特点。运算赋值时无需强制转换。6. 短路逻辑运算实验。编写以下程序,并回答问题。class test6public static void main(String args) int x = 1, z = 2;System.out.println(第1段测试代码输出); if(false&(x = (z = 1)System.out.pri ntl n( x);elseSystem.out.pri ntl n( z);z = 2; x =1;System.out.println(第2段测试代码输出);if(true&(x = (z = 1)&false)System.out.pri ntl n( x);elseSystem.out.pri ntl n( z);x=0; z = 2;System.out.println(第3段测试代码输出);if(true|(x = (z = 1)System.out.pri ntl n( z);x=0; z = 2;System.out.println(第4段测试代码输出);if(false|(x = (z =1)|true)System.out.pri ntl n( z);请分析并回答以下问题:(1)第1段代码的输出结果是什么,为何?答:结果是2。没有计算(x = (z = 1),z仍等于2,输出z的值,即输出2。(2) 第2段代码的输出结果是什么,为何?答:结果是1。计算了(x = (z = 1) , z被赋值为1,输出z的值,即输出1。(3) 第3段代码的输出结果是什么,为何?答:结果是2。没有计算(x = (z = 1),z仍等于2,输出z的值,即输出2。(4) 第4段代码的输出结果是什么,为何?答:结果是1。计算了 (x = (z = 1),z被赋值为1,输出z的值,即输出2。7. 编程实验:输出Unicode特定区间的字符。功能要求:屏幕输出所有大写英文字母、 小写字母)、某两个汉字字符之间的所有Uni code字符。程序:public class test7 public static void main( Stri ng args) char i;for (i= a;i= z;i+)System.out.pri ntl n(i);for (i= A;i=Z;i+)System.out.pri ntl n(i);for (i=啊;i=阿;i+)System.out.pri ntl n(i);程序运行截图是:8. 编程实验:分析输入的数字。功能要求:输入若干个数字,依次判断这些数字是否是奇数、平方数、素数,并输出判断信息。设计要求:需要设计静态方法isOdd(int n)来判断参数n是否是奇数;相似地,还需要设计静态方法isSquareNumber(int n)和isPrime(int n),来分别用于判断参数 n是否是平方数、素数。程序:import java.util.*;public class test8 public static void main( Stri ng args) Scanner sca nner=new Scann er(System.请输入若干数字System. out .println(in );(以英文字符结束);while (sca nn er.hasNextI nt() intn=sca nn er .n ext In t();if (isOdd (n)staticboolea nisOdd( int n)if(n %2=0)returnfalse ;elsereturntrue ;staticboolea nisSquareNumber(intj;for(j=1;j n/2;j+)if (j*j=n)returntrue ;returnfalseJintn) staticboolea n isPrime(int n)intj;for(j=2;j n/2;j+)System. out .println(n+为奇数);elseSystem. out .println(n+不是奇数);if (isSquareNumber(n)System. out .println(n+为平方数);elseSystem. out .println(n+不是平方数if (isPrime (n)System. out .println(n+为素数);elseSystem.out .println(n+不是素数););if (n %j=0)return falsereturn true ;程序运行截图是:F曲旧怛或呂Java - Ectlpse SDKIZ XRb 射t 鼻hth Rf&Rr la/ipate Segfdr grniect 申1 ”dwv 时3v 曰莘。”屯” 書血広”直q ”令炉Q*吕fJ-a ISmart nser四.讨论、心得(可写遇到的问题及解决方法,或者对技术的理解等)本次实验我了解到java与C+有许多相同之处,如if else的用法,但也有很多的不同之 处,如输入与输出的方法,还有不同类型的运算等。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!