《Java程序设计基础》第5章习题

5.1 输入n个数,输出这些数中大于其平均值的数。

import java.util.*;
public class aver
{
     public static void main(String[] args)
	 { 
	        int n;
	        Scanner reader = new Scanner(System.in);
            System.out.print("将要输入几个数:"); 
			n=reader.nextInt();
            double[] num=new double[n];
			System.out.print("请输入这些数:"); 
			for(int i=0;i<n;i++)
			{
				num[i]=reader.nextDouble();
			}
            double sum=0,aver;
			for(int j=0;j<n;j++)
				sum+=num[j];
			aver=sum/n;
			for(int i=0;i<n;i++)
			{
				if(num[i]>aver)
					System.out.print(num[i]+"  "); 
			}
			
    }
}

5.2 输入n个数,求这n个数中的最大数与最小数并输出。

import java.util.*;
public class MaxMin
{
     public static void main(String[] args)
	 { 
	        int n;
	        Scanner reader = new Scanner(System.in);
            System.out.print("将要输入几个数:"); 
			n=reader.nextInt();
            double[] num=new double[n];
			System.out.print("请输入这些数:"); 
			for(int i=0;i<n;i++)
			{
				num[i]=reader.nextDouble();
			}
			double max=num[0],min=num[0];
			for(int i=0;i<n;i++)
			{
				if(num[i]>max)
					max=num[i];
				else if(num[i]<min)
					min=num[i];	
			}
			System.out.println("最大数是"+max+",最小数是"+min); 
    }
}

5.3 求一个3阶方阵的对角线上个元素之和。

import java.util.*;
public class threeMatrix
{
     public static void main(String[] args)
	 { 
	        int[][] num=new int[3][3];
	        Scanner reader = new Scanner(System.in);
            System.out.println("请输入一个3阶方阵:"); 
			for(int i=0;i<3;i++)
			{
				for(int j=0;j<3;j++)
				{
				  num[i][j]=reader.nextInt();
				}
			}
			int sum=0;
			sum=num[0][0]+num[1][1]+num[2][2]+num[0][2]+num[2][0];
			System.out.println("对角线上各元素之和是"+sum); 
    }
}

5.4 找出4*5矩阵中值最小和最大元素,并分别输出其值及所在的行号和列号。

import java.util.*;
public class matrixMaxMin
{
     public static void main(String[] args)
	 { 
	        int[][] num=new int[4][5];
	        Scanner reader = new Scanner(System.in);
            System.out.println("请输入一个4X5矩阵:"); 
			for(int i=0;i<4;i++)
			{
				for(int j=0;j<5;j++)
				{
				  num[i][j]=reader.nextInt();
				}
			}
			int max=num[0][0],min=num[0][0];
			int maxrow=0,maxcol=0,minrow=0,mincol=0;
			for(int i=0;i<4;i++)
			{
				
				for(int j=0;j<5;j++)
				{
				  if(num[i][j]>max)
				  {
					max=num[i][j];
					maxrow=i+1;
				 	maxcol=j+1;
				  }
				  else if(num[i][j]<min)
				  {
					min=num[i][j];
					minrow=i+1;
				 	mincol=j+1;
				  }
				}
			}
			System.out.printf("最大元素为%d,在第%d行,第%d列;最小元素为%d,在第%d行,第%d列。\n",max,maxrow,maxcol,min,minrow,mincol); 
    }
}

5.5 产生0~100之间的8个随机整数,并利用冒泡排序法将其升序排序后输出。(冒泡排序算法:每次进行相邻两数的比较,若次序不对,则交换两数的次序)。

import java.util.*;
public class randomBubble
{
     public static void main(String[] args)
	 { 
	        int n=8;
	        Scanner reader = new Scanner(System.in);
            //System.out.print("将要输入几个数:"); 
			//n=reader.nextInt();
            int[] num=new int[n];
			Random random = new Random();
			System.out.print("随机生成8个整数:"); 
			for(int i=0;i<n;i++)
			{
				num[i]=random.nextInt(101);
				System.out.print(num[i]+"  "); 
			}
			System.out.println(); 
			for(int i=0;i<n-1;i++)
			   for(int j=0;j<n-1-i;j++)
			   {
				   if(num[j]>num[j+1])
				   {
					   int t;
					   t=num[j];
					   num[j]=num[j+1];
					   num[j+1]=t;
				   }
			   }
			System.out.print("经过冒泡升序排序后:"); 
			for(int i=0;i<n;i++)
			{
					System.out.print(num[i]+"  "); 
			}
			
    }
}

5.6 15红球和15个绿球排成一圈,从第1个球开始数,当数到第13个球时就拿出此球,然后再从下一个球开始数,当再数到第13个球时又取出此球,如此循环进行,直到仅剩15个球为止,问怎样排法才能使每次取出的球都是红球。

import java.util.*;
public class redBall
{
     public static void main(String[] args) 
	 {
	   System.out.println("将30个球的位置从1开始编号"); 
	   int []a=new int [30];
	   int n=30,k=0,y=1;           
	   for(int i=0;i<30;i++)
	      a[i]=i+1;//从1开始编号
       do
       {
    	k=(k+12)%n;             //用来循环数的
    	System.out.println("第"+y+"次取出第"+a[k]+"号球");
    	for(int j=k;j<n-1;j++)
    	    a[j]=a[j+1];
    	n--;
    	y++;
       }
       while(y<=15);
	   System.out.println("在相应的位置放红球就好"); 
     }
}

5.7 编写Java应用程序,比较命令行中给出的两个字符串是否相等,并输出比较的结果。

import java.util.*;
public class strEqual
{
     public static void main(String[] args)
	 { 
	       
		String str1, str2;
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入第一个字符串:");
		str1=reader.nextLine();
		System.out.print("请输入第二个字符串:");
		str2=reader.nextLine();
		int cmp;
		cmp=str1.compareTo(str2);
		if(cmp==0)
		    System.out.println("两个字符串相等");
	    else
		    System.out.println("两个字符串不相等");
}
}

5.8 从键盘上输入一个字符串和子串开始位置与长度,截取该字符串的子串并输出。

import java.util.*;
public class strSon
{
     public static void main(String[] args) 
	 {
	    String str1, str2;
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入一个字符串:");
		str1=reader.nextLine();
		System.out.print("请输入子串开始的位置(字符串从0开始):");
		int loc=reader.nextInt();
		System.out.print("请输入子串的长度:");
		int len=reader.nextInt();
		str2=str1.substring(loc,loc+len);
		System.out.println("子串为:"+str2);
     }
}

5.9 从键盘上输入一个字符串和一个字符,从该字符串中删除给定的字符。

import java.util.*;
public class charDelete
{
     public static void main(String[] args) 
	 {
		String str;
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入一个字符串: ");
		str=reader.nextLine();
		String ch;
		System.out.print("请输入要删除的字符: ");
		ch=reader.nextLine();
		str=str.replace(ch, "");
		System.out.println("已删除指定字符的字符串: "+str);
     }
}

5.10 编程统计用户从键盘输入的字符串中所包含的字母、数字和其它字符的个数。

import java.util.*;
public class LetNumOther
{
     public static void main(String[] args) 
	 {
		String str;
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入一个字符串: ");
		str=reader.nextLine();
		int letCount=0,numCount=0,otherCount=0;
		int n=str.length();
		char ch;
		for(int i=0;i<n;i++)
		{
			ch=str.charAt(i);
			if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
				letCount++;
			else if(ch>='0'&&ch<='9')
				numCount++;
			else
				otherCount++;
        }
		System.out.printf("字母个数:%d,数字个数:%d,其他字符个数:%d\n",letCount,numCount,otherCount);
     }
}

5.11 将用户从键盘输入的每行数据都显示输出,直到输入字符串“exit”,程序运行结束。

import java.util.*;
public class exitEnd
{
     public static void main(String[] args) 
	 {
		String str;
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入内容: ");
		str=reader.nextLine();
		String sub="exit";
		int cmp=str.compareTo(sub);
		while(cmp!=0)
		{
			System.out.println("内容为: "+str);
			System.out.print("请输入内容: ");
			str=reader.nextLine();
			cmp=str.compareTo(sub);
		}
		System.out.println("程序结束");
     }
}
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值