java程序设计题目

更新时间:2024-04-20 14:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 JAVA概述

1、 Java语言采用面向对象的思想编程,具有跨平台、分布式、多线程等优点。( ) 2.Java语言是基于__________________计算的计算机语言;TCP/IP协议的编程接口叫做________________________类。 3、Java语言是( D ) A、面向问题的解释型高级编程语言 B、面向机器的低级编程语言

C、面向过程的编译型高级编程语言 D、面向对象的解释型高级编程语言 1. Java语言有什么特点?

第二章 基本语法

1、以下哪个不是Java的关键字?( B ) A.do B.try C.final D.While 2、以下哪项标识符是不合法的。( D ) A.String B.$1 C.x D.3_a

3、以下哪个修饰符可用于定义成员常量?( B ) A.final B.static C.abstract D.const 4.以下选项中,合法的赋值语句是( B )。 A) a = = 1; B) ++ i;

C) a=a + 1= 5; D) y = int ( i );

5.若所用变量都已正确定义,以下选项中,非法的表达式是( D )。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32

6.若a和b均是整型变量并已正确赋值,正确的switch语句是( )。 A) switch(a+b); B) switch( a+b*3.0 ) { ?? } { ?? } C) switch a D) switch ( a%b )

{ ?? } { ?? } 7.下列语句序列执行后,j 的值是( )。 int j=9, i=6; while( i-- >3 ) --j;

A) 5 B) 6 C) 7 D) 8

8.现有一变量声明为boolean aa;下面赋值语句中正确的是( )。 A)aa=false; B)aa=False; C)aa=\

9.设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( )。 A) double x(double k ){ i=k; return i; } B) x(double m, double n ){ i=m; j=n; } C) x( ){i=0;j=0 }

D) x(double k ){ i=k; }

10. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )。 A) x( int m){ ... } B) void x( int m){ ... }

C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 11、对于下列代码: public class Example{ String str=new String(\ char ch[]={'d','b','c'};

public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.println(ex.str+\ } public void change(String str,char ch[]){ str=\ } }

输出结果是: ( ) A) hello and d B) hello and a C) world and d D) world and a 12、某个main()方法中有以下代码: String s1,s2; int[] numbers; int num; num=15;

boolean switcher = false;

下列哪个说法是正确的? ( ) A)声明了1个基本类型变量和2个引用变量 B)声明了2个基本类型变量和2个引用变量 C)声明了2个基本类型变量和3个引用变量 D)声明了3个基本类型变量和3个引用变量 13、某个main()方法中有以下代码: double[] num1; double num3=2.0; int num2=5;

num1=new double[num2+1]; num1[num2]=num3;

请问以上程序编译运行后的结果是 ( ) A) num1指向一个有5个元素的double型数组 B) num2指向一个有5个元素的int型数组 C) num1数组的最后一个元素的值为2.0 D) num1数组的第3个元素的值为5 14、考察下列程序代码: final int BASE=10; int nubmer;

下列哪个表达式可以求出number的最后一位数字? ( ) A) number - BASE B) BASE / number C) BASE % number D) number % BASE

15、某个main()方法中有以下的声明: final int MIN=0; final int MAX=10; int num=5;

下列哪个语句可以用来表示”num的值大于等于MIN并且小于等于MAX” ( ) A)!(numMAX) B) num>=MIN && num<=MAX C) num>MIN || num<=MAX D) num>MIN || num

public void myMethod1(int num1, char letter)

下列哪个描述是正确的? ( ) A)这个方法有个int型的参数,它的形式参数是letter B)这个方法有个int型的参数,它的形式参数是num1

C)这个方法有个char型的参数,它的实际参数是myMethod1 这个方法是一个构造方法

17.有以下方法的定义,请选择该方法的返回类型( D )。 ReturnType method(byte x, float y) { return (short)x/y*2; }

A、byte B、short C、int D、float

18、以下由do-while语句构成的循环执行的次数是( ) int k = 0;

do { ++k; }while ( k < 1 ); A、一次也不执行 B、执行1次 C、无限次

D、有语法错,不能执行

19.下面是一个类的定义。 class ____________ // 定义名为myclass的类 {

__________ var=666; int getvar() { return var; } }

20、阅读下面的程序,程序保存为Test.java: 1) public class Test 2) {

3) public static void main(String[] args) 4) {

5) System.out.println(args[2]); 6) } 7) }

以上程序经编译后用java Test 1 2 3 运行得到的输出结果是什么? 21、以下程序段的输出结果为 Message Four 。 int x=0,y=4, z=5;

if ( x>2){ if (y<5){ System.out.println(“Message one”); } else { System.out.println(“Message two”); } } else if(z>5){ System.out.println(“Message three”); } else { System.out.println(“Message four”); }

22、设x,y,z的值分别为ture、false和false,试计算下列逻辑表达式的值: (1) x &&y||!z&&ture (2) !x||!y&&!z

(3) (!x&&!y)||(!y&&!z) (4) x&&y||true&&!z

23、阅读下面的程序,程序保存为Test.java: 8) public class Test 9) {

10) public static void main(String[] args) 11) {

12) System.out.println(args[2]); 13) } 14) }

以上程序经编译后用java Test 1 2 3 运行得到的输出结果是什么? 24、阅读下面的程序:

① public class Test{

② public static void main(String[] a){ ③ int i = Integer.parseInt(a[0]); ④ switch (i) {

⑤ case 1:System.out.println(\⑥ case 2:System.out.println(\⑦ case 3:System.out.println(\⑧ case 4:System.out.println(\⑨ } ⑩ } ? }

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java Test 2 运行得到的输出结果是什么?

25.设int类型变量x和y分别初始化为3和100,下列语句的循环体共执行几次?执行完下列语句后x和y的值分别是多少? (1) while(x<=y) x=2*x;

(2) while(y/x>5) if(y-x>25) x=x+1; else y=y/x; (3) do{x=2*x;} while(x

(4) do{x=y/x;y=y-x;}while(x>=y);

(5) do{y=y/x-1; if(y>=x) y=x;} while(y>=1);

26、编写一个Java应用程序,在屏幕上输出“Welcome to Java”。

27、根据以下的设计要求编写java源代码。 类名: Circle

实例数据(均为private):

radius(double) //圆的半径 方法:

构造方法(没有参数,设置radius的值为10.0)

setRadius(有一个double参数,将radius的值设为这个新值), getRadius (没有参数,返回radius的值)

sameSize(有一个参数,是另一个Circle对象的引用,如果两个Circle对象的radius的差小于0.001,则返回true)

28、分别利用for、while、do~while编写计算正整数n1到n2的累加和。 11、编写一个编程,给定一个t的值(t的值也可通过命令行输入),按下式计算y值并输出,要求分别写作if语句和switch语句。 t2-1 0≤t<1 t3-2·t-2 1≤t<3 y= t2-t·sint 3≤t<5 t+1 5≤t<7 t-1 其它 29、编写一个java程序Suansu.java,定义两个整型变量a和b,使用构造函数初始化a为10,b为5,并定义求出a与b的和(方法名为AddAB)、差(方法名为SubAB)、积(方法名为MultiAB)、商 (方法名为DivAB)的方法。

用另一个java程序TestSuansu.java测试Suansu.java定义的方法,并在屏幕上输出结果。 30.水仙花数是指其个位、十位、百位三个数的立方和等于这个数本身,求出所有水仙花数。 31.试利用for循环,计算1+2+3+4+5+?+100的总和。

32.利用do?while循环,计算1!+2!+3!+?+100!的总和。 33.使用循环嵌套,编写一个输出如下图形的程序: * * * * * * * * * * * * * * *

第三章 类和对象

1、在编写实现文件读写功能的Java程序时,需要在程序的开头写上语句( )。 A.import java.applet.* ; B.import java.awt.* ; C.import java.io.* ; D.import java.awt.event.* ; 2.有一个类A,以下为其构造函数的声明,其中正确的是( )。 A)void A(int x){...} B)A(int x){...} C)a(int x){...} D)void a(int x){...}

3.下列方法定义中,正确的是( )。

A) int x( int a,b ) B) double x( int a,int b)

{ return (a-b); } { int w; w=a-b; } C) double x( a,b ) D) int x( int a,int b) { return b; } { return a-b; } 4. 下列类定义中,不正确的是( )。 A) class x { .... }

B) class x extends y { .... }

C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 5、对于下列代码:

public class Parent {

public int addValue( int a, int b) { int s; s = a+b; return s; } }

class Child extends Parent { }

下述哪些方法可以加入类Child? ( ) A) int addValue( int a, int b ){// do something...}

B) public void addValue (int a, int b ){// do something...} C) public int addValue( int a ){// do something...}

D) public int addValue( int a, int b ) {//do something...} 6、阅读下面的程序,程序保存为Test.java: 1) public class Test 2) {

3) short mValue;

4) public static void main(String[] args) 5) {

6) int a = 32; 7) int b = 56;

8) Test os = new Test(a+b); 9) os.Show( ); 10) }

11) protected Test(short aValue) { mValue = aValue; } 12) public void Show( ) { System.out.println(mValue); } 13) }

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

7、在编写实现文件读写功能的Java程序时,需要在程序的开头写上语句( C )。 A.import java.applet.* ; B.import java.awt.* ; C.import java.io.* ; D.import java.awt.event.* ; 8、以下关于构造函数的描述错误的是( A )。 A、构造函数的返回类型只能是void型。

B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。

9、关于修饰符static以下叙述错误的是( B )。 A.static方法不可被覆盖 B.static可以用来修饰类

C.static方法不可以直接访问非静态的方法,否则编译出错

D.static方法只能访问类变量或方法参数,不可直接访问成员变量 10.设有下面两个类的定义:

class Person { class Student extends Person { long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){ } return score; } } 则类Person和类Student的关系是( B )。 A、包含关系 B、继承关系 C、关联关系 D、上述类定义有语法错误

11、给出如下代码: class Test{ //定义成员a public static void fun() { // some code... } }

要在函数fun()中直接访问a,以下成员变量a定义正确的是( B )。 A.public int a; B.static int a; C.int a; D. protected int a; 12、编译并运行以下程序,以下描述哪个选项是正确的( C )。 class ATestOftoString{ protected String toString(){ return super.toString();} }

A、编译通过运行无异常 B、编译通过但运行时出错

C、行2出错,不能成功编译 D、不能成功编译,行3出错 13、有以下程序片段,下列哪个选项不能插入到行1。( A ) 1.

2.public class A{ 3.//do sth 4. }

A、public class MainClass{ } B、package mine; 14、关于以下application的说明,正确的是( C )。 1. class StaticStuff 2. { 3. static int x; 4. static { x+=5;} 5. public static void main(String args[ ]) 6. { 7. System.out.println(“x=” + x); 8. }

9. static { x/=5;} 10.}

A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=1

D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化 C、class ANotherClass{ } D、import java.util.*;

15、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 16、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C();

问以下哪个说法是正确的? ( D ) A、只有第1行能通过编译

B、第1、2行能通过编译,但第3行编译出错

C、第1、2、3行能通过编译,但第2、3行运行时出错 D、第1行、第2行和第3行的声明都是正确的

17、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C class A { int i; static String s; void method1() { } static void method2() { } }

A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2() 18、已有Bird类的定义如下: package abcde;

public class Bird { protected static int referenceCount=0; public Bird(){referenceCount++;} protected void fly(){ }

static int getReCount(){return referenceCount;} }

有类Nightingale的定义如下,请写出它的输出结果 Before:0 After:2 。 package singers;

class Nightingale extends abcde.Bird { Nightingale( ) { referenceCount++;}

public static void main( String args[ ]){

System.out.print(“Before:”+referenceCount); Nightingale florence=new Nightingale( );

System.out.println(“ After:”+referenceCount);

) florence.fly( ); } }

19. 对象的主要属性是___________和____________。

20.编写一个完整的Java Application 程序,包括:①复数类Complex ②主类Test,将每组测试数据相加并显示结果,三组测试的复数为:1+2i和1-2i、1+2i 和3+4i 、1+2i和-1+2i 。 其中,复数类Complex必须满足如下要求: (1) 复数类Complex 的属性

realPart : int型,代表复数的实部。 imaginPart : int型,代表复数的虚部。 (2) 复数类Complex 的方法

Complex( ) : 构造函数,将复数的实部和虚部都置0。

Complex( int r , int i ) : 构造函数,将复数的实部初始化为r,将虚部初始化为i。 Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象a相加,所得的结果仍是一个复数对象,返回给此方法的调用者。

public String toString( ) : 把当前复数对象的实部a、虚部b组合成 “a+bi” 的字符串形式;若实部为0,虚部不为0,则返回”bi”;若虚部为0,则返回”a”。 (注:程序框架和部分源码已给出,请补充完整)

import java.io.*; public class Test { public static void main(String args[]) { Complex a,b; a=new Complex(1,2); b=new Complex(1,-2); System.out.println((a.addComplex(b)).toString()); b=new Complex(3,4); System.out.println((a.addComplex(b)).toString()); b=new Complex(-1,2); System.out.println((a.addComplex(b)).toString()); } }

class Complex {

//添加属性定义 int realPart; int imaginPart;

//添加构造方法Complex() public Complex(){ realPart=0; imaginPart=0; }

//添加构造方法Complex(int r, int i) public Complex(int r,int i){ realPart=r; imaginPart=i; }

//添加复数相加方法 addComplex

public Complex addComplex(Complex a) { Complex b=new Complex(); b.realPart=a.realPart+this.realPart; b.imaginPart=a.imaginPart+this.imaginPart; return b; }

//添加toString方法

public String toString() { String slt=\

if(this.realPart!=0) {

if(this.imaginPart>0)

slt=String.valueOf(this.realPart)+\ else

slt=String.valueOf(this.realPart);

}

if(this.imaginPart!=0)

slt=slt+String.valueOf(this.imaginPart)+\ return slt; } }

21、阅读下面的程序:

1) abstract class Base{

2) abstract public void myfunc(); 3) public void another(){

4) System.out.println(\5) } 6) }

7) public class Abs extends Base{

8) public static void main(String argv[]){ 9) Base b = new Abs(); 10) b.another(); 11) }

12) public void myfunc(){

13) System.out.println(\14) }

15) public void another(){ 16) myfunc(); 17) } 18) }

以上程序经编译后,运行结果是什么?

22.什么是对象?什么是类?对象与类的关系是什么? 23.类的定义中包括那些基本信息?

24.定义一个类包括定义类头和定义_______两个部分。 25.类变量与实例变量的区别? 26.类方法与实例方法的区别? 27. 什么叫构造函数重载?

28.什么是方法,以及方法的作用? 29.Java中引入包的优点是什么?

30.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包? 31.如何运行被打包后的字节码文件?

32、创建一个名为Rectangle的类来表示一个使用宽度和高度来改变量的矩形,矩形的宽度和高度由构造方法来确定。为Rectangle类创建下列方法:

? getArea返回矩形的面积,要求长和高的范围为0~50; ? getPerimeter返回矩形的周长;

? Draw使用星号(*)作为描绘字符画出该矩形(假设宽度和高度为整数); 在另一个类TestRectangle中编写main方法来测试Rectangle类。 33、编写一个程序,统计给定文件中每个字母出现的频率。

34、编写一个程序,统计给定文件中包含的单词数目,并按单词表的顺序显示统计结果。

第四章 继承和多态

1、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( ) A、ArrayList myList=new Object(); B、ArrayList myList=new ArrayList(); C、ArrayList myList=new List(); D、List myList=new List();

2.在某个类A中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的声明的是( )。

A)Void GetSort(float x) B)int GetSort(int y)

C)double GetSort(int x,int y) D)void Get(int x,int y) 3.为了区分重载多态中同名的不同方法,要求( )。

A) 采用不同的形式参数列表 B) 返回值类型不同 C) 调用时用类名或对象名做前缀 D) 参数名不同

4.下列选项中,用于在定义类头时声明父类名的关键字是( )。 A)return B) interface C) extends D) class

5、下列说法哪个是正确的? ( ) A)子类不能定义和父类同名同参数的方法 B)子类只能继承父类的方法,而不能重载

C)重载就是一个类中有多个同名但有不同形参和方法体的方法 D)子类只能覆盖父类的方法,而不能重载 6、关于类的继承以下说法错误的是( )。 A.在java中类只允许单一继承 B.在java中一个类可实现多个接口

C.在java中一个类可以同时继承一个类和实现一个接口 D.java允许多重继承

7. Java语言的类间的继承关系是( )。

A) 多重的 B) 单重的 C) 线程的 D) 不能继承8. 为了区分重载多态中同名的不同方法,要求( )。 A)采用不同的形式参数列表 B) 返回值类型不同 C)调用时用类名或对象名做前缀 D) 参数名不同 9、阅读下面的程序(或程序片段),回答问题 。 现有类说明如下: class A { int x=10; int GetA(){return x;} }

class B extends A { int x=100; int GetB(return x;} } 问题:

1)类A与类B是什么关系?

2)类B是否能继承类A的属性x?

3)若b是类B的对象,则b.GetA()的返回值是什么? 4)若b是类B的对象,则b.GetB()的返回值是什么?

5)类A和类B都定义了x属性,这种现象称为什么? 10、阅读下面的程序: public class test {

public static void main(String argv[]) {

Bird b = new Bird(); b.Fly(3); } }

class Bird {

static int Type = 2;

private void Fly(int an_Type) {

Type = an_Type;

System.out.println(\ } }

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

11、阅读下面的程序:

abstract class Base{

abstract public void myfunc(); public void another(){

System.out.println(\ } }

public class Abs extends Base{

public static void main(String argv[]){ Base b = new Abs(); b.another(); }

public void myfunc(){

System.out.println(\ }

public void another(){ myfunc(); } }

以上程序经编译后,运行结果是什么?

12、写出以下程序的运行结果。 public class Test_2 { public static void main(String[ ] args)

{ System.out.println( fun(3, 4, 5) ); } static int fun(int x, int y, int z) { return fun( x, fun(y,z) ); } static int fun(int x,int y) { return x*y; } }

13.阅读以下程序,写出输出结果。 class First{ public First(){ aMethod(); } public void aMethod(){ System.out.println(“in First class”);} }

public class Second extends First{ public Second(){ aMethod(); } public void aMethod(){ System.out.println(“in Second class”);} public static void main(String[ ] args){ new Second( ); } }

14

import java.io.*;

public class Test //主类定义已给出 {

public static void main(String args[]) { }

class Circle //类Circle定义,请填写完整 {

final float PI=3.14159f; //添加属性radius

}

Cylinder c=new Cylinder(2, 5); System.out.println(c.toString());

double radius;

//添加构造函数Circle (double r) public Circle (double r) {

radius=r;

}

//添加getRadius()方法 public double getRadius() {

return radius; }

//添加findArea()方法 public double findArea() {

return PI*getRadius()*getRadius(); } }

class Cylinder extends Circle //类Cylinder定义,请填写完整 {

//添加属性length double heigth;

//添加构造函数Cylinder(double r, double l) public Cylinder(double r, double h ) {

super(r); heigth=h;

}

//添加findVolume()方法 public double findvolume() { } {

String slt=\

slt=\ String.valueOf(this.radius)+\ String.valueOf(this.heigth)+\ String.valueOf(this.findvolume()); return slt; } }

15、阅读下面的程序: class Super{ public int i=0; public Super(){ i=1; }

}

public class Sub extends Super{ public Sub(){ i=2; }

public static void main(String args[]){ Sub s=new Sub();

System.out.println(s.i); } }

上面的程序经编译后,运行结果是什么?

16、阅读下面的程序: class ValHold {

public int i = 10; }

double volume;

volume=this.findArea()*heigth; return volume;

//添加toString()方法,返回圆柱体的半径、高、体积等信息

public String toString()

public class ObParm

{

public static void main(String argv[]) {

ObParm o = new ObParm(); o.amethod(); }

public void amethod() {

int i = 99;

ValHold v = new ValHold(); v.i = 30;

another(v,i);

System.out.print(v.i);

}

public void another(ValHold v, int i) {

i = 0; v.i = 20;

ValHold vh = new ValHold(); v = vh;

System.out.print(v.i); System.out.print(i); } }

上面程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

17、阅读下面的程序,写出带划线语句的注释,并写出运行结果。 import java.awt.*; import javax.swing.*;

public class Test {// 继承JFrame private int screenOffset = 80; public Test() {

super( \ ; // 设置JFrame的大小为300*300 show(); // }

public void paint( Graphics g ) {

for ( int i = 1; i <= 8; i++ ) {

int origin = screenOffset + 80 - i * 10; g.drawOval(origin, origin, i * 20, i * 20); }

}

public static void main( String args[] ) {

Test application = new Test();

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); } }

18、请写出下面程序的运行结果。 public class Test extends TT{ public void main(String args[]){ Test t = new Test(\}

public Test(String s){ super(s);

System.out.println(\}

public Test(){ this(\}

}

class TT{

public TT(){

System.out.println(\}

public TT(String s){

this();

System.out.println(\} }

结果: 19、给定下面的未完成的代码片断: public class Example{ int x,y;

public Example(int a){ ??.. x = a; }

public Example(int a, int b){

//和上面一个参数的构造方法做同样的操作,包括赋值 x=a y = b; }

}

如果要用最简捷的一行代码实现\和上面一个参数的?\注释所指出的功能,请写出你认为最合适的一行代码:

20.构造方法在类中的作用是什么?

21.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样? 22.什么是方法的重载?

23. 是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。

24.派生类构造方法可以通过关键字_______调用基类构造方法。

25.编写一个完整的Java Application 程序。包含类Circle,类Cylinder, 类Test,具体要求如下: ?类Circle ① 属性

radius: double型,表示圆的半径。

② 方法

Cirle( double r):构造函数,将半径初始化为r。 double findArea():返回圆的面积。 double getRadius ():返回圆的半径。 ?类Cylinder 继承Circle类,并有以下属性和方法: ① 属性

length: double型,表示圆柱体的高。 ② 方法

Cylinder(double r, double l ):构造函数,给圆柱体的半径和高赋初值。 double findVolume():返回圆柱体的体积。

toString():返回圆柱体的半径、高、体积等信息。 ?主类Test

① 生成Cylinder对象。

② 调用对象的toString方法,输出对象的描述信息。 (注:程序框架和部分源码已给出,请补充完整)

第五章 抽象类与接口

1、以下接口定义正确的是( )。 A.interface ATest

{ void t() { } ;} B.public interface ATest { void t();}

C.abstract interface ATest

{ void t() ;}

D.abstract interface ATest extends ATest 1, ATest 2 // ATest1,ATest 2为已定义的接口 { abstract void t(){ };}

2.以下哪个接口的定义是正确的?( ) A、interface B

{ void print() { } ;} B、abstract interface B

{ void print() ;}

C、abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };} D、interface B

{ void print();}

6. 编写一个完整的Java Application 程序。包含接口ShapeArea,MyRectangle类,MyTriangle类及Test类,具体要求如下: ?接口ShapeArea:

double getArea():求一个形状的面积 double getPerimeter ():求一个形状的周长 ?类 MyRectangle:

实现ShapeArea接口,并有以下属性和方法: ①属性

width: double类型,表示矩形的长 height: double类型,表示矩形的高

②方法

MyRectangle(double w, double h):构造函数 toString()方法 :输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0,

area=2.0”

?类MyTriangle:

实现ShapeArea接口,并有以下属性和方法: ①属性

a,b,c: double型,表示三角形的三条边 s: 周长的1/2(注:求三角形面积公式为 ,s=(x+y+z)/2 ,开方可用Math.sqrt(double)

方法)

②方法

MyTriangle(double x, double y, double z):构造函数,给三条边和s赋初值。 toString():输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0”

7、用面向对象的思想定义一个接口Area,其中包含一个计算面积的方法CalsulateArea(),然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法CalsulateArea(),分别计算圆和矩形的面积,最后写出测试以上类和方法的程序。

8.编写一个完整的Java Application 程序。包含接口ShapeArea,MyRectangle类,MyTriangle类及Test类,具体要求如下: ?接口ShapeArea:

double getArea():求一个形状的面积

double getPerimeter ():求一个形状的周长 ?类 MyRectangle:

实现ShapeArea接口,并有以下属性和方法: ③属性

width: double类型,表示矩形的长 height: double类型,表示矩形的高 ④方法

MyRectangle(double w, double h):构造函数

toString()方法 :输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0”

?类MyTriangle: 实现ShapeArea接口,并有以下属性和方法:

③属性

x,y,z: double型,表示三角形的三条边

s: 周长的1/2(注:求三角形面积公式为 ,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法)

④方法

MyTriangle(double x, double y, double z):构造函数,给三条边和s赋初值。 toString()

three

sides:3.0,4.0,5.0,perimeter=12.0,area=6.0” ?Test类作为主类要完成测试功能

① 生成MyRectangle对象

② 调用对象的toString方法,输出对象的描述信息

9.编写一个完整的Java Application 程序。包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下:

?接口ShapeArea: ①接口方法

double getArea():求一个形状的面积

double getPerimeter ():求一个形状的周长 ?类Circle: 实现ShapeArea接口,并有以下属性和方法: ⑤ 属性

radius: double类型,表示圆的半径

⑥ 方法

Circle(double r):构造函数

toString()方法 :输出圆的描述信息,如“radius=1.0, perimeter=6.28, area=3.14” ?Test类作为主类要完成测试功能 ② 生成Circle对象

② 调用对象的toString方法,输出对象的描述信息

3.什么是接口?为什么要定义接口?接口与类有何异同?

4.如何定义接口?使用什么关键字?

5.一个类如何实现接口?实现接口的类是否一定要重写该接口中的所有抽象方法?

第六章 异常处理 1.有如下代码段:

1)

2) { if(unsafe()){//do something?}

3) else if(safe()){//do the other?} 4) }

其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( )

A、public IOException methodName()

B、public void methodName()

C、public void methodName() throw IOException D、public void methodName() throws IOException 2.类Test1、Test2定义如下:

1. public class Test1

2.{ public float aMethod(float a,float b) throws 3. IOException { } 4. }

5. public class Test2 extends Test1{ 6.

7.}

将以下哪种方法插入行4是不合法的。( ) A、 float aMethod(float a,float b){ }

B、 public int aMethod(int a,int b)throws Exception{ } C、 public float aMethod(float p,float q){ }

D、 public int aMethod(int a,int b)throws IOException{ }

3、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( ) A)找到合适的例外类型后继续执行后面的catch B)找到每个符合条件的catch都执行一次

C)找到合适的例外类型后就不再执行后面的catch

D)对每个catch都执行一次

4、程序员将可能发生异常的代码放在( )块中,后面紧跟着一个或多个( )块。a) catch、try b) try、catch c) try、exception d) exception、try

5、关于异常处理,以下说法错误的是( )。 A.可以使用throw语句抛出异常

B.程序可以使用try、catch、finally语句捕获异常 C.无论try块中是否发生异常,finally标识的代码块都会被执行

D.try语句后只能有一个catch语句

6、有如下代码段: 1.

2.{ if(f1()){//do something?}

3. else if(f2()){//do the other?} 4. }

其中,方法f1() 将抛出IOException, 以下可以填入第1行的是( C )。 A.public IOException function ()

B.public void function() IOException

C.public void function() throws IOException

D.public void function() throw IOException

7、写出4个常见的异常例子: 、 、

和 。重新抛出一个异常用 语句

8、数据越界抛出的异常类是 ,整数除零抛出的异常类是 ,算术溢出抛出的异常类是 。 9、阅读下面的程序Test.java: import java.io.*;

public class Test{

public static void main(String argv[]){ Test t = new Test();

System.out.println(t.fliton()); }

public int fliton(){ try{

FileInputStream din = new FileInputStream(\ din.read();

? }catch(IOException ioe){

? System.out.println(\? return -1; ? }

? finally{

? System.out.println(\? }

? return 0; ? } ? }

如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

10、仔细阅读下面的程序,写出程序的执行顺序(写出编号): public class UsingExceptions {

public static void main( String args[] ) {

try{

method1(); // 1 }catch(Exception e){

System.err.println(e.getMessage()); // 2 } finally{

System.out.println(\ }

}

public static void method1() throws Exception {

method2(); //4 }

public static void method2() throws Exception {

method3(); //5 }

public static void method3() throws Exception

{

throw new Exception( \ } }

11、阅读下面的程序Test.java,先填写空格的内容,然后写出运行结果: import java.io.*; public class Test{

public static void main(String argv[]){

; //创建Test对象,对象名为t System.out.println(t.fliton()); }

public int fliton(){

try{

//第9行的含义是: FileInputStream din = new FileInputStream(\ din.read();

}catch(IOException ioe){ //第11行的含义是: System.out.println(\ return -1; }

finally{

System.out.println(\ } return 0; }

}

如果文件test.txt与Test.java在同一个目录下,test.txt中仅有一行字符串“hello world!”,运行结果是什么?

13.什么是异常?举出程序中常见的异常的种类? 14.Java中异常处理有什么优点?

15.在Java中,throw与throws有什么区别?他们各自用在什么地方?

16.请设计一个Java程序,程序中要进行数组操作和除法操作,要求对所设计的程序可能出现的异常进行处理。

17.定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常。(其中邮件地址的合法格式为**** @****,也就是说必须是在@符号左右出现一个或多个其他字符的字符串。)

18.try-catch-finally语句的执行顺序是怎样的?

第七章 数组,Java类库

1、下列数组的定义不合法的是: ( ) A) char c[][]=new char[2][3]; B) char c[][]=new char[6][]; C) char [][]c=new char[3][3]; D) char [][]c=new char[][4]; E) int []a[] = new int[10][10];

2.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。 A) 定义了一个名为a的一维数组 B) a数组有3个元素 C) a数组的下标为1~3 D)数组中的每个元素是整型 3. 下面是一个排序的程序: import java.io.*; public class Test56_Sort {

public static void main(String args[ ]) {

int[] a={42,99,5,63,95,36,2,69,200,96}; System.out.println(\排序前的数据序列:\ShowArray(a);

Sort(a);

System.out.println(\排序后的数据序列:\ShowArray(a); }

public static void Sort(int[] x) {

int w;

for(int i=1; i

for(int j=0; jx[j+1])

{ w=x[j]; x[j]=x[j+1]; x[j+1]=w; } /* if(i==1||i==2) ShowArray(x); if(i==2) break; */ }

}

public static void ShowArray(int b[]) {

for(int i=0; i

}

问题: 如果将方法Sort( )中的一对注释符(/* */)去掉,程序输出的结果是什么?

4、写出以下程序的功能。 将数组元素从大到小排序并显示到屏幕上 public class ABC {

public static void main(String args[ ]){

int i , j ;

int a[ ] = { 9,7,5,1,3};

for ( i = 0 ; i < a.length-1; i ++ ) { int k = i;

for ( j = i ; j < a.length ; j++ )

if ( a[j]>a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp;

}

for ( i =0 ; i

System.out.println( ); } }

5、假设已有一个ArrayMethods 类,包含以下的方法:

public static void replace(double[] a, int p, double v) 将数组a中下标为p的元素的值替换为v.

public static void fill(double[] a, int p, double v)

将数组a中的前p个元素用value值填充(即将数组a的前p个元素的值,设成v),如果数组的长度小于p,则全部元素都设成v

public static void display(double[] a) 在屏幕上显示数组a的内容

现在假设你在main()方法中已经声明了如下变量: double[] array1={4.5, 6.0, 0.1, 2.2}; double[] array2; double num1; int pos=3;

要求对下面的3组语句,先回答是否合法(即没有编译错误),如果是合法的,请描述程序运行的效果,如果不合法,请说明理由. 1) num1 = array1[2];

ArrayMethods.replace(array1, pos, num1); ArrayMethods.display(array1);

2) num1 = array1[0];

ArrayMethods.fill(array1, pos, num1); ArrayMethods.display(array1); 3) num1 = array1[1]; array2=new double[num1];

ArrayMethods.display(array2);

6、设计一个类TestArraySum,定义一个含有10个元素的int类型数组a,10个数组元素的值是11~20,再定义一个方法arraySum(int[] a),返回数组所有元素的和,最后用main方法实现在屏幕上输出数组a所有元素的和。 }

7.写出以下程序的功能。计算命令行参数串大小写字母的个数并在屏幕上显示结果 class Test { public static void main(String[] args) { String s; char c;

int upper,lower; upper=lower=0;

s=args[0];

for (int i=0;i

if(c>='a' && c<='z')

lower++;

if(c>='A' && c<='Z') upper++; System.out.println(upper+”,”+lower); }

8.以下程序段的输出结果为 1 2 3 4 5 8 9 public class C

{ public static void main(String args[ ]){ int i , j ; int a[ ] = { 2,1,4,8,9,5,3}; for ( i = 0 ; i < a.length-1; i ++ ) { int k = i; for ( j = i ; j < a.length ; j++ ) if ( a[j]

a[k] = temp; }

for ( i =0 ; i

System.out.print(a[i]+\

System.out.println( ); } }

9.下面程序的功能是输出数组各元素的和。 import java.awt.Graphics; import java.applet.Applet;

public class SumArray extends Applet {

float[] a;

a= new _______[6]; float sum=0.0f;

public void init( ) {

}

。 for ( int j = 0; j < a.length; j++ ) a[j] = j+1;

for ( int i = 0 ; i < a.length; i++ ) sum+= a[i]; }

public void paint( Graphics g ) {

g.drawString( \} }

10.写出以下程序的功能。 将数组元素从大到小排序并显示到屏幕上 public class ABC

{

public static void main(String args[ ]){

int i , j ;

int a[ ] = { 9,7,5,1,3};

for ( i = 0 ; i < a.length-1; i ++ ) { int k = i; for ( j = i ; j < a.length ; j++ )

if ( a[j]>a[k] ) k = j; int temp =a[i];

a[i] = a[k]; a[k] = temp; } for ( i =0 ; i

System.out.println( ); }

}

11.判断下面的说法是否正确。如果错误,请说明原因 ①一个数组中可以存放多个不同类型的值 ②数组下标通常是float型的

③二维数组其实质是一维数组的一维数组 12.找出并改正下面各程序段中的错误 ①设int b[] = new int [10];

for ( int i = 0; i <= b.length; i++ ){ b[ i ] = 1; }

②设 int a[][] = { { 1, 2 } {3, 4} }; a[ 1, 1] = 5;

③int a[10] = new int[ 10 ]; 13.写出下面代码的输出结果

int[][] a = new int[10][5]; System.out.println(a.length); System.out.println(a[3].length);

14.设有一个名为table的数组,试执行以下任务

a)声明并创建该数组为3行3列的整数数组。 b)该数组包含多少个元素? c)用for结构将数组的每个元素初始化为各自下标的和(假设整数变量i,j为控制变量)

15.将一个数组中的值按逆序重新存放。假定原来的顺序为4,1,3,5,9,2,1。要求改为1,2,9,5,3,1,4。

16.现有类Book定义如下 Class Book{ private String author;//作者 private String ISBN;//书号 private double price;//价格 public String getAuthor(){ return this.author; } //返回作者名 public void setAuthor(String author){ this.author = author; } //设置作者名 public String getISBN(){ return this.ISBN; } //返回书号 public void setISBN(String ISBN){ this.ISBN = ISBN; }//设置书号 public double getPrice() { return this.price; }//返回书价 public void setPrice() { this.price = price ; }//设置书价 } 请用1个数组存放随机产生的10个书籍对象的数据,并显示其中书价最高图书的书号。(要求使用对象数组完成)

17. 写出比较2个字符串是否相同的方法,并加以说明。

18. 写一个输出整数10以内的奇数的Java程序,每个输出项之间空一个制表符位置。

第八章 界面编程

1、Container 的________方法可以将_______组件加入容器。

2、使用 方法为组件设置布局管理器,JFrame的缺省布局管理器是 ,内容面板的缺省布局管理器是 。

3、FlowLayout布局管理器按照组件加入容器的次序从( )到( )排列组件。 a) 上、下 b) 右、左 c) 左、右 d) 前、后

4. 利用AWT基本组件创建一个Frame窗口,在窗口中放一个按钮1(Button1)和一个面板(Panel1),在面板上放另一个按钮2(Button2)。

5、阅读下面的程序,写出带划线语句的注释,并写出运行结果。 import java.awt.*;

import javax.swing.*;

public class Test {// 继承JFrame private int screenOffset = 80; public Test() {

super( \ ; // 设置JFrame的大小为300*300 show(); // }

public void paint( Graphics g ) {

for ( int i = 1; i <= 8; i++ ) {

int origin = screenOffset + 80 - i * 10; g.drawOval(origin, origin, i * 20, i * 20); } }

public static void main( String args[] ) {

Test application = new Test();

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); } }

6、下列说法哪个是正确的? ( ) A) BorderLayout是面板的缺省布局管理器

B) 当鼠标指针位于一个GUI组件的边上时,发生一个MouseOver事件 C) 一个面板(Jpanel) 不能被加入到另一个面板(Jpanel)中 在BorderLayout中,添加到NORTH区的两个按钮将并排显示 7、创建下图的GUI程序(注意:不需要提供任何功能)。 8、容器Frame使用的缺省布局编辑策略是( B )。 A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout

9、下面哪个不是Java中的容器? ( A )

A、Canvas B、ScrollPane C、Applet D、Dialog

10、使用 方法为组件设置布局管理器,JFrame的缺省布局管理器是 ,内容面板的缺省布局管理器是 。 11.下面哪个不是Java中的容器? ( )

A、Canvas B、ScrollPane C、Applet D、Dialog 12、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?( ) A、CardLayout B、FlowLayout C、BorderLayout D、GridLayout

13.选择正确的选项:

(1) 下列属于图形用户界面元素的有: A. Applet B. 窗口 C. 按钮 (2) 下列属于容器的组件有:

D. 线程

A. JButton B. JFrame C. JPanel D. JApplet

(3)每个使用Swing组件的程序必须至少有一个: A. 按钮 B. 顶层容器 C. 标签 D. 菜单

(4)如果希望所有的控件在界面上均匀排列,应该使用下列那种布局管理器? A. BoxLayout B. GridLayout C. BorderLayout D. FlowLayout (5)监听事件和处理事件:

A. 都由Listener完成

B 都由在相应事件Listener处登记过的组件完成 C 由Listener和组件分别完成 D. 由Listener和窗口分别完成 (6) Applet可以做下列哪些操作? A. 读取客户端文件 C. 在客户端装载程序库

B. 在客户端主机上创建文件 D. 读取客户端部分系统变量

14、用图形界面设计一个简单的计算器。

15、创建一个Frame,有两个Button按钮和一个TextField,点击按钮,在TextField上显示Button信息。

16、用图形界面实现简单的银行柜台业务,包含创建新帐户、取款、存款、查询帐户余额等业务。

17、欲编写如下图的一个界面,用于显示用户指定的图像: 如果在区域A中只能放置一个AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件:( ) A、TextArea B、Panel C、Applet

D、Canvas

18.对话框有 和 两种。这两种对话框的区别是:当 对话框弹出时,只有关闭此对话框才能继续进行其它窗口的操作;当 对话框弹出时,即使不关闭,也可以对后面的的窗口进行操作。 19.用户可以使用 类提供的方法来生成各种标准的对话框,也可以使用 类根据实际需要生成自定义对话框。

20. 方法将JMenuBar添加到JFrame中。

21. 类可用于创建菜单对象。 方法可以在菜单中放置分隔条。

22.使用Swing中的组件绘制下图所示的对话框。(提示:使用setBounds()方法来设置组件在对话框中的位置和大小)

23

(1) 实现下图效果,通过选择单选按钮中的选项来设置标签组件的内容,由标签组件显示我们的选择。

(2) 实现下图效果,当用户输入密码后,按下“登录”按钮,然后我们将密码输入是否正

确的结果显示在文本域中。

(3)

(4) 利用事件,实现下图效果,即点击图1按钮,弹出图图1。图4.3.27单击按钮改变背景颜色。

图1请单击按钮 图2 改变背景色

24. 请完成下列Java程序:用位于JFrame窗口下方的Open按钮,打开一个文件对话框,检索.gif或者.png图形文件,并在窗口中央将图象显示出来.(提示:将图象文件嵌入图象标内,再将图像图标置于标签中)

注意:请勿改动main主方法和其他已有语句内容,仅在下划线处填入适当的语句. import java.awt.*; import jova.awt.event.*; import java.io.*;

import javax.swing.*; public class ImageViewer

{ public stratic void main(String[]args)

{ JFrame frame=new ImageViewer Frame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show(); } }

class ImgeViewerFrame extends JFrame { public ImageViewerFrame()

{ setTitle(\

setSize(DEFAULT_WIDTH,DEFAULT_HEIGTH); label = new JLAbel();

Container contentpane = getContentpane(); contentpane.add(label.BorderLayout.CENTER); chooser = new JFileChooser();

chooser.setCurrentDirectory(new File(\ Button button = new Button(\ contentpane.add(button,BorderLa yout.SOUTH);

button.addActionListener(new ActionListener()

{ public void actionperformed(ActionEvent evt) { int r = chooser.showOpenDialog(null)}; if(r = = JFilechooser.APPROVE_OPTLON) { String name

=________________

_______________ } } }};

}

private JLabel label;

private JFileChooser chooser;

private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 400; }

用Applet改写上面程序.编程题

第九章 Applet编程

1.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 public void paint(Graphics ____ ) { int i=689;

a.drawString ( ________+ i ,20,60); }

2.在浏览器中执行applet 程序,以下选项中的哪个方法将被最后执行( C )。 A、init() B、start() C、destroy() D、stop() 3.在编写Java Applet程序时,需要在程序的开头写上( B )语句。 A、import java.awt.* ; B、import java.applet.* ; C、import java.io.* ; D、import java.awt.event.* ;

4.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( A )。 A、init() B、start() C、destroy() D、stop() 5.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( D A、init() B、start() C、destroy() D、stop()

6.编译Java Applet 源程序文件产生的字节码文件的扩展名为( B )。 A、java B、class C、html D、exe 7.下面哪个方法与applet的显示无关?( A )

A、draw() B、 update() C、repaint() D、paint() 8、下面关于Applet的说法正确的是 ( ) A、Applet也需要main方法

B、Applet必须继承自java.awt.Applet C、Applet能访问本地文件 D、Applet程序不需要编译

9. Applet可以做下列那些操作?( )

A)读取客户端文件 B)在客户端主机上创建新文件 C)在客户端装载程序库 D)读取客户端部分系统变量

10.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 __________ void paint(Graphics g)

) { g.____________(\你好!\

11、编写一个Java Applet,在屏幕上输出“Welcome to Java”。 12、编写一个Java Applet,在屏幕上画出一个半径为50的圆。 13. Java Applet的基本工作原理是什么? 14.Applet小应用程序的生命周期有哪些过程? 15.Applet小应用程序运行的过程怎样?

16.请编写一个小应用程序,在显示图片的同时播放音乐。

第十章 文件,流和输入输出技术

1、要从文件“file.dat”文件中读出第10个字节到变量C中,下列哪个方法适合?( )

A、FileInputStream in=new FileInputStream(\in.skip(9); int c=in.read();

B、FileInputStream in=new FileInputStream(\in.skip(10); int c=in.read();

C、FileInputStream in=new FileInputStream(\

D、RandomAccessFile in=new RandomAccessFile(\in.skip(9); int c=in.readByte();

2、创建文件(c:\\test.txt)对象的语句是 ,DataInputStream对象提供 方法可以按行读取文件内容。

3、以下哪一项不是File类的功能: ( ) A)创建文件 B)创建目录 C)删除文件 D)拷贝文件

4、下面哪个不是InputStream类中的方法: ( ) D) int read(byte[]) E) void flush() F) void close() int available()

5.简述字符流和字节流的区别。

6.编写一段代码实现以下功能:统计一个文件中字母“A”和“a”出现的总次数。 7.编写一段代码实现如下功能:顺序读取一组文件(文件数不小于3)中所有数据,并写到新文件中。如果在读/写的过程发生了错误,则将错误信息输出到屏幕上。 8.编写一个程序,将一个图象文件复制到指定的文件中。

9.Character流与Byte流的区别是( )

A)每次读入的字节数不同 B)前者带有缓冲,后者没有 C)前者是块读写,后者是字节读写 D)二者没有区别,可以互换使用 10、写出以下程序的功能。

import java.io.*; public class C {

public static void main(String[] args) throws IOException {

File inputFile = new File(“a.txt\

File outputFile = new File(“b.txt\

FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c;

while ((c = in.read() ) != -1) out.write(c);

in.close();

out.close(); } }

11、写出以下程序的功能。 import java.io.*;

class Test_4{ public static void main(String[ ] args) throws IOException {

}

int b;

FileInputStream fileIn=new FileInputStream(\while((b=fileIn.read())!=-1){ System.out.print((char)b); } }

12.写出以下程序的功能。 import java.io.*; public class C {

public static void main(String[] args) throws IOException { File inputFile = new File(“a.txt\ File outputFile = new File(“b.txt\

FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile);

int c;

while ((c = in.read() ) != -1) out.write(c); in.close();

out.close(); }

}

13、编写一个文件拷贝的程序,将文件C:\\test1.txt的内容拷贝到C:\\test2.txt中 14. 写一个Java Application程序,从键盘输入一个字符,输出这个字符的整数数值,以‘#’号键结束输入。

15.RandomAccessFile类的主要用途是什么?它和File类有什么区别?

16.编写一程序,利用RandomAccessFile类将一个文件的全部内容追加到另一个文件的末尾。

17.编写一程序,利用RandomAccessFile类往新文件中写入20个整数(0~19),然后从该文件的第12个字节开始,将后面所有的数据读出。

第十一章 多线程应用编程

1、线程通过 方法可以休眠一段时间,然后恢复运行,当 时,线程进入死亡状态。

2、编写一个线程可以用 和 来实现。 3、在java程序中,下列关于线程的说法错误的是: ( ) A) run方法是运行线程的主体

B) 多个进程运行时执行顺序是按顺序执行的 C) 如果线程死亡,它便不能运行

D) 在java中,高优先级的可运行线程会抢占低优先级线程 4、以下哪个方法用于定义线程的执行体? ( C ) A、 start() B、init()

C、run()

D、synchronized()

5.以下哪个方法用于定义线程的执行体? ( C ) A、 start() B、init() C、run() D、synchronized()

6、如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,同时又能够为线程提供运行代码(run()方法),请写出该类的声明头。 你的解答: 7.进程与线程有何区别?

8.Java支持多线程有两个方法 和 。 9.在Java语言中多线程程序设计的两种方法是 和 。 10.线程的四种状态是 、 、 、 。

11.指定线程阻塞多长时间的方法是 。

12.在Java语言中,线程的实现部分(线程体)应书写在方法 中。 13.在Java语言中,实现线程的同步执行要用到关键字 。 14.创建Image图像对象时,可用方法 。

15.drawImage()方法有显示图像、 和 的功能。 16.在应用程序中装载图像可借助于 类的对象。

17.写出以下程序的功能。从键盘输入一行字符,显示到屏幕上 import java.io.*;

public class ReadString{ public static void main(String[ ] args){ BufferedReader

InputStreamReader(System.in));

br=new

BufferedReader

(new

try{

System.out.println( br.readLine()); }catch(IOException e){}

}}

18.什么是线程的生命周期?线程在它的生命周期中都有哪些状态?

19.如何改变线程的状态?run()方法的作用与start()方法的作用有什么不同? 20.什么是线程的优先级?它的主要用途是什么? 21. 什么叫多线程?Java支持多线程有何意义?

第十二章 利用JdbC访问数据库

1、关于JDBC访问数据库的说法错误的是: ( ) A) 建立数据库连接时,必须加载驱动程序,可采用Class.forName()实现

B) 用于建立与某个数据源的连接可采用DriverManager类的getConnection方法 C) 建立数据库连接时,必须要进行异常处理

D) JDBC中查询语句的执行方法必须采用Statement类实现

2. Java程序运行时,引入 包可以使得程序具有访问不同类型数据库的功能。

本文来源:https://www.bwwdw.com/article/gdtp.html

Top