Java基础练习及代码.docx_第1页
Java基础练习及代码.docx_第2页
Java基础练习及代码.docx_第3页
Java基础练习及代码.docx_第4页
Java基础练习及代码.docx_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

Java练习及作业代码集目录一、第一章31.制作九九乘法表32.从键盘输入33.判断一个数是否为素数34.把数字倒着输出45.水仙花数46.判断年份是否为闰年57.输入三边求三角形面积58.一位数加法问答59.空格和星星610.Swich语句控制抽牌711.1000以内的完数712.形如3+33+333+3333单双重循环练习813.求一组随机数最大值914.随机产生十五个不重复的学号915.插入排序1016.选择排序1117.从前往后进行冒泡排序1218.从后往前进行冒泡排序1219.冒泡排序(可提前结束排序)1320.二维数组输出练习1421.上三角和下三角练习1522.偶数列小到大输出,奇数列大到小输出1623.数组方式随机抽取4张牌1724.二维数组输出类似杨辉三角1725.两个矩阵相乘1826.函数调用练习1927.鞍点(1)2028.鞍点(2)2129.打印电话号码22二、第二章221.类,对象和构造方法222.普通方法的重构233.类的继承244.抽象类和抽象方法255.接口266.二分查找287.全排列(递归)29一、 第一章1. 制作九九乘法表public static void main(String args )/九九乘法表for (int r=1;r=9;r+)for(int c=1;c=1;r-)for(int c=1;c=r;c+)System.out.print(r+*+c+=+r*c+t);System.out.println();2. 从键盘输入import java.util.*;public class MyInport public static void main(String args) Scanner sc = new Scanner(System.in); int i=sc.nextInt(); float f=sc.nextFloat(); double d=sc.nextDouble(); System.out.println(i=+i); System.out.println(f=+f); System.out.println(d=+d);3. 判断一个数是否为素数package test;import java.util.*;public class SushuTest public static void main(String args) Scanner sc = new Scanner(System.in);int Ss = sc.nextInt();boolean s = true;for (int i = 2; i 0) System.out.print(sr%10); sr=sr/10;5. 水仙花数package test;public class SXHS public static void main(String args) / TODO Auto-generated method stubSystem.out.print(水仙花数有:);for (int sr = 100; sr c & a + c b & b + c a) double Zc_half = (a + b + c) / 2;double Area = Math.sqrt(Zc_half * (Zc_half - a) * (Zc_half - b) * (Zc_half - c);System.out.print(三角形的面积为: + Area);elseSystem.out.print(无法构成三角形);8. 一位数加法问答import java.util.*;public class YWSJF public static void main(String args) int number1=(int)(Math.random()*10);int number2=(int)(Math.random()*10);Scanner input= new Scanner(System.in);System.out.print(number1+number2+=);int answer=input.nextInt();if(answer=number1+number2)System.out.println(恭喜你,答对了!);elseSystem.out.println(很遗憾,答错了!);System.out.println(number1+number2+=+(number1+number2);9. 空格和星星package mine;public class PrintStar public static void main(String args) int t=9;for (int i = 1; i = t; i+) for (int j = 1; j = t - i; j+) System.out.print( );for (int k = 1; k = 2 * i - 1; k+) System.out.print(*);System.out.println();for(int i=1;it;i+)for(int j=1;j=2*i-1;k-)System.out.print(*);System.out.println();10. Swich语句控制抽牌package mine;public class a public static void main(String args) int card = (int) (Math.random() * 54);String suit = , rank = ;switch (card / 13) case 0:suit = 黑桃;break;case 1:suit = 红桃;break;case 2:suit = 方块;break;case 3:suit = 梅花;break;switch(card%13)case 0:rank = A;break;case 10:rank = J;break;case 11:rank = Q;break;case 12:rank = K;break;default: rank=+(card%13+1);System.out.print(你抽到的牌是:+suit+ +rank);11. 1000以内的完数package mine;public class WanShu public static void main(String args) for (int i = 1; i = 1000; i+) int sum = 0;for (int j = 1; j i; j+) if (i % j = 0) sum = sum + j;if (sum = i) System.out.println(i);12. 形如3+33+333+3333单双重循环练习import java.util.*;public class Test public static void main(String args) / 3+33+333System.out.println(please input a and n);Scanner sc = new Scanner(System.in);int a = sc.nextInt();int n = sc.nextInt();/ 一重循环int sum1 = 0;int term1 = 0;for (int i = 1; i = n; i+) term1 = term1 * 10 + a;sum1 = sum1 + term1;System.out.println(一重循环结果: + sum1);/ 二重循环int sum2 = 0;for (int i = 1; i = n; i+) int term2 = 0;for (int j = 1; j = i; j+) term2 = term2 * 10 + a;sum2 = sum2 + term2;System.out.println(双重循环结果: + sum2);13. 求一组随机数最大值package mine;import java.util.*;public class Test public static void main(String args) Random rad=new Random();int arr=new int 10;for (int i=0;i10;i+)arri=rad.nextInt(100);System.out.print(arri+ );System.out.println();int max=arr0;for(int i=1;i10;i+)if(maxarri)max=arri;System.out.println(the max is:+max);14. 随机产生十五个不重复的学号package aaa;import java.util.*;public class Test public static void main(String args) Random rad=new Random();int arr=new int 15;/产生一个数组,把n放入int k=0;/数组元素的个数for(int i=0;i15;i+)int n=rad.nextInt(47)+1;/产生1-47个学号boolean b=true;for(int j = 0;jk;j+)if(n=arrj)b=false;break;if(b=true)/数字有效无重复,输出并放入数组,个数加一System.out.println(n);arrk=n;k+;elsei-;/数字重复,则使用i-把此循环无效15. 插入排序import java.util.*;public class Test public static void main(String args) / 插入排序Random rand=new Random();int arr =new int10;/放入10个元素int temp;/用于保存当前使用的某元素/生成10个随机数for(int i=0;iarr.length;i+)arri=rand.nextInt(40);/生成0-39内的随机数System.out.print(arri+ );System.out.println();/把数组分成已排序和未排序两部分,进行插入排序for(int i=1;i0;j-)/如 20 1 13temp=arrj;/保存当前未排序的第一个元素if(temparrj-1)arrj=arrj-1;arrj-1=temp;elsebreak;arrj-1=temp;System.out.println(结果如下:);/输出结果for(int i=0;iarr.length;i+)System.out.print(arri+ );16. 选择排序package aa;import java.util.Random;public class Test public static void main(String args) / 选择排序Random rand = new Random();int arr = new int10;/ 放入10个元素int minIndex;/ 生成10个随机数for (int i = 0; i arr.length; i+) arri = rand.nextInt(40);/ 生成0-39内的随机数System.out.print(arri + );System.out.println();for (int i = 0; i arr.length-1; i+) minIndex = i;/内循环找最小的数的位置for (int j = i + 1; j = arr.length-1; j+) if (arrj arrminIndex) minIndex = j;if (minIndex != i) int t = arri;arri = arrminIndex;arrminIndex = t;System.out.println(结果如下:);/ 输出结果for (int i = 0; i arr.length; i+) System.out.print(arri + );17. 从前往后进行冒泡排序package aa;import java.util.Random;public class Test public static void main(String args) / TODO Auto-generated method stub/ 冒泡排序Random rand = new Random();int arr = new int10;/ 放入10个元素/ 生成10个随机数for (int i = 0; i arr.length; i+) arri = rand.nextInt(40);/ 生成0-39内的随机数System.out.print(arri + );System.out.println();for (int i = 0; i arr.length-1; i+) /内层循环控制第i次,每两个元素,两两比较进行交换for(int j=0;jarrj+1)int t=arrj;arrj=arrj+1;arrj+1=t;System.out.println(结果如下:);/ 输出结果for (int i = 0; i arr.length; i+) System.out.print(arri + );18. 从后往前进行冒泡排序import java.util.*;public class Test public static void main(String args) / TODO Auto-generated method stub/ 从后往前冒泡排序Random rand = new Random();int arr = new int10;/ 放入10个元素/ 生成10个随机数for (int i = 0; i 10; i+) arri = rand.nextInt(40);/ 生成0-39内的随机数System.out.print(arri + );System.out.println();for (int i = 0; i 0; j-) if (arrj arrj - 1) int t = arrj;arrj = arrj - 1;arrj - 1 = t;System.out.println(结果如下:);/ 输出结果for (int i = 0; i 10; i+) System.out.print(arri + );19. 冒泡排序(可提前结束排序)import java.util.*;public class Test public static void main(String args) Random rand = new Random();int arr = new int10;/ 放入10个元素/ 生成10个随机数int arr1 = new int10;for (int i = 0; i arr.length; i+) arri = rand.nextInt(40);/ 生成0-39内的随机数System.out.print(arri + );System.out.println();/ 冒泡排序for (int i = 0; i arr.length - 1; i+) boolean flag = true;/ 假设已经排好顺序for (int j = 0; j arrj + 1) / 若前后两个元素对调则排序未完成,将flag设为falseint t = arrj;arrj = arrj + 1;arrj + 1 = t;flag = false;/ 若排序提前完成跳出循环if (flag) System.out.println(第+(i+1)+轮时已经完成排序,跳出循环);break;/ 将每轮结果输出System.out.println(第 + (i+1) + 轮排序);for (int u = 0; u arr.length; u+) arr1u = arru;System.out.print(arru + );System.out.println();System.out.println(结果如下:);for (int i = 0; i arr.length; i+) System.out.print(arri + );20. 二维数组输出练习public class Test public static void main(String args) /按每行,从小到大排int arr=new int44;int k=1;for(int row=0;row4;row+)for(int col=0;col4;col+)arrrowcol=k;System.out.print(arrrowcol+t);k+;System.out.println();/按每列,从小到大排k=1;/初始kfor(int col=0;col4;col+)for(int row=0;row4;row+)arrrowcol=k;k+;System.out.println();for(int row=0;row4;row+)for(int col=0;col4;col+)System.out.print(arrrowcol+t);System.out.println();21. 上三角和下三角练习public class Test2 public static void main(String args) / 带0输出的数组int arr=new int44;int k=1;for(int row=0;row4;row+)for(int col=0;col4;col+)if(row=col)/row=col 上三角arrrowcol=k+;elsearrrowcol=0;System.out.print(arrrowcol+t);System.out.println();/不带0输出的上三角/*int arr=new int44;int k=1;for(int row=0;row4;row+)for(int col=0;colrow+1;col+)arrrowcol=k;System.out.print(arrrowcol+t);k+;System.out.println();*/22. 偶数列小到大输出,奇数列大到小输出public class Test2 public static void main(String args) / TODO Auto-generated method stubint arr = new int55;int k = 1;for (int col = 0; col 5; col+) if (col % 2 = 0) for (int row = 0; row = 0; row-) arrrowcol = k+;for (int row = 0; row 5; row+) for (int col = 0; col 5; col+) System.out.print(arrrowcol+t);System.out.println();23. 数组方式随机抽取4张牌public class Test2 public static void main(String args) int deck=new int52;Stringsuits=黑桃,红桃,方块,梅花;Stringranks=A,2,3,4,5,6,7,8,9,10,J,Q,K;/初始化每一张牌for(int i=0;ideck.length;i+)decki=i;/打乱牌的次序for(int i=0;ideck.length;i+)/随机产生一个元素下标051int index=(int)(Math.random()*deck.length);int temp=decki;decki=deckindex;deckindex=temp;/显示输出前4张牌for(int i=0;i4;i+)String suit= suitsdecki/13;String rank=ranksdecki%13;System.out.println(suit+ +rank);24. 二维数组输出类似杨辉三角public class Test2 public static void main(String args) int arr = new int1010;for(int i=0;i10;i+)for(int j=0;j=i;j+)if(j=0|j=i)arrij=1;/开头和末尾为1elsearrij=arri-1j-1+arri-1j;/中间数值规律for(int i=0;i10;i+)for(int j=0;j10;j+)System.out.print(arrij+t);System.out.println();25. 两个矩阵相乘import java.util.*;public class Test public static void main(String args) Random rand = new Random();/ 生成2个矩阵并随机赋值Scanner sc = new Scanner(System.in);int arr1 = new int25;int arr2 = new int53;for (int r = 0; r 2; r+) for (int c = 0; c 5; c+) arr1rc = rand.nextInt(5);System.out.print(arr1rc + );System.out.println();System.out.println();for (int r = 0; r 5; r+) for (int c = 0; c 3; c+) arr2rc = rand.nextInt(5);System.out.print(arr2rc + );System.out.println();System.out.println();/ 相乘规则int arr3 = new int23;/ 创建一个0矩阵等待赋值for (int r = 0; r 2; r+) for (int c = 0; c 3; c+) int sum = 0;for (int u = 0; u 5; u+) sum = sum + arr1ru * arr2uc;/ 矩阵第r行,第c列每个元素相乘再相加/ 将sum赋值于arr3的r行c列位置arr3rc = sum;System.out.println(结果如下:);for (int i = 0; i 2; i+) for (int j = 0; j 3; j+) System.out.print(arr3ij + t);System.out.println();26. 函数调用练习import java.util.Random;public class Test int arr=new int55;public void Intt()Random rand=new Random();for(int r=0;r5;r+)for(int c=0;c5;c+)arrrc=rand.nextInt(20);System.out.print(arrrc+t);System.out.println();public static void main(String args) Test t=new Test();t.Intt();27. 鞍点(1)import java.util.Random;public class Test int arr=new int55;public void Intt()Random rand=new Random();for(int r=0;r5;r+)for(int c=0;c5;c+)arrrc=rand.nextInt(20);System.out.print(arrrc+t);System.out.println();public void AnDian()for(int r=0;r5;r+)int maxC=0;for(int j=1;j5;j+)if(arrrmaxCarrrj)maxC=j;boolean Flag=true;for(int u=0;u5;u+)if(arrumaxCarrrmaxC)Flag=false;if(Flag=true)System.out.print(+r+,+maxC+)是鞍点,其值为+arrrmaxC);public static void main(String args) Test t=new Test();t.Intt();t.AnDian();28. 鞍点(2)import java.util.Random;public class AnDian int n=3;int arr=new intnn;/数组初始化public void Intt()Random rand=new Random();for(int r=0;rn;r+)for(int c=0;cn;c+)arrrc=rand.nextInt(50)+10;System.out.print(arrrc+t);System.out.println();/从列找出最小,再从行找最大public void AD()for(int c=0;cn;c+)int minR=0;for(int r=0;rarrrc)minR=r;boolean

温馨提示

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

评论

0/150

提交评论