Java程序设计期末考试题

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

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

Java程序设计期末考试题 一、选择题

下列说法中,不正确的是( A )

A) 一个java源程序编译通过后,得到的结果文件数也只有一个。 B) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。

C) 一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java。 D) 一个java源程序可以包含多个class类。

请问,以下哪些描述是正确的? 请选择所有正确答案:

(1)如果package语句存在,则必须出现在源文件的非空白首行。 (2)如果import语句存在,则必须出现在源文件的非空白首行。 (3)如果main()方法存在,则必须出现在源文件的非空白首行。 (4)如果在源文件中声明了一个public接口,则其名称必须和源文件名一致。

请问,以下哪些是Java中的合法标识符? 请选择所有正确答案: (1)my-id (2)my_id

(3)101ids (4)id101

请问,以下哪些是合法的标识符? 请选择所有正确答案: (1)%abcd (2)$abcd (3)1abcd (4)package (5)_a_long_name

以下哪个不是Java的关键字?( ) A、FALSE B、const C、this D、void

以下哪个不是Java的关键字?( ) A、TRUE B、goto C、this D、void

Java的字符类型采用的是Unicode编码方案,每个( )个比特位。 A、8 B、16

Unicode码占用C、32 D、64

请问一下哪些修饰符用于声明一个常量?请选择一个正确答案: static final abstract public

给出以下代码,该程序的运行结果是什么? public class Example{ final int x=0; Example(){ x=1; }

final int aMethod(){ return x; } }

请选择所有正确答案:

代码编译错误,因为非final类中存在final方法。 代码编译成功。

代码编译错误,因为代码中对一个final变量x有改变其值的操作。 代码编译错误,如果去掉变量x前的final修饰符,可使代码编译通过。

代码编译错误,因为final修饰符只能修饰方法不能修饰变量,因此语句final lint x=0错误.

给出以下代码,请问该程序的运行结果是什么? public class Example{ private final int i=10; private byte k=i;

private static void main(String args[]){ System.out.println(k); } }

请选择一个正确答案: 代码在第2行编译错误

代码在第3行编译时发出变量k不精确警告。 报错是是因为k和i没有声明static,而不是不精确警告。 代码编译成功。

(4) 代码编译成功,但在运行期第5行抛出异常。

给出以下代码,该程序的运行结果是什么? public class Example{ final int x=0; Example(){ x=1; }

final int aMethod(){ return x; } }

请选择所有正确答案:

代码编译错误,因为非final类中存在final方法。 代码编译成功。

代码编译错误,因为代码中对一个final变量x有改变其值的操作。 代码编译错误,如果去掉变量x前的final修饰符,可使代码编译通过。

给出以下代码,请问该程序的运行结果是什么? class Example{

public static void main(String args[]){ int a=5;

System.out.println(cube(a)); }

int cube(int theNum){ return theNum*theNum*theNum; } }

请选择一个正确答案:

代码编译失败,因为方法cube()已经在java.lang.Math类上定义过。 代码编译失败,因为方法cube()不是static方法。 代码编译成功,但运行期抛出异常。 打印输出125。

有代码如下,请补全: public class Example{

public enum Color{Red,Green,Blue}; public void foo(){ //在这里插入代码

System.out.println(c);

} }

for(Color c:Color.values()) for(Color c=RED; c

请问,以下哪些修饰符用于修饰变量,可使该变量属于类而不属于类实例?

请选择一个正确答案: static final abstract transient

设有下面两个类的定义: class Person {

long id; // 身份证号 String name; // 姓名 }

class Student extends Person { int score; // 入学总分 int getScore(){ return score; } }

则类Person和类Student的关系是( )。

A、包含关系 B、继承关系 C、关联关系 D、上述类定义有语法错误

对于以下类: class A{}

class B extends A{} class C extends A{} public class Test {

public static void main(String args[]) { A x= new A(); B y=new B(); C z=new C(); //此处插入一条语句 }

}

下面哪个语句可以放到插入行? ( )

A) x=y; B) z=x; C) z=(C)y; D) y=(A)y;

给出以下代码,请问插入以下哪些语句可以满足对插入语句的要求? public class T{ int r; int s;

T(int x,int y){ r=x; s=y; } }

class S extends T{ int t;

public S(int x,int y,int z){

//插入代码处:要求插入代码实现r=x,s=y t=z; } }

请选择一个正确答案:

T(x,y); this(x,y); super(x,y); super(x,y,z); 以上均不对。

请问以下哪些关于构造器的描述是正确的? 请选择所有正确答案: 子类可以继承父类的构造器。

如果没有提供任何构造器,编译器自动为类提供一个无参的默认构造器。

构造器的返回类型均为void。 构造器可以抛出异常。

---------------------------------------------------------------------

请问,以下哪些是有关方法覆盖的正确描述? 请选择所有正确的答案:

覆盖的方法和被覆盖的方法具有相同方法名、参数列表和返回类型。 覆盖的方法的访问范围声明不能比被覆盖的方法的访问范围小。 覆盖的方法不能抛出被覆盖的方法不能抛出的异常。 被覆盖的方法不能被private修饰。

在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。

A、private B、protected

C、private protected D、public

已经声明了类“public class Th implements Runnable”,下面哪条 语句可以启动该类型的线程?

A. Thread t=new Thread(new Th()); t.start(); B. new Th.start();

C. Th t=new Th(); t.start(); D. Th t=new Th(); t.run();

给出以下代码,请问该程序的运行结果是什么? class Example{

public static void main(String args[]){ Object o=new String(\String s=o;

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

}

注意:第四行是错误的,必须将o强制转换成String类型 abcd abcd

请选择一个正确答案: 打印输出abcd和abcd

代码编译失败,第3行发生错误。 代码编译失败,第4行发生错误。 代码编译失败,第6行发生错误。

三、判断题

1.在Java中一个类不能同时继承一个类和实现一个接口。F 2.Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。T

3. 接口ActionListener所对应的事件适配器是ActionAdapter.F 4. 构造方法是类的一种特殊方法,它的方法名必须与类名相同。T 5.在一个Java源程序文件中,可以有多个public类。F 6. Java语言含有指针。F

7. Java程序编译之后所生成文件的扩展名为“.java”。F 8. 假设有一个Java源程序文件,它只定义了一个具有public属性的类Hello,那么编译该文件的命令是“javac Hello”。F 9. BorderLayout使用\东\,\西\,\南\,\北\居中\来指定组件

的位置。T

10.构造方法一般不允许返回任何值,但也不允许标注void。T 11. 要启动一个线程需要调用Thread的方法start.在运行完start之后,该线程就处于运行态了。F

12. 当执行到同步语句“synchronized”的语句块时,引用类型表示式所指向的对象就会被锁住,不允许其他线程对其进行访问,即当前的线程独占该对象。T

13. 抽象类可以实例化,但不能被继承;最终类不能实例化,可以被继承。F

14. Java语言不含有指针与析构方法,所以Java程序只有在结束运行时,才能释放所占用的内存。F 15. Java语言是不区分大小写的。F 16. Java程序源文件的扩展名为“.jar”。F

17.Frame是顶层容器,要使得Frame对象可见必须调用方法setVisible(true)。T

18.以//开始的是多行注释语句。F

19. 在Java语言中,每个ASCII码英文字符占用8个二进制位,而每个中文汉字字符则占用16个二进制位。F 20. 在Java中一个类只能实现一个接口。F

21. 在同一个类中,允许存在具有相同方法名和相同参数列表的方法,只要这些方法的返回类型不相同。T

30.对于数组int [][]t={{1,2,3},{4,5,6}};来说,t.length等于3,

t[0].length等于3.F 32.抽象方法不能含有方法体,并且必须在抽象类中。F

33.Math类中的方法round()的功能是返回与参数最近的整数即:四舍五入后取整。T

34.已知int t=64000在语法上正确,则short s=640000呢?F 36.Java数组中可以放入任何类型的数据。T

39.Java程序分成应用程序和小程序两类,一个Java程序有可能既是应用程序,又是小程序。T

41.java.lang包是Java程序自动导入的,因此可以直接用其中的类和接口;位于类继承关系层次结构的根部的类Object就在此包中。T 42.有时候为了避免引起混淆,构造方法名可以不与所属的类名同名。F

43.以/*开始,*/结束的是单行注释。F

四、填空题

1.Java语言通过__垃圾回收__机制简化了程序的内存管理。 2.String类和StringBuffer类都被定义为_最终类___,不能有子类。

3.建立Java开发环境,一般需要设置环境变量:_path__和_classpath___.

4.在Java程序中,每一行_//___之后的内容是程序的注释,另外介于__/*__和_*/___之间的内容也是注释。

5.设有一个Java应用程序,其源程序文件名为J_Test.java,则编译该源程序的命令为___javac__,运行该应用程序的命令为__java___.

6.接口中定义的常量默认具有_public____static final的属性 接口中定义的方法默认具有public abstract的属性

7. 数组对象的长度在数组对象创建之后,就__不能_ __改变,数组元素的下标总是从__0__开始。

已知数组a的定义是int a[]={1,2,3,4,5};则a[2]=__3__。已知数组b的定义是int b[]=new int [5];则b[2]=__0___; 已知数组c的定义是Object c[]=new Object[5];则c[2]=_null___。 8. 在Java语言中,字符串常量是用__双引号__括起来的字符序列,字符串不是字符数组,而是类__String___的实例对象。

9. 接口ActionListener的方法actionPerformed的返回值类型是__ void_ _.

10. 接口MouseMotionListener的方法mouseDragged的参数类型是_ MouseEvent_ ____.

11. 请填写下面两处的空白,使得下面的方法产生一个异常: void method()__throws Exception___ ___ {

___ throw ___ new Exception(“exception”); }

12.Java语言中,有一个类是所有类或接口的父类,这个类的名称

是_ Object ____。

13. 在一个合法的Java源程序文件中定义了3个类,则其中属性为public的类可能有___1___个。

14.编译一个定义了两个类和三个方法的Java源文件,总共会产生__2___个字节码文件,这些字节码文件的扩展名是____.class___. 15.Java标识符是由字母、__$__、____下划线_和___数字__组成,其中__数字___不能放在开头

16.Java字符采用的是ISO规定的_unicode ___字符。

17.面向对象程序设计语言支持两种形式的多态:___ _编译时多态___和_运行时多态____。

18.在Java语言中,Java.lang包中定义了三种字符串类: String _、_StringBuilder _和__StringBuffer__。

六、编程题

1. 请编写程序,实现对数组int a[]=new a[5];从键盘随意输入5个值,进行从小到大排序,并在控制台窗口输出排完序的结果。 import java.util.*; public class Num1_Sort {

public static void main(String args[]) {

int []a=new int[5]; //定义一个大小为5的整型数组 int temp; //临时变量

Scanner s=new Scanner(System.in); //输入5个整数

for(int i=0;i

for(int i=0;ia[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } }

//输出打印

for(int i=0;i

2. 请编写应用程序,要求包含一个窗口,并且要求利用窗口事件相

应,实现窗口的关闭。 import java.awt.*; import java.awt.event.*; public class winClose {

public static void main(String args[]) { Frame f=new Frame(\这是一个窗口\

f.addWindowListener(new WindowAdapter(){ //定义匿名类 public void windowClosing(WindowEvent e) { System.exit(0); } });

f.setVisible(true); } }

3. 编写一个完整的Java Application 程序。包含接口ShapeArea,类Circle、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方法,输出对象的描述信息 interface ShapeArea {

public double getArea(); //返回形状面积 public double getPerimeter(); //返回形状周长 }

class Circle implements ShapeArea { //实现接口 double radius; Circle(double r) {

this.radius=r; }

public double getArea() {

return 3.14*radius*radius; }

public double getPerimeter() { return 2*3.14*radius; }

public void toStr() { //打印输出

System.out.print(\ter()+\ } }

class Test {

public static void main(String args[]) { Circle c=new Circle(2.0); c.toStr(); } }

4.用二维数组存放、打印杨辉三角型 class Demo {

public static void main(String args[]) { int i, j;

int Level = 7;

int[][] iaYong = new int[Level][]; System.out.println(\杨辉三角形\ for (i = 0; i < iaYong.length; i++) {

iaYong[i] = new int[i + 1]; //定义二维数组的第i行有i+1列 }

iaYong[0][0] = 1;

for (i = 0; i < iaYong.length; i++) { iaYong[i][0] = 1;

for (j = 1; j < iaYong[i].length - 1; j++)

iaYong[i][j] = iaYong[i - 1][j - 1] + iaYong[i - 1][j];

iaYong[i][iaYong[i].length - 1] = 1; }

for (int[] row : iaYong) { for (int col : row)

System.out.print(col + \ System.out.println(); } } }

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

Top