java样卷2文档格式.docx
《java样卷2文档格式.docx》由会员分享,可在线阅读,更多相关《java样卷2文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
7、Java中监听按钮事件的接口是_____ActionListener____,监听下拉选项事件的接口是ItemListener。
8、编写一个Java线程程序可以用继承___Thread__类和实现___Runnable__接口来实现。
9、假设有一个文件为c:
\test.txt,则用FileInputStream类创建该文件引用对象fin的语句是FileInputStreamfin=newFileInputStream("
c:
\test.txt"
);
,用BufferedReader类去读取该文件需创建引用对象br的语句是__BufferedReaderbr=newBufferedReader(newFileReader("
));
__。
10、在RandomAccessFile类中,方法____seek()____能改变文件指针的位置,方法
_______getFilePointer()_____能获得文件指针的位置。
二、选择题(共10小题,每题2分,共20分)
1、下列变量定义不合法的是(A)
A)booleanflag=TRUE;
B)intk=1+‘a’;
C)charc=‘b’;
D)floatradius=1/2;
2、下列类不属于java.lang.*包的是(C)
A)MathB)SystemC)ArrayListD)StringBuffer
3、下列数组的定义不合法的是:
(C)
A)charc[][]=newchar[2][3];
B)charc[][]=newchar[6][];
C)char[][]c=newchar[][4];
D)int[]a[]=newint[10][10];
4、对于异常处理语句try…catch…finally,下面哪个说法是正确的?
A)如果有多个catch语句,对所有的catch都执行一次
B)如果有多个catch语句,对每个符合条件的catch都执行一次
C)找到合适的异常类型后就不再执行后面的catch
D)任何情况下,finally部分都会被执行一次
5、有关类的说法正确的是?
(B)
A)类具有封装性,所以类的数据是不能被访问的
B)类具有封装性,但可以通过类的公共接口访问类中的数据
C)声明一个类时,必须用public修饰符
D)每个类中,必须有main方法,否则程序无法运行
6、下述哪一组方法,是一个类中方法重载的正确写法?
(A)
A)intaddValue(inta,intb){returna+b;
}
floataddValue(floata,floatb){returna+b;
}
B)intaddValue(inta,intb){value=a+b;
}
floataddValue(inta,intb){return(float)(a+b);
C)intaddValue(inta,intb){returna+1;
intaddValue(inta,intb){returna+b;
D)intaddValue(inta,intb){returna+b;
intaddValue(intx,inty){returnx+y;
7、下面关于多态性的说法正确的是?
A)一个类中,不能有同名的方法
B)子类中不能有和父类同名的方法
C)子类中可以有和父类中同名且参数相同的方法
D)多态性就是方法的名字可以一样,但返回的类型必须不一样
8、Thread类用来创建和控制线程,一个线程从下面(C)方法开始执行。
A)init()B)start()C)run()D)notifyAll()
9、下列说法哪个是不正确的?
A)方法中的形参可以和方法所属类的属性同名。
B)接口无构造器,不能有实例,也不能定义常量。
C)利用File对象可以判断一个文件或目录是否存在。
D)在java中,高优先级的可运行线程会抢占低优先级线程
10、下列说法哪个是正确的?
A)JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。
B)JButton和JTextField都可用ActionListener接口实现事件处理
C)一个面板(Jpanel)
不能被加入到另一个面板(Jpanel)中
D)在BorderLayout中,添加到NORTH区的两个按钮将并排显示。
一、程序阅读题。
(共5小题,每题6分,共30分)
1、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。
6
classTest{
publicstaticvoidmain(String[]args){
inti=1;
intall=0;
for(;
i<
=10;
i++){
if(i%6==0)break;
if(i%2==0){
i=i+2;
continue;
all=all+i;
}
System.out.println(all);
2、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。
classPerson{
publicPerson(){
System.out.println("
hi!
"
publicPerson(Strings){
this();
Iam"
+s);
publicclassWhoextendsPerson{
publicWho(){
this("
IamTony"
publicWho(Strings){
super(s);
Howdoyoudo?
publicstaticvoidmain(Stringargs[]){
Whow=newWho("
Tom"
IamTom
Howdoyoudo?
说明:
如果结果仅写后两行的,给3分
3、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。
publicclassExample{
Stringstr=newString("
Hello"
charch[]={'
J'
'
a'
v'
'
};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.println(ex.str);
System.out.println(newString(ex.ch));
}
publicvoidchange(Stringstr,charch[]){
str="
World"
;
ch[0]='
Y'
Hello
Yava
说明:
写对一个,给3分,共6分
4、阅读下面的程序TestMonth.java:
publicclassTestMonth{
publicstaticvoidmain(String[]args){
try{
intmonth=Integer.parseInt(args[0]);
if(month<
0||month>
12){
thrownewArithmeticException("
没有"
+month+"
月份!
System.out.println("
您输入的月份为"
月份"
}catch(ArrayIndexOutOfBoundsExceptione){
请输入月份!
}catch(ArithmeticExceptione){
捕获ArithmeticException异常"
System.out.println(e.toString());
已知ArrayIndexOutOfBoundsException和ArithmeticException都是java.lang.*下的异常类,编译TestMonth.java后,用javaTestMonth13的运行结果是什么?
捕获ArithmeticException异常
java.lang.ArithmeticException:
没有13月份!
(1)如果写出以下结果的,给4分
没有13月份!
(2)如果写出以下结果的,给2分
您输入的月份为13月份"
(3)如果给出的结果含有:
得0分,其它结果酌情给1~2分
5、阅读下面的程序,修改程序中错误的地方:
1.publicclassTestimplementsRunnable{
2.Stringstr[]=newString[10];
3.for(inti=0;
i<
str.length();
i++){
4.str[i]=i+”-”;
5.}
6.publicvoidrun(){
7.try{
8.for(inti=0;
9.sleep(1000);
10.System.out.print(str[i]);
11.}
12.}catch(InterruptedExceptione){
13.e.printStackTrace();
14.}
15.}
16.publicstaticvoidmain(Stringargs[]){
17.Testt=newTest();
18.t.run();
19.}
20.}
(1)如果采用程序中的implementsRunnable的方法,则修改的地方有以下4处:
①第3~5行写入构造方法,并且将第3行的str.length()改为str.length,修改后的代码如下:
…………………………………………2分
publicTest(){
for(inti=0;
str.length;
str[i]=i+"
-"
②第8行的str.length()改为str.length…………………………………………1分
③第9行的sleep(1000);
改为Thread.sleep(1000);
……………………………1分
④第18行的代码修改为以下两行:
Testt=newTest();
newThread(t).start();
或写成如下形式:
Threadtt=newThread(t);
//tt的变量名可取符合java语言规范的任何标识符
tt.start();
(1)如果采用extends实现该线程程序,则修改的地方有以下4处:
①第一行的implementsRunnable修改为extendsThread………………………1分
②第3~5行写入构造方法,并且将第3行的str.length()改为str.length,修改后的代码如下:
③第8行的str.length()改为str.length…………………………………………1分
④第18行的t.run();
修改为t.start();
四、编程题(共3小题,每小题10分,共30分)
1、根据以下的设计要求编写java源代码。
类名:
Person
变量(访问权限均为private):
name(String)//姓名
age(int)//年龄
方法:
构造方法(没有参数,设置姓名为“无名氏”,年龄为20)
setName(有一个名为name的String型参数,将name的值设为这个新值),
getName(没有参数,返回姓名)
setAge(有一个名为age的int型参数,将age的值设为这个新值),
getAge(没有参数,返回年龄)
isSameAge(有一个参数s,是另一个Person对象的引用,如果两个Person对象的age相同,则返回true,否则返回false)
publicclassPerson{
privateStringname;
privateintage;
publicPerson(){
name="
无名氏"
age=20;
publicvoidsetName(Stringname){
this.name=name;
publicStringgetName(){
returnname;
publicvoidsetAge(intage){
this.age=age;
publicintgetAge(){
returnage;
publicbooleanisSameAge(Persons){
if(s.age-this.age==0)returntrue;
returnfalse;
2、编写一个Java程序SwingApplication.java,创建一个JFrame,界面上有两个JButton按钮和一个JTextField,点击按钮,在JTextField上显示JButton信息。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassSwingApplicationextendsJFrameimplementsActionListener{
JButtonjb1,jb2;
JTextFieldjt;
publicSwingApplication(){
super("
SwingApplication"
jb1=newJButton("
JButton1"
jb2=newJButton("
JButton2"
jt=newJTextField(20);
jb1.addActionListener(this);
jb2.addActionListener(this);
Containerc=getContentPane();
c.setLayout(newFlowLayout());
c.add(jt);
c.add(jb1);
c.add(jb2);
setSize(250,100);
setVisible(true);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jb1){
jt.setText(jb1.getActionCommand());
if(e.getSource()==jb2){
jt.setText(jb2.getActionCommand());
}
publicstaticvoidmain(Stringargs[]){
SwingApplicationsa=newSwingApplication();
sa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
3、编写一个程序WriteLog.java实现如下功能:
从键盘输入若行文字(可能包含中文),当最后一行输入quit#时,退出程序且将输入内容除quit#外全部存入文件c:
\log.txt中。
importjava.io.*;
publicclassWriteLog{
publicstaticvoidmain(String[]args){
Stringf="
/log.txt"
Stringstr="
try{
BufferedReaderkeyIn=newBufferedReader(newInputStreamReader(System.in));
PrintWriterbw=newPrintWriter(newFileWriter(f));
Pleaseinputfiletext:
while(!
(str=keyIn.readLine()).equals("
quit#"
)){
bw.println(str);
bw.close();
}catch(IOExceptione){