一、程序分析题
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;
}
}
运行结果: