您好,欢迎访问三七文档
实验报告(2014/2015学年第2学期)课程名称JAVA程序设计实验名称数据类型及表达式实验时间2015年3月26日指导单位计算机学院/软件学院软件工程系指导教师周莉学生姓名班级学号学院(系)计算机软件学院专业计算机科学与技术1实验名称数据类型及表达式指导教师周莉实验类型上机实验学时2实验时间2015-3-26一、实验目的1.掌握Java语言的基本数据类型概念2.掌握变量、常量和表达式的用法3.理解类型转换、运算符结合律的概念二、实验环境(实验设备)1.每位学生配备计算机一台2.计算机需安装好JDK和Jcreator三、实验内容1.输入并运行下面的程序,体会各种基本数据类型的变量的声明、初始化及使用。publicclasssy2_1{publicstaticvoidmain(Stringargs[]){finaldoublePI=3.14159;byteb=0x55;shorts=0400;inti=10000;longl=0xfffffl;charc='A';floatf=.25f;doubled=.00001234;booleanbool=true;System.out.printf(finalPI=%f\n,PI);System.out.printf(byteb=%d\n,b);System.out.printf(shorts=%d\n,s);System.out.printf(inti=%d\n,i);System.out.printf(longl=%d\n,l);System.out.printf(charc=%c\n,c);System.out.printf(floatf=%f\n,f);System.out.printf(doubled=%f\n,d);System.out.printf(booleanbool=%b\n,bool);}}思考:(1)上述程序中定义了哪些变量和常量:每个变量的变量名、数据类型分别是什么?常量的名和值是什么?答:定义的变量名、数据类型分别是变量b字节型,s短整型,i整型,l长整型,c字符型,f浮点型,d双精度,bool布尔型。常量的名和值是PI:3.14159。(2)查看程序的运行结果,分析为什么有些变量最后输出的结果和初始化时的不同。2PI结果最后一位多了一个0,因为按照浮点型输出,小数点后面保留六位;b是按照整型输出,十六进制0x55十进制为85;sl是按照整型输出,十六进制0xffffffffl十进制为4294967295;f浮点型输出,小数点后保留六位;d浮点型输出,小数点后保留六位;(3)3.14159是什么类型的,.25f是什么类型的?3.14159是双精度类型,.25f是浮点型2.输入并运行下面的程序并分析结果,体会各种表达式的使用方法。(1)publicclasssy2_2_1{publicstaticvoidmain(Stringargs[]){finaldoublePI=3.14159;inta=5,b=3,c=0;doubled=2.5;System.out.println(c=+(a+b+a%b));System.out.println(c=+a+b+a%b);d=c*b+a/d*b;System.out.println(d=+d);}}(2)publicclasssy2_2_2{publicstaticvoidmain(Stringargs[]){finaldoublePI=3.14159;3inta,b,c;a=b=c=5;a=++b-++c;System.out.println(a=+a+b=+b+c=+c);a=b+++c++;System.out.println(a=+a+b=+b+c=+c);a=b--+c--;System.out.println(a=+a+b=+b+c=+c);}}(3)publicclasssy2_2_3{publicstaticvoidmain(Stringargs[]){booleanx,y;x=53||3*46&&!(53);y=2==6&&98+4||5+6+4&&!x;System.out.println(x=+x+,y=+y);}}思考:(1)上述程序中用到了哪些运算符?运算符的优先级如何?答:上述程序1中运用到了+,%,/,*,=运算符。运算符的优先级为:*,/,%为3级,+为4级,=为14级。(2)增1和减1运算符(++和--)放在变量之前和放在变量之后,其用法有何不同?答:增1和减1放在变量后表示变量先进性运算再自身加1,放在变量前表示变量先进性自增1或自减1之后再参与运算。3.输入并运行下面的程序并分析结果,掌握自动类型转换的用法。publicclasssy2_3{publicstaticvoidmain(Stringargs[]){byteb=10;charc='a';inti=90;longl=555l;floatf=3.5f;doubled=1.234;floatf1=f*b;inti1=c+i;longl1=l+i1;doubled1=f1/i1-d;System.out.println(f1=+f1);System.out.println(i1=+i1);System.out.println(l1=+l1);System.out.println(d1=+d1);4}}思考:(1)上述程序用到了哪些自动类型转换?分别如何实现?longl=555lfloatf1=f*blongl1=l+i1;把级别低的变量的值赋给级别高的变量,自动完成数据类型的转换。输出l为555.0,f1为35.0,l1为(2)何时需要用到强制类型转换?可能会造成什么不良后果?答:当把级别高的变量的值赋给级别低的变量时要用到强制类型转换,可能会导致精度的损失。4.从键盘输入3个数,求最小值并输出。importjava.io.*;classTheMin{publicstaticvoidmain(String[]args){doublenum1=0;doublenum2=0;doublenum3=0;try{BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));System.out.println(请输入第一个数字:);num1=Double.parseDouble(in.readLine());System.out.println(请输入第二个数字:);num2=Double.parseDouble(in.readLine());System.out.println(请输入第二个数字:);num3=Double.parseDouble(in.readLine());}catch(Exceptione){System.out.println(请输入数字);}System.out.println(最小数是:+Math.min(Math.min(num1,num2),Math.min(num2,num3)));}}55.从键盘输入一个1-7之间的整数(如果输入的数不满足条件,则要求用户重新输入),输出对应的英文单词表达的星期几。importjava.util.*;publicclasspractice2_5{publicstaticvoidmain(Stringargs[]){Scannerreader=newScanner(System.in);System.out.println(输入一个整数:);intn=reader.nextInt();switch(n){case1:System.out.printf(Monday);break;case2:System.out.printf(Tuesday);break;case3:System.out.printf(Wedesday);break;case4:System.out.printf(Thursday);break;case5:System.out.printf(Firday);break;case6:System.out.printf(Saturday);break;case7:System.out.printf(Sunday);break;default:System.out.printf(不满足条件,请重新输入);}}}运行结果:67四、实验小结(包括问题和解决方法、心得体会等)通过本次上机实验,在几道实验例题中,我对Java语言的基本数据类型有了更深的了解掌握。对于老师提出的考察变量、常量和表达式的用法的问题,做起来比较得心应手,因为有很多规则都和C语言还有C++有共通之处。在进行数据之间的强制转换的时候,可能会造成精度的丢失。Switch结构中,switch语句首先计算表达式的值,如果表达式的值与某个case后面的常量值相同,就执行case里的语句,直到碰到break语句。分支语句一定要看清条件,避免出现错误。五、指导教师评语成绩批阅人日期
本文标题:java实验报告2
链接地址:https://www.777doc.com/doc-2880951 .html