JAVA考前复习带答案汇总.docx
《JAVA考前复习带答案汇总.docx》由会员分享,可在线阅读,更多相关《JAVA考前复习带答案汇总.docx(16页珍藏版)》请在冰点文库上搜索。
JAVA考前复习带答案汇总
一、选择题
1.Java程序使用___________命令将源文件编译成字节码文件?
A、jarB、javaC、jdbD、javac
答案D
2.执行编译好的Java字节码文件的命令是___________?
A、javacB、javaC、runD、execute
答案B
3.Java程序编译后,交由___________检验并执行?
A、JVMB、JREC、JDKD、JAVAC
答案A
4.下列有关Java虚拟机的说法正确的是___________?
(多选)
A、JVM是构建在硬件平台上、操作系统下的虚拟机器
B、JVM的主要工作时装载字节码文件并解释执行
C、JVM在不同平台上有不同的版本,让Java程序可以跨平台执行
D、以上说法全部正确
答案ABCD
5.编译Java程序时,发生错误,提示:
“javac不是内部或外部命令,也不是可运行的程序或者处理文件”,请问是什么原因___________?
A、没有设置Path环境变量
B、编译程序时没有加入参数
C、找不到编译的Java程序
D、命令写错,不能使用javac命令
答案A
6.关于main方法,以下说法正确的是___________?
(多选)
A、static声明表示不需要声明对象就可以调用main方法
B、void表明返回值类型为void类型
C、public表明main方法是公共的,可以被外部调用
D、Stringargs[]是main方法的参数,执行时可传入参数
答案ACD
7.关于整数类型,以下说法正确的是?
(多选)
A、Java中简单数据类型都有固定的存储范围和所占空间大小,不受操作系统映像,以保证可植性。
B、Java整数数据默认int型,如果需要指定long型的值,则需要在数值后面填写大写字母L或者小写字母l。
C、Java中整数数据默认是十进制数,如果要指定16进制,需要以数字0和字母x开头,例如:
0x12fd。
D、java中整数总是正数。
答案 ABC
8.关于浮点数类型,以下说法正确的是?
(多选)
A、Java中的浮点类型包括float类型、double类型。
B、Java中浮点数可以用十进制数表示,例如:
3.14;也可以用科学计数法表示,例如:
3.45e5。
C、浮点数默认是double类型,我们也可以在数值后面填写小写字母d或者大写字母D。
D、如果要表示一个float类型浮点数,应在小数后填写小写字母f或者F,例如100.25f。
答案 ABCD
9.关于字符类型,以下说法错误的是?
A、为了方便国际化应用,Java中的字符型采用国际统一编码字符集“Unicode”的UTF-16作为默认字符集,该字符集包含了世界上所有的书面语言符号。
B、Java字符型数据,用两个字节编码,允许使用65536个字符。
C、Java中字符可以使用字符表示,例如:
’a’;也可以使用UTF-16编码值表示,例如:
’\u0061’;也可以用整数表示,例如chara=(char)97。
D、字符型的默认值是’\0000’,即编号为0的字符。
E、字符型数据不能参与运算。
答案 E
10.下面哪些标识符合法?
A、$personsB、TwoUsersC、*pointD、thisE、_endline
答案 ABE
【解析】 Java的标识符可以以一个Unicode字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字。
11.下面代码的执行结果是?
inta=6;
{
intb=5;
}
System.out.println(a+b);
A、10B、11C、12D、编译错误,提示b为定义
答案 D
12.下面代码的执行结果是?
inta=6;
{
inta=5;
}
System.out.println(a);
A、5B、6C、7D、编译错误,一个代码块中不能声明同名的变量。
答案 D
13.下面代码的执行结果是?
inta=6;
System.out.println(a--);
A、5B、6C、7D、报错,因为println不能用--运算符
答案 B
14.下面有关类型转换正确的是?
(多选)
A、doubled=10.5B、floatf=5.9C、intb=99999LD、intb=99999
答案 AD
15.对于switch(变量){}语句,其中的变量可以是什么类型?
(多选)
A、charB、intC、longD、double
答案 AB
16.break语句可以用在哪些语句中?
(多选)
A、ifB、switchC、forD、while
答案 ABCD
17.关于构造方法以下说法错误的是?
A、Java语言的构造方法,其作用主要用来构建并初始化对象。
B、构造方法必须与类名相同
C、构造方法没有返回值,所以构造方法可以用void来声明返回值类型
D、一类中如果没有定义一个构造方法,则系统会自动为该类添加一个空的构造方法。
如果一个类中定义了构造方法,则系统不会自动添加这个默认构造方法。
答案C
18.关于以下代码,说法正确的是?
(多选)
Personp=newPerson();
A、newPerson创建了一个对象,为了多次使用这个对象,将该对象保存在变量p中。
B、Personp声明了一个对象变量。
C、p中保存了newPerson所创建的对象的地址引用。
D、对象变量也叫对象的引用。
答案:
ABCD
19.给出下面的代码片断,下面的哪些陈述为true(真)?
1)publicvoidcreate(){
2)VectormyVect;
3)myVect=newVector();
4)}
A.第二行的声明不会为变量myVect分配内存空间。
B.第二行的声明分配一个到Vector对象的引用的内存空间。
C.第二行语句创建一个Vector类对象。
D.第三行语句创建一个Vector类对象。
E.第三行语句为一个Vector类对象分配内存空间。
答案ADE
【解析】要为一个新对象分配空间必须执行newXxx()调用,new调用执行以下的操作:
1.为新对象分配空间并将其成员初始化为0或者null。
2.执行类体中的初始化。
(例如在类中有一个成员声明inta=10;在第一步后a=0,执行到第二步后a=10)
3.执行构造函数。
4.变量被分配为一个到内存堆中的新对象的引用。
20.给定程序
1)classPerson{
2)publicvoidprintValue(inti,intj){/*…*/}
3)publicvoidprintValue(inti){/*...*/}
4)}
5)publicclassTest{
6)publicstaticvoidmain(Stringargs[]){
7)Persont=newPerson();
8)t.printValue(10);
9)}
10)}
第8行将调用?
A、online2
B、online3
C、online6
D、online7
答案B
【解析】当一个类中存在多个同名方法时,根据传入参数自动匹配。
21.关于包的以下说法错误的是?
A、定义一个类时,可以指定类所存在的包,包有点类似于文件夹的结构。
B、包可以设置多个层次,每个层次用“.”号分隔。
C、Package语句必须是源代码文件中的第一行,可以出现多句。
D、如果一个类中没有书写package语句,则该类将属于默认包(无名包),默认包的类不能被其它包中的类引用。
答案C
22.关于继承的概念哪些是正确的?
(多选)
A、类使用 extends继承,
B、类使用implements继承
C、子类只能有一个直接父类
D、继承的子类与父类之间是一种“isa”的关系,例如经理继承员工类,每个经理都是一名员工。
答案ACD
23.下面关于继承的哪些叙述是正确的?
(多选)
A、在java中只允许单一继承。
B、在java中一个类只能实现一个接口。
C、在java中一个类不能同时继承一个类和实现一个接口。
D、java的单一继承使代码更可靠。
答案AD
【解析】在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。
8.类中声明staticinta=5;表示什么?
(多选)
A、表示a是一个静态局部变量
B、Static可以让所有对象分享这个属性
C、表示a是一个类变量
D、表示a是一个常数
答案BC
9.有关属性和方法的继承原则,下列哪个用法错误?
A、默认访问控制符的属性和方法,如果父类和子类在同一个包中,则可被继承和访问
B、private属性和方法,可以继承但无法访问。
C、protected的属性和方法,可以继承且可以访问
D、父类的构造方法可以被子类继承
答案:
D
25.使用以下哪些修饰符进行修饰时,子类不可访问其变量?
A.protected
B.private
C.以上两者都是
D.以上都不是
答案B
26.下面有关super和this的用法下列哪些用法正确?
(多选)
A、super.方法()是调用父类的方法
B、this.变量是访问父类中的成员变量
C、this.方法()是调用自己的方法
D、super关键字调用父类构造方法必须放在构造方法的第一行。
答案ACD
27.给定程序
1)classPerson{
2)publicvoidprintValue(inti,intj){/*…*/}
3)publicvoidprintValue(inti){/*...*/}
4)}
5)publicclassTeacherextendsPerson{
6)publicvoidprintValue(){/*...*/}
7)publicvoidprintValue(inti){/*...*/}
8)publicstaticvoidmain(Stringargs[]){
9)Persont=newTeacher();
10)t.printValue(10);
11)}
12)}
第十行的声明将调用哪些方法。
A、online2
B、online3
C、online6
D、online7
答案D
【解析】变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。
在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。
28.在//pointx处的哪些申明是句法上合法的。
classPerson{
privateinta;
publicintchange(intm){returnm;}
}
publicclassTeacherextendsPerson{
publicintb;
publicstaticvoidmain(Stringarg[]){
Personp=newPerson();
Teachert=newTeacher();
inti;
//pointx
}
}
A、i=m;
B、i=b;
C、i=p.a;
D、i=p.change(30);
E、i=t.b.
答案DE
【解析】
A:
m没有被申明过,不能使用。
B:
虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的非静态成员。
C:
a是类Person的private成员,在类外不能直接引用。
D:
change(intm)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。
E:
b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。
29.Manger类覆盖Employee类的getDetail方法,代码如下:
publicclassEmployee{
publicStringgetDetail(){}
}
classMangerextendsEmployee{
publicStringgetDetail(){}
}
以下说法正确的是?
A、Employeeworker=newManger();编译会产生错误
B、Employeeworker=newEmployee();则worker.getDetail()调用Employee中方法
C、Employeeworker=newManger();则worker.getDetail()调用Employee中方法
D、Employeeworker=newManger();则worker.getDetail()调用Manger中方法
答案BD
30.下列关于final的用法,叙述正确的是?
A、final声明变量表示此变量不可修改,只能赋值一次。
B、final声明方法表示该方法不可以重载(overload)
C、final声明的类不能被继承,也不可以用来创建对象
D、以上说法都不正确。
答案A
31.关于final用法,以下说法正确的是?
A、final修饰的属性,必须在构造器调用结束前进行赋值
B、final修饰的变量只能被赋值一次
C、static与final一起修饰变量,必须在声明时进行赋值,且全部大写,表示常量。
D、final修饰的变量在使用时不能更改它的值
答案ABCD
一、判断题
1.运算符++的优先级高于运算符+。
答案正确
2.将Long值直接赋给Short值是允许的
答案错误
3.强度类型转换可能导致溢出,精度丢失。
答案正确
4.可以使用for循环实现的任何循环也可以使用while循环实现。
答案正确
5.do-while循环执行至少一次,即使检查条件失败。
答案正确
6.标志符一般由字母、数字、下划线和#构成的字符串。
答案错
7.Java类是对一组具有相同属性和行为的事物的概括,类也是一种自定义数据类型。
答案正确
8.类是对象的模板,对象是类的实现,每个客观存在的事物的都是一个对象。
答案正确
9.类名是一个标识符,必须符合标识符的命名规范,Java语言的类名由一个或多个英文单词构成,每个单词首字母大写。
答案正确
10.Java语言中方法名一般由多个英文单词构成,除第一个单词首字母小写,其它单词首字母大写,例如:
printInfo。
答案正确
11.如果一个方法需要返回结果,用goto语句。
答案错误
12.Java语言的每个类都至少有一个构造方法(构造器)。
答案:
正确
13.为类编写我们自己的构造器时,缺省的构造器仍可用。
答案:
错误
14.方法重载(overload)是一种Java现象,指在一个类内部出现了多个方法名相同参数名不同的方法。
答案:
正确
15.方法重载时,同名的方法,返回值类型必须相同。
答案:
错误
16.J2SE5.0后,定义方法是可以使用可变参数。
答案:
正确
17.在同一类中可以有具有以下声明的两个方法。
voidmethod1(intj,intk)
intmethod2(intk,intj)
答案:
正确
18.static语句块,只在JVM第一次加载static语句块所在的类是被执行一次。
答案正确
19.this解决了成员变量与局部变量同名的问题,通过this还可以调用父类中其它构造方法。
答案错误
20.当成员变量声明为protected时,其子类不能访问它。
答案:
错误
21.在子类中可以定义一个与其父类相同形式的方法(方法名相同,参数不同),这叫做重写。
答案正确
22.当final关键字与方法一起使用时,其子类无法重写该方法。
答案正确
23.finally可以声明一个常量,例如:
finallyinta。
答案:
错误
24.最终类不能派生子类,最终方法不能被覆盖
答案正确
25.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法
答案正确
26.抽象类应包含至少一个抽象方法。
答案错误
27.接口可以拥有具有方法体的方法。
答案错误
28.接口可以声明抽象方法
答案正确
29.实现接口的非抽象类应提供其中声明的所有方法的实现。
答案正确
30.隐式地,接口中的所有变量都是final和static的。
答案正确
二、填空题
1.布尔型常量有两个值,它们分别true、false。
2.表达式1/2*9的计算结果是4.5。
3.表达式“b”+10的值为b10,‘b'+10的值为108。
4.Strings1=“China”;intn=s1.length();n的值为5。
5.类是Java程序中基本的结构单位。
6.Java语言是一种完全的面向对象程序设计语言
7.分别用class关键字来定义类,用new关键字来分配实例存储空间。
8.在Java语言中,包是组织Java程序中类的一种手段,其作用与Windows系统中的文件夹类似。
创建包的语句必须是文件的第 一个语句
9.Java类中,如果类的定义者没有显式的定义任何构造方法,系统将自动提供一个空构造方法。
10.从一个现有类可以衍生一个新类,现有类被称为父类,衍生的类被称为子类。
11.子类对父类继承来的属性重新定义称为覆盖。
子类对自身拥有的同名方法的重新定义称重载。
12.Java语言中,所有的类都是Object的子类,Java的窗口通常是_JFrame__的子类
13.面向对象程序设计的三个特征是封装、继承、多态。
14.抽象类只能定义但不能被实例化,最终类不能被继承。
15.this指当前类对象,super指父类对象。
16.Java中类成员的限定词有以下几种:
public,protected,默认,private。
其中,public的限定的范围最大。
private的限定只能内部访问。
三、编程题
1.编写程序,计算1-100的奇数的和。
2.编写程序,输入任意一个整数,判断该整数是否为素数(素数,是只能够被1和自身整除的数)
3.编写程序,输入任意一个整数,计算该整数的阶乘,例如20的阶乘即20x19x18x17……x1。
4.编写程序,输出20个有规律的数列:
11235813……。
5.编写一个Person类,定义属性name、sex、idcard、age等,定义printInfo方法打印输出人的信息,声明一个对象,测试printInfo方法。
6.定义一个长方形类,定义属性长、宽,定义计算长方形周长和面积的方法,并测试。
7.继承JFrame创建一个窗口类,设置窗口标题、窗口大小、窗口显示位置、默认关闭操作等。
测试。
8.设计一个雇员类,定义员工姓名(name)、所在部门(dept)、工号(empNo)、薪水(salary),定义printInfo方法打印员工信息,定义方法getSalary返回员工薪水,创建雇员对象,测试。
9.定义一个雇员类的子类经理类,重写getSalary,经理的工资等于奖金+津贴+基本工资,创建经理对象,测试。