Java基础练习题目

一、程序分析题

1.写出下面程序的输出结果

class C0 {
 public C0(int x) {
    System.out.println("C0"+x);
   }
   C0() {
    System.out.println("C0");
   }
}    
  class C1 extends C0{
   public C1(int x) {
    System.out.println("C1"+x);
   }
  public static void main (String args[]) {
   new C1(1);      
    }
}

2.试写出下面这个程序的执行结果

class ExceptionTest {
static   String a[] = {"123", "abc", null};
  public static void main (String args[]) {
    for (int i = 0; i < 3; i++) {
        try {
        int x = Integer.parseInt(a[i]);
        System.out.println(  "Result: " + x);
          }
        catch(NullPointerException e) {
           System.out.println("error null:");}
        catch (NumberFormatException e)
             {System.out.println("error:abc" );}
        finally{System.out.println ("In "+ i +"th");   }
      }   //end for
      }
}

3.查看下面程序,指出它的语法错误:

import java.io.*;
package myPackage;
public class One
{
	  public void display(){
          System.out.println(“aa”);
      }
}
public class Two
{
	  public void display(){
	  System.out.println(“bbb”);
      }
}

4. Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

二、编程题

1、有一个字符串,其中包含英文字符和数字字符、汉字字符,请统计和打印出各种字符的个数。
//代码
class Statistical_characters{
	public static void main(String args[]) {
		String string = "666我1直很喜欢学习Java";
		int AlphabeticStatistics = 0;
		int chineseStatistics = 0;
		int numberStatistics = 0;
		for(int i = 0; i < string.length();i++) {
			char c = string.charAt(i);
			if(c >= 'a' &&c <= 'z' || c >= 'A' && c <='Z') {
				AlphabeticStatistics++;
			}else if(c >= '0' && c <= '9'){
				numberStatistics++;
			}else {
				chineseStatistics++;
			}
		}
		System.out.println("英文字符个数为:" + AlphabeticStatistics);
		System.out.println("汉字字符个数为:" + chineseStatistics);
		System.out.println("数字字符的个数为:" + numberStatistics);
	}
	
}

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

2、以下是一段歌词,请从这段歌词中统计出朋友出现的次数。

“这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。”;

//代码
class ChiF_statistics {
	public static void main(String args[]) {
		String lyrics = "这些年一个人,风也过,雨也走。" + "有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 "
				+ "朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。" + "朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
		int sum = 0;
		for (int i = 0; i < lyrics.length(); i++) {
			if (i < lyrics.length() - 2) {
				String s = lyrics.substring(i, i + 2);
				String friend = "朋友";
				if (s.equals(friend)) {
					sum++;
				}
			}
		}
		System.out.println("歌词中一共出现:" + sum + "次  朋友");
	}
}

运行结果:

在这里插入图片描述

3、创建一个名称为Vehicle的接口,在接口中添加两个带有一个参数的方法start()和stop()。在两个名称分别为Bike和Bus的类中实现Vehicle接口。创建一个名称为interfaceDemo的类,在interfaceDemo的main()方法中的Bike和Bus对象,并访问start()和stop()方法。
//代码
interface Vehicle{
	public void start(String s);
	public void stop(String s);
}
class Bus implements Vehicle{
	@Override
	public void start(String s) {
		// TODO Auto-generated method stub
		System.out.println("我是Bus:" + s);
		
	}
	@Override
	public void stop(String s) {
		// TODO Auto-generated method stub
		System.out.println("我是Bus:" + s);
		
	}
}
class Bike implements Vehicle{

	@Override
	public void start(String s) {
		// TODO Auto-generated method stub
		System.out.println("我是Bike:" + s);
		
	}

	@Override
	public void stop(String s) {
		// TODO Auto-generated method stub
		System.out.println("我是Bike:" + s);
		
	}
	
}

class interfaceDemo{
	public static void main(String args[]) {
		Bike bike = new Bike();
		Bus bus = new Bus();
		bike.start("启动");
		bike.stop("停下");
		bus.start("启动");
		bus.stop("停下");
	}
}

运行结果:

在这里插入图片描述

4、现在有如下的一个数组: int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5} ;
//代码
class Update_array{
	public static void main(String args[]) {
		int [] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
		int [] newArr = new int[oldArr.length];
		int zero_index =0; //统计数组中0的个数
		for(int i = 0; i<oldArr.length;i++) {
			if(oldArr[i] == 0) {
				zero_index++;
			}else {
				newArr[i-zero_index] = oldArr[i];
			}
		}
		for(int j = 0 ;j < newArr.length - zero_index; j++) {
			System.out.println(newArr[j]+ ",");
		}
	}
}

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

5、现在给出两个数组: 数组a:“1,7,9,11,13,15,17,19” 数组b:“2,4,6,8,10” 两个数组合并为数组c。
//代码
class Arr_add{
	public static void main (String args[]) {
		int [] arr1 = {1,7,9,11,13,15,17,19};
		int [] arr2 = {2,4,6,8,10};
		int [] add_arr = new int [arr1.length + arr2.length];
		for(int i = 0 ; i < (arr1.length + arr2.length); i++) {
			if(i<arr1.length) {
				add_arr[i] = arr1[i];
			}else {
				add_arr[i] = arr2[i - arr1.length];
			};
		}
		System.out.println("合并后的数组为:" );
		for(int j = 0;j < add_arr.length ; j++) {
			System.out.print( add_arr[j] + ",");
		}
	}
}

运行结果为:

在这里插入图片描述

6、某中学有若干学生(学生对象放在一个List中),每个学生有一个姓名属性、班级名称属性(String)和考试成绩属性(int),某次考试结束后,每个学生都获得了一个考试成绩。请打印出这个班级的总分和平均分。
package 包名
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
class StudentWork {
	public StudentWork() {
		Scanner sc = new Scanner(System.in);
		List list1 = new ArrayList(); // 存储学生姓名
		List list2 = new ArrayList(); // 存储学生班级
		List list3 = new ArrayList(); // 存储学生成绩
		
		double totalScore = 0.0; // 存储一个班的学生的总分
		double averageScore = 0.0; // 存储一个班的学生的平均分
		
		int count = 0; // 存储一个班的学生人数
		 
		System.out.println(" 请输入学生总人数: ");
		int totalScoretudent = sc.nextInt(); // 存储学生总人数
		System.out.println(" 请输入学生的姓名,班级,成绩: ");
		for (int i = 0; i < totalScoretudent; i++) {
			String n = sc.next();
			list1.add(n);
			String c = sc.next();
			list2.add(c);
			int s = sc.nextInt();
			list3.add(s);
			Student st = new Student(n, c, s);
		}
		
		System.out.println(" 输入的学生信息如下: ");
		for (int j = 0; j < list1.size(); j++) { // 输出所输入的学生情况
			Object obj1 = list1.get(j);
			Object obj2 = list2.get(j);
			Object obj3 = list3.get(j);
			System.out.println("姓名 :" + obj1 + " ,班级: " + obj2 + ",   成绩: " + obj3);
		}
		
		while (true) {
			System.out.println("请依次输入班级或(输入0退出) :");
			String cl = sc.next();
			if ("0".equals(cl)) {
				System.out.println("退出!");
				break;
			}
			
			for (int k = 0; k < list2.size(); k++) {
				if (list2.get(k).equals(cl)) {
					String obj = list3.get(k).toString();
					totalScore = totalScore + Double.parseDouble(obj); // 求总分
					count++; // 统计学生个数
				}
			}
			averageScore = totalScore / count; // 求平均分
			
			System.out.println(cl + " 班的总分为: " + totalScore + ", 平均分为: " + averageScore);
			totalScore = 0;
			averageScore = 0;
			count = 0;
		}
	}

	public static void main(String[] args) {
		new StudentWork();
	}
}

class Student {
	private String name;
	private String clbum;
	private int score;

	public Student(String name, String clbum, int score) {
		this.setName(name);
		this.setclbum(clbum);
		this.setScore(score);
	}

	public String getclbum() {
		return clbum;
	}

	public void setclbum(String clbum) {
		this.clbum = clbum;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}
}

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

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值