《java上机实验复习.doc》由会员分享,可在线阅读,更多相关《java上机实验复习.doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Java实验复习java基础1 在屏幕上输出:Hello, Java!参考代码:public class Hello public static void main(String args) System.out.println(Hello Java!);2.编写程序,求:s=2!+4!+6!+8!+10! 参考代码:public class Second public static void main(String args) int s1,s2,s3,s4,s5; int s; int i; i=1; s1=1; while(i=2) s1=s1*i; i=i+1; i=1; s2=1;
2、 while(i=4) s2=s2*1; i=i+1; i=1; s3=1; while(i=6) s3=s3*i; i=i+1; i=1; s4=1; while(i=8) s4=s4*i; i=i+1; i=1; s5=1; while(i300;System.out.println(f=+f);System.out.println(强制类型转换-);int p1=13;float p2=10.2f,p3;System.out.println(请注意下面的区别-);p3=p1/2;System.out.println(p3=+p3);p3=(float)p1/2;System.out.pr
3、intln(p3=+p3);10. 利用顺序结构,求一元二次方程的根参考代码:public class Chpt3_5 public static void main(String args) float a,b,c,delta;float x1,x2;a=3.0f;b=8.2f;c=5.0f;delta=b*b-4*a*c;x1=(float)(-b+Math.sqrt(delta)/(2*a);x2=(float)(-b-Math.sqrt(delta)/(2*a);System.out.println(x1=+x1);System.out.println(x2=+x2);基本控制结构语句
4、1. java语言中的语句类型:表达式语句,如:total=a+b;在表达式后加一个分号构成表达式语句。功能:计算表达式的值。空语句,只有一个“;”只有分号,没有内容,不执行任何操作。复合语句,如: z=x+y; t=z/10;用 “ ”将多条语句括起来作为一条语句使用。 方法调用语句,方法名(参数); 如:System.out.println(“Java Language”);控制语句,完成一定的控制功能,包括选择语句、循环语句、转移语句。结构顺序结构【例1】public class Force / 计算太阳和地球之间的万有引力 public static void main(String
5、args) double g, mSun, mEarth, f; g=6.66667E-8; mSun = 1.987E33; mEarth = 5.975E27; f = g* mSun* mEarth /(1.495E13*1.495E13); System.out.println(The force is +f); 程序运行结果如下:The force is 3.5413E27【例2】/ 华氏温度转换为摄氏温度:c=5(F-32)/9public class Conversion public static void main(String args) float f, c; f=70.
6、0f; c=5*(f-32)/9; System.out.println(Fahrenheit=+f); System.out.println(Centigrade=+c); 程序运行结果如下:Fahrenheit=70.0Centigrade=21.11111【例3】public class Root /求解方程ax+b=0的根x public static void main(String args) float a, b, x;a=2.0f;b=6.0f;x=-b/a; System.out.println(a=+a); System.out.println(b=+b); System.
7、out.println(x=+x); 程序运行结果:a=2.0b=6.0x=-3.0选择结构1. if 语句If语句的格式如下:if (布尔表达式) 语句1else 语句2【例4】通过命令行输入两个整数,输出较小者。public class MinNumpublic static void main(String args)int x,y,min;x=integer.parseInt(args0);x=integer.parseInt(args1);if(x0.f) x=-b/a; System.out.println(“x=”+x); 注:由于浮点数类型数据在计算机中是近似存储的,所以在比较
8、两个浮点数类型数据是否相等时,一般不采用“= =”运算符来判断它们是否严格相等,而是判断它们的差是否是一个很小的值。【例6】输入成绩判断是否及格。import java.util.*;public class Score public static void main(String args) Scanner in=new Scanner(System.in);int score;System.out.print(请输入成绩:);score=in.nextInt();if(score60) System.out.print(很遗憾,没有及格。);else System.out.print(祝贺
9、你,通过了); System.out.print(再见);注:if语句中满足或不满足条件执行的都是单语句,若有多条语句必须用花括号括起来构成一条复合语句。if 语句嵌套形式一:if(布尔表达式1) 语句1else if(布尔表达式2) 语句2 else if(布尔表达式n) 语句nelse 语句n+1注:条件之间相互排斥。【例6】分段函数求解。import java.util.Scanner;public class Functionpublic static void main(String args) Scanner in=new Scanner(System.in); float x,
10、y; x=in.nextFloat(); if ( x0 & x 10 & x = 20 ) y = 10; else y = 0.5f * x + 20; System.out.println(x=+x); System.out.println(y=+y); 形式二:if 语句中可以包含if语句,形成嵌套:if(布尔表达式1) if(布尔表达式2) 语句1 else 语句2 else 语句3或:if(布尔表达式1) 语句1else if(布尔表达式2) 语句2 else 语句3注:1、条件之间上下包含; 2、else总与离它最近的if配对。【例7】import java.util.*;pub
11、lic class T0 public static void main(String args) Scanner in=new Scanner(System.in);float x,y=0;x=in.nextFloat();if(x2) if(x1) y=x+2;else y=x*2; System.out.println(y=+y);输入1.5,输出y=0.02. Switch语句格式如下:switch(表达式) /计算表达式,得到值 case 常量1: 语句序列1; / 如果表达式值为值1,执行语句块1 break; / 终止,结束switch语句 case 常量2:语句序列2; bre
12、ak; case 常量n:语句序列n; break; default:/ 如果表达式值与值1值n都不同,执行语句块n+1 语句序列n+1;注:表达式的数据类型可以是byte、char、short和int类型,不允许是浮点数类型和long类型。【例8】输入112之间的数字,输出对应的月份的英文名。public class Month1 public static void main(String args) short month; month=Short.parseShort(args); switch(month) case 1: System.out.println(January); b
13、reak; case 2: System.out.println(February); break; case 3: System.out.println(March); break; case 4: System.out.println(April); break; case 5: System.out.println(May); break; case 6: System.out.println(June); break; case 7: System.out.println(July); break; case 8: System.out.println(August); break;
14、case 9: System.out.println(September); break; case 10: System.out.println(October); break; case 11: System.out.println(November); break; case 12: System.out.println(December); break; default: System.out.println(“The Input Error!”); 如果在命令行输入:Java Month1 3运行程序,将3传递给args0,输出结果为:March多分支选择结构【例9】将百分制成绩转化
15、为优秀、良好、中等、及格和不及格的5级制成绩。 标准为: 优秀: 90-100分; 良好: 80-89分; 中等: 70-79分; 及格: 60-69分; 不及格: 60分以下 public class Leve1 public static void main(String arge) short newGrade,grade; grade=Short.parseShort(args0); switch(grade/10) case 10: case 9:newGrade=1;break; case 8:newGrade=2;break; case 7:newGrade=3;break; c
16、ase 6:newGrade=4;break; default:newGrade=5; System.out.print(grade); switch(newGrade) case 1:System.out.println(“,优秀”);break; case 2:System.out.println(“,良好”);break; case 3:System.out.println(“,中等”);break; case 4:System.out.println(“,及格”);break; case 5:System.out.println(“,不及格”);break;【例10】public cl
17、ass T public static void main(String args) int a=2,b=6;switch (a+3) case 5:switch (b) default:a=a-2; case 6:a=a+2;break; default:a=a*2; System.out.println(a); 输出结果为:8循环结构循环有两种类型:计数控制控制累计执行循环体的次数,次数到则结束循环如1+2+3+100或98+96+94+4+2事态控制由某些条件决定循环结束。如计算一系列正整数之和,遇负数停止循环。1. for语句(多用于计数控制)for(Exp1;Exp2;Exp3) 循
18、环体Exp1,Exp2,Exp3指表达式1、2、31.执行Exp1,给循环变量(及其它变量)赋初值;2.计算Exp2的值,若true,执行循环体中的语句;3.执行Exp3,修改循环变量的值4.重复计算Exp2的值,若true,执行循环体,直到Exp2的值为false【例11】计算1100之间的整数和。public class Sum3public static void main(string args)int i,s=0;ifor(i=1;i=3)程序代码如下:public class Fibonaccipublic static void main(string args)long f1=
19、1,f2=1;for(int i=1;i=10;i+)System.out.print(f1+” ”+f2+” ”);f1=f1+f2;f2=f1+f2;【例13】判断素数。素数是指除1及自身外,不能被其他整数整除的自然数,对于一个自然数k,需要使用2k-1之间的每个整数进行测试,如果不能找到一个整数i,使k能被i整除,则k是素数:如果能找到某个整数i,使k能被i整除,则k不是素数。public class Primepublic static void main(String args)short i,k;k=short.parseShort(args0);for(i=2;ik-1;i+)i
20、f(k%i=0)break;if(i=k)System.out.println(k+”is a prime.”);elseSystem.out.println(k+”is not a prime.”);2. while语句while(布尔表达式) 循环体当表达式结果为true时,重复执行循环体。先判断,再执行,循环可能一次也不执行。【例14】计算10!。public class Factorialpublic static void main(String args)int i;double s;i=1;s=1;while(i=10)s=s*i;i=i+1;System.out.println
21、(“10!=”+s);3. dowhile语句do 循环体while(布尔表达式); 重复执行循环体,直到布尔表达式为false。先执行,再判断,循环至少执行一次。注:两种格式循环体中至少有一条语句用以改变循环条件,否则会死循环。【例15】计算1+3+4+99。public class Sum1public static void main(String arge)int i=1,s=0;dos=s+ii=i+2;while(i100);System.out.println(“sum=”+s);【例16】计算150之间的奇数和与偶数和。public class Sum2 Public stat
22、ic void main(String args)int i,oddSum,evenSum;i=1;oddSum=0;evenSum=0;do if(i%2=0)evenSum+=i; elseoddSum+=i; i+;while(i=50);System.out.println(“Odd sum=”+oddSum);System.out.println(“Even sum=”+evenSum);程序输出结果如下:Odd sum=625;Even sum=650;多重循环(循环嵌套)for( ; ; ) /外循环开始 for(; ; ) /内循环开始 /内循环结束 /外循环结束【例17】求2
23、-50之间的素数public class Primes public static void main(String args) int i, j; boolean flag; for(i=2; i=50; i+) /外循环,i:250 flag=true; j=2; while (j=i-1 & flag) / 内循环,判断素数 if (i%j=0) flag=false; j+; if (flag) System.out.print(i+ ); 跳转语句break语句:使程序的流程从一个语句块内部跳转出来。通常在switch和循环语句中使用。continue语句:只在循环语句中使用。作用是
24、终止当前这轮的循环,跳过本轮循环剩余的语句,直接进入下一轮循环。【例18】public static void main(String args) int i,sum; sum=0; for (i=1;i=10;i+) if (i%2!=0) continue; sum=sum+i;System.out.println(sum=+sum); 输出结果为:sum=30常用算法总结一、求最值1、最大、最小值思路:第1个数赋值给max,min,对于后续输入的每个数n if (maxn) min=n;2、 最大公约数,最小公倍数【例19】输入两个整数,求它们的最大公约数和最小公倍数import jav
25、a.util.*;public class a19 public static void main(String args) Scanner in=new Scanner(System.in); int a0,b0,a,b,temp,r; a0=in.nextInt(); b0=in.nextInt(); if (a0b0) temp=a0; a=b0;b=a0; a=a0;b=b0; r=a%b; while (r!=0) a=b; b=r; r=a%b; System.out.println(最大公约数:+b); System.out.println(最小公倍数:+a0*b0/b);二、统计累加(1+3+5+100)、累积(求n!)平均值、计数【例20】求表达式值。x、n由键盘输入import java.util.*;public class a20 public static void main(String args) Scanner in=new Scanner (System.in);int n,i;double x,sum=0,item=1;n=in.nextInt();x=in.nextDouble();for (i=1;i=n;i+)item=item*x/(i+1);sum=sum+item; System.out.println(sum=