JAVA综合复习题.docx
《JAVA综合复习题.docx》由会员分享,可在线阅读,更多相关《JAVA综合复习题.docx(17页珍藏版)》请在冰豆网上搜索。
JAVA综合复习题
JAVA综合复习题
一、选择题:
1.下面的哪个保留字不能作为函数的返回类型()
A.voidB.intC.newD.long
2.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符
3.设inta=12;则执行完语句a+=a*a;后,a的值是()。
A.12B.144C.156D.288
4.下面有关构造函数的描述中,正确的是()。
A.构造函数可以带有返回值B.构造函数的名字与类名完全相同
C.构造函数必须带有参数D.构造函数必须定义,不能缺省
5.构造函数是在()时被执行的。
A.程序编译B.创建对象C.创建类D.程序装入内存
6.使用派生类的主要原因是()
A.提高代码的可重用性B.提高程序的运行效率
C.加强类的封装性D.实现数据的隐藏
7.若a=10,b=20,c=30,则表达式!
(a+b)+c-30&&b+c/3的值为()。
A、1B、0C、10D、30
8、设x,y,z为整型变量,x=10,y=-5,z=8,则x++-y+(++z)的值为()。
A、25B、24C、23D、22
9、设x,y,z为整型变量,则命题“x或y中有一个大于z”的逻辑表达式为()。
A、x>z&&y>zB、x>z||y>zC、x>zD、y>z
10.下面哪项可以得到数组元素的个数,java中定义数组名为abc,()
A、abc.length()B、abc.lengthC、len(abc)D、ubound(abc)
11.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的()
A、publicB、privateC、staticD、final
12.若i为10,j为20,则表达式m=i>j?
i:
j的值为()。
A.m=10B.m=20C.m=falseD.m=true
13.下面关于构造函数的说法不正确的是()
A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。
B、构造函数不可以重载。
C、构造函数没有返回值。
D、构造函数一定要和类名相同。
14.数组中可以包含什么类型的元素?
_____________。
A、int型B、string型C、数组D、以上都可以
15.声明常量PI,采用哪种格式:
a.finalstaticPI=3.14159;
b.finalfloatPI=3.14159;
c.staticdoublePI=3.14159;
d.finaldoublePI=3.14159;
16.将一个double类型的变量d赋值给int类型的变量x,采用哪种格式是正确的:
a.x=(long)d
b.x=(int)d;
c.x=d;
d.x=(float)d;
17.根据Java的命名规范,下面哪一个是常量名:
a.MAX_VALUE
b.Test
c.read
d.ReadInt
18.下面哪条赋值语句是错误的:
a.floatf=-34;
b.intt=23;
c.shorts=10;
d.floatf=34.0;
19.假设定义了如下Java类:
publicclassTest{
}
那么为了正确编译这个类,类的文件名应该命名为:
a.Test.class
b.Test.doc
c.Test.txt
d.Test.java
e.以.java作为扩展名的任意文件名
20.编译Test.java文件的正确命令是:
a.javaTest
b.javaTest.java
c.javacTest.java
d.javacTest
e.JAVACTest.java
21.若要运行ByteCode.class文件,下列哪个命令是正确的?
a.javaByteCode
b.javacByteCode.class
c.javacByteCode.java
c.javacByteCode
d.JAVACByteCode
22."Welcome"+1+1*2是什么?
a.Welcome11*2
b.Welcome4
c.Welcome12
d.Welcome3
23.下列语句的打印结果为:
doublex=10.1;
inty=(int)x;
System.out.println("xis"+x+"andyis"+y);
a.xis10andyis10
b.xis10.0andyis10.0
c.xis11andyis11
d.xis10.1andyis10
e.xis10.1andyis10.0
24.在方法中声明的变量被称为________变量.
a.静态
b.实例
c.局部
d.全局
e.类
25.下面关于数组的声明哪个正确的?
a.char[]charArray=newchar[26];
b.int[]words=newwords[10];
c.char[]charArray="ComputerScience";
d.double[3]nums={3.5,35.1,32.0};
26.下列哪条语句能正确初始化字符串"123"?
a.String[]string={'1','2','3'};
b.Stringstring={'1','2','3'};
c.Strings="123";
d.Strings=newString("123");
e.canddarebothfine,butcisbetter.
27.一个子类可以继承父类的那些属性:
a.用private修饰词修饰的属性
b.用protected修饰词修饰的属性
c.用public修饰词修饰的属性
d.a和c均正确
e.b和c均正确
28.假设s1和s2是两个字符串,那么下面那条语句不正确?
a.Strings=newString("newstring");
b.Strings3=s1+s2;
c.Strings3=s1.concat(s2);
d.s1>=s2
e.inti=s1.length();
29.运行下列程序的输出结果为:
publicclassC{
publicstaticvoidmain(String[]args){
Object[]o={newA(),newB()};
System.out.print(o[0]);
System.out.print(o[1]);
}
}
classAextendsB{
publicStringtoString(){
return"A";
}
}
classB{
publicStringtoString(){
return"B";
}
}
a.AB
b.BA
c.AA
d.BB
e.以上都不是
30.假设下面这条语句是父类中的方法,选项中的方法是子类中的方法。
选项中的哪个方法覆盖了以下的方法:
protecteddoublexMethod(intx){…};
a.privatedoublexMethod(intx){…}
b.protectedintxMethod(doublex){…}
c.publicdoublexMethod(doublex){…}
d.publicdoublexMethod(intx){…}
31.阅读下列程序段:
classFoo{
inti;
staticints;
voidimethod(){
}
staticvoidsmethod(){
}
}
那条语句是错误的?
a.Foo.smethod();
b.System.out.println(Foo.s);
c.f.imethod();
d.System.out.println(Foo.i);
32.分析下面的代码:
classTest{
publicstaticvoidmain(String[]args){
doubleradius=5;
finalstaticdoublePI=3.15169;
doublearea=radius*radius*PI;
System.out.println("Areais"+area);
}
}
a.程序有语法错误,因为变量radius没有被初始化
b.程序有语法错误,因为静态常量PI被定义在方法内部
c.程序没有语法错误,但是会引起一各运行时错误,因为radius变量没有被初始化
d.程序编译运行正确
33.下面的代码错在哪里?
classTest{
publicstaticvoidmain(String[]args){
Cc=newC(5.0);
System.out.println(c.value);
}
}
classC{
intvalue=2;
}
a.程序有一个编译错误,因为类C没有定义缺省的构造方法。
b.程序有一个编译错误,因为类C没有定义带有一个double类型参数的构造方法。
c.程序编译正确,但是不能运行,因为类C不是public的。
.
d.a和b都是程序错误的根源。
34.下面的代码错在哪里?
publicclassFoo{
publicvoidmethod1(){
Circlec;
System.out.println("Whatisradius"+c.getRadius());
c=newCircle();
}
}
a.程序有一个编译错误,因为类Foo没有main方法
b.程序有一个编译错误,因为类Foo没有缺省构造方法
c.程序在println语句处有一个编译错误,因为变量c没有被初始化
d.程序编译错误,但是有一个运行错误,因为当变量println语句执行的的时候,c的值为null。
35.运行下列程序的输出结果为:
classA{
publicA(){
System.out.println(
"ThedefaultconstructorofAisinvoked");
}
}
classBextendsA{
publicB(Strings){
System.out.println(s);
}
}
publicclassC{
publicstaticvoidmain(String[]args){
Bb=newB("TheconstructorofBisinvoked");
}
}
a.无输出
b."TheconstructorofBisinvoked"
c."ThedefaultconstructorofAisinvoked"
"TheconstructorofBisinvoked"
d."TheconstructorofBisinvoked"
"ThedefaultconstructorofAisinvoked"
e."ThedefaultconstructorofAisinvoked"
36.分析下列代码:
publicclassTest{
publicstaticvoidmain(String[]args){
int[]x={0,1,2,3,4,5};
xMethod(x,5);
}
publicstaticvoidxMethod(int[]x,intlength){
for(inti=0;iSystem.out.print(""+x[i]);
}
}
a.程序显示01234
b.程序显示01234,并且发生一个运行时错误
c.程序显示012345
d.程序显示012345,并且发生一个运行时错误
37.分析下面的代码:
classTest{
publicstaticvoidmain(String[]args){
Aa=newA("test");
a.print();
}
}
classA{
Strings;
A(Strings){
this.s=s;
}
privatevoidprint(){
System.out.println(s);
}
}
a.程序编译正确,但是有一个运行时错误,因为print()是私有的.
b.程序有语法错误,因为print()是私有的
c.程序运行正确并且在屏幕上显示:
Test.
d.以上答案均不正确
二、程序阅读题
1.写出程序的运行结果。
publicclassTest{
publicstaticvoidmain(String[]args){
Aa=newA(3);
}
}
classAextendsB{
publicA(intt){
Syestem.out.println("A'sconstructorisinvoked");
}
}
classB{
publicB(){
System.out.println("B'sconstructorisinvoked");
}
}
2.写出程序的运行结果:
classA{
publicA(){
System.out.println(
"ThedefaultconstructorofAisinvoked");
}
}
classBextendsA{
publicB(Strings){
System.out.println(s);
}
}
publicclassC{
publicstaticvoidmain(String[]args){
Bb=newB("TheconstructorofBisinvoked");
}
}
3.写出程序运行结果:
importjava.util.*;
publicclassTestextendsObject{
publicstaticvoidmain(String[]args){
Dated1=newDate();
Dated2=newDate(349324);
Dated3=d1;
Dated4=(Date)d1.clone();
System.out.println("
(1)"+(d1==d2));
System.out.println("
(2)"+(d1==d3));
System.out.println("(3)"+d1.equals(d2));
System.out.println("(4)"+d1.equals(d3));
}
}
4.阅读以下程序,输出结果为。
importjava.io.*;
publicclassMyTest
{
publicstaticvoidmain(Stringargs[])
{
inti=0;
intj=5;
for(;i<=j;j--,i++);
System.out.println("i="+i);
System.out.println("j="+j);
}
}
5.阅读以下程序,输出结果为。
publicclassSum
{publicstaticvoidmain(Stringargs[])
{doublesum=0.0;
for(inti=1;i<=5;i++)
sum+=1.0/(double)i;
System.out.println("sum="+sum);
}
}
6.阅读以下程序,输出结果为。
importjava.io.*;
publicclassClass1
{
publicstaticvoidmain(Stringargs[]){
inti,Max,Min;
inta[]={12,67,8,98,23,56,124,55,99,100};
Max=Min=a[0];
for(i=1;iif(a[i]if(a[i]>Max)Max=a[i];
}
System.out.println(Max+""+Min);
System.out.println();
}
}
三、程序查错及改错题
1.标出下列程序段中的错误及错误原因,并写出改正的方法。
classTest{
publicstaticvoidmain(String[]args){
Aa=newA();
a.print();
}
}
classA{
Strings;
A(Strings){
this.s=s;
}
publicvoidprint(){
System.out.print(s);
}
}
2.指出程序的错误,并解释错误的原因和改正方法。
classA{
publicA(intx){
}
}
classBextendsA{
publicB(){
}
}
publicclassC{
publicstaticvoidmain(String[]args){
Bb=newB();
}
}
四、编程题
1.编写出一个简单的Java程序,实现最简单的显示“helloworld!
”的功能。
并简述编译,配置和运行它的方法。
2.假设类Book被定义为具有以下属性:
Authorauthor;
Stringtitle;
booleanfiction;
按照Java的命名规范为每个属性编写标准的“get”/“set”方法。
3.编写一个名为Fan的类模拟风扇。
此类包括属性speed、on、radius、color。
要求为属性提供get/set方法,并提供toString方法来返回包含类中所有属性值的字符串。
假设风扇有三种固定的速度,用常数1、2、3表示慢、中、快。
编写一个用户程序测试Fan类。
在用户程序中创建一个Fan对象,将它设置成最大速度、半径为10、黄色、打开状态。
调用toString方法显示改对象。
4.类的继承关系如图所示。
其中包括两个类:
“雇员类”(Employee)及其子类“员工类”(Staff):
“雇员类”的属性包括:
编号(id),姓名(name);
“员工类”的工资根据每月工作的小时数来计算报酬,因此这个类包括两个属性:
每月工作小时数(hour),每小时工资(wage)。
编程要求:
(1)定义“雇员类”(Employee)及“员工类”(Staff),体现其继承关系。
(2)编写这两个类的get,set方法。
(3)编写这两个类的构造器。
(4)编写Staff类的computePay方法,此方法用来计算此“时薪员工”每月的工资是多少。
(5)编写一个main方法,创建“雇员对象”和“员工对象”,并调用computePay方法。
5.写一个方法,其功能是传入一个数组,返回一个新的没有重复数据的数组。
方法头如下:
publicstaticint[]removeDuplicate(int[]x)
例如:
如果x是{1,3,1,2,3,5},removeDuplicate(x)返回一个新的数组{1,3,2,5}
6.编写一个程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。
7.编写一个程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。