java期末考试复习题.docx
《java期末考试复习题.docx》由会员分享,可在线阅读,更多相关《java期末考试复习题.docx(27页珍藏版)》请在冰豆网上搜索。
java期末考试复习题
一.填空题:
1.Java语言的前身叫做Oak。
2.Java语言是由sun公司的一个叫做Green的开发小组开发出来的。
3.Java语言是面向对象的编程语言。
4.用Java语言编写的应用程序不用修改就可以在不同的软硬件平台上运行,这是Java语言的可移植性。
5.Java源程序编译之后生成Java的.class文件。
6.Java语言的分布性包括数据分布和操作分布。
7.Java语言在语法方面与C语言存在一个最大的区别,就是Java语言不支持C语言中的指针类型,这也是保证Java语言安全性的一个重要方面。
8.Java语言的多线程特性可以使一个任务分成多个子任务并发执行,以提高系统的运行效率。
9.Java语言的多线程性和高效的字节码保证了Java程序的高性能。
10.Java语言程序分为两类:
Java应用程序和Java小程序。
11.Java程序在命名时,程序名必须和主类名称相同。
12.对Java程序编译时使用javac命令,对应用程序解释执行用java命令。
13.Java的小程序必须嵌入到html文件中才能真正运行。
14.Java的字节码程序是由Java虚拟机解释执行的。
15.结构化程序设计具有很多优点,但它仍是一种面向_过程的程序设计方法。
16.java应用程序执行的入口是main函数,java小程序执行的入口是
init方法。
二.选择题:
1.在程序设计中,应该采用的原则是(A)。
A、程序结构有助于读者理解B、不限制GOTO语句的使用
C、减少或取消注释行D、程序越短越好
2.保证Java语言可移植性的特征是(D)。
A、面向对象B、安全性
C、分布式计算D、可跨平台
3.以下选项中不属于Java语言的特点的是(B)
A、面向对象B、平台相关性
C、分布式D、多线程性
4.以下关于Java语言的叙述中,错误的是(D)
A、Java的解释器提供了数组下标越界的检查
B、Java语言是一种面向对象的编程语言
C、Java在编译和运行时,都要对可能出现的问题进行检查
D、Java支持C语言中的goto语句
5.Java语言与C++语言相比,最突出的特点是(B)
A、面向对象B、跨平台
C、有类库D、高性能
6.运行java程序所需要的工具软件所在的目录是(A)
A、JDK的bin目录B、JDK的demo目录
C、JDK的lib目录D、JDK的jre目录
7.下列叙述中,错误的是D
A、JavaApplication与Applet所用编译命令相同
B、通常情况下JavaApplication只能有一个main()方法
C、JavaApplet必须有HTML文件才能运行
D、JavaApplet程序的.class文件可用java命令运行
8.在Java语言中,不允许使用指针体现出的Java特性是(D)
A、可移植B、解释执行C、健壮性D、安全性
9.在Java中,负责对字节代码进行解释的是(B)。
A、垃圾回收器B、虚拟机
C、编译器D、多线程机制
10.以下叙述中,正确的是(A)。
A、Java语言的标识符是区分大小写的B、源文件名与public类名可以不相同
C、源文件的扩展名是jarD、源文件中public类个数不限
第二章一.填空题:
1.Java标识符必须以字母、下划线或者美元符号开始。
2.Java程序中的每一个完整的语句都要以;结束。
3.Java采用Unicode字符集。
4.Java中的八进制整常数以0开始,而十六进制整常数以0x开始。
5.浮点型常量默认为double型。
6.在Java中,转义字符\n表示换行。
7.阅读下列程序段
publicclassOperatorsAndExpressions{
StringconditionalExpression(intscore){
Stringresult;
result=(score>=60)?
”passed”:
”doesn’tpass”;
System.out.println(result);
returnresult;
}
publicstaticvoidmain(Stringargs[]){
OperatorsAndExpressionsOperAndExp=newOperatorsAndExpressions();
OperAndExp.conditionalExpression(65);
}
}
其执行结果是passed。
8.在Java中,3.1412D表示的是双精度浮点数3.1412。
9.阅读下列代码
publicclassTest2{
publicstaticvoidmain(Stringargs[]){
System.out.println(5/2);}}
其执行结果是2。
10.在java中,移位运算符包括:
>>、<<和>>>。
11.Java语言的数据类型分为基本数据类型和_复合数据类型_。
12.0011|0100=0111,0100^1100=1000。
13.变量具有三大属性:
名称、类型和作用域。
二.选择题:
1.以下关于Java标识符的叙述中,错误的是:
B
A、Java标识符的后续字符可以是字母,下划线,美元符号和数字
B、Java标识符是不区分大小写的
C、Java标识符没有最大长度的限制
D、Java的标识符不可以用Java关键字来定义
2.以下哪个标识符为合法标识符:
A
A、aVariable1B、1var
C、var%D、static
3.以下哪个标识符为非法的:
C
A、$var2B、_var2
C、var2#D、var2$
4.以下哪个不是Java中的整数类型:
C
A、byteB、int
C、LongD、short
5.请阅读下面程序
importjava.io.*;
publicclassTypeTransition{
publicstaticvoidmain(Stringargs[]){
chara=’a’;
inti=100;
longy=456L;
intaa=a+i;
longyy=y-aa;
System.out.print(“aa=”+aa);
System.out.print(“yy=”+yy);
则程序的执行结果为:
A
A、aa=197yy=259B、aa=177yy=259
C、aa=543yy=288D、aa=197yy=333
6.阅读下面程序
importjava.io.*;
publicclassTypeTransition{
publicstaticvoidmain(Stringargs[]){
chara=’h’;
inti=100;
intj=97;
intaa=a+i;
System.out.println(“aa=”+aa);
charbb=(char)j;
System.out.println(“bb=”+bb);
}
}
如果输出结果的第二行为bb=a,那么第一行的输出是:
B
A、aa=1B、aa=204C、aa=vD、aa=156
7.阅读下面程序
publicclassIncrement{
publicstaticvoidmain(Stringargs[]){
intc;
c=5;
System.out.println(c);
System.out.println(c++);
System.out.println(c);
}
}
程序的运行结果是:
B
A、5B、5C、6D、6
6576
6676
8.下列标识符(名字)命名原则中,正确的是:
D
A、类名的首字母小写B、变量和方法名的首字母大写
C、接口名的首字母小写D、常量完全大写
10.阅读下列代码
publicclassTest2005{
publicstaticvoidmain(Stringargs[]){
System.out.println(~(0xa5)&0xaa);
}
}
其运行结果是:
B
A、0xa5B、10C、0x50D、0xaa
11.阅读下列代码
publicclassTest2005{
publicstaticvoidmain(Stringargs[]){
System.out.println((3>2)?
4:
5);
}
}
其运行结果为:
C
A、2B、3C、4D、5
12.阅读下列代码
publicclassTest{
publicstaticvoidmain(Stringargs[]){
System.out.println(89>>1);
}
}
其运行结果为:
A
A、44B、45C、88D、89
13.下列叙述中,正确的是:
A
A、声明变量时必须指定一个类型
B、Java认为变量number与Number相同
C、Java中唯一的注释方式是”//”
D、源文件中public类可以有0个或多个
14.下列属于合法的Java标识符的是:
D
A、”ABC”B、&5678C、+rriwoD、saler
15.下列代表十六进制整数的是:
D
A、0123B、1900C、fa00D、0xa2
16.++运算操作数的个数是:
A
A、1个B、2个C、3个D、4个
17.在switch(expression)语句中,expression的数据类型不能是:
A
A、doubleB、charC、byteD、short
18.下列代码中,将引起编译错误的行是:
B
1)publicclassExcecise{
2)publicstaticvoidmain(Stringargs[]){
3)floatf=0.0;
4)f+=1.0;
5)}
6)}
A、第2行B、第3行C、第4行D、第6行
19.以下叙述错误的是(A)。
A、用户所定义的标识符允许使用关键字
B、用户定义的关键字应该尽量“见名知意”
C、用户定义的标识符必须以字母、美元符号或下划线开头
D、用户定义的标识符中,大小写字母代表不同的标识
20.下列声明哪个是错误的(B)
Ainti=10;Bfloatf=1.1;
Cdoubled=34.4;Dlongm=4990;
三.判断题:
1.Java中布尔型变量的取值为true和false,其中true又等同于任何非0的数,而false等同于0.(错)
2.实型常量数值后面没有字母时,默认类型是float,而不是double。
(错)
第三章一.填空题:
1.阅读下列程序段
inti=3,j;
outer:
while(i>0){
j=3;
inner:
while(j>0){
if(j<2)breakouter;
System.out.println(j+”and”+i);
j--;
}
i--;
}
被输出到屏幕第一行的结果是3and3。
2.阅读下列代码段
intx=3;
while(x<9)
x+=2;
x++;
while语句成功执行的次数是3次。
3.已知a=3,b=9,则表达式a>b?
a,b的值为9。
4.关系运算符的运算结果一定是布尔数据类型。
5.do-while表示的循环体会至少执行一次。
6.已知x=12,y=6,z=false,则下列表达式的值分别为(表达式之间没有执行的先后顺序):
100==x+yfalse
x=y+1016
z||y>xfalse
!
(y*3<=x*4)false
7.跳转语句continue用于循环体时表示退出本次循环,跳转语句break用于循环体时表示退出整个循环。
二.选择题:
1.阅读下列程序
if(x==0){System.out.println(“冠军”);
elseif(x>-3){System.out.println(“亚军”);
else{System.out.println(“季军”);
若要求打印字符串“季军“,则变量x的取值范围是:
D
A、x=0&x<=-3B、x=0C、x>-3D、x<=-3
2.阅读下面程序
importjavax.swing.JOptionPane;
publicclassBreakLabelTest{
publicstaticvoidmain(Stringargs[]){
Stringoutput=””;
stop:
{
for(introw=1;row<=10;row++){
for(intcolumn=1;column<=5;column++){
if(row==5)
breakstop;
output+=”*“;
}
output+=”\n”;
}
output+=”\nLoopsterminatednormally”;
}
JOptionPane.showMessageDialog{
null,output,”用一个标志测试break语句”,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
程序运行结果是:
C
A、窗口中有5行*****
B、窗口中有5行****
C、窗口中有4行*****
D、窗口中有6行*****
3.下列语句中,属于多分支语句的是:
B
A、if语句B、switch语句C、dowhile语句D、for语句
4.阅读下列代码
publicclassTest2005{
publicstaticvoidmain(Stringargs[]){
Strings=”Test”;
switch(s){
case“Java”:
System.out.print(“Java”);break;
case“Language”:
System.out.print(“Language”);break;
case“Test”:
System.out.print(“Test”);break;
}
}
}
其运行结果是:
D
A、JavaB、LanguageC、TestD、编译出错
5.下列代码中
if(x>0){System.out.println(“first”);}
elseif(x>-3){System.out.println(“second”);}
else{System.out.println(“third”);}
要求打印字符串为“second”时,x的取值范围是:
A
A、x<=0并且x>-3B、x>0
C、x>-3D、x<=3
6.下列哪个说法是正确的?
B
A.if语句和else语句必须成对出现
B.if语句可以没有else语句对应
C.switch后的表达式可以是long型
D.每个switch结构中必须有default结构
7.以下语句中有语法错误的是:
B
A.for(;;);
B.for(inti=0,i<10,i++){}
C.if(a<0)++a;
D.do{a=false;}while(a=true);
8.while循环和do_while循环的区别是:
D
A、没有区别,这两种结构在任何情况下效果都是一样的
B、while循环的执行效率比do_while循环的执行效率高
C、while先循环后判断,所以循环体至少执行一次
D、do_while先循环后判断,所以循环体至少执行一次
9.关于for循环和while循环,下面哪个说法是正确的?
B
A、while循环能实现的操作,for循环都能实现
B、while循环的判断条件一般是程序的结果,for循环的判断条件一般是非程序的结果
C、两种循环在任何时候都可以互换,所以会使用一种就可以
D、两种循环结构中都必须有循环体,循环体不能为空
10.下面说法正确的是:
C
A、程序执行到break语句时一定会结束所有的循环
B、程序执行到continue语句时会结束当前循环
C、break语句和continue语句都可以和标签协同使用
D、break语句和continue语句的作用相同
三.判断题:
1.switch语句中switch后面的表达式可以是整型,字符型,还可以是复合数据类型。
(错)
2.在每一个switch结构中必须有一个default分支。
(错)
第四章一.填空题:
1.类是属性和方法的集合。
2.在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
3.在面向对象的方法中,类的实例被称为_对象____。
4.面向对象的程序设计方法中涉及的对象是程序中用来描述客观事物的一个实体,它由__属性__和可执行的一组操作共同组成。
5.protected关键字修饰的属性或方法表示可被_类自身,同一个包中的其他类,不同包中的子类_访问。
6.抽象的类不能__生成对象__。
7.构造方法是一种特殊的方法,用它来定义对象的_初始化状态__。
8.___最终___类是不能被继承的类。
9.面向对象的3个最主要的特点是继承性、多态性和封装性。
10.在创建类的对象时都会调用类的构造函数来初始化类中的属性。
11.消息传递的三要素是接收消息的对象、接收消息的方法和方法所需要的参数。
12.访问控制符用来控制类和类的成员的访问权限。
二.选择题:
1.下列关于Java对import语句规定的叙述中,错误的是:
(C)
A、在Java程序中import语句可以有多个
B、在Java中import语句可以没有
C、在Java中import语句必须有一个
D、在Java程序中import语句必须引入在所有类定义之前
2.下列关于构造函数的叙述中,错误的是:
(C)
A、Java语言规定构造函数名与类名必须相同
B、Java语言规定构造函数没有返回值,但不用void声明
C、Java语言规定构造函数不可以重载
D、Java语言规定构造函数只能通过new自动调用
3.若数组a定义为int[][]a=newint[3][4],则a是:
B
A、一维数组B、二维数组C、三维数组D、四维数组
4.已知:
int[]a=newint[100];在下列给出的数组元素中,非法的是:
D
A、a[0]B、a[1]C、a[99]D、a[100]
5.在Java中,用package语句说明一个包时,该包的层次结构必须是(B)。
A、与文件的结构相同B、与文件目录的层次相同
C、与文件类型相同D、与文件大小相同
6.在下面的概念中,不属于面向对象的概念的是(C)。
A、类B、继承
C、过程调用D、对象
7.面向对象程序设计主要强调的是(B)。
A、程序的规模B、程序的易读性
C、程序的执行效率D、程序的可移植性
8.在面向对象的方法中,一个对象请求另一个对象为其服务的方式是发送(D)。
A、调用语句B、命令
C、口令D、消息
9.在面向对象的开发方法中,类与对象的关系是(B)。
A、具体与抽象B、抽象与具体
C、整体与部分D、部分与整体
10.保证Java语言可移植性的特征是(D)。
A、面向对象B、安全性
C、分布式计算D、可跨平台
11.面向对象的三大特性不包括(D)
A封装B继承C多态D消息通信
12.程序的执行结果是(B)
publicclassTest{
intx;
publicstaticvoidmain(String[]args){
Testt=newTest();
t.x=5;
change(t);
System.out.println(t.x);
}
publicstaticvoidchange(Testt){
t.x=3;
}
}
A5B3C编译出错D以上答案都不对
6.关于构造函数说法错误的是(B)
A构造函数名与类相同
B构造函数无返回值,可以使用void修饰
C构造函数在创建对象时被调用
D在一个类中如果没有明确的给出构造函数,编译器会自动提供一个构造函数
7.下列选项中,哪个不是Java的访问控制符(C)
AprivateBprotectedCfriendlyDpublic
8.关于抽象类的说法正确的是(B)
A抽象类中一定包含抽象方法,否则是错误
B包含抽象方法的类一定是抽象类
C抽象方法可以没有方法体,也可以有方法体
D抽象类的子类一定不是抽象类
9.关于接口的说法错误的是(D)
A是特殊的抽象类
B是抽象方法和常量值的定义的集合
C当一个类实现一个接口时,必须实现接口中的所有方法
D多个类可以实现一个接口,一个类只能实现一个接口
三.判断题:
1.类的封装性使得代码的可重用性得到提高。
(对)
2.在没有创建类的对象的情况下,就可以通过类来直接访问类中的静态成员。
(对)
3.抽象类不能用来实例化对象,抽象类中可以提供部分方法的实现。
(对)
第五章一.填空题:
1.Java不直接支持多继承,但可以通过接口实现多继承。
2.任何一个Java程序都默认引入了一个包,这个包的名字叫做java.lang。
使用已经存在的类定义作为基础建立新的类定义,这样的技术叫做_类的继承__
3.用来实现接口的关键字是implements。
4.对象替换原则是指父类的句柄可以指向子类的对象。
5.子类继承父类使用关键字extends
6.一个类中如果存在一个或多个抽象方法,那么这个类是一个抽象类。
7.抽象类中可以(“可以”或者“不可以”)不存在抽象的方法,可以(“可以”或者“不可以”)存在非抽象的方法。
8.接口中的属性的默认修饰符为publicstaticfinal,接口中方法的默认修饰符为publicabstract。
二.选择题:
1.用来引入已定义好的类或包的语句是:
B
A、mainB、importC、publicclassD、class
2.下列叙述中,错误的是:
D
A、父类不能替代子类B、子类能够替代父类
C、子类继承父类D、父类包含子类
3.程序执行的结果(C)
publicclassTest{
Stringname="Tom";
publicTest(Stringname){
name=name;
}
publicstaticvoidmain(String[]args){
Tes