Java参考例题

6-1 是否偶数 (10分)本题要求实现一个函数,判盘输入的整数是否是偶数,如果是偶数,返回true,否则返回false。public static boolean isOdd(int data){ if(data % 2== 0) return true; else return false;}6-2 设计一个矩形类Rectangle (10分)设计一个名为Rectangle的类表示矩形。这个类包括: 两个名为width和height的double型数据域,它们分别表示
摘要由CSDN通过智能技术生成

6-1 是否偶数 (10分)
本题要求实现一个函数,判盘输入的整数是否是偶数,如果是偶数,返回true,否则返回false。
public static boolean isOdd(int data)

{
   
		if(data % 2== 0)
			return true;
		else 
			return false;
}

6-2 设计一个矩形类Rectangle (10分)
设计一个名为Rectangle的类表示矩形。这个类包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法。 一个名为getArea()的方法返回这个矩形的面积。 一个名为getPerimeter()的方法返回这个矩形的周长。

class Rectangle{
   
double width;
double height;
Rectangle()
{
   
width=-1;
height=-1;
}

Rectangle(double w , double h){
   
width=w;
height=h;
}

double getArea()
{
   
return width*height;

}

double getPerimeter()
{
   
return (width+height)*2;
}
}

6-3 根据派生类写出基类(Java) (10分)
裁判测试程序样例中展示的是一段定义基类People、派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行。
public People(){
}

	public People(String id,String name){
   
		this.id = id;
		this.name = name;
	}
		
	public void setId(String id){
   //JavaBean写法:对每个属性都具有响应的get方法和set方法
		this.id = id;
	}
		
	public String getId(){
   
		return this.id;
	}
		
	public void setName(String name){
   
			this.name = name;
	}
		
	public String getName(){
   
		return this.name ;
	}
		
	public void say(){
   
		System.out.println("I'm a person! My name is " + this.name +".");
	}

6-4 写出派生类构造方法(Java) (10分)
裁判测试程序样例中展示的是一段定义基类People、派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行。

super(id, name);
this.sid = sid;
this.score = score;

6-5 重写父类方法equals (10分)
在类Student中重写Object类的equals方法。使Student对象学号(id)相同时判定为同一对象。

 public boolean equals(Object obj) {
   
                if(this ==obj) {
   
                    return true;
                }
               if(obj instanceof Student){
   
				Student p = (Student)obj;
				return this.id == p.id;
			}
				else return false;

                }

6-6 从抽象类shape类扩展出一个圆形类Circle (10分)
请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法。

class Circle extends shape {
   
	private double radius;
	public Circle(double r) {
   
		radius=r;
	}
	public double getArea() {
   
		return Math.PI*radius*radius;
	}
	public double getPerimeter() {
   
		return Math.PI*2*radius;
	}
}

6-7 创建一个直角三角形类实现IShape接口 (10分)
创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。

class RTriangle implements IShape{
   
	
	private double a;
	private double b;

	public RTriangle(double a, double b) {
   
		super();
		this.a = a;
		this.b = b;
	}
	
	@Override
	public double getArea() {
   
		// TODO Auto-generated method stub
		return this.a * this.b / 2.0;
	}

	@Override
	public double getPerimeter() {
   
		// TODO Auto-generated method stub
		return  this.a + this.b + Math.sqrt(this.a * this.a + this.b * this.b)  ;
	}
}

6-8 jmu-Java-06异常-多种类型异常的捕获 (3分)
如果try块中的代码有可能抛出多种异常,且这些异常之间可能存在继承关系,那么在捕获异常的时候需要注意捕获顺序。
补全下列代码,使得程序正常运行。

catch(Exception e){
   
                if (choice.equals("number"))
                    System.out.println ("number format exception");
                if (choice.equals("illegal"))
                    System.out.println ("illegal argument exception");
                if (choice.equals("except"))
                    System.out.println ("other exception");
                System.out.println (e);
            }

6-9 jmu-Java-03面向对象基础-Object (10分)
输入整数n,创建n个对象,放入同一个数组中。

如果输入c,则new Computer(); //注意:Computer是系统中已有的类,无需自己编写

如果输入d,则根据随后的输入创建Double类型对象。

如果输入i,则根据随后的输入创建Integer类型对象。

如果输入s,则根据随后的输入创建String类型对象。

如果不是以上这些输入,则不创建对象,而是将null存入数组相应位置。

最后倒序输出数组中的所有对象,如果数组中相应位置的元素为null则不输出。

int n = sc.nextInt();
        Object [] o = new Object[n];
        
        for( int i = 0; i < n; i ++ ){
   
            String str = sc.next();
            switch( str ){
   
                case "c":
                    o[i] = new Computer();
                    break;
                case "d":
                    o[i] = new Double(sc.nextDouble());
                    break;
                case "i":
                    o[i] = new Integer(sc.nextInt());
                    break;
                case "s":
                    o[i] = new String(sc.next());
                    break;
                default:
                    o[i] = null;
            }
        }
        
        for( int i = n - 1; i >= 0; -- i ){
   
            if( o[i] != null ){
   
                System.out.println(o[i]);
            }
        }

6-10 人口统计 (10分)
本题运行时要求键盘输入10个人员的信息(每一个人信息包括:姓名,性别,年龄,民族),要求同学实现一个函数,统计民族是“汉族”的人数。

public static int numofHan(String data[]){
   
        String s = "汉族";
        int num = 0;
        for(String s_t: data){
   
            if( s_t.indexOf(s) >= 0 ){
   
                num ++;
            }
        }
        return num;
    }

6-11 jmu-Java-05集合-List中指定元素的删除 (15分)
编写以下两个函数

/以空格(单个或多个)为分隔符,将line中的元素抽取出来,放入一个List/
public static List convertStringToList(String line)
/在list中移除掉与str内容相同的元素/
public static void remove(List list, String str)

  public static List<String> convertStringToList(String line) {
   
		String s[]=line.split(" ");
		List<String> list=new ArrayList<String>();
		for(int i=0;i<s.length;i++) {
   
			if(s[i].length()>=1)list.add(s[i]);
		}
		return list;
	}
  
	public static void remove(List<String> list, String str) {
   
		for(int i=0;i<list.size();i++) {
   
			if(list.get(i).equals(str)) {
   
				list.remove(i);
				i--;
			}
		}
	}

6-12 jmu-Java-07多线程-Thread (3分)
编写MyThread类继承自Thread。创建MyThread类对象时可指定循环次数n。
功能:输出从0到n-1的整数。 并在最后使用System.out.println(Thread.currentThread().getName()+" "+isAlive())打印标识信息

class MyThread extends Thread{
   
    int n;
    public MyThread(int a) {
   
        n = a;    
    }
    @Override
    public void run() {
   
        for(int i=0;i<n;i++) {
   
            System.out.println(i);
        }
        System.out.println(Thread.currentThread().getName()+" "+isAlive());
    }
    
    
}

6-13 jmu-Java-07多线程-PrintTask (5分)
编写PrintTask类实现Runnable接口。
功能:输出从0到n-1的整数(n在创建PrintTask对象的时候指定)。并在最后使用System.out.println(Thread.currentThread().getName());输出标识信息。

class PrintTask implements Runnable
{
   
	private int n;
	public PrintTask(int n)
	{
   
		this.n=n;
	}
	public void run()
	{
   
		for(int i=0;i<n;i++)
		{
   
			System.out.println(i);
		}
		System.out.println(Thread.currentThread().getName());
	}
}

7-1 求最大值 (10分)
本题目要求读入2个整数A和B,然后输出两个数的最大值。

import java.util.Scanner;
public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc=new Scanner(System.in);
		int a,b;
		a = sc.nextInt();
		b = sc.nextInt();
		if(a>b){
   
			System.out.println(a);
		}
		else{
   
			System.out.println(b);
		}
		sc.close();
	}
	
}

7-2 编程题:统计符合条件元素的个数-hebust (8分)
统计1…n的闭区间中,能够被3整除元素的奇数和偶数的个数

import java.util.Scanner;

public class Main {
   
    
    public static void main(String[] args) {
   
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int a = 0,b = 0;
        for (int i = 1; i <= n; i++) {
   
            if (i % 3 == 0 && i % 2 == 0){
   
                b++;  
            }
            if (i % 3 == 0 && i % 2 != 0){
   
                a++;
            }
        }
        System.out.println(a+","+b);
    }
    
}

7-3 编程题:判断闰年-hebust (10分)
根据输入的正整数y所代表的年份,计算输出该年份是否为闰年 闰年的判断标准:

能够被4整除且不能被100整除的年份

或者能够被400整除的年份

import java.util.Scanner;
public class Main {
   

	public static void main(String[] args) {
   
		Scanner in=new Scanner(System.in);
		int y = in.nextInt();
		if(((y%4==0)&&(y%100!=0))||(y%400==0)){
   
			System.out.println("yes");
		}
		else
			System.out.println("no");
	}
	
}

7-4 给出一个月的总天数 (20分)
编写程序,提示用户输入月份和年份,然后显示这个月的天数。

import java.util.Scanner;
public class Main {
   
     public static void main(String[] args)
     {
   
    	 Scanner reader = new Scanner(System.in);
    	 int i,j;
    	 i = reader.nextInt();
    	 j = reader.nextInt();
    	 switch(i){
   
    	 case 1:
    		 System.out.println("31");
    		 break;
    	 case 2:
    		 if((j%4==0&&j%100!=0)||j%400==0)
 	    	{
      
 	    		System.out.println("29");
 	    	}
 	    	else
 	    	{
   
 	    		System.out.println("28");
 	        }
    		 break;
    	 case 3:
    		 System.out.println("31");
    		 break;
    	 case 4:
    		 System.out.println("30");
    		 break;
    	 case 5:
    		 System.out.println("31");
    		 break;
    	 case 6:
    		 System.out.println("30");
    		 break;
    	 case 7:
    		 System.out.println("31");
    		 break;
    	 case 8:
    		 System.out.println("31");
    		 break;
    	 case 9:
    		 System.out.println("30");
    		 break;
    	 case 10:
    		 System.out.println("31");
    		 break;
    	 case 11:
    		 System.out.println("30");
    		 break;
    	 case 12:
    		 System.out.println("31");
    		 break;
    	 default:
    		 break;
    	 }
    	 reader.close();
     }
}

7-5 根据和找到最大乘积 (10分)
试求和为N,积为最大的两个整数数分别是多少。

从键盘中输入一个整数,它是另外两个整数(不同时为0)的加法运算和,这样的两个整数的组合有很多种,请找出乘积最

大的一组数据。请注意输出两个整数以空格分割,按由小到大的顺序输出。

import java.util.Scanner;
public class Main {
   
     public static void main(String[] args)
     {
   
    	 Scanner reader = new Scanner(System.in);
    	 int i;
    	 i = reader.nextInt();
    	 if(i%2==0&&i!=0) {
   
    		 System.out.println(i/2+" "+i/2);
    		 System.out.println();
    	 }
    	 else {
   
    		 if(i<0) {
   
    			 System.out.print((i/2-1)+" "+i/2 );
    		 }
    		 else {
   
    			 if(i==0) {
   
    				 System.out.print("-1 1");
    			 }
    			 else {
   
    				 System.out.print(i/2+" "+(i/2+1));
    			 }
    			 
    		 }
    	 }
    	 reader.close();
     }
}

7-6 统计正数和负数的个数然后计算这些数的平均值 (15分)
编写程序,输入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值得总和及平均值(不对0计数)。当输入为0时,表明程序结束。将平均值以double型数据显示。

import java.util.Scanner;
public class Main{
   
    public static void main(String[] args){
   
        Scanner input = new Scanner(System.in);
        int positiveNum = 0;
        int negativeNum = 0;
        int sum = 0;
        while (true){
   
            int x = input.nextInt();
            if (x==0)
                break;
            if(x>0)
                positiveNum++;
            else 
                negativeNum++;
            sum += x;
        }
        if (positiveNum + negativeNum !=0){
   
            System.out.println
  • 14
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值