Java程序设计基础练习题.docx
《Java程序设计基础练习题.docx》由会员分享,可在线阅读,更多相关《Java程序设计基础练习题.docx(52页珍藏版)》请在冰豆网上搜索。
Java程序设计基础练习题
一、判断题
1、Java不区分大小写的语言。
(N)
2、Java的源代码中定义几个类,编译结果就生成几个以“.class”后缀的字节码文件。
(Y)
3、Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。
(Y)
4、Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。
(Y)
5、Java中数组的元素只能是简单数据类型的量。
(N)
6、Java的String类的对象既可以是字符串常量,也可以是字符串变量。
(N)
7、一个类只能有一个父类,但一个接口可以有一个以上的父接口。
(Y)
8、由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。
(N)
9、Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
(Y)
10、注释的作用是使程序在执行时在屏幕上显示//之后的内容。
(N)
11、Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。
(N)
12、无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件。
(N)
13、Java的各种数据类型所占用的内存长度与具体软硬件环境有关。
(N)
14、与C语言不同的是,Java语言中的数组元素下标总是从1开始。
(N)
15、在Java的方法中定义一个常量要用const关键字。
(N)
16、异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。
(N)
17、序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。
(N)
18、ava系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。
(Y)
19、即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。
(Y)
20、Java中%是取余运算符,要求两端操作数为整型。
(N)
21、造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。
(N)
22、java的类不允许多重继承,但接口支持多重继承。
(Y)
23、谓抽象类就是包含有抽象方法的类。
(Y)
24、java语言中的数组元素只能是基本数据类型而不能为对象类型。
(N)
25.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。
(Y)
26.Applet是一种特殊的Panel,它是JavaApplet程序的最外层容器。
(√)
27.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
(×)
28.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。
(×)
29.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。
(√)
30.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
(×)
31.静态初始化器是在其所属的类加载内存时由系统自动调用执行。
(√)
33.如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。
(√)
34.abstract方法所在的类必须是abstract类。
(√)
35.java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。
(×)
36.设String对象s="H",运行语句System.out.println(s.concat("ello!
"));后String对象s的内容为"Hello!
",所以语句输出为"Hello!
"。
(×)
38.通过继承,父类中的保护成员在派生类中不能被直接访问。
(×)
protect访问权限定义了子类,同包和本类可以访问!
39.接口中的方法一定是抽象方法,变量可以不赋初值。
40.子类继承父类后,如果出现子类的成员变量名和父类的成员变量名同名,那么子类就不继承父类的这个成员变量了。
(×)
41.Java程序是运行在Java虚拟机中的。
(√)
42.接口中的方法一定是抽象方法,变量可以不赋初值。
(×)
注:
在接口里面搞变量没任何意义,在接口中定义的变量实际上是(假如你定义了个inti,相当于publicstaticfinalinti,)既然被final修饰了,那么就是常量,不能改值了,继承了他就不能变了,你一改就报错,所以一定要赋值!
43.可以用new来创建一个类的实例,即"对象"。
(√)
44.Java程序对计算机硬件平台的依赖性很低。
(√)
45.Java中类的构造函数只能有一个。
(×)
46.Java可以用来进行多媒体及网络编程。
(√)
47.类的public类型的成员变量不可以被继承。
(×)
48.子类可以继承父类所有的成员变量及成员函数。
(×)
49.Java类中不能存在同名的两个成员函数。
(×)
50.break语句可以用在循环和switch语句中。
(√)
51.对象是类的一个实例。
(√)
52.用abstract修饰的类必须被继承。
(√)
53.类都能有多个构造方法。
(√)
54.applet可以运行在浏览器中。
(√)
55.用Javac编译Java源文件后得到代码叫字节码。
(√)
56.continue语句用在循环结构中表示继续执行下一次循环。
(√)
57.实现一个接口,则在类中一定要实现接口中的所有方法。
(×)
58.抽象类不能实例化。
(√)
56.在子类的构造函数中,可以把Super()放到任何位置。
57.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
(√)
58.Java语言具有较好的安全性和可移植性及与平台无关等特性。
(√)
59.Java语言的源程序不是编译型的,而是编译解释型的。
(√)
60.JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。
(√)
61.java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。
(√)
62.Java程序中不区分大小写字母。
(×)
63.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。
(√)
64.System类中的println()方法分行显示信息,而print()方法不分行显示信息。
(√)
65.当前路径的标识是“.”。
(√)
66.java命令不区分大小写,而javac命令区分大小写。
(×)
67.printf()和format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。
(√)
68.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。
(×)
69.Java语言使用的是Unicode字符集,每个字符在内存中占8位。
(×)
70.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。
(√)
71.所有的变量在使用前都必须进行初始化。
(×)
72.已知bytei=(byte)127;i=i+1;这两个语句能被成功编译。
(√)
73.Stringstr="abcdefghi";charchr=str.charAt(9);(×)
74.char[]chrArray={'a','b','c','d','e','f','g'};charchr=chrArray[6];(√)
75.inti,j;booleanbooleanValue=(i==j);(×)
76.intintArray[]={0,2,4,6,8};intlength=intArray.length();(×)
77.Stringstr="abcedf";intlength=str.length;(×)
78.shortshortValue=220;bytebyteValue=shortValue;(×)
79.int[]intArray[60];(×)
80.char[]str="abcdefgh";(×)
81.说明或声明数组时不分配内存大小,创建数组时分配内存大小。
(√)
82.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。
(√)
83.类是一种类型,也是对象的模板。
(√)
84.类中说明的方法可以定义在类体外。
(×)
85.实例方法中不能引用类变量。
(×)
86.创建对象时系统将调用适当的构造方法给对象初始化。
(√)
87.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。
(√)
88.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。
(√)
89.对象可作方法参数,对象数组不能作方法参数。
(×)
90.class是定义类的惟一关键字。
(√)
91.Java语言会自动回收内存中的垃圾。
(√)
92.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。
(×)
93.抽象方法是一种只有说明而无具体实现的方法。
(√)
94.Java语言中,所创建的子类都应有一个父类。
(√)
95.调用this或super构造方法的语句必须放在第一条语句。
(√)
96.一个类可以实现多个接口,接口可以实现“多重继承”。
(√)
97.实现接口的类不能是抽象类。
(√)
98.使用构造方法只能给实例成员变量赋初值。
(√)
99.Java语言不允许同时继承一个类并实现一个接口。
(×)
100.Java语言中,构造方法是不可以继承的。
(√)
103.Integeri=(Integer.valueOf("926")).intValue();(√)
104.Strings=(Double.valueOf("3.1415926")).toString();(√)
105.IntegerI=Integer.parseInt("926");(√)
107.在集合中元素类型必须是相同的。
(√)
108.集合中可以包含相同的对象。
(×)
117.捕获异常try语句后面通常跟有一个或多个catch()方法用来处理try块内生成的异常事件。
(√)
118.使用try-catch-finally语句只能捕获一个异常。
(×)
119.try-catch语句不可以嵌套使用。
(×)
120.Error类所定义的异常是无法捕获的。
(√)
121.IOException异常是非运行时异常,必须在程序中抛弃或捕获。
(√)
122.用户自定义异常类是通过继承Throwable类来创建的。
(×)
123.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
(√)
126.所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。
(√)
127.使用Thread子类创建线程的优点是可以在子类中增加新的成员变量,使线程具有某种属性,也可以在子类中新增加方法,使线程具有某种功能。
但是,Java不支持多继承,Thread类的子类不能再扩展其他的类。
(√)
128.Java虚拟机(JVM)中的线程调度器负责管理线程,调度器把线程的优先级分为10个级别,分别用Thread类中的类常量表示。
每个Java线程的优先级都在常数1和10之间,即Thread.MIN_PRIORITY和Thread.MAX_PRIORITY之间。
如果没有明确地设置线程的优先级别,每个线程的优先级都为常数8。
(×)
129.当线程类所定义的run()方法执行完毕,线程的运行就会终止。
(√)
130.线程的启动是通过引用其start()方法而实现的。
(√)
131.文件缓冲流的作用是提高文件的读/写效率。
(√)
132.通过File类可对文件属性进行修改。
(√)
133.IOException必须被捕获或抛出。
(√)
134.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。
(√)
二、填空题
1、根据结构组成和运行环境的不同,Java程序可分为两类:
JavaApplet 、 Javaapplication。
2、类的修饰符分为abstract、public。
3、程序中定义类使用的关键字是class,每个类的定义由类头定义、类体定义两部分组成,其中类体部分包括属性、方法。
4、Java程序中定义接口所使用的关键字是interface,接口中的属性都是静态变量,接口中的方法都是抽象方法。
5、Object是Java程序中所有类的直接或间接父类,也是类库中所有类的父类。
6、列代码后的结果是什么?
intx,a=2,b=3,c=4;x=++a+b+++c++;10
7、main方法的声明格式包括
8、构造函数_______有返回值。
答案:
构造函数没有返回值。
9、Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为________和__________两种具体类型。
答案:
float和double两种具体类型
10、创建类对象的运算符是_______。
答案:
new
11、当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是_____________。
答案:
n%13
12、在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__________。
答案:
元素个数
13、定义类就是定义一种抽象的____________,它是所有具有一定共性的对象的抽象描述。
答案:
数据类型
14、在Java语言中,使用_____、______等技术,实现软件重用。
答案:
继承、多态等技术
15、表达式3/6*5的计算结果是________。
答案:
结果是0
16、下面是一个类的定义:
publicclass____________
{
intx,y;
Myclass(inti,_______)//构造函数
{
x=i;
y=j;
}
}
答案:
Myclass
intj
17、下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。
importjava.io.*;
publicclassMyClass
{
publicstaticvoidmain(Stringargs[])
{
if(args.length!
=___)
for(inti=0;iSystem.out.println(___________);
elseSystem.out.println(没有命令行参数);
}
}
答案:
0
args[i]
18、Java的复合数据类型有:
类、数组和_______等。
答案:
接口
19、表达式3/6*5的计算结果是________。
答案:
0
20、定义初值为10的10次方的长整型变量lvar的语句是:
__________________________。
答案:
longlvar=Math.pow(10,10)。
21、顺序结构、分支结构(或称选择结构)、____________是结构化程序设计的三种基本流程控制结构。
答案:
循环
22、以下方法m的功能是求两参数之积的整数部分。
intm(floatx,floaty)
{__________________;}
答案:
returnMath.round(x),Math.round(y);
23、Java源程序文件编译后产生的文件称为________文件,其扩展名为___________。
答案:
字节码文件,.class
24、向对象方法中,类的实例称为____。
答案:
对象
25、java源文件中最多只能有一个____类,其他类的个数不限。
答案:
public
26、java中所有实现的多维数组,实际上是由一维数组构成的____。
答案:
数组的数组
27、下列程序的运行结果是26
classA{
classDog{
privateStringname;
privateintage;
publicintstep;
Dog(Strings,inta)
{
name=s;
age=a;
step=0;
}
publicvoidrun(Dogfast)
{
fast.step++;
}
}
publicstaticvoidmain(Stringargs[])
{
Aa=newA();
Dogd=a.newDog("Tom",3);
d.step=25;
d.run(d);
System.out.println(d.step);
}
}
1.已知:
inta=8,b=6;则:
表达式++a-b++的值为(3)。
2.已知:
booleanb1=true,b2;则:
表达式!
b1&&b2||b2的值为(false)。
3.已知:
doublex=8.5,y=5.8;则:
表达式x++>y--值为(true)。
4.已知:
inta[]={2,4,6,8};则:
表达式(a[0]+=a[1])+++a[2]值为(13)。
5.执行intx,a=2,b=3,c=4;x=++a+b+++c++;结果是(x=10,a=3,b=4,c=5)。
6.Java中的显式类型转换既能(从低类型向高类型转换)也能从高类型向低类型转换,而隐式类型转换只有前者。
7.在Java中,字符串和数组是作为(对象)出现的。
8.执行下列程序代码的输出结果是(10,11,11)。
inta=10;inti,j;i=++a;j=a--;
System.out.printf("%d,%d,%d",a,i,j);
9.执行完booleanx=false;booleany=true;booleanz=(x&&y)&&(!
y);intf=z==false?
1:
2;
这段代码后,z与f的值分别是(false)和
(1)。
1.类是一组具有相同(属性)和(行为)的对象的抽象。
(实例)是由某个特定的类所描述的一个个具体的对象。
2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。
7.构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个(默认构造)方法。
8.在方法体内定义的变量是(局部变量),其前面不能加(public),且必须(初始化)。
9.数组元素作实参时对形参变量的数据传递是(单向值传递),数组名作实参时对形参变量的数据传递是(双向引用传递)。
10.对象作方法形参时,方法实参也用对象,实现(引用)调用。
11.(new)是一个特殊的方法,用于创建一个类的实例。
12.对象拷贝有(对象引用复制)、(浅复制)和(深复制)三种。
13.(类)方法不能直接访问其所属类的(实例)变量和(实例)方法,只可直接访问其所属类的(类)变量和(类)方法。
14.(类)变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例,就会为(实例)变量分配一次内存,(实例)变量可以在内存中有多个拷贝,互不影响。
15.Java使用固定于首行的(package)语句来创建包。
16.在运行时,由java解释器自动引入,而不用import语句引入的包是(java.lang)。
17.发布Java应用程序或类库时,通常可以使用JDK中自带的(JAR)命令打包。
1.在面向对象系统中,消息分为(公有消息)和(私有消息)两类。
2.类的访问控制符有(public)和(默认default)两种,(public)类具有跨包访问性而(default)类不能被跨包访问。
3.类成员的访问控制符有(public)、(protected)、(private)和默认四种。
4.public类型的类成员可被(同一类)、同一包中的(子类与非子类)和不同包中的(子类与非子类)的代码访问引用。
5.protected类型的类成员可被(同一类)、同一包中的(子类与非子类)和不同包中的(子类)的代码访问引用。
6.default类型的类成员只能被(同一类)、同一包中的(子类与非子类)的代码访问引用。
7.private类型的类成员只能被其所在类中的代码访问引用,它只具有(类)域访问性。
8.系统规定用(this())表示当前类的构造方法,用(super())表示直接父类的构造方法,在构造方法中两者只能选其一,且须放在第一条语句。
9.若子类和父类在同一个包中,则子类继承父类中的(public)、(protected)和(默认)成员,将其作为子类的成员,但不能继承父类的(private)成员。
10.若子类和父类不在同一个包中,则子类继承了父类中的(public)和(protected)成员,将其作为子类的成员,但不能继承父类的(默认)和(private)成员。
11.(子类对象)直接赋值给(父类对象)时,子类对象可自动转换为父类对象,(父类对象)赋值给(子类对象)时,必须将父类对象强制转换为子类对象。
12.Java的多态性主要表现在(方法重载)、(方法覆盖)和(变量覆盖)三个方面。
13.重写后的方法不能比被重写的方法有(更严格)的访问权限,重写后的方法不能比被重写的方法产生更多的异常。
14.Java语言中,定义子类时,使用关键字(extends)来给出父类名。
如果没有指出父类,则该类的默认父类为(Object类)。
15.Java语言中,重载方法的选择是在编译时进行的,系统根据(参数个数)、(参数类型)和参数顺序寻找匹配方法。
16.实现接口中的抽象方法时,必须使用(完全相同)的方法头,并且还要用(public)修饰符。
17.接口中定义的数据成员均是(常量数据成员),所有成员方法均为(抽象方法)方法,且没有(构造)方法。
18.this代表(当前对象自身)的引用,super表示的是当前对象的直接父类对象。
19.如果一个类包含一个或多个abstract方法,则它是一个(abstract)类。
20.Java不直接支持多继承,但可以通过(接口)实现多继承。
类的继承具有(传递)性。
21.没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能改变值的量称为常量,又称为(最终变量)。
22.一个接口可以通过关键字extends来继承(多个)其他接口。
23.接口中只能包含(public