实验1Java基本语法练习.doc_第1页
实验1Java基本语法练习.doc_第2页
实验1Java基本语法练习.doc_第3页
实验1Java基本语法练习.doc_第4页
实验1Java基本语法练习.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验 1 Java 基本语法练习一、实验目的1、 了解 Java 的数据类型;2、 掌握各种变量的声明方式;3、 理解运算符的优先级;4、掌握 Java 基本数据类型、运算符与表达式、数组的使用方法;5、 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;6、 通过以上内容,掌握 Java 语言的编程规则。二、实验要求1、编写一个声明 Java 不同数据类型变量的程序;2、编写一个使用运算符、表达式、变量的程序;3、编写一个使用 Java 数组的的程序;4、编写表达式语句、复合语句的程序;5、编写使用不同选择结构的程序;6、编写使用不同循环结构结构的程序。三、实验内容(一)声明不同数据类型的变量1、编写声明不同数据类型变量的程序文件SimpleTypes.java,源代码如下:public class SimpleTypes public static void main(String args) byte b=0x55; short s=0x55ff; int i=1000000; long l=0xfffL; char c=c; float f=0.23F; double d=0.7E-3; boolean bool=true; String Str =这是字符串数据类型“; System.out.println(字节型变量 b=+b); System.out.println(短整形变量 s=+s); System.out.println(整型变量 i=+i); System.out.println(长整型变量 l=+l); System.out.println(字符型变量 c=+c); System.out.println(浮点型变量 f=+f); System.out.println(双精度变量 d=+d); System.out.println(布尔型变量 bool=+bool); System.out.println(字符串类对象 Str=” + str); 改后:public class PrintDemo public static void main(String args)byte b=0x55;short s=0x55ff;int i=1000000;long l=0xfffL;char c=c;float f=0.23F;double d=0.7E-3;boolean bool=true;String Str =这是字符串数据类型;System.out.println(字节型变量 b=+b);System.out.println(短整形变量 s=+s);System.out.println(整型变量 i=+i);System.out.println(长整型变量 l=+l);System.out.println(字符型变量 c=+c);System.out.println(浮点型变量 f=+f);System.out.println(双精度变量 d=+d);System.out.println(布尔型变量 bool=+bool);System.out.println(字符串类对象 Str=+Str );2、编译并运行该程序,结果如图 2.1 所示。字节型变量 b=85短整形变量 s=22015整型变量 i=1000000长整型变量 l=4095字符型变量 c=c浮点型变量 f=0.23双精度变量 d=7.0E-4布尔型变量 bool=true字符串类对象 Str=这是字符串数据类型图 2.1 声明不同类型变量的运行结果(二)了解各种类型的取值范围和变量的使用范围1、课堂上使用的例子,使用System.out.printf方法把所有基本数据类型的最大值最小值表示出来。如int类型的取值范围System.out.printf(int t数值范围:%d %dn,Integer.MAX_VALUE, Integer.MIN_VALUE);2、Scope.java 文件,通过本程序了解变量的使用范围,源代码如下:/Scope.java/Java中变量的作用域public class Scopepublic static void main(String args) int x = 25; System.out.println(x=+x);/只有x 有效 int y = 36; System.out.println(x=+x); System.out.println(y=+y); /x,y均有效 System.out.println(x=+x); System.out.println(y=+y); /只有x有效,y“out of scope” 2、编译Scope.java此时会出现错误提示如图 2.2 所示。因为变量 y在方法块中声明,在方法块之外它是不存在的, 所以编译时会出错。把编译结果的DOS窗口贴到这里 图 2.2 编译结果3、 修改上面的程序。public class BianLiangRange public static void main(String args)int x = 25;System.out.println(x=+x);/只有x 有效int y = 36;System.out.println(x=+x);System.out.println(y=+y); /x,y均有效System.out.println(x= + x);System.out.println(y=+y); /只有x有效,y“out of scope”4、成功运行该程序。思考:Scope.java 程序说明了什么问题?(三)使用关系运算符和逻辑运算符1、建立使用关系运算符RealtionOp.java和逻辑运算符LogicOp.java的程序文件,源代码如下:/RelationOp.java/Java中关系运算符的使用public class RelationOp public static void main(String args)int a=9; int b=6;int c=6; boolean d=ab; /tureboolean e=ab; /falseboolean f=b=c; /tureboolean g=b!=c; /falsef=(b=c)|(ab); /tureg=(b=c)&(ab; /true boolean e=ab; /false boolean f=b=c; /true boolean g=b!=c; /false f=(b=c)|(ab); /true g=(b=c)&(ab); /false e=(ab)&(ac); /tureboolean h=b=c; /tureboolean i=bb); /falsee=(ab)&(ac); /trueboolean h=b=c; /trueboolean i=b=c; /trueboolean j=a=b; /falseSystem.out.println(d=+d);System.out.println(e=+e);System.out.println(f=+f);System.out.println(g=+g);System.out.println(h=+h);System.out.println(i=+i);System.out.println(j=+j);2、编译并运行该程序,结果如图 2.3的(a)和(b)所示。d=truee=falsef=trueg=false(a)关系运算 d=falsee=truef=trueg=trueh=truei=truej=false (四)使用数组1建立使用数组的程序,本程序建立了一个不规则的数组, 源代码如下: /ArrayOfArrays.java/数组的数组public class ArrayOfArrays public static void main(String args) int a = 1, 3, 5 , 2, 4, 6, 8 , 1, 4, 9, 16, 25, 36 , 10, 20, 30 ;for (int row = 0; row a.length; row+) System.out.println(a + row + :);for (int column = 0; column arow.length; column+)System.out.println(a + row + + + column + =+ arowcolumn); 2编译并运行程序,要求结果如图 2.4 所示。 图2.4a0:a00=1a01=3a02=5a1:a10=2a11=4a12=6a13=8a2:a20=1a21=4a22=9a23=16a24=25a25=36a3:a30=10a31=20a32=303.数组拷贝函数和数组排序、查找函数的应用举例,自己编写程序进行实验。(参考java帮助文件)程序源代码:public static void main(String args) /arraycopy()方法int a = 1, 2, 3, 7, 8, 9 ;int c = new inta.length;System.arraycopy(a, 0, c, 0, a.length);for (int i = 0; i a.length; i+) System.out.print( + ai);System.out.println();for (int i = 0; i a.length; i+) System.out.print( + ci); 1 2 3 7 8 9 1 2 3 7 8 9import java.util.*;/Arrays类中的sort方法public class Arrarysort public static void main(String args) int a = 1, 32, 43, 7, 98, 39, 54, 27 ;for (int i = 0; i a.length; i+) System.out.print( + ai);Arrays.sort(a);System.out.println();for (int i = 0; i a.length; i+) System.out.print( + ai); 1 32 43 7 98 39 54 27 1 7 27 32 39 43 54 98import java.util.*;public class Arrarycopy Arrays类中的binarySearch方法public static void main(String args) int a = 1, 7, 27, 32, 35, 39, 43, 44, 54, 68, 98 ;for (int i = 0; i a.length; i+) System.out.print( + ai);Scanner input = new Scanner(System.in);System.out.println();System.out.print(请输入一个要查找元素:);int b = input.nextInt();System.out.print(您查找的元素的下标为 + + Arrays.binarySearch(a, b) + 的元素+ aArrays.binarySearch(a, b);1 7 27 32 35 39 43 44 54 68 98(五)使用表达式语句与复合语句1 建立包含表达式语句程序,源代码如下。class LX2_5public static void main(String args) int k, i=3, j=4;k=20*8/4+i+j*i;System.out.println(表达式(20*8/4+i+j*i)+k);2 建立包含复合语句程序,源代码如下。class LX2_6public static void main(String args) int k, i=3, j=4;k=i+j;System.out.println(在复合块外的输出k=+k);float f; f=j+4.5F; i+;System.out.println(在复合块内的输出f=+f);System.out.println(在复合块内的输出k=+k);System.out.println(在复合块外的输出i=+i);在复合块外的输出k=7在复合块内的输出f=8.5在复合块内的输出k=7在复合块外的输出i=43 编译并运行上述两个源程序,结果如图 2.5、2.6 所示。表达式(20*8/4+i+j*i)55图 2.5图 2.64 将变量 i 在块内定义会怎样?改变其他变量的位置看看会发生什么变化。 思考:指出程序的复合结构以及变量的使用范围。会显示没有定义变量的错误(六)使用选择语句1使用 if.else 语句(1)程序功能:使用 if.else 语句构造多分支,判断某一年是否为闰年。闰年的条件是符合下 面二者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除。(2)编写源程序文件,代码如下。采用窗口输入输出形式,编写代码(测试2005年 2008年 2050年 2100年是否是闰年)public class SeeYearpublic static void main(String args)System.out.print(请输入一个年份);Scanner input=new Scanner(System.in);int y=input.nextInt();if(y%4=0&y%100!=0 | y%400=0)System.out.println(y+是闰年);elseSystem.out.println(y+不是闰年);(3)编译运行程序,其结果如图 2.7 所示。请输入一个年份20052005不是闰年请输入一个年份20082008是闰年请输入一个年份20502050不是闰年请输入一个年份20102010不是闰年结果图 2.7思考:本程序中有几个选择语句,哪些具有嵌套关系? 答:一个选择语句2使用 switch 语句(1)程序功能:在不同温度时显示不同的解释说明。 温度c10度,显示 某某 有点冷。要多穿衣服 10c25度,显示 某某 正合适。出去玩吧。 25c35度,显示 某某 有点热。 c35, 显示 某某 太热了!开空调。上面的某某用变量c的值替换(2)程序源代码如下。class LX2_8public static void main(String args) int c=38;switch (c10?1:c25?2:c35?3:4) case 1:System.out.println( +c+ 有点冷。要多穿衣服。);case 2:System.out.println( +c+ 正合适。出去玩吧。);case 3:System.out.println( +c+ 有点热。);default:System.out.println( +c+ 太热了!开空调。);38 太热了!开空调。(3)编译运行程序,其结果如图 2.8 所示。图 2.8(七)使用循环语句1 for 循环语句练习(1) 程序功能:按 5 度的增量打印出一个从摄氏温度到华氏温度的转换表。(2) 程序源代码如下。class LX2_9public static void main (String args) int h,c;System.out.println(摄氏温度华氏温度);for (c=0; c=40; c+=5) h=c*9/5+32;System.out.println(+c+h);贴摄氏温度华氏温度03254110501559206825773086359540104(3)编译并运行程序,其结果如图 2.9 所示。图 2.92 while 循环语句练习(1)程序功能:运行程序后从键盘输入数字 1/2/3 后,可显示抽奖得到的奖品;如果输入其它数 字或字符显示“没有奖品给你!”。(2)程序源代码如下。 import java.io.*; class LX2_10 public static void main(String args) throws IOException char ch;System.out.println(按 1/2/3 数字键可得大奖!); System.out.println(按空格键后回车可退出循环操作.); while (ch=(char)System.in.read()!= ) System.in.skip(2);/ 跳过回车键switch (ch) case 1: System.out.println(恭喜你得大奖,一辆汽车!); break;case 2:System.out.println(不错呀,你得到一台笔记本电脑!);break;case 3: System.out.println(没有白来,你得到一台冰箱!); break;default:System.out.println(真不幸,你没有奖品!下次再来吧。);(3) 编译源程序。import java.io.IOException;public class Text public static void main(String args) throws IOException char ch;System.out.println(按 1/2/3 数字键可得大奖!);System.out.println(按空格键后回车可退出循环操作.); while (ch=(char)System.in.read()!= ) System.in.skip(2);/ 跳过回车键switch (ch) case 1: System.out.println(恭喜你得大奖,一辆汽车!); break;case 2:System.out.println(不错呀,你得到一台笔记本电脑!);break;case 3:System.out.println(没有白来,你得到一台冰箱!); break;default:System.out.println(真不幸,你没有奖品!下次再来吧。);1恭喜你得大奖,一辆汽车!333dowhile 循环语句练习(1) 程序功能:求 12+100 之和,并将求和表达式与所求的和显示出来。(2) 程序源代码如下。class LX2_11 public static void main(String args) int sum=0;for(int i=1;i=100;i+) sum+=i;System.out.println(1+2+3+4+.+97+98+99+100= +sum);(3)编译并运行程序,结果如图 2.11 所示。1+2+3+4+.+97+98+99+100=5050public static void main(String args) int sum=0;for(int i=1;i=100;i+)sum+=i;System.out.println(sum);50504多重循环练习(1)输出九九乘法表的程序,源代码如下。public class LX2_12public static void main(String args)int i,j,n=9;System.out.print(*|);for (i=1;i=n;i+) System.out.print(+i);System.out.print(n-|);for (i=1;i=n;i+) System.out.print(-); System.out.println();for (i=1;i=n;i+)System.out.print(+i+|); for (j=1;j=i;j+) System.out.print(+i*j); System.out.println();(2)编译并运行程序,结果如图 2.12 所示。 *|123456789 |-1|12|243|3694|4812165|5101520256|612182430367|71421283542498|8162432404856649|91827364554637281四、练习题1分析下面的程序,说出下面的程序为什么是死循环?class Sum public static void main(String args) int i=1,n=10,s=0;while (i=n)s = s + i; System.out.println(s=+s);public static void main(String args)int i=1,n=10,s=0;while (i=n)s = s + i; System.out.println(s=+s);因为i不变,所以一直是i=n,陷入死循环2分析下面源程序的结构,写出运行结果。class CircleArea final static double PI=3.14159;public static void main(String args) double r1=8.0, r2=5.0; System.out.println(半径为+r1+的圆面积+area(r1); System.out.println(半径为+r2+的圆面积+area(r2);static double area(double r) return (PI*r*r);final static double PI=3.14159;public static void main(String args)double r1=8.0, r2=5.0;System.out.println(半径为+r1+的圆面积+area(r1); System.out.println(半径为+r2+的圆面积+area(r2);static double area(double r)return (PI*r*r);半径为8.0的圆面积201.06176半径为5.0的圆面积78.539753 课本P100页4.29,编程序并贴出运行结果。import java.util.Scanner;public class Canlander public static void main(String args) Scanner input= new Scanner(System.in);System.out.println(请输入一个年份代表该年第一天是星期几的数字);int y=input.nextInt();/年int x=input.nextInt();int b=0;int n=0;/int k=x;boolean Isyear;if(y%4=0&y%100!=0 |y%400=0)Isyear=true;else Isyear=false;for(int i=1;i=12;i+)System.out.println(以下是+i+月份的月历);System.out.println( +Sun+ +Mon+ +Tue+ +Wen+ +Fou+ +Fri+ +Sat);/for(int p=1;p1)int z=(n+x)%7;for(int o=1;o=z;o+)System.out.print( );else for(int o=1;o=x;o+)System.out.print( );if(i=1 | i=3| i=5| i=7| i=8| i=10| i=12)b=31;else if(i=4| i=6| i=9| i=11)b=30;else if(i=2)if(Isyear)b=29;elseb=28;elseSystem.out.print(error);for(int j=1;j9)System.out.print( +j);elseSystem.out.print( +j);System.out.println();elseif(j9)System.out.print( +j);elseSystem.out.print( +j); System.out.println();System.out.println();/x=(k+b)%7;请输入一个年份代表该年第一天是星期几的数字2004 6以下是1月份的月历 Sun Mon Tue Wen Fou Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31以下是2月份的月历 Sun Mon Tue Wen Fou Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29以下是3月份的月历 Sun Mon Tue Wen Fou Fri Sat 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论