Bootstrap

java-高级编程课-实验题集标答整理

文章目录

第二章 Java编程基础

第一次实验

1.定义一个整型的长度为6的一维数组k[6],并将数组中元素k[i] 值初始化为i。然后,将元素k[3]打印出来。

public class less02_1{
   
	   public static void main(String[] args){
   
	      int k[] = new int[6];
	      for(int i = 0;i < k.length;i++)
	    	  k[i] = i;
	      System.out.println("k[3]=" + k[3]);
	}
}

结果:在这里插入图片描述

2.定义一个整型的长度为3 x 4的二维数组k[3] [4],并将数组中元素k[i] [j] 值初始化为值ixj。然后,将元素k[2] [3]打印出来。(可以直接赋值)

public class less02_1{
   
	   public static void main(String[] args){
   
	      int k[][] = new int[3][4];
	      for(int i = 0;i < k.length;i++) {
   
	    	  for(int j = 0;j < k[i].length;j++)
	    		  k[i][j] = i * j;
	      }
	      System.out.println("k[2][3]="+k[2][3]);
	}
}

结果:在这里插入图片描述

3.从命令行输入几个字符串,统计并打印出输入字符串的个数、以及各字符串的字符个数。(提示:args.length / args[k].length() )

public class less02_1{
   
	   public static void main(String[] args){
   
	      System.out.println("字符串的个数"+args.length);
	      for(int i = 0;i < args.length;i++)
	    	  System.out.println("第"+(i + 1)+"个字符串的字符数"+args[i].length());
	}
}

结果:
在这里插入图片描述
在这里插入图片描述

4.从命令行输入一个数字,判断它是奇数还是偶数。(提示:利用%;三元条件 或 if/else ; int a=Integer.parseInt(args[0]) //数据输入)

public class less02_1{
   
	   public static void main(String[] args){
   
	      int a = Integer.parseInt(args[0]);
	      if(a % 2 == 0) System.out.println(a+"是偶数");
	      else System.out.println(a+"是奇数");
	}
}

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.从命令行输入两个数字,判断两个数谁大谁小。(提示:读输入参数args[];三元条件 或 if/else )

public class less02_1{
   
	   public static void main(String[] args){
   
	      int a = Integer.parseInt(args[0]);
	      int b = Integer.parseInt(args[1]);
	      if(a > b) System.out.println(a+">"+b);
	      else if(a == b) System.out.println(a+"="+b);
	      else System.out.println(a+"<"+b);
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二次实验

6.角谷猜想:任何一个正整数n,如果它是偶数则除以2,如果是奇数则乘3加1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1。编写应用程序证明:在3~10000之间的所有正整数都符合上述规则。

public class less2_02 {
   
	public static void main(String[] args){
   
	   	   int tmp = 0;
	   	   for (int n = 3; n <= 10000; n++) {
   
	   	    	tmp = n;
	   	    	while(tmp != 1){
   
	   	    	   if(tmp % 2 == 1)
	   	    	      tmp = tmp * 3 + 1;
	   	    	   else
	   	    	      tmp = tmp / 2;		
	   	    	}
	   	    	System.out.println(n+"符合角谷猜想!");
	   	   }
	   }
}

在这里插入图片描述

7.编写一个模拟同时掷骰子的程序。要用Math.random()模拟产生两个骰子,将两个结果相加,相加的和等于7的可能性最大,等于2和12的可能性最小。程序模投掷3600次,判断求和的结果是否合理。

public class less2_02 {
   
	public static void main(String[] args) {
      
			//  方法一
	   	   int r1=0,r2=0;
	   	   int sum=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8=0,sum9=0,sum10=0,sum11=0,sum12=0;
	   	   for (int n=0; n<3600; n++) {
   
	   	    	r1=(int)(Math.random()*6+1);
	   	    	r2=(int)(Math.random()*6+1);
	   	    	sum=r1+r2;
	   	    	switch(sum){
   
	   	    		case 2:sum2++;break;
	   	    		case 3:sum3++;break;
	   	    		case 4:sum4++;break;
	   	    		case 5:sum5++;break;
	   	    		case 6:sum6++;break;
	   	    		case 7:sum7++;break;	
	   	    		case 8:sum8++;break;
	   	    		case 9:sum9++;break;
	   	    		case 10:sum10++;break;	
	   	    		case 11:sum11++;break;
	   	    		case 12:sum12++;break;		
	   	    	}	
	   	   }
	   	   System.out.println("和为2的次数:"+sum2);
	   	   System.out.println("和为3的次数:"+sum3);
	   	   System.out.println("和为4的次数:"+sum4);
	   	   System.out.println("和为5的次数:"+sum5);
	   	   System.out.println("和为6的次数:"+sum6);
	   	   System.out.println("和为7的次数:"+sum7);
	   	   System.out.println("和为8的次数:"+sum8);
	   	   System.out.println("和为9的次数:"+sum9);
	   	   System.out.println("和为10的次数:"+sum10);
	   	   System.out.println("和为11的次数:"+sum11);
	   	   System.out.println("和为12的次数:"+sum12);
	   }
}

结果:
在这里插入图片描述

public class less2_02 {
   
	public static void main(String[] args) {
    
		//方法2
		int r1=0,r2=0,sum=0;
	   	int[] res=new int[13];
	   	for (int n=0; n<3600; n++) {
   
	   	    r1=(int)(Math.random()*6+1);
	   	    r2=(int)(Math.random()*6+1);
	   	    sum=r1+r2;
	   	    res[sum]++;
	   	}
	   	for(int n=2;n<=12;n++){
   
	   	   	System.out.println("和为 "+n+" 的次数:"+res[n]);
	   	}
	}
}

结果:
在这里插入图片描述

8.编程:从键盘读取星号数,采用循环语句打印如下图形。如:从键盘输入10,则星号排列最大数是10。注意图4图5星号数需要为奇数:

在这里插入图片描述

//图1
import java.util.Scanner;

public class less2_02 {
   
	   //定义一个打印n个星号的方法
	   static void pStar(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print("*");
	   	  }
	   }
	   //定义一个打印n个空格的方法
	   static void pSpace(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print(" ");
	   	  }
	   }
	   //定义一个换行的方法
	   static void pEnter(){
   
	   	   	System.out.println();   	
	   }
	public static void main(String[] args) {
   
		  Scanner sc=new Scanner(System.in);
	   	  System.out.print("请输入星号数:");
	   	  int n=sc.nextInt();
	   	  
	   	  //图形1
	   	  for(int i=1;i<=n;i++){
   
	   	     pSpace(n-i);
	   	     pStar(i);
	   	     pEnter();	
	   	  }
	}
}

结果:
在这里插入图片描述

//图2
import java.util.Scanner;

public class less2_02 {
   
	   //定义一个打印n个星号的方法
	   static void pStar(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print("*");
	   	  }
	   }
	   //定义一个打印n个空格的方法
	   static void pSpace(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print(" ");
	   	  }
	   }
	   //定义一个换行的方法
	   static void pEnter(){
   
	   	   	System.out.println();   	
	   }
	public static void main(String[] args) {
   
		  Scanner sc=new Scanner(System.in);
	   	  System.out.print("请输入星号数:");
	   	  int n=sc.nextInt();
	   	  
	   	 //图形2
	   	 for(int i=1;i<=n;i++){
   
	   	  	 pStar(i);
	   	     pEnter();	
	   	  }
	   	  for(int i=n-1;i>=1;i--){
   
	   	  	pStar(i);
	   	  	pEnter();
	   	  }
	}
}

结果:
在这里插入图片描述

//图3
import java.util.Scanner;

public class less2_02 {
   
	   //定义一个打印n个星号的方法
	   static void pStar(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print("*");
	   	  }
	   }
	   //定义一个打印n个空格的方法
	   static void pSpace(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print(" ");
	   	  }
	   }
	   //定义一个换行的方法
	   static void pEnter(){
   
	   	   	System.out.println();   	
	   }
	public static void main(String[] args) {
   
		  Scanner sc=new Scanner(System.in);
	   	  System.out.print("请输入星号数:");
	   	  int n=sc.nextInt();
	   	  
	   	  //图形3
	   	 for(int i=1;i<=n;i++){
   
	   	  	 pStar(i);
	   	     pEnter();	
	   	  }
	   	  for(int i=1;i<n;i++){
   
	   	  	pSpace(i);
	   	  	pStar(n-i);
	   	  	pEnter();
	   	  }
	}
}

结果:
在这里插入图片描述

//图4
import java.util.Scanner;

public class less2_02 {
   
	   //定义一个打印n个星号的方法
	   static void pStar(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print("*");
	   	  }
	   }
	   //定义一个打印n个空格的方法
	   static void pSpace(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print(" ");
	   	  }
	   }
	   //定义一个换行的方法
	   static void pEnter(){
   
	   	   	System.out.println();   	
	   }
	public static void main(String[] args) {
   
		  Scanner sc=new Scanner(System.in);
	   	  System.out.print("请输入星号数:");
	   	  int n=sc.nextInt();
	   	  
	   	  //图形4
	   	for(int i=0;i<=(n-1)/2;i++){
   
	   	  	pSpace((n-1)/2-i);
	   	  	pStar(i*2+1);
	   	  	pEnter();
	   	  }
	}
}

结果:
在这里插入图片描述

//图5
import java.util.Scanner;

public class less2_02 {
   
	   //定义一个打印n个星号的方法
	   static void pStar(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print("*");
	   	  }
	   }
	   //定义一个打印n个空格的方法
	   static void pSpace(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print(" ");
	   	  }
	   }
	   //定义一个换行的方法
	   static void pEnter(){
   
	   	   	System.out.println();   	
	   }
	public static void main(String[] args) {
   
		  Scanner sc=new Scanner(System.in);
	   	  System.out.print("请输入星号数:");
	   	  int n=sc.nextInt();
	   	  
	   	  //图形5
	   	 for(int i=0;i<=(n-1)/2;i++){
   
	   	  	pSpace((n-1)/2-i);
	   	  	pStar(i*2+1);
	   	  	pEnter();
	   	  }
	   	  for(int i=1;i<=(n-1)/2;i++){
   
	   	  	pSpace(i);
	   	  	pStar(n-i*2-1);			//输入奇数不用-1
	   	  	pEnter();
	   	  }
	}
}

结果:
在这里插入图片描述

9.编程:从键盘读取一个矩形的长度,然后输出一个空心矩形。

在这里插入图片描述

import java.util.Scanner;

public class less2_02 {
   
	   //定义一个打印n个星号的方法
	   static void pStar(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print("*");
	   	  }
	   }
	   //定义一个打印n个空格的方法
	   static void pSpace(int n){
   
	   	  for (int i=0; i<n; i++) {
   
	   	   	System.out.print(" ");
	   	  }
	   }
	   //定义一个换行的方法
	   static void pEnter(){
   
	   	   	System.out.println();   	
	   }
	   public static void main(String[] args) {
   
		    Scanner sc=new Scanner(System.in);
	   	    System.out.print("请输入星号数:");
	   	    int n=sc.nextInt();
	   	  
	        // 9 读取一个矩形长度
	   	    pStar(n);
	   	  	pEnter();
	   	  	for(int i=0;i<n-2;i++){
   
	   	  		pStar
;