合肥学院JAVA期末考试复习题库

更新时间:2023-12-20 17:00:01 阅读量: 教育文库 文档下载

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

一、判断题:

1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字

free。(F) 回收不用free 2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与

赋值对象相同的新对象。(F) 字符串类型的变量是不能赋非字符串的值,如string str=”a” int b=0, str=b是错误的

3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。(F) 不定义构造函数,编译器会使用默认构造函数,并不代表构造函数不存在

4.类及其属性、方法可以同时有一个以上的修饰符来修饰。(T)

5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点 (F)应该是左上角

6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。(F)//含有抽象方法的类必须声明为抽象类,抽象方法不能为private的,因为抽象方法没有具体的实现,需要在子类中继承并重写来具体实现。抽象方法必须重写实现其具体的功能。方法永远不能同时标示为abstract和final,因为abstract修饰的方法必须要重写实现其方法,而final是阻止重写的。Private和abstract也不能同时修饰方法,因为private阻止继承,也就是阻止了重写实现,这与abstract也是相违背的。Abstract不能和static同时使用,static是静态的,就是在编译时已经确定的东西,当然不能是抽象(动态)的,那是运行时才能确定的东西。

7. Final类中的属性和方法都必须被final修饰符修饰。(F) 静态的必须被静态的修饰符修饰

8.最终类不能派生子类,最终方法不能被覆盖。(T) 9.子类要调用父类的方法,必须使用super关键字(F)。 10.一个Java类可以有多个父类。(F)

11、 Java中,如果类C是类B的子类,类B是类A的子类,则C不仅继承了B

中的成员,同样也继承了A中的成员。(T)

12、文本区和文本框都能引发两类事件:文本改变事件和动作事件。(T) 13、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。(F) 抽象类中的方法必须有抽象方法,也可以有非抽象方法

14、程序中一旦执行了catch语句块,则不会执行finally语句块。(F)

Finally语句块的作用就是为了保证无论出现什么情况,一定要执行的,那么finally里的code肯定会执行,并且是在return前执行.(只要语句执行了,肯定是在return前执行的.finally中也可以有return,并且会覆盖其他的return

根据java规范:在try_catch_finally中,如果try_finally或者catch_finally中都有

return,则两个return语句都执行并且最终返回到调用者那里的是finally中的return的值;而如果finally中没有return,则理所当然的返回的是try或者catch中的return的值,但是finally中的代码是必须要执行的,方法在return的时候并不是把它所拥有的那个值给返回了,而是复制一份返回.因此,对于基本类型的数据,在finally中改变return的值对返回值没有任何影响,而对于引用类型的数据就有影响)

15、接口Java.lang.runnable中只有一个run()方法。(T)多线程接口

(java.lang.runnable)线程接口runnable中只有一个抽象方法run,通过runnable接口中的方法的类即可创建出多线程

二、选择题:

1、关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是( B )

A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其 他包中的该类的子类

B. 可以被两种类访问和引用:该类本身、该类的所有子类 C. 只能被该类自身所访问和修改 D. 只能被同一个包中的类访问

2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C ) A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 3、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是( B )

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

4、下列关于修饰符混用的说法,错误的是( BD )

A. abstract不能与final并列修饰同一个类 B. abstract类中不可以有private的成员 C. abstract方法必须在abstract类中 D. staic方法中能处理非static的属性

5、容器Panel和Applet缺省使用的布局编辑策略是( B )

A、Border Layout B、Flow Layout C、Grid Layout D、Card Layout

6、以下标识符中哪项是不合法的( C )

A、 Big Meaningless Name B、$int C、1 st D、$1

7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( B )

A、 public static void main() B、public static void main(String[ ] args) C、 public static int main(String[ ] arg)D、public void main(String arg[ ])

8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( A )

A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空

9、以下代码段执行后的输出结果为( B )

int x=3; int y=10; System.out.print ln(y%x); A、0 B、1 C、2 D、3

10、以下哪个表达式是不合法的( B )

A、String x=”Hello”; int y=9; x+=y;

B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y;

D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length : 0

11、在JAVA的异常处理模型中,能单独和finally语句一起使用的块是( A )。

A、try B、catch C、throw D、throws

12、下列关于修饰符混用的说法,错误的是( BD)

A、abstract不能与final并列修饰同一个类 B、abstract类中不可以有private的成员 C、abstract方法必须在abstract类中 D、staic方法中能处理非static的属性

13、以下关于布局的说法,错误的是( C )p159

A、 Border Layout是边框布局,它是窗体的默认布局 B、 null是空布局,它是面板的默认布局

C、 Flow Layout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列, 一行排满之后就转到下一行继续从左至右排列 D、 Grid Layout是网格布局,它以矩形网格形式对容器的组件进行布置。容

器被分成大小相等的矩形,一个矩形中放置一个组件

14、如果需要从文本文件中读出数据,则可以在程序中创建哪一个类的对象A A、FileInputStream B、FileOutputStream C、DataOutputStream D、FileWriter

三、程序阅读题:

1、阅读以下程序,输出结果为 1.23 。

class Q1{ public static void main(String args[]){ double d=1.23; Dec dec=new Dec( ); dec.decrement(d); System.out.print ln(d); }

class Dec{ public void decrement(double dec Me){ dec Me = dec Me - 0.1;

}

}

2、以下程序的输出结果为 value is Hello 。 public class Short{ public static void main(String args[ ]) { StringBuffer s = new StringBuffer(“Hello”);//StringBuffer是字符串变量 if((s.length( )>5)&& (s.append(“there”) . equals(“False”))) ; System.out.println(“value is ”+s); } }

3、以下程序段的输出结果为 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”); }

4、以下程序段的输出结果为 Value is two. Value is three. int j=2; switch ( j ) { case 2: System.out.print(“Value is two.”); case 2+1 : System.out.println(“Value is three.”); break; default: System.out.println(“value is “+j); break; }

5、以下程序段的输出结果为

正常:d=20 异常处理结束! 算术异常

异常处理结束! 正常:d=5

异常处理结束! 下标越界异常! 异常处理结束!

。 public class E3{

public static void main(String args[]) { int array1[]={5,0,20}; for(int i=0;i<=array1.length;i++) { try{ int d=100/array1[i]; System.out.println(\正常:d=\ catch(ArithmeticException e) {System.out.println(\算术异常\ catch(ArrayIndexOutOfBoundsException e){System.out.println(\下标越界异常!\ finally {System.out.println(\异常处理结束!\\n\}}

四、程序编程题:

1、编写一个Applet程序,利用Graphics类可绘制的图形:直线、直角矩形、圆角矩形、多边形、圆和椭圆,各个图形的坐标可以自定义。

import java.awt.*;

import java.awt.event.*;

public class GraphicsTest extends Frame{

private class WindowCloser extends WindowAdapter {

public void windowClosing(WindowEvent e) {

System.exit(0); } }

public GraphicsTest() {

super(\); setSize(200,200); setVisible(true);

addWindowListener(new WindowCloser()); }

public void paint(Graphics g) {

g.setColor(Color.black); g.drawLine(10,40,30,40); g.setColor(Color.blue); g.drawRect(30,40,100,200); // g.setColor(Color.red);

// g.drawPolygon();//封闭的多边形 g.setColor(Color.yellow); g.drawOval(40,60,100,200); }

public static void main(String args[]) {

GraphicsTest x= new GraphicsTest(); } }

2、编写一个Applet程序,包括一个标签对象prompt和一个按钮对象btn,实现ActionListener接口,监听并处理btn引发的动作事件。要求当单击按钮时,标签对象上的字符发生改变。

3、编写一个Application或者Applet程序,包含一个TextField对象tf和一个Text Area对象ta,实现了Text Listener接口和Action Listener接口,要求当用户在tf中

输入或修改文本时,在tf文本区域中可以得到一个同步的拷贝。当用户在tf中输入回车时将tf中的文本清空。

4、创建一个标题为“按钮”的窗框,窗框中显示有“按下我”字样的按钮。

4解:

import java.awt.*;

public class A extends Frame { private Button B= new Button(\按下我\); public A() { super(\按钮\); add(B); pack(); setVisible(true); } public static void main(String args[]) { A C = new A(); } }

public class Point2D {

private int x; private int y;

public Point2D(int x,int y){ this.x=x; this.y=y; }

public void offset(int a, int b) {

x=x+a; y=y+b; }

共 6 页,第 6 页 static double Dist(Point2D p2d1,Point2D p2d2) {

System.out.println(\点p2d1\+\+p2d1.x+\+p2d2.y+\+\与点p2d2\+\+p2d2.x+\+p2d2.y+\+\之间的距离为\);

return(Math.sqrt((p2d1.x-p2d2.x)*(p2d1.x-p2d2.x)+(p2d1.y-p2d2.y)*(p2d1.y-p2d2.y))); }

public static class Point3D extends Point2D {

private int x,y,z;

Point3D(int x,int y,int z) {

super(x,y); this.x=x; this.y=y;

this.z=z; }

public void offset(int a, int b,int c) {

x=x+a; y=y+b; z=z+c; }

static double Dist(Point3D p3d1,Point3D p3d2) {

System.out.println(\点p3d1\+\+p3d1.x+\+p3d1.y+\+p3d1.z+\+\与点p3d2\+\+p3d2.x+\+p3d2.y+\+p3d2.z+\+\之间的距离为\);

return(Math.sqrt((p3d1.x-p3d2.x)*(p3d1.x-p3d2.x)+(p3d1.y-p3d2.y)*(p3d1.y-p3d2.y)+(p3d1.z-p3d2.z)*(p3d1.z-p3d2.z)));} }

public static void main(String[] args) {

Point2D p2d1 = new Point2D(1,2);

p2d1.offset(10, 11); //p2d1的平移量,即变换之后就变成了p2d1=(11,13)了。 // Point2D p2d2 = new Point2D(11,13); Point2D p2d2 = new Point2D(3,4); Point3D p3d1 = new Point3D(1,2,3);

p3d1.offset(2,3,4);//p2d1的平移量,即变换之后就变成了p3d1=(3,5,7)了。 Point3D p3d2 = new Point3D(2,3,4); double p1,p2; System.out.println(Point2D.Dist(p2d1,p2d2)); System.out.println(Point3D.Dist(p3d1,p3d2)); } }

复数加减

import java.util.*; public class Complex { public int x,y;

Complex(int x,int y){ this.x=x; this.y=y; }

public static void showComp(int x,int y) {

if(y>=0)

System.out.println(x+\+y+\); else

System.out.println(x+\+(-y)+\); }

public static void addComp(Complex C1,Complex C2){

// System.out.println((C1.x+C2.x)+\ showComp(C1.x+C2.x,C1.y+C2.y); }

public static void subComp(Complex C1,Complex C2){ showComp(C1.x-C2.x,C1.y-C2.y); }

public static void multiComp(Complex C1,Complex C2){ showComp(C1.x*C2.x-C1.y*C2.y,C1.x*C2.y+C1.y*C2.x); }

public static boolean equalComp(Complex C1,Complex C2) {

if((C1.x==C2.x)&&(C1.y==C2.y)) return true; else

return false; }

public static void main(String args[]) {

Complex C1 = new Complex(5,8); Complex C2 = new Complex(7,12); addComp(C1,C2); subComp(C1,C2); multiComp(C1,C2);

System.out.println(equalComp(C1,C2)); } }

Point3D:

class Point2D{ int x,y;

Point2D(int a,int b) {

x=a; y=b; }

void offset(int a,int b){ x=x+a; y=y+b; } }

public class Point3D extends Point2D{ private int z;

Point3D(int a,int b,int c){ super(a,b); z=c; }

Point3D(Point2D p2,int c){ super(p2.x,p2.y); z=c; }

void offset(int a,int b,int c){ x=x+a; y=y+b; z=z+c; }

//void distance(Point2D p,Point2D p2){} public static void main(String[] args){ Point2D p2d1= new Point2D(2,1);

Point2D p2d2= new Point2D(2,2); Point3D p3d1= new Point3D(2,1,1); Point3D p3d2= new Point3D(2,1,2); double cx,cy,dx,dy,dz; cx=p2d1.x-p2d2.x; cy= p2d1.y-p2d2.y;

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

Top