}
}
3.写出以下程序的功能。
importjava.io.*;
publicclassTestFile
{
publicstaticvoidmain(Stringargs[])throwsException
{
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
BufferedWriterbw=newBufferedWriter(newFileWriter(“input.txt"));
Strings;
while(true)
{
s=br.readLine();
if(s.length()==0)break;
bw.write(s);
bw.newLine();
}
bw.close();
}
}
功能:
从键盘逐一输入字符串,逐一输出至input.txt文件中,直至输入空行。
4.阅读以下程序,写出输出结果。
classAnimal{
Animal(){
nimal");}
}
public
classDogextendsAnimal{
Dog(){
Dog");}
publicstaticvoidmain(String[]args){
Dogsnoppy=newDog();}
}
输出结果:
AnimalDog
《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)
一、单项选择题
1、如下哪个是Java中的标识符()
A、publicB、superC、3numberD、width
2、如下哪个是Java中的标识符()
A、fieldnameB、superC、3numberD、#number
3、已知如下定义:
Strings="story";下面哪个语句不是合法的()
A、s+="books";B、s=s+100;
C、intlen=s.length;D、Stringt=s+“abc”;
4、如下哪个是Java中有效的关键字()
A、nameB、helloC、falseD、good
5、下面的代码段执行之后count的值是什么()
intcount=1;
for(inti=1;i<=5;i++){
count+=i;
}
System.out.println(count);
A、5B、1C、15D、16
6、定义一个类,必须使用的关键字是()
A、publicB、classC、interfaceD、static
7、定义一个接口必须使用的关键字是()
A、publicB、classC、interfaceD、static
8、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()
A、p.add(b);B、p.add(b,"North");
C、p.add(b,"South");D、b.add(p,"North");
9、声明并创建一个按钮对象b,应该使用的语句是()
A、Buttonb=newButton();B、buttonb=newbutton();
C、Buttonb=newb();D、b.setLabel(“确定”);
10、Frame对象默认的布局管理器是()
A、FlowLayoutB、BorderLayout
C、CardLayoutD、null
11、下列哪一个import命令可以使我们在程序中创建输入/输出流对象()
A、importjava.sql.*;B、importjava.util.*;
C、importjava.io.*;D、.*;
12、下面哪一个import命令可以为我们提供编写网络应用程序的类()
A、importjava.sql.*;B、importjava.util.*;
C、importjava.io.*;D、.*;
13、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()
A、FileInputStreamB、FileOutputStream
C、DataOutputStreamD、FileWriter
二、填空题
1、如果将类MyClass声明为public,它的文件名称必须是(MyClass.java)才能正常编译。
2、Java程序中的单行注释符是(//),多行注释符是(/**/)。
3、Java中布尔类型的常量有两种,它们是(true)和(false)。
4、Java中用于定义小数的关键字有两个:
(float)和(double),后者精度高于前者。
5、Java中用于两个数相等比较的运算符是:
(==),用于不相等比较的运算符是(<>)。
6、在Java中定义一个字符串类型的变量str的语句是:
(Stringstr;),定义一个具有10个元素的整型数组a的语句是:
(int[]arr=newint[10];)。
7、导入mypackage包中的所类的命令是(importmypackage.*;)。
8、当声明一个数组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0到4)。
9、假设x=13,y=4,则表达式x%y!
=0的值是(true),其数据类型是(boolean)。
10、异常处理是由(try)、(catch)和finally块三个关键所组成的程序块。
11、以下程序段的输出结果是(三角形)
intx=5,y=6,z=4;
if(x+y>z&&x+z>y&&z+y>x)
System.out.println("三角形");
else
System.out.println("不是三角形");
12、下面程序段的执行结果是(65432)
inta[]={2,3,4,5,6};
for(inti=a.length-1;i>=0;i--)
System.out.print(a[i]+"");
三、程序阅读题
1、以下程序的输出结果为_Peteris17yearsold!
___。
publicclassPerson{
Stringname;
intage;
publicPerson(Stringname,intage){
this.name=name;
this.age=age;
}
publicstaticvoidmain(String[]args){
Personc=newPerson("Peter",17);
System.out.println(c.name+"is"+c.age+"yearsold!
");
}
}
2、以下程序的输出结果为__课程号:
101课程名:
ASP学分:
3___。
publicclassCourse{
privateStringcNumber;
privateStringcName;
privateintcUnit;
publicCourse(Stringnumber,Stringname,intunit){
cNumber=number;
cName=name;
cUnit=unit;
}
publicvoidprintCourseInfo(){
System.out.println("课程号:
"+cNumber+"课程名:
"+cName+"学分:
"+cUnit);
}
}
classCourseTest{
publicstaticvoidmain(String[]args){
Coursec;
c=newCourse("101","ASP",3);
c.printCourseInfo();
}
}
3、以下程序的输出结果为__汤姆猫体重:
20.0斤___。
publicclassTom{
privatefloatweight;
privatestaticStringname;
publicvoidsetWeight(floatweight){
this.weight=weight;
}
privatevoidout(){
System.out.println(name+"体重:
"+weight+"斤");
}
publicstaticvoidmain(String[]args){
Tom.name="汤姆猫";
Tomcat=newTom();
cat.setWeight(20);
cat.out();
}
}
4、以下程序的输出结果__。
publicclassFather{
Stringname,address,tel;
intage;
publicFather(Stringname,intage){
this.name=name;
this.age=age;
}
voidout(){
System.out.print("姓名:
"+name);
System.out.print("年龄:
"+age);
}
voidoutOther(){
System.out.print("家庭住址:
"+address);
System.out.print("电话:
"+tel);
}
}
classSonextendsFather{
Stringschool;
publicSon(Stringname,intage){
super(name,age);
}
voidout(){
super.out();
super.outOther();
System.out.println("学校:
"+school);
}
publicstaticvoidmain(Stringargs[]){
Sonson=newSon("Tom",15);
son.address="金水区";
son.school="九中";
son.tel=;
son.out();
}
}
5、下列程序的运行结果是__12345____。
publicclassMyClass{
inta[]={1,2,3,4,5};
voidout(){
for(intj=0;jSystem.out.print(a[j]+"");
}
publicstaticvoidmain(String[]args){
MyClassmy=newMyClass();
my.out();
}
}
四、简答题
1、简述Java中异常处理的机制?
答:
首先Java的异常是面向对象的。
一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。
Java的异常处理是通过5个关键词来实现的:
try,catch,throw,throws和finally。
1.异常处理:
在Java语言的错误处理结构由try,catch,finally三个块组成。
其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。
不管try块中的代码如何退出,都将执行finally块。
2.抛出异常:
Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。
Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。
2、什么是继承?
答:
通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。
3、请简述重载和重写的区别?
答:
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
五、程序设计题
1、按以下要求编写程序
(1)创建一个Rectangle类,添加width和height两个成员变量
(2)在Rectangle中添加两种方法分别计算矩形的周长和面积
(3)编程利用Rectangle输出一个矩形的周长和面积
解答:
publicclassRectangle{
floatwidth,height;
publicRectangle(floatwidth,floatheight){
this.width=width;
this.height=height;
}
publicfloatgetLength(){
return(this.width+this.height)*2;
}
publicfloatgetArea(){
returnthis.width*this.height;
}
publicstaticvoidmain(String[]args){
Rectang