《Java程序设计基础例题精品资料.doc》由会员分享,可在线阅读,更多相关《Java程序设计基础例题精品资料.doc(121页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java程序设计基础例题1 /app2_1.java 简单的java应用程序2 public class app2_1 /定义app2_1类3 4 public static void main(String args) /定义主方法5 6 System.out.println(Hello Java !);7 8 1 /App2_2.java Java小程序2 import java.awt.*; /加载java.awt类库中的所有类3 import java.applet.*; /加载java.applet类库中的所有类4 public class App2_2 extends Applet
2、 /定义类App2_2,其父类为Applet5 6 public void paint(Graphics g)7 8 g.drawString(Hello Java!,50,50);9 10 1 /app3_1.java 类型自动转换2 public class app3_1 /定义类app3_13 4 public static void main(String args)5 6 int a=155;7 float b=21.0f;8 System.out.println(a=+a+,b=+b); /输出a,b的值9 System.out.println(a/b=+(a/b); /输出a/b
3、的值10 11 1 /app3_2.java 整数与浮点数的类型转换2 public class app3_23 4 public static void main(String args)5 6 int a=155;7 int b=9;8 float g,h;9 System.out.println(a=+a+,b=+b); /输出a,b的值10 g=a/b; /将a除以b的结果放在g中11 System.out.println(a/b=+g+n); /输出g的值12 System.out.println(a=+a+,b=+b); /输出a,b的值13 h=(float)a/b; /先将a强
4、制转换成float类型后再参加运算14 System.out.println(a/b=+h); /输出h的值15 16 1 /app3_3.java 由键盘输入字符串2 import java.io.*; /加载java.io类库里的所有类3 public class app3_34 5 public static void main(String args) throws IOException6 7 BufferedReader buf;8 String str;9 buf=new BufferedReader(new InputStreamReader(System.in);10 Sys
5、tem.out.print(请输入字符串;);11 str=buf.readLine(); /将输入的文字指定给字符串变量str存放12 System.out.println(您输入的字符串是:+str); /输出字符串13 14 1 /app3_4.java 由键盘输入整数2 import java.io.*;3 public class app3_44 5 public static void main(String args) throws IOException6 7 float num;8 String str;9 BufferedReader buf;10 buf=new Buff
6、eredReader(new InputStreamReader(System.in);11 System.out.print(请输入一个实数:);12 str=buf.readLine(); /将输入的文字指定给字符串变量str存放13 num= Float.parseFloat(str); /将str转换成float类型后赋给num14 System.out.println(您输入的数为:+num);15 16 1 /app3_5.java 由键盘输入多个数据2 import java.io.*;3 public class app3_54 5 public static void mai
7、n(String args) throws IOException6 7 int num1,num2;8 String str1,str2;9 InputStreamReader in;10 in= new InputStreamReader(System.in);11 BufferedReader buf;12 buf=new BufferedReader(in);13 System.out.print(请输入第一个数:);14 str1=buf.readLine(); /将输入的内容赋值给字符串变量str115 num1=Integer.parseInt(str1); /将str1转成in
8、t类型后赋给num116 System.out.print(请输入第二个数:);17 str2=buf.readLine(); /将输入的内容赋值给字符串变量str218 num2=Integer.parseInt(str2); /将str2转成int类型后赋给num219 System.out.println(num1+*+num2+=+(num1*num2);20 21 1 /app3_6.java 由键盘输入多个数据2 import java.util.*; /加载java.util类库里的所有类3 public class app3_64 5 public static void ma
9、in(String args)6 7 int num1;8 double num2;9 Scanner reader=new Scanner(System.in);10 System.out.print(请输入第一个数:);11 num1= reader.nextInt(); /将输入的内容做int型数据赋值给变量num112 System.out.print(请输入第二个数:);13 num2= reader.nextDouble(); /将输入的内容做double型数据赋值给变量num214 System.out.println(num1+*+num2+=+(num1*num2);15 1
10、6 1 /app3_7.java 由键盘输入多个数据2 import java.util.*; /加载java.util类库里的所有类3 public class app3_74 5 public static void main(String args)6 7 String s1,s2;8 Scanner reader=new Scanner(System.in);9 System.out.print(请输入第一个数:);10 s1= reader.nextLine(); /将输入的内容做为字符型数据赋值给变量s111 System.out.print(请输入第二个数:);12 s2= re
11、ader.next(); /按Enter键时next()方法将回车符和换行符13 System.out.println(输入的是+s1+和+s2);14 15 1 /app3_8.java 关系运算符和逻辑运算符的使用2 public class app3_83 4 public static void main(String args)5 6 int a=25,b=7;7 boolean x=ab; /x=false8 System.out.println(a5; /y=true11 System.out.println(xy=+(xy); 12 if(e!=0 & b5) System.o
12、ut.println(a/f=+a/f);16 else System.out.println(f=+f);17 18 1 /app4_1.java if语句的应用2 public class app4_13 4 public static void main(String args)5 6 int a=1,b=2,c=3,max,min;7 if(ab)8 max=a;9 else10 max=b;11 if(cmax) max=c;12 System.out.println(Max=+max);13 min=ab ? a : b;14 min=c=90) 9 grade=A;10 else
13、 if (testscore=80) 11 grade=B;12 else if (testscore=70) 13 grade=C;14 else if (testscore=60) 15 grade=D;16 else 17 grade=E;18 19 System.out.println(评定成绩为:+ grade);20 21 1 / app4_3.java switch语句的应用2 public class app4_33 4 public static void main (String args) throws Exception5 6 int a=100, b=6;7 char
14、 oper;8 System.out.print(请输入运算符:);9 oper=(char)System.in.read(); /从键盘读入一个字符存入变量oper中10 switch (oper)11 12 case +: / 输出a+b13 System.out.println(a+b+=+(a+b);14 break;15 case -: / 输出a-b16 System.out.println(a+-+b+=+(a-b);17 break;18 case *: / 输出a*b19 System.out.println(a+*+b+=+(a*b);20 break;21 case /:
15、 / 输出a/b22 System.out.println(a+/+b+=+(float)a/b);23 break;24 default: / 输出字符串25 System.out.println(输入的符号不正确!);26 27 28 1 / app4_4.java switch语句的应用2 import java.util.*;3 public class app4_44 5 public static void main (String args)6 7 int month,days;8 Scanner reader =new Scanner(System.in);9 System.o
16、ut.print(请输入月份:);10 month=reader.nextInt(); 11 switch (month)12 13 case 2: days=28; /2月份是28天14 break; 15 case 4:16 case 6:17 case 9: 18 case 11: days=30; /4、6、9、11月份的天数为3019 break; 20 default: days=31; / 其它月份为31天21 22 System.out.println(month+月份为【+days+】天);23 24 1 / app4_5.java while语句的应用2 public cl
17、ass app4_53 4 public static void main (String args)5 6 final int MAX=15; /定义常量MAX=157 int i=0,j=1,k=1;8 while(k=MAX)9 10 System.out.print ( +i+ +j);11 i=i+j; /计算Fibonacci序列中的下一个数12 j=i+j; /计算Fibonacci序列中的下一个数13 k=k+2; /用于改变循环的条件表达式的值14 15 System.out.println();16 17 1 /app4_6.java while语句的应用2 import
18、java.io.*;3 public class app4_64 5 public static void main(String args) throws IOException6 7 int a=0,b=1,n,num;8 String str;9 BufferedReader buf;10 buf=new BufferedReader(new InputStreamReader(System.in);11 System.out.print(请输入一个正整数:);12 str=buf.readLine(); /从键盘上读入字符串赋给变量str13 num= Integer.parseInt
19、 (str); /将str转换成int类型后赋给num14 while (bnum)15 16 n=a+b; 17 a=b;18 b=n;19 20 if (num=b) System.out.println(num+是Fibonacci数);21 else System.out.println(num+不是Fibonacci数);22 23 1 /app4_7.java hasNextXXX()方法的使用2 import java.util.*;3 public class app4_74 5 public static void main(String args) 6 7 double s
20、um=0;8 int n=0;9 System.out.println(请输入多个数,每输入一个数后按Enter或Tab或空格键确认:);10 System.out.println(最后输入一个非数字结束输入操作);11 Scanner reader=new Scanner(System.in); /用System.in创建一个Scanner对象12 while(reader.hasNextDouble() ) /判断是否输入了双精度浮点型数据13 14 double x=reader.nextDouble(); /读取并转换表示double型数据的字符序列15 sum=sum+x;16 n+
21、;17 18 System.out.print(共输入了【+n+】个数,其和为:+sum);19 20 1 / app4_8.java do-while循环的应用2 import java.util.*;3 public class app4_84 5 public static void main(String args)6 7 int n,i=1,sum=0;8 Scanner buf=new Scanner(System.in);9 do10 System.out.print(输入正整数:);11 n=buf.nextInt();12 while (n=0); /要求输入数n必须大于0,
22、否则一直要求重复输入13 while(i=n)14 sum+=i+; /计算和15 System.out.println(1+2+n+=+sum); /输出结果16 17 1 / app4_9.java 2 import java.io.*;3 public class app4_94 5 public static void main(String args) throws IOException6 7 int a,b,k;8 String str1,str2;9 BufferedReader buf;10 buf=new BufferedReader(new InputStreamRead
23、er(System.in);11 System.out.print(请输入第一个数 a=);12 str1=buf.readLine(); /将输入的文字赋值给字符串变量str113 a=Integer.parseInt(str1); /将str1转成int类型后赋给a14 System.out.print(请输入第二个数 b=);15 str2=buf.readLine(); /将输入的文字赋值给字符串变量str216 b=Integer.parseInt(str2); /将str2转成int类型后赋给b17 System.out.print(gcd(+a+,+b+)=);18 do 19
24、k=a % b;20 a=b;21 b=k;22 while(k!=0); /若余数k不为0,则继续进行下一次循环23 System.out.println(a); 24 25 1 /app4_10.java 循环语句的应用2 import java.util.*;3 public class app4_104 5 public static void main(String args) 6 7 int n=1,s=1,m;8 Scanner reader=new Scanner(System.in);9 do 10 System.out.print(请输入大于1的整数m:);11 m=rea
25、der.nextInt();12 while (m1为止13 while (sm) / 判断n!m是否成立14 15 s*=n; /计算s=n!16 n+;17 18 System.out.println(s=+s/(n-1)+ n=+(n-2); /输出结果19 20 1 /app4_11.java for循环语句的应用2 public class app4_113 4 public static void main(String args)5 6 int i,n=10,s=0;7 for(i=1;i1;i-) /从10到1进行累加求和13 14 s+=i;15 System.out.pri
26、nt (i+); /输出数i和加号“+”16 17 System.out.println(i+=+(s+i); /输出结果18 19 1 /app4_12.java 循环嵌套的应用2 public class app4_123 4 public static void main(String args)5 6 final int MAX=100; /定义常量MAX=1007 int j,k,n;8 System.out.println(2+MAX+之间的所有素数为:);9 System.out.print(2t); /2是第一个素数,不需测试直接输出10 n=1; /n累计素数的个数11 k=
27、3; /k是被测试的数,从最小奇数3开始测试,所有偶数不需测试12 do /外层循环,从3到100进行素数测试13 14 j=3; /用j去除待测试的数15 while(jMath.sqrt(k) & (k % j!=0) /内层循环16 j+; /若jMath.sqrt(k)18 19 System.out.print(k+t);20 n+; 21 if (n%10=0) System.out.println( ); /每行输出10个数22 23 k=k+2; /测试下一个奇数24 while(kMAX);25 System.out.println(n共有【+n+】个素数);26 27 1
28、/app5_1.java 一维数组2 public class app5_13 4 public static void main(String args)5 6 int i;7 int a; /声明一个数组a8 a=new int5; /分配内存空间供整型数组a使用,其元素个数为59 for(i=0;i=0;i-) /逆序输出数组的内容12 System.out.print(a+i+=+ai+ ,t);13 System.out.println(n数组a的长度是:+a.length); /输出数组的长度14 15 1 /app5_2.java 比较数组元素值的大小2 public class
29、 app5_23 4 public static void main(String args)5 6 int i,Max,Sec;7 int a=8,50,20,7,81,55,76,93; /声明数组a,并赋初值8 if (a0a1)9 10 Max=a0; / Max存放最大值11 Sec=a1; / Sec存放次最大值12 13 else14 15 Max=a1;16 Sec=a0;17 18 System.out.print(数组的各元素为:+a0+ +a1);19 for(i=2;iMax) /判断最大值23 24 Sec=Max; /原最大值降为次最大值25 Max=ai; /ai
30、为新的最大值26 27 else /即ai不是新的最大值,但若ai大于次最大值28 if (aiSec) Sec=ai; /ai为新的次最大值29 30 System.out.print(n其中的最大值是:+Max); /输出最大值31 System.out.println( 次最大值是:+Sec); /输出次最大值32 33 1 /app5_3.java 约瑟夫环问题2 public class app5_33 4 public static void main(String args)5 6 final int N=13; /总人数N7 final int S=3; /从第S个人开始报数8
31、 final int M=5; /报数到M的人出圈9 int p=new intN;10 int i,s,w,j;11 s=S;12 for(i=1;i=2;i-) /总人数为N,依次减114 15 s=(s+M-1)%i; /计算下一个开始报数的人的位置16 if (s=0) s=i; /最后一个出圈人的位置存入变量s中17 w=ps-1; /将出圈人的编号保存到变量w中18 for (j=s;j=0;i-) System.out.print( +pi);23 24 1 /app5_3.java 约瑟夫环问题的另一解法2 public class app5_33 4 public stati
32、c void main(String args)5 6 final int N=13; /总人数N7 final int S=3; /从第S个人开始报数8 final int M=5; /报数到M的人出圈9 int p=new intN+1;10 int flag=new intN+1;11 int i,j,n;12 for(i=1;i=N;i+) 13 14 pi=i;15 flagi=1;16 17 i=S; j=1; n=0;18 System.out.println(n出圈顺序为:);19 while (true) 20 21 while (jN ? 1 : i+1);24 j+=fl
33、agi;25 26 System.out.print( +pi);27 flagi=0;28 n+;29 if (n=N) break;30 j=0;31 32 33 方法2:这个就是约瑟夫环问题的实际场景,有一种是要通过输入n,m,k三个正整数,来求出列的序列。这个问题采用的是典型的循环链表的数据结构,就是将一个链表的尾元素指针指向队首元素。 p-link=head 解决问题的核心步骤:(程序的基本算法) 1.建立一个具有n个链结点,无头结点的循环链表; 2.确定第1个报数人的位置; 3.不断地从链表中删除链结点,直到链表为空。 void JOSEPHUS(int n,int k,int m) /n为总人数,k为第一个开始报数的人,m为出列者喊到的数 /* p为当前结点 r为辅助结点,指向p的前驱结点 list为头节点*/ LinkList p,r,list; /*建立循环链表*/ for(int i=0;in;i+) p=(LinkList)malloc(sizeof(LNode);