System.out.print("请输入第"+(i+1)+"个人的成绩");
c=getInputData();
while(c<0||c>100)
{
System.out.print("请重新输入第"+(i+1)+"个学生的成绩");
c=getInputData();
}
numa[i]=c;//保存
System.out.println(numa[i]);
switch(numa[i]/10){
case10:
System.out.println("成绩为A级!
");
a1++;
break;
case9:
System.out.println("成绩为A级!
");
a1++;
break;
case8:
System.out.println("成绩为B级!
");
a2++;
break;
case7:
System.out.println("成绩为C级!
");
a3++;
break;
case6:
System.out.println("成绩为C级!
");
a3++;
break;
default:
System.out.println("成绩为D级!
");
a4++;
break;
}
}
System.out.println("90-100分的人数="+a1);
System.out.println("80-89分的人数="+a2);
System.out.println("60-79分的人数="+a3);
System.out.println("0-59分的人数="+a4);
}
publicstaticintgetInputData()throwsIOException
{
Scanners=newScanner(System.in);
intn=s.nextInt();
returnn;
}
}
3.试编写一个程序,输出以下形式的图形。
******
******
******
******
classPractice3
{
publicstaticvoidmain(Stringargs[])
{
for(inti=1;i<=4;i++)
{
for(intj=1;j<=i;j++)
System.out.print("");
for(intk=1;k<=5;k++)
System.out.print("*");
System.out.println();
}
}
}
4.试编写游戏程序,完成猜数字游戏,数字是由计算机随机产生的100以内整数。
一次就猜中得100分,2次才猜中得90分,依次类推,超过10次无分。
程序最后输出参与者得分。
importjava.util.*;
classPractice4
{
publicstaticvoidmain(Stringargs[])
{
inta=(int)(Math.random()*10);
intguess,score=100;
Scanners=newScanner(System.in);
inti;
for(i=1;i<=10;i++)
{
guess=s.nextInt();
if(guess==a)
break;
score=score-10;
}
System.out.print(i+"得分为:
"+score);
}
}
项目3
一、选择题
1.定义类头(非内部类)时,不可能用到的关键字是(B)
A)classB)privateC)extendsD)public
2.下列类头定义中,错误的是(A)
A)publicxextendsy{...}B)publicclassxextendsy{...}
C)classxextendsyimplementsy1{...}D)classx{...}
3.设A为已定义的类名,下列声明A类的对象a的语句中正确的是(D)
A)floatAa;B)publicAa=A();
C)Aa=newint();D)staticAa=newA();
4.设X、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)
A)publicXx1=newY();B)Xx1=X();
C)Xx1=newX();D)intXx1;
5.设X、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)
A)staticXx1;B)publicXx1=newX(int123);
C)Yx1;D)Xx1=X();
6.有一个类A,以下为其构造方法的声明,其中正确的是(A)
A)publicA(intx){...}B)staticA(intx){...}
C)publica(intx){...}D)voidA(intx){...}
7.有一个类Student,以下为其构造方法的声明,其中正确的是(B)
A)voidStudent(intx){...}B)Student(intx){...}
C)s(intx){...}D)voids(intx){...}
8.下列选项中,用于定义接口的关键字是(A)
A)interfaceB)implementsC)abstractD)class
9.现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)
A)classAimplementsBB)classBimplementsA
C)classAextendsBD)classBextendsA
二、填空题
1.如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量___隐藏__了父类的同名变量。
2.如果子类中的某个方法的名字、返回值类型和___参数列表__与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
3.抽象方法只有方法头,没有___方法体_____。
4.接口中所有属性均为___public______、___static__和___final_____的。
5.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成__抽象__的。
6.Java语言中用于表示类间继承的关键字是____extends_______。
7.下面是一个类的定义,请将其补充完整。
class_Student____
{
Stringname;
intage;
Student(__String___s,inti)
{
name=s;
age=i;
}
}
8.下面是一个类的定义,请将其补充完整。
_____class______A
{Strings;
___static__inta=666;
A(Strings1)
{
s=s1;
}
staticintgeta()
{
returna;
}
}
三、编程题
1.编写一个类,描述学生的学号、姓名、成绩。
学号用整型,成绩用浮点型,姓名用String类型。
编写一个测试类,输入学生的学号、姓名、成绩,并显示该学号的学生姓名,以及成绩。
importjava.util.*;
classStudent{
intsNum;
Stringname;
doublescore;
}
classT1_Student{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
Students=newStudent();
s.sNum=sc.nextInt();
s.name=sc.next();
s.score=sc.nextDouble();
System.out.println(s.name+"的学号是"+s.sNum+"成绩是"+s.score);
}
}
2.设计一个Birthday类,其成员变量有:
year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。
编写程序测试这个类。
classBirthday{
privateintyear;
privateintmonth;
privateintday;
publicBirthday(intyear,intmonth,intday)
{this.year=year;
this.month=month;
this.day=day;
}
publicvoidprintBirthDay()
{System.out.println(year+"-"+month+"-"+day);
}
publicintprintAge()
{return2021-year;}
publicstaticvoidmain(String[]args)
{
Birthdaybirth=newBirthday(1991,11,5);
birth.printBirthDay();
intage=birth.printAge();
System.out.println(age);
}
}
3.编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。
编写一个测试类,其中有一个修改价格方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main方法中输出修改过后的汽车信息。
publicclassChangeCar{
publicstaticvoidmain(String[]args){
Carc=newCar();
c.carNum="鲁A1111";
c.price=10;
System.out.println("beforechange,thecar'snumandpriceis:
"+c.carNum+""+c.price);
changePrice(c);
System.out.println("AfterChange,thecar'spriceis:
"+c.price);
}
publicstaticvoidchangePrice(Carc){
c.price=c.price*0.8;
}
}
classCar{
StringcarNum;
doubleprice;
}
4.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。
小车类Car是Vehicle的子类,其中包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
classVehicle
{
intwheels;
floatweight;
Vehicle(inta,floatb)
{
wheels=a;
weight=b;
}
voidoutData()
{
System.out.print("Thevehicle'sdata:
wheels:
"+wheels+",weight:
"+weight);
}
}
classCarextendsVehicle
{
intloader;
Car(inta,floatb,intc)
{
super(a,b);
loader=c;
}
voidoutData()
{
super.outData();
System.out.print(",loader:
"+loader);
}
}
classTruckextendsCar
{
floatpayload;
Truck(inta,floatb,intc,floatd)
{
super(a,b,c);
payload=d;
}
voidoutData()
{
super.outData();
System.out.println(",payload:
"+payload);
}
}
classTest
{
publicstaticvoidmain(Stringargs[])
{
Vehiclev=newVehicle(4,7);
v.outData();
System.out.println();
Carc=newCar(4,6,4);
c.outData();
System.out.println();
Truckt=newTruck(4,2,10,8);
t.outData();
}
}
5.定义一个接口CanFly,描述会飞的方法publicvoidfly();分别定义类飞机和鸟,实现CanFly接口。
定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,让飞机和鸟起飞。
interfaceCanFly
{
publicvoidfly();
}
classPlaneimplementsCanFly
{
publicvoidfly()
{
System.out.println("飞机需借助螺旋桨飞上了天空。
");
}
}
classBirdimplementsCanFly
{
publicvoidfly()
{
System.out.println("鸟需借助翅膀飞上了天空。
");
}
}
classTest
{
publicstaticvoidmain(Stringargs[])
{
Planep=newPlane();
Birdb=newBird();
p.fly();
b.fly();
}
}
项目4
一、选择题
1.关于异常的定义,下列描述中最正确的一个是(D)。
A)程序编译错误B)程序语法错误
C)程序自定义的异常事件D)程序编译或运行时发生的异常事件
2.抛出异常时,应该使用的子句是(A)。
A)throwB)catchC)finallyD)throws
3.自定义异常类时,可以继承的类是(C)。
A)ErrorB)AppletC)Exception及其子类D)AssertionError
4.当方法产生异常但却无法确定该如何处理时,应采用的方法是(C)。
A)声明异常B)捕获异常C)抛出异常D)自定义异常
5.对于try{…}catch子句的排列方式,正确的一项是(A)。
A)子类异常在前,父类异常在后B)父类异常在前,子类异常在后
C)只能有子类异常D)父类异常与子类异常不能同时出现
6.下列关于try、catch和finally的表述,错误的是(C)。
A)try语句块后必须紧跟catch语句块B)catch语句块必须紧跟在try语句块后
C)可以有try但无catchD)可以有try但无finally
7.下列描述中,错误的一项是(A)。
A)一个程序抛出异常,其他任何运行中的程序都可以捕获
B)算术溢出需要进行异常处理
C)在方法中检测到错误但不知如何处理时,方法就声明异常
D)任何没有被程序捕获的异常最终被默认处理程序处理
8.下面程序运行时,会产生的异常是(C)。
classTest{
publicstaticvoidmain(Stringar[])
{intx=0,y=20,z;
z=(x+y)/(x*y);
System.out.println("z="+z);
}
}
A)ArrayIndexOutOfBoundsExceptionB)NumberFormatException
C)ArithMeticExceptionD)NullPointerException
二、填空题
1.一个try代码段后必须跟catch代码段,finally代码段可以没有。
2.自定义异常类必须继承Exception类或其子类。
3.异常处理机制可以允许根据具体的情况选择在何处处理异常,可以在当前方法中捕获并处理,也可以用throws子句把它交给调用方法去处理。
4.数组下标越界对应的类是ArrayIndexOutOfBoundsException。
5.为达到高