Java期末考试题

更新时间:2024-06-15 13:12:01 阅读量: 综合文库 文档下载

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

选择题

1.在下列概念中,Java语言只保留了 _B____。 A.运算符重载 B.方法重载 C.指针 D.结构和联合

2.下列关于JAVA语言特性的描述中,错误的是____B___。 A. 支持多线程操作

B.JAVA程序与平台无关

C.JAVA程序可以直接访问Internet上的对象 D.支持单继承和多继承

3.下列关于Java Application程序在结构上特点的描述中,错误的是______。 A.Java程序是由一个或多个类组成的

B.组成Java程序的若干个类可以放在一个文件夹中,也可以放在多个文件夹中 C.Java程序的文件名要与某个类名相同

D.组成Java程序的多个类中,有且仅有一个主类 4.Java程序经过编译后生成的文件的后缀是______

A. .obj B..exe C..class D..java 5.下列关于运行字节码文件的后缀是_______.

A.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中 B.第一个命令行参数被存放args[1]中 C.命令行的命令字被存放在args[0]中

D.数组args[]的大小与命令行参数的个数无关 6.Java语言所用的字符集中字符是_____位 A.8 B.16 C.32 D.64

7.下列关于标识符的描述中,正确的是________ A.标识符中可以使用下划线的美元符 B.标识符中可以使用链接符和井号符 C.标识符中大小写字母是无区别的 D.标识符可选用关键字

8.Java语言的各种分隔符中,非法的是________ A.空白符 B.分号 C.逗号 D.问号

9.下列是Java语言中可用的注释符,其中错误的是_______ A. // B. /*…*/ C. /**…**/ D. /**…*/ 10.Java语言中字符型数据的长度是______位 A.8 B. 16 C. 32 D. 64

11.下列描述的两种数据类型的长度不相等的是_______ A.字符型和布尔型 B.字节型和布尔型 C.短整型和字符型 D.整型和单精度浮点型 12.下列是Java语言中的复合数据类型,其中错误的是________ A.数组 B.接口 C.枚举 D.类

13.下面是关于Java语言中数据类型的强制转换的描述,其中错误的是________ A.当数据类型从高转换为低时需要强制转换

B.强制转换时使用强制转换运算符,形如(<类型>) C.浮点型数据强制转换为整型时,小数部分四舍五入 D.赋值操作中都要采用强制类型

14.下列关于常量的描述中,错误的是_________ A.Java语言的常量有5种

B.浮点型数12.456是单精度的

C.布尔型常量只有两个可选值:true和false D.字符串常量含有结束符‘\\0’

15.下列关于定义符号常量的描述中,错误的是________ A.定义符号常量使用关键字const B.定义符号常量时要赋初值

C.符号常量既可以定义为类成员,又可在方法中定义 D.定义符号常量时必须给出数据类型

16.下列关于变量的默认值的描述,其中正确的是

A.定义变量而没有进行初始化时,该变量具有默认值 B.字符型变量的默认值为换行符 C.布尔型变量的默认值为true D.变量的默认值可以被改变

17.下列关于变量定义的描述正确的是___ A.定义变量时至少要指出变量名字和类型

B.定义变量时没有给初值,该变量值应该是无意值 C.定义变量时,同一类型多个变量间可用逗号隔开 D.定义变量是必须要给变量初始化

18.下列关于变量作用域的描述中正确的是

A.在某个作用域定义变量,仅在该作用域内是可见的,而在该作用域外事部可见的 B.在类中定义变量的作用域在类体内,在该类中的方法可以使用 C.在方法中定义的变量的作用域仅在该方法体内

D.在方法中作用域可嵌套,在嵌套的作用域中可以定义听命变量 19.下列关于增1(+ +)减1(- -)运算符的描述中正确的是 A.增1减1运算符都是单目运算符

B.增1减1运算符都具有前缀运算和后缀运算 C.增1减1运算符不会改变变量的值

D.增1减1运算符前缀运算和后缀运算表达式值是相同的 20.下列关于运算符的优先级的描述中正确的是 A.在表达式中,优先级高的运算符先进行计算 B.复赋值运算符优先级最低

C.单目运算符的优先级高于双目运算符和三目运算符 D.逻辑运算符优先级高于逻辑位运算符 21.下列关于表达式的描述中,正确的是 A.任何表达式都有确定的值和类型

B.算术表达式的类型由第一个操作数的类型决定 C.逻辑表达式的类型数是逻辑型的

D.赋值运算表达式的类型取决于右值表达式的类型 22.下列表达式中,非法的是 int a=5,b=5;double c=1.1,d=2..2;

A.a+c+ + +d B.(a+c)-- C.c<

A.if语句中可以有多个else语句和else if语句 B.if语句中可以没有else语句和else if语句 C.if语句中的(条件)可以使用任何表达式 D.if语句的if体,else体内可以有循环语句 24.下列关于开关语句的描述中,错误的是 A.开关语句中,default子句可以省略

B.开关语句中,case子句的(语句序列)中一定含有break语句 C.开关语句中,case子句和default子句都有可以有多个 D.退出开关语句的唯一条件是执行break语句 25.下列关于循环语句的描述中,错误的是 A.任何一种循环体内都可以含一种循环语句 B.循环体可以使空语句也可以是空 C.循环体内可以出现多个break语句 D.循环语句,循环体至少被执行一次 26.下列循环语句的循环次数是 int i=5;do{System.out.println(i--);

i--;

}while(i!=0)

A.0 B.1 C.5 D.无限 27.下列循环语句中,循环体被执行的次数为 for(int i=0,j=0;(j=18)||(i<4);i++);

A.3 B.4 C.不确定 D.无限 28.下列关于Java语言的数组描述中,错误的是 A.数组的长度通常用length表示 B.数组下标从0开始

C.数组元素是按顺序存放在内存的 D.数组在赋初始值是都不判断

29.下列关于数组的定义形式,错误的是 A.int[] a;a=new int; B.char b[];b=new char[80]; C.int[] c=new char[10] D.int []d[3]=new int[2][]; 30.下列关于字符串的描述中,错误的是

A.Java语言中,字符串分为字符串常量和字符串变量两种 B.两种不同的字符串都是String类对象

C.Java语言中不再使用字符数组存放字符串

D.Java Application程序的main()参数args[]是一个String类的对象数组,用它可以存放若干个命令行参数

31.下列对封装的描述中,错误的是 A.封装体包含了属性和行为 B.封装体中的访问权限是相同的

C.被封装的某些信息在封装体外事部可见的 D.封装使得抽象的数据类型提高了可重用性 32.下列关于继承性的描述中错误的是 A.一个类可以生成多个子类 B.子类继承了父类的所有成员

C.Java语言支持单重继承和多重继承

D.Java语言通过接口可使用子类使用多个父类 33.下列对多态性的描述中错误的是 A.Java语言允许运算符重载 B.Java语言允许方法重载 C.Java语言允许变量覆盖

D.多态性提高了程序的抽象性了简洁性

34.在类的修饰符中,规定只能被统一包类所使用的修饰符是 A.public B.默认 C.final D.abstract

35.在类的修饰符中,规定中允许该类自身访问的修饰符是 A.private B.public C.默认 D.protected

36.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是 A.public B.private C.默认 D.protected 37.下列关于构造方法的特点的描述中,错误的是 A.不可重写 B.方法同名类 C.无返回类型 D.系统自动调整 38.下列关于静态方法的描述中,错误的是

A.在类体内说明静态变量方法使用关键字static B.静态方法只能处理静态变量和静态方法

C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间 D.静态方法只能用类名调用

39.下列静态初始化器的描述中,错误的是

A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化 B.静态初始化器是有关键字static和一对花括号组成的语句 C.静态初始化器不同于构造方法,它不是方法

D.静态初始化器是产生新对象时,有系统制动调用 40.下列关于抽象类的描述中,错误的是 A.抽象类是用修饰符abstracte说明的 B.抽象类不可以定义对象

C.抽象类是不可以有构造方法的 D.抽象类通常用它的子类

41.下列关于继承的描述中 ,错误的是

A.继承是在已有类的基础上生成新类的一种方法 B.子类继承父类的所有成员

C.Java语言中一个子类只有一个父类

D.父类中成员的访问权限在子类中将被改变

42.下列关于子类继承父类的成员的描述中,错误的是 A.子类中集成的所有成员都可以直接访问

B.子类中定义有与父类同名变量时,子类继承父类的操作中,使继承父类的变量;子类执行自己的操作中,使用自己的变量

C.当子类中出项成员方法头与父类方法头相同时,子类成员方法覆盖父类成员方法 D.方法重载是编译时处理的,而方法覆盖时运行时处理的 43.下列关于接口的描述中,错误的是

A.接口实际上有常量和抽象方法构成的特殊类 B.一个类只允许继承一个接口

C.定义接口使用的关键字是interface

D.在继承接口的类中通常给出接口中定义的抽象方法的具体实现 44.下列关于包的描述中,错误的是 A.包十一中特殊的类 B.包是若干个类的集合

C.包是使用package语句创建的 D.包有有名包和无名包两类

45.下列系统提供常用的类,是所有类的分类的是 A.Math B. Object C.System D.String 46.下列关于异常的描述中,错误的是_____。

A. 异常是一种经过修正后仍可执行的错误。

B. 异常是一种程序在运行中出现的不可恢复执行的错误。 C. 不仅Java语言有异常处理,C++也有异常处理。 D. 出现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行。 47.下列关于异常的描述中,错误的是_____。

E. 程序运行时异常由Java虚拟机自动进行处理。 F. 使用try-catch-finally语句捕获异常。 G. 使用throw语句抛出异常。

H. 捕获到的异常只能用当前方法中处理,不能用其他方法处理。 48.下列关于try-catch-finally语句的描述中,错误的是_____。

I. try语句后面的程序段将给出处理异常的程序。

J. catch()方法跟在try语句后面,它可以上一个或多个。 K. catch()方法有一个参数,该参数是某种异常类的对象。

L. finally语句段后面总是被执行的,该语句起到统一接口的作用。 49.下列关于抛出异常的描述中。错误的是_____。

M. 捕捉到发生的异常可在当前方法中处理,也可以抛到调用该方法的方法中处理。 N. 在说明要抛出异常的方法时应加关键字throw语句。 O. <异常列表>中可以有多个用逗号分开的异常

P. 抛出异常的方法中要使用下属抛出异常语句:throw<异常名>;其中,<异常名>是

异常类的类名

50.下列关于用户创建自己的异常的叙述中,错误的是______。

Q. 创建自己的异常应先创建一个异常类

R. 为实现抛出异常,须在可能抛出异常的方法中书写throw语句 S. 捕捉异常的方法是使用try-catch-finally语句格式 T. 使用异常处理不会使整个系统更加安全和稳定 51.下面的关键词和方法_______,不是线程同步所需要的。

A. synchronized B. wait() C. notify() D.sleep()

52.但对线程进行调度使其暂停时,暂停的时间单位是_____. A. 毫秒 B.秒 C. 分钟 D.小时 53.主线程属于______.

A.守护线程 B.用户线程

C.Thread线程 D.Runnable线程

54.__________方法可以让某个线程等待其他线程执行结束。

A. sleep() B. wait() C. notify() D. join()

55.为了使线程处于暂停状态,可引用_______方法。

A.wait() B.sleep() C.join() D.notify() 56._______方法是现在的Java版本不再使用的方法

A.suspend() B.resume() C.stop() D.start()

简答题

1. Java语言中,数据类型装换有哪两种?当数据从低类型装换为高类型时需要强制装换

吗?

2. 整型数据有3种表现形式?浮点型变量有哪两种表示形式? 3. 布尔型常量可以装换成其他数据类型吗?例如整型。 4. Java语言中,选择语句有哪两种形式? 5. switch语句中,(语句序列)一定要有break语句吗? 6. break语句和continue语句各有哪两种形式? 7. 对象的三大要素?

8. 定义类的修饰符有哪些?各自的特点什么?

9. 什么是静态变量?什么是静态方法?各自有什么特点? 10. 什么是抽象类?什么是抽象方法?各自有什么特点? 11. 什么是最终类?什么是最终变量?什么是最终方法? 12. 异常的处理方法有哪些?

13. 进程和线程有什么区别,Java是如何实现多线程的? 14. 简述线程的生命周期,,重点注意线程阻塞的几种情况,以及如何重回就绪状态?

读程序

1. public class A extends B {

public int d;

public void tryVariables() { System.out.println(a); System.out.println(getB()); System.out.println(c); } }

class B1 extends A1 {

int x=100; void printb() {

super.x = super.x +10 ;

System.out.println(\ x= \ } }

public class Exam4_4Test {

public static void main(String[] args) {

A a1 = new A();

a1.setx(4); a1.printa();

B b1 = new B(); b1.printb(); b1.printa();

b1.setx(6); b1.printb(); b1.printa(); a1.printa(); } }

2. class Meal {

Meal() { System.out.println(\}

class Bread {

Bread() { System.out.println(\}

class Cheese {

Cheese() { System.out.println(\}

class Lettuce {

Lettuce() { System.out.println(\}

class Lunch extends Meal {

Lunch() {System.out.println(\}

class PortableLunch extends Lunch {

PortableLunch() { System.out.println(\}

public class Sandwich extends PortableLunch { Bread b = new Bread(); Cheese c = new Cheese(); Lettuce l = new Lettuce();

Sandwich(){System.out.println(\ public static void main(String[] args) { new Sandwich(); } }

编程题

1. 2. 3. 4.

编写程序,接受用户从键盘输入的三个数x,y,z从中选出最大和最小者,并变成实现. 求出100以内的素数,并将这些书在屏幕上5个一行的显示出来。

接受用户从键盘输入的两位整数,求两个数的最大公约数和最小公倍数,并输出。 声明一个基类A,它只有一种非默认构造方法;声明A类的子类B,B具有默认方法及非默认构造方法,并在B的构造方法中调用基类A的构造方法。

5. 声明一个具有两个方法的类,在第一个方法中调用第二个方法。声明此类的一个子类,

并在子类中重写第二个方法。生成一个子类的对象,并将其塑型为基类,调用第一个方法,解释会发生什么?

6. 编写一个多线程的程序实现如下功能:线程A和线程B分别在屏幕上显示信息“??

Start”后,调用wait等待;线程C开始调用sleep休眠一段时间,然后调用notify-all,使线程A和线程B继续运行。线程A和线程B恢复运行后输出信息“??end”后结束线程C在判断B和线程A结束后自己运行。

7. 实现一个数据单元,包括学号姓名两部分。编写两个线程,一个线程往数据单元中写,

另一个线程往出读。要求写一次就读一次。

以上题仅作参考大部分可在07电信的Java书中

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

Top