Java程序设计习题集含答案.docx
《Java程序设计习题集含答案.docx》由会员分享,可在线阅读,更多相关《Java程序设计习题集含答案.docx(45页珍藏版)》请在冰豆网上搜索。
![Java程序设计习题集含答案.docx](https://file1.bdocx.com/fileroot1/2023-2/21/f6f487f1-1943-4757-9488-7bdf45eed070/f6f487f1-1943-4757-9488-7bdf45eed0701.gif)
Java程序设计习题集含答案
Java程序设计习题集
一、判断题
1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
(F)
2.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
(F)
3.类及其属性、方法可以同时有一个以上的修饰符来修饰。
(T)
4.Java的屏幕坐标是以像素为单位,容器的左下角被定为坐标的起点。
(F)(应该是左上角)
5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
(F)
6.Final类中的属性和方法都必须被final修饰符修饰。
(F)(静态的必须被静态的修饰符修饰)
7.最终类不能派生子类,最终方法不能被覆盖。
(T)
8.子类要调用父类的方法,必须使用super关键字。
(T)
9.一个Java类可以有多个父类。
(F)
10.如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。
(F)
11.一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。
(T)
12.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
(T)
13.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
(T)
14.用“+”可以实现字符串的拼接,用-可以从一个字符串中去除一个字符子串。
(F)
15.一个容器中可以混合使用多种布局策略。
(T)
16.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。
(T)
17.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
(T)
18.JavaApplet是由独立的解释器程序来运行的。
(F)
19.JavaApplet只能在图形界面下工作。
(T)
20.Java的字符类型采用的是ASCII编码。
(F)
21.Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。
(T)
22.容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。
(F)
23、Java是不区分大小写的语言。
(F)
24、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
(T)
25、JavaApplication是由独立的解释器程序来运行的。
(F)
26、JavaApplet的字节码文件必须嵌入HTML的文件中并由负责解释HTML文件的WWW浏览器充当解释器来解释运行。
(F)
27、JavaApplication只能在字符界面下工作。
(F)
28、Java的字符类型采用的是Unicode编码,每个Unicode码占16个比特。
(T)
29、Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。
(T)
30、子类的域和方法的数目一定大于等于父类的域和方法的数目。
(F)
31、类在实现接口的方法时,必须显示地使用public修饰符。
(T)
32、一个类只能有一个父类,但一个接口可以有一个以上的父接口。
(T)
33、程序中抛出异常时(throw…),只能抛出自己定义的异常对象。
(F)
34、System类中的in是一个输入对象。
(T)
35、实现一个接口,则在类中一定要实现接口中的所有方法。
(T)
36、所有的文件输入/输出流都继承于InputStream类/OutputStream类。
(F)
37、一个异常处理中finally语句块只能有一个或者可以没有。
(F)
38、语句importjava.applet.Applet;最后的Applet是代表类(class)。
(T)
39、类体中private修饰的变量在本类中能访问,类生成的对象也能访问。
(F)
40、线程使用sleep()方法休眠后,可以用notify()方法唤醒。
(F)
41、一个异常处理中finally语句块只能有一个或者可以没有。
(T)
42、用Javac编译Java源文件后得到代码叫字节码。
(T)
43、数组、类和接口都是引用数据类型。
(F)
44、一个Applet编译后的类名是Test.class,运行此小程序的命令是JavaTest。
(F)
45、Java语言中一个Char类型的数据占用2个字节大小的内存空间。
(T)
46、编译语句DoubleaDouble=37.2D不会出现编译错误。
(F)
47、编译语句intaInt=66666不会出现编译错误。
(T)
48、判断下面说法的正误:
if(true){inti=17;}
System.out.println(i);
运行此程序的结果是输出17。
(F)
49、floatx=26f;inty=26;intz=x/y;以上语句能正常编译和运行。
(F)
50、判断下面说法的正误:
intx=9;if(x>8andx<10)System.out.println("true");以上语句运行的结果是显示true。
(T)
51、判断下面说法的正误:
Stringstr;System.out.println(str.length());以上语句运行的结果是显示0。
(F)
52、抽象类不能实例化。
(T)
53、一个方法最多能有一个return语句。
(F)
54、接口名可以作为方法返回值的类型。
(T)
55、类A和类B位于同一个包中,则除了私有成员,类A可以访问类B的所有其他成员。
(T)
二、选择题
1.编译JavaApplet源程序文件产生的字节码文件的扩展名为(B)。
A、javaB、classC、htmlD、exe
2.main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的(BC)?
A、publicstaticvoidmain()
B、publicstaticvoidmain(Stringargs[])
C、publicstaticintmain(String[]arg)
D、publicvoidmain(Stringarg[])
3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A、staticvoidmethod()B、publicvoidmethod()
C、finalvoidmethod()D、abstractvoidmethod()
4.下列哪个是合法的Java标识符?
(BC)
A、Tree&GlassesB、FirstJavaApplet
C、_$theLastOneD、273.5
5.JavaApplication源程序的主类是指包含有(A)方法的类。
A、main方法B、toString方法
C、init方法D、actionPerfromed方法
6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
A、8B、16C、32D、64
7.设a=8,则表达式a>>>2的值是(B)。
A、1B、2C、3D、4
8.若a的值为3时,下列程序段被执行后,c的值是多少?
(C)
c=1;
if(a>0)if(a>3)c=2;elsec=3;elsec=4;
A、1B、2C、3D、4
9.在编写JavaApplication程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(C)语句。
A、importjava.awt.*;B、importjava.applet.Applet;
C、importjava.io.*;D、importjava.awt.Graphics;
10.对于构造函数,下列叙述正确的是(ACD)。
A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
B、构造函数的返回类型只能是void型。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
11.下面的是关于类及其修饰符的一些描述,正确的是:
(AD)。
A、abstract类只能用来派生子类,不能用来创建abstract类的对象。
B、final类不但可以用来派生子类,也可以用来创建final类的对象。
C、abstract不能与final同时修饰一个类。
D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。
12.若需要定义一个类域或类方法,应使用哪种修饰符?
(A)
A、staticB、packageC、privateD、public
13.若在某一个类定义中定义有如下的方法:
abstractvoidperformDial();
该方法属于(D)。
A、本地方法B、最终方法C、解态方法D、抽象方法
14.下列关于静态初始化器的叙述中,哪一个是正确的?
(B)
A、静态初始化器是在构造函数之前加上static修饰符。
B、静态初始化器是对类自身进行初始化。
C、静态初始化器在同一个类中只能有一个。
D、静态初始化器是在其所属的类加载内存时不是由系统自动调用执行。
15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?
(AB)
A、实例方法可以直接调用父类的实例方法。
B、实例方法可以直接调用父类的类方法。
C、实例方法可以直接调用其他类的实例方法。
D、实例方法不可以直接调用本类的类方法。
16.设有下面两个类的定义:
classPerson{}
classStudentextendsPerson{
longid;//身份证号
intscore;//入学总分
Stringname;//姓名
intgetScore(){returnscore;}
}
问:
类Person和类Student的关系是(B)。
A、包含关系B、继承关系
C、关联关系D、无关系,上述类定义有语法错误
17.设有下面的两个类定义:
classAA{
voidShow(){System.out.println(“我喜欢Java!
”);
}
classBBextendsAA{
voidShow(){System.out.println(“我喜欢C++!
”);
}
则顺序执行如下语句后输出结果为:
(A)
AAa;BBb;
a.Show();b.Show();
A、我喜欢Java!
B、我喜欢C++!
我喜欢C++!
我喜欢Java!
C、我喜欢Java!
D、我喜欢C++!
我喜欢Java!
我喜欢C++!
18.设有下面的一个类定义:
classAA{
staticvoidShow(){System.out.println(“我喜欢Java!
”);}
}
classBB{voidShow(){System.out.println(“我喜欢C++!
”);}}
若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:
(AC)
A、a.Show()B、AA.Show();
b.Show()BB.Show();
C、AA.Show();D、a.Show();
b.Show();BB.Show();
19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为(C)。
A、隐藏B、覆盖C、重载D、Java不支持此特性
20.对于构造函数,下列叙述不正确的是(C)。
A、构造函数也允许重载。
B、子类无条件地继承父类的无参构造函数。
C、子类不允许调用父类的构造函数。
D、在同一个类中定义的重载构造函数可以相互调用。
21.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
A、privateB、protected
C、privateprotectedD、public
22.设有下面两个赋值语句:
a=Integer.parseInt(“1024”);
b=Integer.valueOf(“1024”).intValue();
下述说法正确的是(D)。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。
D、a和b都是整数类型变量并且它们的值相等。
23.在JavaApplet程序用户自定义的Applet子类中,常常重载(D)方法在Applet的界面中显示文字、图形和其它界面元素。
A、start()B、stop()
C、init()D、paint()
24.在Java中,存放字符串常量的对象属于(B)类对象。
A、CharacterB、String
C、StringBufferD、Vector
25.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是(B)包。
A、java.ioB、java.awt
C、java.appletD、java.awt.event
26.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用(C)类的对象来实现。
A、JLabelB、JButton
C、JTextAreaD、JTextField
27.创建一个标识有“关闭”按钮的语句是(D)。
A、JTextFieldb=newJTextField(“关闭”);
B、JLabelb=newJLabel(“关闭”);
C、JCheckboxb=newJCheckbox(“关闭”);
D、JButtonb=newJButton(“关闭”);
28.在编写异常处理的Java程序中,每个catch语句块都应该与(C)语句块对应,使得用该语句块来启动Java的异常处理机制。
A、if–elseB、switchC、tryD、throw
29.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
30.对于子类的构造函数说明,下列叙述中不正确的是(BC)。
A、子类无条件地继承父类的无参构造函数。
B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。
C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。
D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
31.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?
(B)
A、ArrayListmyList=newObject();
B、ListmyList=newArrayList();
C、ArrayListmyList=newList();
D、ListmyList=newList();
32.paint()方法使用哪种类型的参数?
(A)
A、Graphics
B、Graphics2D
C、String
D、Color
33.指出正确的表达式(C)
A、byte=128;
B、Boolean=null;
C、longl=0xfffL;
D、double=0.9239d;
34.指出下列程序运行的结果(B)
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
Sytem.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
A、goodandabc
B、goodandgbc
C、testokandabc
D、testokandgbc
35.运行下列程序,会产生什么结果(B)
publicclassXextendsThreadimplementsRunable{
publicvoidrun(){
System.out.println("thisisrun()");
}
publicstaticvoidmain(Stringargs[])
{
Threadt=newThread(newX());
t.start();
}
}
A、第一行会产生编译错误
B、第六行会产生编译错误
C、第六行会产生运行错误
D、程序会运行和启动
36.要从文件"file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合?
(D)
A、FileInputStreamin=newFileInputStream("file.dat");in.skip(9);intc=in.read();
B、FileInputStreamin=newFileInputStream("file.dat");in.skip(10);intc=in.read();
C、FileInputStreamin=newFileInputStream("file.dat");intc=in.read();
D、RandomAccessFilein=newRandomAccessFile("file.dat");in.skip(9);intc=in.readByte();
37.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?
(A)
A、CardLayout
B、FlowLayout
C、BorderLayout
D、GridLayout
38.给出下面代码:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
}
}
那个语句是正确的?
(C)
A、编译时将产生错误;
B、编译时正确,运行时将产生错误;
C、输出零;
D、输出空。
39.哪个关键字可以对对象加互斥锁?
(B)
A、transient
Bsynchronized
Cserialize
Dstatic
40.下列哪些语句关于内存回收的说明是正确的?
(B)
A、程序员必须创建一个线程来释放内存;
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
41.下列代码哪几行会出错:
(C)
1)publicvoidmodify(){
2}intI,j,k;
3)I=100;
4)while(I>0){
5}j=I*2;
6)System.out.println("Thevalueofjis"+j);
7)k=k+1;
8)I--;
9)}
10}}
A、line4
B、line6
C、line7
D、line8
42.MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个变量。
(CD)
A、publicintMAX_LENGTH=100;
B、finalintMAX_LENGTH=100;
C、finalpublicintMAX_LENGTH=100;
D、publicfinalintMAX_LENGTH=100.
43.给出下面代码:
1)classParent{
2}privateStringname;
3}publicParent(){}
4}}
5)publicclassChildextendsParent{
6}privateStringdepartment;
7}publicChild(){}
8}publicStringgetValue(){returnname;}
9}publicstaticvoidmain(Stringarg[]){
10}Parentp=newParent();
11}}
12}}
那些行将引起错误?
(D)
A、第3行
B、第6行
C、第7行
D、第8行
44.类Teacher和Student是类Person的子类;
Personp;
Teachert;
Students;
//p,tandsareallnon-null.
if(tinstanceofPerson){s=(Student)t;}
最后一句语句的结果是:
(D)
A、将构造一个Student对象;
B、表达式是合法的;
C、表达式是错误的;
D、编译时正确,但运行时错误。
45.给出下面代码段
1)publicclassTest{
2}intm,n;
3}publicTest(){}
4}publicTe