四川大学计算机软件学院Java语言程序设计期末考试试题B卷.docx
《四川大学计算机软件学院Java语言程序设计期末考试试题B卷.docx》由会员分享,可在线阅读,更多相关《四川大学计算机软件学院Java语言程序设计期末考试试题B卷.docx(11页珍藏版)》请在冰豆网上搜索。
四川大学计算机软件学院Java语言程序设计期末考试试题B卷
四川大学期末考试试题(闭卷)
(2014-2015学年第2学期)
课程号:
课程名称:
Java语言程序设计(B卷)任课教师:
适用专业年级:
学号:
姓名:
考试须知
四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作管理办法》和《四川大学考场规则》。
有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作弊处罚条例》进行处理。
四川大学各级各类考试的监考人员,必须严格执行《四川大学考试工作管理办法》、《四川大学考场规则》和《四川大学监考人员职责》。
有违反学校有关规定的,严格按照《四川大学教学事故认定及处理办法》进行处理。
题号
一
二
三
四
五
六
七
八
卷面成绩
得分
阅卷教师
阅卷时间
一、单项选择题(每题1分,共27分)提示:
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1.下面哪个不是Java中的容器?
A、 ScrollPaneB、CanvasC、AppletD、Dialog
2.下面哪个方法与applet的显示无关?
A、draw() B、 update() C、repaint() D、paint()
3.以下哪个方法用于定义线程的执行体?
A、 start()B、init()C、run()D、synchronized()
4.当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪种布局方式?
A、 FlowLayout B、CardLayout C、BorderLayout D、GridLayout
5.有如下代码段:
1)
2){if(unsafe()){//dosomething…}
3)elseif(safe()){//dotheother…}
4)}
其中,方法unsafe()将抛出IOException,请问可将以下哪项填入第1行?
A、publicIOExceptionmethodName()
B、publicvoidmethodName()
C、publicvoidmethodName()throwIOException
D、publicvoidmethodName()throwsIOException
6.以下哪个关键字可以用来对对象加互斥锁?
A、transientB、synchronizedC、serializeD、static
7.编译并运行以下程序,以下描述哪个选项是正确的
1.classA{
2.protectedbooleanequals(){
3.returnsuper.equals();}
4.}
A、编译通过运行无异常B、编译通过但运行时出错
C、行2出错,不能成功编译D、不能成功编译,行3出错
8.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。
A、privateB、protectedC、privateprotectedD、public
9.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。
A、8B、16C、32D、64
10.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上()语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
11.以下关于构造函数的描述错误的是()。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
12.有程序如下,关于程序的描述哪个是正确的?
()
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{ System.out.println(arr[1]); }
}
A、编译将产生错误B、编译时正确,但运行时将产生错误
C、正确,输出0D、正确,输出 null
13.有语句Strings=”helloworld”;,以下操作哪个是不合法的?
()
A、inti=s.length();B、s>>>=3;C、Stringts=s.trim();D、Stringt=s+”!
”;
14.给出如下代码:
class Test{
private int m;
public static void fun() {
// some code...
}
}
如何使成员变量m 被函数fun()直接访问?
()
A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m
15.Javaapplication中的主类需包含main方法,main方法的返回类型是什么?
()
A、intB、floatC、doubleD、void
16.有以下方法的定义,请选择该方法的返回类型()。
ReturnTypemethod(bytex,doubley)
{
return(short)x/y*2;
}
A、byteB、shortC、intD、double
17.下列哪些语句关于Java内存回收的说明是正确的?
()
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
18.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上()语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
19.容器Panel和Applet缺省使用的布局编辑策略是()
A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout
20.设有下面两个赋值语句:
a=Integer.parseInt(“123”);
b=Integer.valueOf(“123”).intValue();
下述说法正确的是()
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
21.编译并运行以下程序,以下描述哪个选项是正确的()。
1.classA{
2.protectedStringtoString(){
3.returnsuper.toString();}
4.}
A、编译通过运行无异常B、编译通过但运行时出错
C、行2出错,不能成功编译D、不能成功编译,行3出错
22.有以下程序片段,下列哪个选项不能插入到行1。
()
1.
2.publicclassInteresting{
3.//dosth
4.}
A、importjava.awt.*;B、packagemypackage;
C、classOtherClass{}D、publicclassMyClass{}
23.以下哪个不是Java的关键字?
()
A、TRUEB、constC、superD、void
24.关于以下application的说明,正确的是()。
1.classStaticStuff
2.{
3.staticintx;
4.static{x+=5;}
5.publicstaticvoidmain(Stringargs[])
6.{
7.System.out.println(“x=”+x);
8.}
9.static{x/=5;}
10.}
A、4行与9行不能通过编译,因为缺少方法名和返回类型
B、9行不能通过编译,因为只能有一个静态初始化器
C、编译通过,执行结果为:
x=1
D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化
25.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?
A、OutputStreamB、FileC、InputStreamD、BufferedOutputStream
26.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。
A、privateB、protectedC、privateprotectedD、public
27.有程序片段如下,以下哪个表示式的结果为true?
()
Floats=newFloat(0.1f);
Floatt=newFloat(0.1f);
Doubleu=newDouble(0.1);
A、s==tB、s.equals(t)C、u.equals(s)D、t.equals(u)
二、填空题(每小空1分,共18分)。
1
2
3
4
5
6
7
8
9
10
1、开发与运行Java程序需要经过的三个主要步骤为、和
2、如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是类的子类并且存储该源程序文件的文件名为。
3、如果一个JavaApplet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生个文件名与类名相同而扩展名为的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用字节内存空间,这样,无论是中文字符还是英文字符,都是占用字节内存空间。
5、使用数组时,下标表达式是整型表达式,下标的范围为至数组长度减1。
6、若x=5,y=10,则x=y的逻辑值分别为和。
8、创建一个名为MyPackage的包的语句是package,该语句应该放在程序的位置为:
。
9、在Java程序中,通过类的定义只能实现继承,但通过接口的定义可以实现关系。
10、在文件操作中,publicStringgetName()功能是。
publicStringgetAbsolutePath()功能是。
三.判断题(每小题1分,共20分)。
下列各题中,你认为正确的就在其题干后的括号内打“√”,错误的打“×”。
1、Java语言是平台无关的语言。
2、类的静态方法中可以访问该类的非静态数据成员.
3、Java中方法调用时参数传递都是按值传递的,因此从方法中退出时,参数的值是不会变的。
4、覆盖方法所抛出的异常不能比原方法更多。
5、final方法不能被覆盖。
6、抽象类中一定包含抽象方法。
7、接口中的方法必须是抽象方法。
8、在方法定义中,所以可能发生的异常都必须用try{}catch(){}捕捉。
9、Java支持多重继承。
10、final修饰的类不能派生子类。
11、覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。
12、不能在静态方法中使用this.
13、抽象类中不能创建对象。
14、一个类可以实现多接口。
15、接口中可以包含非静态成员。
16、不论是否捕捉到异常try{}catch(){}final{}语句中finally块中的代码总要被执行。
17、一个类实现一个接口,则该类必须实现接口中的所有方法。
18、Java只支持单继承,也就是说子类只能有一个直接父类。
19、框架是一个程序的主窗口,它是顶级容器。
20、final类中的属性和方法都必须是final的。
四、阅读程序,分析程序的运行结果(每小题4分,共28分)。
1.写出以下程序的运行结果。
publicclassTestArray
{publicstaticvoidmain(Stringargs[]){
inti,j;
inta[]={1,3,2,5,4};
for(i=0;iintk=i;
for(j=i;jif(a[j]>a[k])k=j;
inttemp=a[i];
a[i]=a[k];
a[k]=temp;}
for(i=0;iSystem.out.print(a[i]+"");
System.out.println();}
}
2.写出以下程序的功能。
importjava.io.*;
classFileIODemo{
publicstaticvoidmain(String[]args)throwsIOException{
intb;
FileInputStreamfileIn=newFileInputStream(“test.java”);
while((b=fileIn.read())!
=-1){
System.out.print((char)b);}}
}
3.阅读以下程序,写出输出结果。
classAnimal{
Animal(){
System.out.print("Animal");}
}
public
classCatextendsAnimal{
Cat(){
System.out.print("Cat");}
publicstaticvoidmain(String[]args){
Catkitty=newCat();}
}
4.写出以下程序的运行结果。
classOverloadDemo{
voidtestOverload(inti){
System.out.println(“int”);}
voidtestOverload(Strings){
System.out.println(“String”);}
publicstaticvoidmain(Stringargs[]){
OverloadDemoa=newOverloadDemo();
charch=’x’;
a.testOverload(ch);}
}
5.阅读以下程序,写出输出结果。
classFirst{
publicFirst(){
aMethod();}
publicvoidaMethod(){
System.out.println(“inFirstclass”);}
}
publicclassSecondextendsFirst{
publicvoidaMethod(){
System.out.println(“inSecondclass”);}
publicstaticvoidmain(String[]args){
newSecond();}
}
6.写出以下程序的运行结果。
classStaticTest{
staticintx=1;
inty;
StaticTest()
{y++;}
publicstaticvoidmain(Stringargs[]){
StaticTestst=newStaticTest();
System.out.println("x="+x);
System.out.println("st.y="+st.y);
st=newStaticTest();
System.out.println("st.y="+st.y);}
static{x++;}
}
7.阅读以下程序:
classExp1
{
publicstaticvoidmain(String[]args)
{
Strings,s1="";
charc;
s=args[0];
for(inti=0;i{c=s.charAt(i);
if(c>='a'&&c<='z'){
s1=s1+Character.toUpperCase(c);
}else{
s1=s1+Character.toLowerCase(c);}
}
System.out.println(s1);
}
}
若在dos命令行输入:
javaExp1cHINA,则输出为
五、程序设计题(本大题共1小题,每题7分,共7分),提示:
每小题给出了一个程序设计要求,请按照要求写出源程序代码,如果源程序代码中出现语法错误或逻辑错误,则酌情扣分。
编写一个完整的JavaApplication程序。
包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下:
⑴接口ShapeArea:
①接口方法
doublegetArea():
求一个形状的面积
doublegetPerimeter():
求一个形状的周长
⑵类Rectangle:
实现ShapeArea接口,并有以下属性和方法:
1属性
width:
double型,表示长方形的宽度
height:
double型,表示长方形的长度
2方法
Rectangle(doublew,doubleh):
构造函数
toString():
输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”
⑶Test类作为主类要完成测试功能
1生成Rectangle对象
②调用对象的toString方法,输出对象的描述信息