java基础练习题

1 用while循环如何实现 求1+2+3+…100 的合

 public class Test{
		 		public static void main(String[] args){
		 			int i=0;
		 			int sum=0;
		 			while(i<=100){
		 				sum=sum+i;
		 				i++;
		 			}
		 			System.out.println("由1到100的和为"+sum);
		 		}	
		  }

2 从键盘输入两个数,再输入一个符号(+ - * /),然后根据这个符号,对这两个数字进行运算 用if else 和 switch case 各做一次
1)if else

     import java.util.Scanner;
				public class Test{
				 		public static void main(String[] args){
				 		Scanner scan=new Scanner(System.in);
				 		System.out.println("请输入两个数,中间用空格隔开");
				 		int a=scan.nextInt();
				 		int b=scan.nextInt();
				 		System.out.println("请输入加减乘除的一个字符");
				 		String s=scan.next();
				 		String s1="+"; 
				 		String s2="-";
				 		String s3="*";
				 		String s4="/";
				 		if(s.equals(s1)){
				 			System.out.println("a+b="+ (a+b));
				 			}
						else if(s.equals(s2)){
						System.out.println("a-b="+ (a-b));
						}
						else if(s.equals(s3)){
						System.out.println("a*b="+ (a*b));
						}
						else if(s.equals(s4)){
							if(b==0){
								System.out.println("除数不能为0");
								}
						System.out.println("a/b="+ (a/b));
						}
				 		}	
}
 2) switch case 语句
              Scanner scan=new Scanner(System.in);
		 		System.out.println("请输入两个数,中间用空格隔开");
		 		int a=scan.nextInt();
		 		int b=scan.nextInt();
		 		System.out.println("请输入加减乘除的一个字符");
		 		String s=scan.next();
		    switch(s){
		 		case "+":
		 			System.out.println("a+b="+ (a+b));
		 			break;
				case "-":
					System.out.println("a-b="+ (a-b));
					break;
				case "*":
					System.out.println("a*b="+ (a*b));
					break;
				case "/":
					if(b==0){
						System.out.println("除数不能为0");
						}
						System.out.println("a/b="+ (a/b));
				  break;
				default:
					System.out.println("输入有误");
  3 写程序 求 1-10000 之间的所有的偶数的和
		  	public class Test{
					public static void main(String[] args){
					int sum=0;
						for(int i=0; i<10000; i++){
							if(i%2==0){
								sum+=i;
							}	
						}
					System.out.println("1-10000之间的所有的偶数的和为"+sum);
					}
				}

4 评成绩,输入一个成绩,输出属于第几等 A B C D E 90分以上 A, 80-90 B,70-80 C 60-70 D , 60- E

    import java.util.Scanner;
		public class Test{
			public static void main(String[] args){
			Scanner scan=new Scanner(System.in);
			System.out.println("请输入您的成绩");
			int g=scan.nextInt();
			if(g>90){
				System.out.println("您的成绩等级评定为A");	
			}
			else if(g>=80){
				System.out.println("您的成绩等级评定为B");	
			}
			else if(g>=70){
				System.out.println("您的成绩等级评定为C");	
			}
			else if(g>=60){
				System.out.println("您的成绩等级评定为D");	
			}
			else if(g>=0){
				System.out.println("您的成绩等级评定为E");		
			}
			else 
				System.out.println("您输入的成绩不合法");		
			}
		}
  5 从键

盘输入一个正整数,统计并输出从 1 到这个正整数的累加和,如果输入的是负数,要警告

  import java.util.Scanner;
		public class Test{
			public static void main(String[] args){
			Scanner scan=new Scanner(System.in);
			System.out.println("请您输入一个正整数");
			int n=scan.nextInt();
			int sum=0;
			for(int i=1;i<n;i++){
				sum+=i;
				}
			System.out.println("从1到"+n+"的累加和为"+sum);
			}
		}

  6 从键盘输入两个数,为 上  下限,然后10个一行输入上下限间的所有素数 
```java
 import java.util.Scanner;//未实现十个换行
		public class Test{
			public static void main(String[] args){
			Scanner scan=new Scanner(System.in);
			System.out.println("素数检验");
			System.out.println("请您输入检验区间的上限数值");
			int n=scan.nextInt();
			System.out.println("请您输入检验区间的下限数值");
			int m=scan.nextInt();
			Prime(n,m);
		  }
		  
			static void Prime(int n,int m){
					for(int i=n;i<=m;i++){
						int s=0;//s只能在此处定义
						int num=0;
						for(int j=2;j<i;j++){					
							  if(i%j==0){		  	
							  	s++;
							  	}  			 
					  }
					  
					  if(s==0&&(i>1)){
					  	System.out.print(i+" ");
					  	num++;
					  }
					}
				}	
		}

7)下题输出的结果是:

int x=2;
 		int y=2
 		System.out.println(  y++ *3);  //6
		System.out.println( (x++) *3); //6
		
	8)
		int x =2;
		System.out.print(x<<1*3) ; //==>  x<<3=16      *,/,%的优先级高于<<
	  System.out.print((x<<1)*3) ;//12
     //结果为1612
  1. 若 13 * 7 =103 成立,则该表达式是按 (B) 进制进算的 //经纬系互联网公司联合校招笔试
    A 8 B 9 C 11 D 12

    解析:(191+3*90) 79^0 = 19^2 + 09^1 +39^0

10)若 38*29=997 成立, 则该表达式是按 (13) 进制计算的
    (3*k^1 + 8*k^0)*(2*k^1 + 9*k^0)=9*k^2 +9*k^1 +7*k^0
    3k^2-34K-65=0
    k=13 
11)若 13*7=88 成立,用什么进制计算的 
		13进制		
				
设 K 进制,则
	7(K+3) = 8K+ 8   //其实它是这么来的:  ( 1*k^1 + 3*K^0 )* 7*k^0  =  8*k^1 +8*k^0
	解得 K = 13 ,
	也即 13 进制 。(
  1. 计算 1 +(1+2) +(1+2+3) … (1+2+3+4+…100)
 import java.util.Scanner;
		public class Jh{
		 	public static void main(String[] args){
		 			//计算 1 +(1+2) +(1+2+3) ... (1+2+3+4+...100) 
		 			int sum=0;
		 			for(int i=1;i<=100;i++){
		 				for(int j=1;j<=i;j++){
		 					sum+=j;
		 				}	
		 			}
		 			System.out.println(sum+" ");
		 	}	
		}
  1. 鸡兔同笼,头数30,脚数90, 问鸡兔各多少
  import java.util.Scanner;
			public class Jh{
			 	public static void main(String[] args){
			 			Scanner scan=new Scanner(System.in);
			 			System.out.println("请输入总头数");
			 			int m=scan.nextInt();
			 			System.out.println("请输入总脚数");
			 			int n=scan.nextInt();
			 			int x=(4*m-n)/2;
			 		  int y=m-x;
			 		  if(x<=0 || y<=0){
			 		  	System.out.println("无解");
			 		  }
			 		  else{
			 			System.out.println("鸡的数量为"+x);
			 			System.out.println("兔的数量为"+y);
			 		}
			 	}	
			}
  1. 打印图形
  

```java
  (*  的规律是 1   3  5   7  9)
    
  *
  ***
  *****
  *******
  *********
  *******
  *****
  ***
  *
  
 

  
        	   *
         	 ***
          *****
        *******
      *********
import java.util.Scanner;
	public class Xingxing{
	 	public static void main(String[] args){
	 		Scanner scan=new Scanner(System.in);
	 		System.out.println("请输入一个数");
	 		int n=scan.nextInt();
		 	for(int i=1;i<(n+1)/2;i++){
		 		for(int j=0;j<2*i-1;j++){
		 			System.out.print("*");
		 		}
		 		System.out.println();
		 	}
		 	
		 	for(int i=(n+3)/2;i>=1;i--){
	 			for(int j=1;j<=2*i-1;j++){
	 				System.out.print("*");
	 			}
		 		System.out.println();
		 	}
							 	
			/* 
			    *
					***
					*****
					*********
					*******
					*****
					***
					*
			*/
							 	
		 	for(int i=0;i<4;i++){
		 		System.out.println();
		 	}
		 	//正三角形
		 	for(int i=0;i<=n;i++){			 		
		 		for(int j=1;j<=n-i+3;j++){//+3是为了在前面输出n行3列的空格
		 			System.out.print("  ");//空格数控制三角形形状,一个空格为正三角形,两个空格为直角三角形,三个空格为钝角三角形,
		 		}
		 		for(int k=0;k<2*i-1;k++){
		 			System.out.print("*");
		 		}
		 		System.out.println();
		 	}
		}
	}
  1. 设计一个能进行计算的函数 int jisuan(int a,int b,String c)
 import java.util.Scanner;
			public class Jh{
			 	public static void main(String[] args){
			 		Scanner scan=new Scanner(System.in);
			 		System.out.println("请输入两个数,中间用空格隔开");
			 		int a=scan.nextInt();
			 		int b=scan.nextInt();
			 		System.out.println("请输入加减乘除的一个字符");
			 		String s=scan.next();
			 		jisuan(a,b,s);
			 	
			 	}	
			 	
			 		static void jisuan(int a,int b,String s){
					    switch(s){
					 		case "+":
					 			System.out.println("a+b="+ (a+b));
					 			break;
							case "-":
								System.out.println("a-b="+ (a-b));
								break;
							case "*":
								System.out.println("a*b="+ (a*b));
								break;
							case "/":
								if(b==0){
									System.out.println("除数不能为0");
									}
									System.out.println("a/b="+ (a/b));
							  break;
							default:
								System.out.println("输入有误");
							}
						}
			}	
  1. 写一个函数,能接收一个年份做为参数,判断它是平年还是闰年 思考这个函数的返回值应该是什么类型?接收的参数是什么类型

          润年:
       	   能被400整除的 
       	   或 能被4整除但不能被100整除的 
           import java.util.Scanner;
       		public class Jh{
       		 	public static void main(String[] args){
       		 		Scanner scan=new Scanner(System.in);
       		 		System.out.println("请输入年份");
       		 		int year=scan.nextInt();
       			  String s=Runnian(year);	 
       			}
       				static String Runnian(int y){
       					String a="闰年";
       					String b="平年";
       					if(y%400==0){
       					 System.out.println(a);
       					 return a;
       					}
       					else
       						System.out.println(b);
       						return b;
       				}
       		}
    
  2. 写一个函数,接收一个年份,和一个月份,计算出这个年中的这个月是多少天

import java.util.Scanner;
public class Jh{
 	public static void main(String[] args){
 		Scanner scan=new Scanner(System.in);
 		System.out.println("请输入年份");
 		int year=scan.nextInt();
 		System.out.println("请输入月份");
 		int month=scan.nextInt();
	  Runnian(year,month);	 
	}
	
		static void Runnian(int y,int m){
			if(y%400==0){
				switch(m){
					case 1:
					case 3:
					case 5:
					case 7:
					case 8:
					case 10:
					case 12:
					System.out.println("这个月有31天");
					break;
					case 2:
					System.out.println("这个月有29天");
					break;
					case 4:
					case 6:
					case 9:
				  System.out.println("这个月有30天");
				  break;
				  default:
				  System.out.println("输入有误");			
				}
			}	
			else{
					switch(m){
					case 1:
					case 3:
					case 5:
					case 7:
					case 8:
					case 10:
					case 12:
					System.out.println("这个月有31天");
					break;
					case 2:
					System.out.println("这个月有28天");
					break;
					case 4:
					case 6:
					case 9:
				  System.out.println("这个月有30天");
				  break;
				  default:
				  System.out.println("输入有误");			
				}
			}
		}
}
  1. 写一个函数,能计算圆的面积
 import java.util.Scanner;
	 public class Jh{
		 	public static void main(String[] args){
		 		Scanner scan=new Scanner(System.in);
		 		System.out.println("请输入半径");
		 		int r=scan.nextInt();
			  double s=Area(r);
			  System.out.println("半径为"+r+"的面积为"+s);
			}
			static double Area(int r){
				double s=3.14*r*r;
				return s;
			}
			
		}
  1. 写一个函数,输入一个华氏温度,返回摄氏温度 c =9/5(f-32) //f 代表华氏温度
import java.util.Scanner;
	public class Jh{
	 	public static void main(String[] args){
	 		Scanner scan=new Scanner(System.in);
	 		System.out.println("请输入华氏温度");
	 		double f=scan.nextDouble();
		  double w=Sheshidu(f);
		  System.out.println("转换的摄氏度为"+w);
		}
		static double Sheshidu(double f){
			double c =5*(f-32)/9;
			return c;
		}
		
	}
  1. 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相,加的数是谁,加由键盘控制。
//输出实例4+44+444+4444+44444=49380
			import java.util.Scanner;
			public class Jh{
			 	public static void main(String[] args){
			 		Scanner scan=new Scanner(System.in);
			 		System.out.println("请输入一个个位数");
			 		int a=scan.nextInt();
			 		System.out.println("请输入要计算的位数");
			 		int n=scan.nextInt();
				int s=0;
				int m=a;
				for(int i=0;i<n;i++){
					System.out.print(m);
					s+=m;
					a=a*10;
					m=m+a;
					if(i==n-1){
					System.out.print("=");	
					break;
					}
					else
					System.out.print("+");
				}
				System.out.println(s);
				}
			}

21)有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

 //输出实例:2/1+3/2+5/3+8/5+13/8+21/13+34/21+55/34+89/55+144/89+233/144+377/233+610/377+987/610+1597/987+2584/1597+4181/2584+6765/4181+10946/6765+17711/10946=21
		import java.util.Scanner;
		public class Jh{
		 	public static void main(String[] args){
			  int s=0;
			  int m=2;
			  int n=1;
			  for(int i=0;i<20;i++){
			  		System.out.print(m+"/"+n);
			  		s=s+m/n;
			  		int t=m;
			  		m=n+m;
			  		n=t;
			  		if(i==19){
							System.out.print("=");	
							break;
							}
							else
							System.out.print("+");
			  	}
			  	System.out.println(s);
			}
		}

22)判断一个年中的第一天,是周几 //原理:把从公元1月1日(星期天)到现在的所有的天数 对 7 求余即可,

		import java.util.Scanner;
		public class Jh{
		 	public static void main(String[] args){
		  Scanner scan=new Scanner(System.in);
		  System.out.print("请输入想要查询的年份");
		  int year=scan.nextInt();
		  int day=0;
		  int d=0;
		  for(int i=1;i<year;i++){
		  	 if(year%400==0){
		  		d=366;
		 		 }
			  	else{
			  	d=365;
			  }
			  	day+=d;
		   }
		   int w=(day%7)+1;
		   System.out.println(year+"年的第一天是星期"+w);
			}
		}

23)题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

import java.util.Scanner;
		public class Jh{
		 	public static void main(String[] args){
		  Scanner scan=new Scanner(System.in);
		  System.out.print("请输入一串字符");
		  String str=scan.nextLine();
		  int m=0,n=0,s=0,q=0;
		       for(int i=0;i<str.length();i++)
		       {
		       	  char c =str.charAt(i);//获取字符串的第i个字符
		       	  if(c>='0'&&c<='9'){
		       	  	m++;
		       	  }
		       	  else if(c>='a'&&c<='z'){
		       	  	s++;
		       	  }
		       	  else if(c==' '){
		       	  	n++;
		       	  }
		       	  else
		       	  q++;
		       }
				 System.out.println("数字的个数为"+m);
		 	   System.out.println("字母的个数为"+s);
		 	   System.out.println("空格的个数为"+n);
		     System.out.println("其他字符的个数为"+q);
			}
		}
  
  1. 练习: a b c 三个变量, 写程序,将它们按从大到小的顺序排列
import java.util.Scanner;
	public class Jh{
	 	public static void main(String[] args){
	  Scanner scan=new Scanner(System.in);
	  System.out.print("请输入三个变量中间用空格隔开");
	  int a=scan.nextInt();
	  int b=scan.nextInt();
	  int c=scan.nextInt();
	  int t=0;
	  if(a<b){
	  	t=a;a=b;b=t;
	  }
	  if(a<c){
	  	t=a;a=c;c=t;
	  }
	  if(b<c){
	  	t=b;b=c;c=t;
	  }
	  System.out.println("这三个数由大到小的顺序为"+a+" "+b+" "+c);
	  
		}
	}
  1. 手写一个把10进制数转成2进制数的方法
   //参考写法:
			public static void main(String[] args) {	
				int x =23344;
				System.out.println(toBinaryStr(x));
			} 

			
			public static String toBinaryStr(int x) {
				StringBuffer buff=new StringBuffer();
				
				while(x!=0) {
					buff.append(x%2);
					x=x/2;
				}
				return buff.reverse().toString();
			}
			
//判断是不是素数的方法
 public static void main(String[] args) {
        boolean flag;
        System.out.println("请输入m:");
        Scanner sc = new Scanner(System.in);
        int m=sc.nextInt();
//      从2开始一直循环到m
        for(int i=2;i<m;i++){
            flag=false;
            for(int j=2;j<=Math.sqrt(i);j++){
                if(i%j==0){
                    flag=true; //如果有一个数除得断则这个数就不是质数
                    break;
                }
            }   
//          所有的都除不断后就是质数 所以输出
            if(flag==false){
                System.out.print(i+" ");
            }
        }
    }
}
  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值