资源描述
Java程序设计期末复习题(2015-2016-1学年度)
第一章 Java概述
1、Java体系有哪几部分构成?(多选)(ABC)
A.JavaSE B.JavaEE C. JavaME D.Javac
2、与Jdk相关的3个重要的环境变量是?(ABC)
A.JAVA_HOME B.PATH C.CLASSPATH D.JPATHEXT
3、编译和运行Java程序分别用到的命令是?(AC)
A.javac B.javadoc C.java D.javah
4、编译Java源程序文件时将产生相应的字节码文件, 这些字节码文件的扩展名为 (B)。
A.java B.class C. html D.exe
5、Java 的跨平台机制是由______实现的。 (D)
A.GC B.Java DE C.html D.JVM
6、以下用于解释字节码文件的工具是(B)
A.javac B.java C.javadoc D.jar
7、JDK 安装成功后,______目录用于存放 Java 开发所需要的类库。(C)
A.bin B.demo C.lib D.jre
8、下面属于文档注释的标记是(D)
A.-- B./ C./ *…*/ D./**…*/
9、关于程序中的main方法,以下说法正确的有()(ABCD)
A.每个独立的、可执行的 Java 应用程序必须要有 main()方法才能运行
B.main()方法是程序的主方法
C. main()方法是整个程序的入口,
D.程序运行时执行的第一个方法就是 main()方法
10、关于Java 跨平台技术的实现原理,以下说法正确的是(ABCD)
A.JVM 在具体的操作系统之上运行,其本身具有一套虚拟机指令,但它通常是在软件而不是在硬件上实现,
B.JVM 形成一个抽象层,将底层硬件平台、操作系统与编译过的代码联系起来,
C.Java 字节码的格式通用,具有跨平台特性,但这种跨平台是建立在 JVM 虚拟机的基础之上
D. 只有通过 JVM 处理后才可以将字节码转换为特定机器上的机器码,然后在特定的机器上运行,
第二章 Java语言基础
1、常见的字符集有哪3种?(ACD)
A. ASCII B.BIG5 C.GB2312 D.unicode
2、变量的作用域可将变量分为哪两类?
局部变量和全局变量
3、定义常量的关键字是什么?Final
4、关系运算符运算后返回的结果是什么类型?(C)
A.整型 B.浮点型 C.布尔型 D.字符型
5、下面赋值语句不正确的是_____。(A)
A. float f= 2.3 B. float f = 5.4f
C. double d = 3.14d D. double d = 3.1415
6、下面语句的输出结果是______。(C)
int x = 4;
System.out.println (“value is ”+((x>4)?99.9 : 9);
A. 输出结果为:value is 99.9 B.输出结果为:value is 9
C.输出结果为:value is 9.0 D.输出结果为:语法错误
7、下面代码片段:(A)
switch(m){
case 0: System.out.println("case 0 ");
case 1: System.out.println("case 1 ");break;
case 2: break;
default: System.out.println("default");
}
当 m 的值为 0 时,将会输出______(A)。
A.case 0 B.case 0 C case0 case1 default D. default
case 1
8、for 循环的一般形式为:for(初值;终值;增量) (D)
以下对 for 循环的描述中,正确的是______。
A. 初值、终值、增量必须是整数 B.for 循环的次数是由一个默认的循环变量决定
C. 初值和增量都是赋值语句,终值是条件判断语句 D.for 循环是一种计次循环,每个 for 循环都带有一个内部不可见循环变量,控制 for循环次数
9、在 Java 中,如下代码段的输出结果为________(D)
public static void main(String []args) {
int num=1;
while(num< 6){
System.out.print(num);
if(num/2==0)
continue;
else
num++;
}
}
}
A. 12345 B.135 C.24 D死循环
10、关于循环说法错误的是_______(C)
A. while 循环是先判断条件表达式是否为 true,如果为 true,则执行循环体
B. do-while 则是先循环后判断,do-while 至少会循环一次
C. for()括号中的分号可以一个也不要
D. for 循环也是先判断再循环
11、以上哪种创建数组不正确________(C)
A.int[] a = {1,2,3,4,5}; B.int[] a = new int[2];
C.int[][] b = new int[][2]; D.int[][] b = new int[2][];
第三章 类与继承
1、方法的主要组成部分?(ABCD)
A.修饰符 B.返回值 C.方法名 D. 参数
2、Java中包的分割符号是?(A)
A. . B. \ C.\\ D./
3、修饰静态成员的修饰符为?(B)
A. final B.static C.void D. abstract
4、当声明一个对象数组变量时,但并没有赋值时,在内存里发生了什么?(A)
A.在栈内存里开辟了存放引用的空间 B.在堆内存里开辟空间
5、构造方法何时被调用____。(B)
A.类定义时 B.创建对象时 C.调用对象方法时 D.使用对象的变量时
6、JAVA 中,访问修饰符限制性最高的是____。(A)
A.private B.protected C.public D.缺省
7、下列关于面向对象的程序设计的说法中,不正确的是____(B )。
A.对象将数据和行为封装于一体
B.对象是面向对象技术的核心所在,在面向对象程序设计中,对象是类的抽象
C.类是具有相同特征(属性)和共同行为(方法)的一组对象的集合
D.类的修饰符可以是 abstract(抽象) ,static(静态)或 final(最终)
8、关于构造方法说法错误的是______。(B)
A.构造方法的方法名必须与类名一致
B.构造方法没有返回类型,可以是 void 类型
C. 如果在类中没有定义任何的构造方法, 则编译器将会自动加上一个不带任何参数的构造方法
D. 构造方法可以被重载
9、关于方法重载说法不正确的是_______。(C)
A.必须在同一个类中 B.方法名相同 C.方法的返回值相同 D.参数列表不同
10、关于包方面说法不正确的是_______(A)。
A.一个 Java 文件中只能有一条 import 语句
B.使用 package 关键字可以指定类所属的包
C.包在物理上的表现形式是嵌套的文件目录
D. 导入包需要使用关键字 import
11、关于静态成员说法错误的是______。(D)
A.static 关键字修饰的成员也称为静态成员
B.静态成员则可以直接通过类名调用
C. 静态成员属于整个类, 当系统第一次准备使用该类时, 系统会为该类的类变量分配内存空间
D.静态成员不可以通过对象来调用
12、关于可变参数说法正确的是_______。( C)
A.可变参数可以在参数列表的任何位置
B.一个方法中允许包含多个可变参数
C.可变参数的本质就是一个数组 调用一个包含可变参数的方法时,只能传入多个参数,D.不能传入数组
第四章 核心类
1、float对应的封装类为? ( C )
A.double B.float C. Float D.Double
2、 装箱是将堆中的数据封装成对象放到栈中的过程,拆箱将栈中的数值存放到堆中的过程 ,这种说法正确吗?(不对)
3、关于“==”和“equals”的区别得表述正确么?(对)
前者比较的地址是否相对,即是否同一个对象,后者比较的是值是否相等
4、哪个是截取字符串的方法?(B)
A."toUpperCase" B.“subString”
5、在控制台输入整数的时候,用下列Scanner类的哪个方法来接收不会报错?(ABC)
A.nextInt B. next C. nextFloat D.都会报错
6、用作数学运算和日期处理的类分别是?(AC)
A. Date B. Meth C.Math D. Time
7、int 基本数据类型对应的封装类是____(C)。
A.Int B. Short C. Integer D. Long
8、System.out.println(“abc”+1+2)输出的结果是____。(A)
A.abc12 B.abc3 C.“abc”+1+2 D. 3abc
9、下述代码的输出结果是____。(C)
String str="abcdef";
System.out.println(str.substring(2,4));
A.abcdef B. bcd C. cd D. cde
10、关于装箱和拆箱说法错误的是_____。(D )
A.装箱是指将基本类型数据值转换成对应的封装类对象
B.装箱将栈中的数据封装成对象存放到堆中的过程
C.拆箱是将封装的对象转换成基本类型数据值
D.拆箱是是指将基本类型数据值转换成对应的封装类对象
11、下列不是 String 类的方法的是_______。(C)
A.charAt(int index) B. indexOf(String s) C. beginWith(String s) D.endsWith(String s)
12、关于 Object 类说法不正确的是______。(B)
A.Object 类是所有类的顶级父类
B.Object 对象类定义在 java.util 包
C.在 Java 体系中,所有类都直接或间接的继承了 Object 类
D.任何类型的对象都可以赋给 Object 类型的变量
13、关于 String、StringBuffer 和 StringBuilder 说法错误的是_______。(B )
A. String 创建的字符串是不可变的
B.StringBuffer 创建的字符串是可变的,而所引用的地址一直不变
C. StringBuffer 是线程安全的,因此性能比 StringBuilder 好
D.StringBuilder 没有实现线程安全,因此性能比 StringBuffer 好
第五章 类和类之间的关系
1、继承的主要作用是什么(ABC)
A.解决代码重用 B.减少代码冗余 C.便于扩展
2、类和类都有哪些关系?(ABCD)
A. 依赖 B .关联 C.聚合 D.组合
3、匿名内部类适用于只需要使用一次的类,这种说法对吗?
对
4、运用单例模式只能创建出一个对象实例,这种说法正确吗?
对
5、在 Java 语言中,下面关于类的描述正确的是_____(B)。
A.一个子类可以有多个父类
B.一个父类可以有多个子类
C. 子类可以使用父类的所有方法
D. 子类一定比父类有更多的成员方法
6、下列____关键字修饰类后不允许有子类。(D)
A.abstract B.static C. protected D.final
7、假设 Child 类为 Base 类的子类,则下面____创建对象是错误的。(D)
A.Base base = new Child () B. Base base = new Base()
C. Child child = new Child () D. Child child = new Base();
8、关键字 super 和 this 说法不正确的是______。(AB)
A.super(..)方法可以放在 this(..)方法前面使用
B. this (..)方法可以放在 super (..)方法前面使用
C. 可以使用 super(..)来调用父类中的构造方法
D.可以使用 this(..)调用本类的其他构造方法
9、给定如下 Java 代码,关于 super 的用法,以下________哪个描述是正确的(c)
class Student extends Person{
public Student (){
super();
}
}
A. 用来调用 Person 类中定义的 super()方法
B. 用来调用 Student 类中定义的 super()方法
C. 用来调用 Person 类的无参构造方法
D. 用来调用 Person 类的第一个出现的构造方法
10、关于内部类说法错误的是_______。(D)
A.内部类能够隐藏起来,不为同一包的其他类访问
B.内部类是外部类的一个成员,并且依附于外部类而存在
C.Java 内部类主要有成员内部类、局部内部类、静态内部类、匿名内部类
D.局部内部类可以用 public 或 private 访问修饰符进行声明
11、关于继承说法不正确的是_______。(B)
A.在继承过程中,子类拥有父类所定义的所有属性和方法
B. 在构造一个子类对象时, 会首先调用自身的构造方法进行初始化, 而后再调用父类的构造方法进行初始化
C. Java 只支持单一继承
D.使用 extends 关键字使子类继承了父类
12、关于方法重写说法错误的_______。(C)
A.父类中的私有方法不能被子类重写
B.父类的构造方法不能被子类重写
C.方法名以及参数列表必须完全相同,返回类型可以不一致
D.父类的静态方法不能被子类重写
第六章 接口与抽象类
1、定义抽象类使用的关键字是?(C)
A.interface B.instance C.abstract D. abstract
2、关于接口描述正确的是?(ABC)
A.接口里只能有公共方法 B.接口里只能有抽象方法 C.接口里只能有常量
3、instanceof 关键字的作用?(C)
A.声明对象 B. 声明类别 C.鉴别对象的类型
4、实现接口的关键字是____。(C)
A. abstract B. static C. implements D.extends
5、下面说法不正确的是____。(C)
A.抽象类不能直接实例化
B.abstract 不能与 final 同时修饰一个类
C. final 类可以有子类
D. 抽象类中可以没有抽象方法
6、下面的代码运行结果是____。(C)
abstract class Base {
abstract void method();
static int i;
}
public class Mine extends Base {
public static void main(String argv[]) {
int[] ar = new int[5];
for(i = 0; i < ar.length; i++)
System.out.println(ar[i]);
}
}
A.一个 0-5 的序列将被打印。 B.有错误
C.Mine 类必须声明成 abstract。 D.报 IndexOutOfBoundes 错误。
7、关于抽象类说法错误的是_____。(B)
A.抽象类需要在 class 前用关键字 abstract 进行修饰
B.抽象方法可以有方法体
C. 有抽象方法的类一定是抽象类
D.抽象类可以没有抽象方法
8、关于接口描述错误的是_________。( )
A.接口中的所有方法都是抽象方法
B.一个类可以实现多个接口,接口之间使用逗号进行间隔 使用接口变量指向该接口的实现类的实例对象, 这种使用方式也是多态性的一种体现
C.接口可以继承接口,使用 extends 关键字,接口的继承和类的继承一样,都是单继承
9、下面说法不正确的是_________。(D)
A. 一个类在实现一个或多个接口,
B.所有 Java 是支持多继承的
C.implements 关键字用于实现接口
D.不能对接口直接实例化 接口的继承与类的继承不一样,接口完全支持多重继承
10、下面关于抽象方法说法不正确的是_________(A)。
A.一个抽象类中可以含有多个抽象方法,不能包含已实现的方法
B.实现一个接口,但没有完全实现接口中包含的抽象方法的类是抽象类
C. 继承一个抽象类,但没有完全实现父类包含的抽象方法的类是抽象类
D.一个类可以继承抽象类的同时实现一个或多个接口
11、异常框架的最顶层为?(A)
A. Throwable B. Exception C .Error
12、捕获异常用的关键字为?(B)
A. Throw B.catch C. Exception
13、throw 和 throws 的说法不正确的是?(C)
A.throw是方法内抛出异常 B.throws是方法声明是抛出异常 C.throw可以抛出多个异常
14、自定义异常需要继承哪个类?(A)
A.Exception B. Error C. Throwable
15、所有异常类的父类是______(A)。
A. Throwable B. Error C. Exception D. RuntimeException
16、下面属于非检查型异常的类是______(B)。
A. ClassNotFoundException B. NullPointerException C. Exception IOException
17、能单独和 finally 语句一起使用的块是______。(A)
A. try B.catch C. throw D.throws
18、用来手动抛出异常的关键字是______。(D)
A. catch B.throws C. pop D.throw
19、下列关于异常说法错误的是________。(C)
A.一个 try 后面可以跟多个 catch 块
B. try 后面可以没有 catch 块
C.try 可以单独使用,后面可以没有 catch、finally 部分
D.finally 块都会被执行,即使在 try 或 catch 块中遇到 return,也会被执行
20、下列说法错误的是________。(B)
A.自定义异常类都继承 Exception 或 RuntimeException 类
B.使用 throws 声明抛出一个异常序列,使用分号“; ”隔开
C.使用 throw 抛出一个异常对象
D.异常分为检查型异常和非检查型异常两种
第8章 泛型和集合
1、泛型的描述正确的是?(B )
A. 泛型也需要进行强制类型转换 B. 泛型可以自动进行数据类型转换
2、Java集合分为哪三大类(ABC)
A.Set B. List C. Map D.collection
3、List中的对象是无序的,这种说法正确吗?(B)
A.正确 B.错误
4、Java集合中的量大体系分别是 (AD)
A. collection B.List C. Set D. Map
5、Java集合常用的工具类有(AD)
A. Collections B.Collection C. Array D. Arrays
6、下面______类不属于是 Collection 集合体系的。(D)
A. ArrayList B. LinkedList C. TreeSet D. HashMap
7、创建一个 ArrayList 集合实例,该集合中只能存放 String 类型数据,下列______代码是正确的。(B)
A. ArrayList myList=new ArrayList ()
B.ArrayList< String > myList=new ArrayList;<> ()
C. ArrayList<> myList=new ArrayList < String > ()
D. ArrayList<> myList=new List<> ()
8、下面集合类能够实现“FIFO”特点的是______。(A)
A. LinkedList B.Stack C. TreeSet D. HashMap
9、在 Java 中 LinkedList 类和 ArrayList 类同属于集合框架类,下列 _____ 选项中的方法是这两个类都有的。(D)
A. addFirst(Object o) B.getFirst() C. removeFirst() D. add(Object o)
10、关于集合框架特征,说法不正确的是_______。(A)
A.Map 集合中的键对象不允许重复、 B.有序 List 集合中的元素允许重复、
C.有序 Set 集合中的元素不允许重复 D.无序 Collection 集合中的元素允许重复、无序
11、下列不是 Map 接口中的方法的是__________。(B)
A. clear() B.peek() C. get(Object key) D. remove(Object key)
12、下列关于 Iterator 接口说法错误的是_________。(C )
A. Iterator 接口是 Collection 接口的父接口 从 JDK5 开始,
B.所有实现了 Iterable 的集合类都是可迭代的,
C. 都支持 foreach 循环遍历
D.可以通过 hasNext()方法获取下一个元素 remove()方法移除迭代器返回的最后一个元素
期末考试题:
一、选择题
1. Java开发工具包为 (C )
A. JRE B.SDK C. JDK D.RunTime
2. Java的集成开发环境为 (A )
A. Eclipse B.Sql C.Developter D. JDK RunTime
3. Java编译后的文件是一个以()为后缀的文件(B)
A. java B. class C.doc D. exe
4. 下列java标识符,错误的是(D )
A. _sys_varl B.$change C.User_name D.1_file
5. 下列不属于简单数据类型的是(B)
A. 整数类型 B. 字符串类型 C.符点数类型 D.布尔类型
6. 下列声明和赋值语句错误的是
A. double w=3.1415 B. String strl=”bye” C.float z=6.74567 D. boolean truth=true
7. 下列不属于整型变量的类型是 (C )
A. byte B. short C. float D. long
8. 关于while和do-while循环,下列说法正确的是 ???
A.两种循环除了格式不通外,功能完全相同
B.与do-while语句不通的是,while语句的循环至少执行一次
C.do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句
D.以上都不对
9. 下来可以用来获取数组长度的是(B)
A.size B. length C.length() D. size()
10. 下来可以用来换行输出的是 (B )
A. print B. println C. printc D. printd
11. 如果方法没有返回值应该用哪个来表示(A )
A.void B. null C. empty D.no
12. 方法通过哪个关键字表示返回值(B)
A. home B.return C.break D. back
13. Java语言中,||表示(B )
A.分隔符 B.或 C.与 D.非
14. Java语言中,双精度浮点型用表示(D)
A.float B. int C. double D. boolean
15. 不是Java语言的关键字的是(D )
A. return B. if C. case D. on
二、判断题
1. 判断两个字符串是否相等,可以用两个等号来判断。(B)
A. 正确 B.错误
2. String是基本数据类型。(B)
A. 正确 B.错误
3. 这种写法是正确的,char c = “A”。(B)
A. 正确 B.错误
4. System.out.print()表示换行输出。
A.正确 B.错误
5. b = a++ 和 b= ++a表示的含义是不一样的。(A)
A.正确 B.错误
6. &表示逻辑运算符与。(B)
A. 正确 B.错误
7. continue表示退出本次循环,进行下一次循环。(A)
A. 正确 B.错误
8. 类是一种抽象的数据类型,是具备某些共同特征的实体的集合。(A)??
A.正确 B.错误
9. 对象是类的实例,包含属性和方法。
A.正确 B.错误
10. 方法分为有参数的方法和无参数的方法。
A. 正确 B.错误
三、填空题
1. 在JAVA语言中,将后缀名为_ .java______的源代码文件编译后形成后缀名为_____.class_______的字节码文件
2. boolean型常量只有__true___________和______false_______两个值。
3. 浮点型数据分为float和____double________两种类型
4. 方法没有返回值,用____void________表示,Java通过___new_________关键字创建对象
5. 跳转语句分别用到____if______,_____else_______,____________三个关键字。
在空格处填入正确地程序语言 (本题共有15分)
1. 在下面这个类中,定义一个公共的带两个参数的方法,参数的数据类型为double,参数名称为a,b方法名称为add,计算两个参数相加的结果,并且将结果返回,返回值的数据类型为double
public class Jisuanqi {
public double add double a, double b
_________ __________ ________(________ _________,__________ __________)
{
a+b
double c = ____________ ;
return
____________ c;
}
}
在空格处填入正确的程序语言 (本题共有15分)
2. 在下面这个类中,定义一个公共的无参函数,无返回值的方法,方法名称为test,在这个方法中用,上一题中的方法,计算10和10相加的结果,并且将结果乘以10之后赋值给c,将c的结果在控制台输出
public class Test {
public _____void_______ test()
{
//创建上一题的类的对象
_____ Jisuanqi _______ j = ___new Jisuanqi ()_________;
//调用上一题中定义的方法
double c = _____add(10,10)_______ ;
__System______.out.println( ____c________ ) ;
}
}
四、程序判断题
1. 分析下列代码,指出该程序是否可以编译通过,如有错误,请写出具体错误。
01 public class Test {
02 private int t;
03
04 public static void main(String[] args) {
05 int x;
06 System.out.println(t);
07 }
08 }
2. 分析下列代码,指出该程序是否可以编译通过,如有错误,请写出具体错误。
01 public class Test {
02 public static void main(String[] args) {
03 double radius;
04 final double PI= 3.15169;
05 double area = radius * radius * PI;
06 System.out.println("Area is " + area);
07 }
08 }
3. 分析下列代码,指出该程序是否可以编译通过,如有错误,请写出具体错误。
01 class Test {
02 public static void main(String[] args) {
03 A a = new A();
04 a.print();
05 }
06 }
07
08 class A {
09 String s;
10
11 A(String s) {
12 this.s = s;
13 }
14
15 public void print() {
16 System.out.print(s);
17 }
18 }
4. 分析下列代码,指出该程序是否可以编译通过,如有错误,请写出具体错误。
01 class Circle {
02 private double radius;
03
04 public Circle(double radius) {
05 this.radius = radius;
06 }
07 }
五、简答题
1. 分析下列代码,请写出当程序通过以下方式被执行时其输出结果。
java Test I have a dream
01 public class Test {
02 public static void main(String[] args) {
03 System.out.println("Number of strings is " + args.length);
04 for (int i = 0; i < args.length; i++)
05 System.out.print(args[i]+ ",");
06 }
07 }
程序输出结果为:
2. 分析下列代码,写出程序运行后的输出结果。
01 import java.util.*;
02 public class Test extends Object {
03 public static void main(String[] args) {
04 Date d1 = new Date();
05 Date d2 = new Date(0);
06 Date d3 = d1;
07 System.out.println("(1) " + (d1 == d2));
08 System.out.println("(2) " + (d1 == d3));
09 System.out.println("(3) " + d1.equals(d2));
10 System.out.println("(4) " + d1.equals(d3));
11 }
程序输出结果为:
展开阅读全文