JAVA练习题 (2)
JAVA基础强化练习题2(附答案)

public class Forest implements Serializable { private Tree tree = new Tree(); public static void main(String[] args) { Forest f = new Forest(); try { FileOutputStream fs = new FileOutputStream("Forest.ser"); ObjectOutputStream os = new ObjectOutputStream(fs); os.writeObject(f); os.close(); } catch (Exception ex) { ex.printStackTrace();
10. 运行下列程序:
public static void main(String[] args) { String str = "**oracle***oracle*****oracle***"; String str1 = "oracle"; int index = 0; while ((index = str.indexOf(str1, index)) != -1) { System.out.print(index + ""); index += str1.length(); }
A. class B extends A { public void f() throws Exception { ……… } }
B. class B extends A { public void g() throws IOException { f(); } }
JAVA练习题2

12、已有语句 int a = 123 ;表达式 a + “0” 的值为: A)123 B)a C)”a0” D)”1230” 13、设有定义 int a = 12 ;则执行语句 a *= 12; 后,a 的值为()。 A) 144 B) 12 C) 24 D) 0
14、算术表达式1+2/3-4*5的值为()。 A) 1 B) -19 C) -5 D) 0 15、整型变量a、b定义为int a=3; int b=4; 则表达式 ++a == b 的值是 ()。 A) 4 B) 3 C) 1 D) true 16.若所用变量都已正确定义,以下选项中,非法的表达式是()。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'a' + 32 17.若已有变量定义:int a=1; boolean b=false ; char c=’A’ ;float f =1.2F;double d =3.4;String s=”123”,以下表达式正确的是()。 A) d/=(a +c*f) B) a = (int)(f*d)+d C) a=(int)(b)+(int)(s) D) Double.parasDouble(s)>a||b 18、下列语句序列执行后,x 的值是()。 public class ex16 { public static void main(String[] args) { int a=1, b=2, x=1; x+=a++ + b-- - --a*++b); System.out.println(x); } } A) 1 B)2 C) 3 D)4 19、执行下列程序段之后,输出结果为()。 public class ex18 { public static void main(String[] args) { int a=1; int b=2; int c=3; c+=(a++)+(++a)/( --b)*(b--); System.out.println(c); } } A) 4 B) 6 C) 7 D)8 20、执行下列程序段之后,输出结果为()。 public class ex19 {
JAVA习题集2

习题二一、判断题1.一个类定义了一个或多个构造方法,则Java不提供默认的构造方法。
( )2.如果定义的类中没有给出构造方法,系统也不会提供构造方法。
( )3.可以通过类名直接访问类变量。
( )4.非static修饰的方法既能被对象调用,又能用类名直接调用。
( )5.static修饰的类方法既能被对象调用,又能用类名直接调用。
( )6.一个类的所有对象共享static修饰的类变量。
( )7.类由两部分组成,一部分是变量的定义,一部分是方法的定义。
( )8.方法的定义由方法的声明和方法体等两部分组成。
( )9.方法中的形参可以和方法所属类的属性(域)同名。
( )10.package语句只能放到Java源程序除注释之外的第一行位置。
( )11.Java应用程序的人口main方法只有一种定义。
( )12.静态成员域具有全局作用域范围。
( )13.类成员变量可无须初始化,由系统自动进行初始化。
( )14.在类体部分定义时,类的构造方法、成员域和成员方法的出现顺序在语法上有严格限制。
( )15.类的实例对象的生命周期包括实例对象的创建、使用、废弃、垃圾的回收。
( )二、选择题1.下述哪个说法是不正确的?( )A.局部变量在使用之前无须初始化,因为有该变量类型的默认值B.类成员变量由系统自动进行初始化C.参数的作用域就是所在的方法D.for语句中定义的变量,当for语句执行完时,该变量就消亡了2.下述哪一个关键字不是类及类成员的访问控制符?( )A.public B.private C.static D.protected3.考虑以下的方法头声明:public void myMethod(int num,char letter)下列哪个描述是正确的?( )A. 这个方法有个int型的参数,它的形式参数是letterB.这个方法有个int型的参数,它的形式参数是numC.这个方法有个char型的参数,它的实际参数是myMethodD.这个方法是一个构造方法4.假设有个类已经定义了下述的变量:int num1=10;int num2=20;String word=new String("exam");double answer=25.5;另外定义了下列方法头:public int stuff(String s,int x,int y)以下哪个是正确的方法调用?( )A.num1=stuff (”hell o”,num1,num1);B,answer=stuff (word,answer,num2);C.num2=stuff(”hell o”,num1,answer);D.num1=stuff(num1,num2,word);5.下面哪一项不是构造方法的特点?( )A.构造方法名必须与类名相同B.构造方法不具有任何返回类型C.任何一个类都含有构造方法D.构造方法修饰词只能是public6.假设已声明了一个类A的两个对象a1、a2,为了初始化a1和a2,下面语句正确的是( )。
JAVA基础知识练习2(含答案)

1.3 填充改错题
1、 请将程序补充完整: public class App1 { public static void main(String arg[]) {
} System.out.println("你好!");
}
2、 改正下列程序的错误: import java.applet.Applet; import java.awt.Graphics; public class Applet1 extends Applet{ public void main(Graphics g){ byte b1=156; char c1=”abc”; char c2=’/t’; long m=1234; float f=345.78; double d=345.66f; boolean b2=1; g.drawstring(b1+b2+c1+c2+d+f+m) } } (提示:主要考虑方法、数据类型、大小写、标点等方面) 修改后:
2、写出下列程序的运行结果: public class Ex4 { public static void main(String args[]){ int a=6, b=7, c; c=a++ + ++b; System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); } } 答: a=7 b=8 c=14
3、请把下列数学算式或不等式表示成 Java 表达式: 2 (1) ax +bx+c 答:a*x*x+b*x+c;
Java练习题(试卷)

【程序代码】
class Base {
public Base(int i) {
System.out.println("Call Constructor of Base Class, " + i);
}
}
class Test extends Base {
private int b;
public Test(int a, int b) {
如下 java 源程序文件中,定义了 Bicycle 类及其子类 MountainBike 类,Bicycle 类的成员变量 model 只能被类自身的方法所访问。该文件中“/*$1*/”和“/*$2*/”行是需要补充的语句,请仔细阅读程序, 补充相应的语句,使整个程序能够正常运行。(注意: 不改动程序的结构,不得增行或删行)
J_SubClass a = new J_SubClass();
}
}
A、不能通过编译,因为类 J_Test 没有定义无参数的构造方法
B、不能通过编译,因为类 J_SubClass 没有定义无参数的构造方法
C、不能通过编译,因为没有实现 J_SubClass(int i)的构造方法
D、可以成功通过编译
import java.awt.*;
class MyClass { }
public class MyClass { }
Java 练习题 1(第 2 页 共 14 页)
13.当需要在文件中写入字符而不是字节时,在下面的类中最好选用( B )类。
A、java.io.RandomAccessFile
B、java.io.PrintWriter
C、float fun(float a) { }
2Java第二单元练习题-面向对象程序设计基础Word版

2面向对象程序设计基础2.1单项选择题1.下面关于类的继承性的描述中,错误的是()。
A.继承是在已有的基础上生成新类的一种方法B.Java语言要求一个子类只有一个父类C.父类中成员的访问权限在子类中将被改变D.子类继承父类的所有成员,但不包括私有的成员方法2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。
A.默认B.protected C.private D.public3.在类的修饰符中,规定只能被同一包类所使用的修饰符是()。
A.public B.默认C.final D.abstract4.下列关于子类继承父类的成员描述中,错误的是()。
A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。
B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。
C.子类中继承父类中的所有成员都可以访问。
D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。
5.下列关于继承性的描述中,错误的是()。
A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承D.Java通过接口可使子类使用多个父类的成员6.下列关于抽象类的描述中,错误的是()。
A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类7.下列关于构造方法的叙述中,错误的是()。
A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承8.下面叙述中,错误的是()。
A.子类继承父类B.子类能替代父类C.父类包含子类D.父类不能替代子类9.下面关于接口的描述中,错误的是()。
A.一个类只允许继承一个接口B.定义接口使用的关键字是interfaceC.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现D.接口实际上是由常量和抽象方法构成的特殊类10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?()A.ArrayList myList=new Object(); B.ArrayList myList=new List();C.List myList=new ArrayList(); D.List myList=new List();11.下列哪一个方法与方法public void add(int a){}为不合理的重载方法?()A.public void add(char a) B.public int add(int a)C.public void add(int a,int b) D.public void add(float a)12.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是()。
Java练习题附答案

练习题:一、读程序,写出和程序输出格式一致的输出结果。
1、class J_SuperClass {void mb_method() {System.out.println("J_SuperClass::mb_method");}static void mb_methodStatic() {System.out.println("J_SuperClass::mb_methodStatic"); } }public class J_Test extends J_SuperClass {void mb_method() {System.out.println("J_Test::mb_method");}static void mb_methodStatic() {System.out.println("J_Test::mb_methodStatic");}public static void main(String[] args) {J_SuperClass a = new J_Test();a.mb_method();a.mb_methodStatic();J_Test b = new J_Test();b.mb_method();b.mb_methodStatic();}}输出结果:32342、class ValHold {public int i = 10;}public class ObParm {public static void main(String[] args) {ObParm o = new ObParm();o.amethod();}public void amethod() {int i = 99;ValHold v = new ValHold();v.i = 30;another(v, i);System.out.println(v.i + " " + i);}public void another(ValHold v, int i) {i = 0;v.i = 20;ValHold vh = new ValHold();v = vh;System.out.println(v.i + " " + i);}}输出结果:10 020 993、class J_SuperClass {int m_data;J_SuperClass() {mb_add(1);}public void mb_add(int i) {m_data += i;}public void mb_print() { System.out.println(m_data);}}class J_SubClass extends J_SuperClass { J_SubClass() {mb_add(2);}public void mb_add(int i) {m_data += i * 2;}}public class J_Test {public static void mb_method(J_SuperClass a) { a.mb_add(6);a.mb_print();}public static void main(String[] args) {mb_method(new J_SubClass());}}输出结果:184、public class Two {public static void main(String[] args) {One one = new One("Hello");one.getString("Xiao ming!");}}class One {private String myStr;public One(String str) {myStr = str;}public void getString(String str) { System.out.println(myStr + " " + str);}}输出结果:Hello Xiao ming!5、public class J_Test {String m_kobe = "1";String[] m_king = {"2"};public static void main(String[] args) {J_Test app = new J_Test();app.mb_operate(app.m_kobe, app.m_king); System.out.println(app.m_kobe+app.m_king[0]); } static void mb_operate(String kobe, String[] king) { kobe = new String("3");king[0] = new String("4");}}输出结果:141.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。
Java复习题(二)填空题(附答案)

《JAVA程序设计》复习题之(二)填空题1. Java是目前最广泛的__________编程语言之一。
2. Java具有简单、___________、稳定、与平台无关、解释型、多线程、动态等特点。
3. JDK开发java程序需三个步骤,分别为______________,编译java源程序,运行java源程序。
4.Java具有简单、面向对象、稳定、与平台无关、解释型、___________、动态等特点。
5.编写Java程序,可以使用一个__________来编写源文件。
6.把编写好的Java源文件保存起来,原文件的扩展名必须是___________。
7.用JDK编译Java源程序,使用的命令是__________,编译源文件得到字节码文件。
8. Java源程序编译后生成的字节码文件扩展名为__________。
9.用JDK运行Java应用程序,使用的命令是__________。
10. Java程序分为两类,即___________和Java小应用程序。
11.用JDK工具,显示Applet程序运行结果的命令是___________。
12. Java程序分为两类,即Java应用程序和___________。
13.一个Java源程序是由若干个___________组成。
14. __________是Java的关键字,用来定义类。
15. Java应用程序中有多个类时,java命令后的类名必须是包含了___________方法的那个类的名字。
16.一个Java应用程序必须且只有一个类含有___________方法。
17.在一个Java应用程序中main方法必须被说明为_____________。
18. Java中所有程序都使用方法,应用程序以______________方法开始。
19. Java源文件中有多个类,但只能有一个类是____________类。
20.一个Java Applet 不再需要main方法,但必须有一个类扩展了_____________类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.Java源文件和编译后的文件扩展名分别是___C____。源文件和字节码文件
(A).class和.java(B).class和.class
(C).java和.class(D).java和.java
4.要开发Java程序,需要安装的开发包是___A____。
J,共36分)
1.以下说法正确的是__C____。
(A)Java中所有的方法都必须在类内定义
(B)Java中主方法可以不在类内定义,其他方法都必须定义在类内
(C)Java中主方法必须定义在类内,其他方法可以不必定义在类内
(D)Java中所有方法都不必在类内定义
2.在Java中,一个源文件可以存放几个公有类(即被public修饰的类)? __A_____。
al.add(“1”);al.add("2");
al.add("3");al.add("1");集合al中的元素有_____D___。
(A)"1"(B)"2","3"(C)"1","2","3"(D)"1","2","3","1"
二、阅读程序,写出输出结果(每小题3分,共9分)
1.下面程序的运行结果是【1】54321。
1)线程:是进程中的一个单一的连续控制流程,拥有独立的执行控制,由操作系统负责调度。
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。
2)使用线程的好处有以下几点:
(1)使用线程可以把占据长时间的程序中的任务放到后台去处理
(2)用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
}
2.下面程序的运行结果是【2】helloWorld。
public class Test2
{
public String add(String a)
{
a = a + “World”;
return a;
}
public static void main(String[] args)
{
Test2 t = new Test2();
(C)package scu;(D)package java.scu;
7.判断两个字符串s1,s2的内容是否相同,需要使用__D_____。
(A)if(s1=s2)(B)if(s1==s2)
(C)if( equals(s1,s2))(D)if(s1.equals(s2))
8.关于Object类中定义的toString方法,以下说法正确的是__A____。
(2).让服务器套接字监听连接请求,若客户端请求连接,则接受连接,返回通信套接字
(3).调用Socket的getOutputStream( )方法和getInputStream( )获取输入输出流,发送接收
数据
(4).调用Socket的close( )方法关闭通信套接字若不再输入输出还可用close关闭输入输出流
(A)start启动线程(B)main(C)helloWorld(D)run
15.要定义实现Runnable接口的类,必须定义的方法是___B____。
(A)start(B)stop(C)run(D)yield
16.要定义Thread的子类,必须实现的方法是____C___。
(A)start(B)stop(C)run(D)yield
13.关于布尔类型说法正确的是__A______。
(A)boolean表示布尔类型,它的取值只有true和false
(B)bool表示布尔类型,它的取值只有true和false
(C)boolean表示布尔类型,它的取值只有1和0
(D)bool表示布尔类型,它的取值只有1和0
14.Java程序隐含的主线程是___B____。
第9个人在Thread-1窗口买票
第8个人在Thread-2窗口买票
第7个人在Thread-0窗口买票
第6个人在Thread-1窗口买票
第5个人在Thread-2窗口买票
第4个人在Thread-2窗口买票
第3个人在Thread-1窗口买票
第2个人在Thread-0窗口买票
第1个人在Thread-0窗口买票
{
Example s1 = new Example();
Example s2 = new Example();
s1.len++;
s2.len++;
Example.len++;
System.out.println("len="+len);
}
}
三、论述题(每小题各3分,共18分)
1.什么是多线程?举例说明多线程的优点有哪些?(见教材217页,及见12章课件)
2)有处理异常的程序:发生异常,捕获后,可继续执行后面的程序。
无处理异常的程序:发生异常,程序终止
3)处理了异常的程序更健壮。
3.什么是事件监听器,主要功能是什么?
(1)程序可以使用事件监听器,选择接收事件。(2)将事件监听器添加到事件源中,一旦有事件发生,程序就会调用跟事件源连接的事件监听器的方法
//创建集合al的迭代器
Iterator it = al.iterator();
while(it.hasNext())
{
//打印输出al的每一个元素
System.out.println(it.next());
}
}
2.利用多线程的方法,写一个程序,模拟10个人在3个窗口买票的过程,程序输出结果
类似:
第10个人在Thread-0窗口买票
1.已知有一个ArrayList类型的集合al,它里面存放了一些字符串元素,
有迭代器接口的声明如下:
public interface Iterator
{
Boolean hasNext();
Object next();
void remove();
}
请定义一个迭代器,并利用此迭代器遍历集合al,打印输出al中的每个元素。
4.分析比较ArrayList集合和数组的区别
1)ArrayList集合可动态调整大小,数组定义的时候必须确定大小
2)ArrayList集合中可以存放任意类型的元素,各元素之间类型可以不同
3)数组所有元素的类型必须一致
5.同步机制有什么作用,有哪些方式可以实现线程同步?
同步机制,利用同步保护临界区,即:用来保护某段代码在执行的时候以独占的方式执行,这时如果有第二个线程想访问这个对象时就会被暂停。一直等到独占的
(A)jdk(B)eclipse(C)notepad(D)记事本
5.Java中所有类的默认超类为___A____。
(A)ng(B)Class(C)Main(D)Super
6.下列语句中,能正确创建一个名为scu的包是___C____。
(A)import java.scu;(B)import scu;
17.HashSet hs = newHashSet();
hs.add("1");hs.add("2");
hs.add("3");hs.add("1");集合hs中的元素有__C______。
(A)"1"(B)"2","3"(C)"1","2","3"(D)"1","2","3","1"
18.ArrayList al = newArrayList();
public class Test
{
public static void main(String[] args)
{
int []a = new int[5];
for(int i=0; i<a.length; i++)
a[i] =5-i;
for(int b:a)
System.out.print(b);
}
currentThread().getName()+
"买票");
number--;
}}}
public class TicketsSystem {
public static void main(String[] args)
{ //有三个售票窗口
SellThread st = new SellThread();
客户端:
(1).创建一个客户端套接字,并连接到服务器的指定端口
(2).调用Socket的getOutputStream( )方法和getInputStream( )获取输入输出流,发送接收
数据
(3).调用Socket的close( )方法关闭通信套接字若不再输入输出还可用close关闭输入输出流。
四、编程题(第1小题8分,第2小题13分,第3小题16分,共计37分)
草莓价格为10.7元/斤,存货有41斤,苹果的价格为6元/斤,存货有56斤。
(2)使用查询语句,查询价格低于5元/斤的水果,输出其存货量。
import java.sql.*;
(3)程序的运行速度可能加快
(4)多线程可以让同一个程序的不同部分并发执行例如:网页同时加载多个图片
2.什么是异常?举例说明程序什么时候需要处理异常?处理异常的程序有什么优点?(见11章课件)