Java题库及答案2Word文档格式.docx
《Java题库及答案2Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java题库及答案2Word文档格式.docx(245页珍藏版)》请在冰豆网上搜索。
4、不正确的表达式是(AB)。
A、floata=1.0d;
B、Doublea=newDouble(1.0)
C、bytea=(byte)340;
D、Bytea=120;
5、定义一个类名为"
MyClass.java"
的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为(CD)。
A、privateclassMyClassextendsObject
B、classMyClassextendsObject
C、publicclassMyClass
D、publicclassMyClassextendsObject
6、下列构造方法的调用方式中,正确的是(C)。
A、按照一般方法调用
B、由用户直接调用
C、只能通过new自动调用
D、被系统调用
7、private级的成员可以被哪些对象访问?
C
A、同一包中的其他类
B、仅同一类的私有成员方法
C、仅同一类的所有成员方法
D、所有其他类
8、关于Object类,以下正确的是(ADE)。
A、Object类中定义了一些重要的方法,以方便Java类的使用
B、Object类是一个非常特殊的“虚拟”类,就是说只能从Object类派生出其它类,但不能创建一个Object类的对象,也不能将一个引用变量定义为Object类型
C、如果一个类已经有了父类,那么这个类同时继承了Object类,也就是说这时候这个类实际上有两个父类
D、Object类是所在其他Java类的直接或间接父类
E、Java中的类是单继承的,因此所在的类以Object类为根,形成了棵继承树
9、抽象类与普通类的区别是什么?
A、抽象类没有成员变量,只有成员函数
B、抽象类只有成员变量,没有成员函数
C、抽象类中有抽象函数,而普通类的每个函数都是有具体实现的
D、抽象类与普通类没有区别
10、使用接口的通常办法是(D)。
A、将接口数当作静态数据来调用
B、直接调用接口的方法
C、将接口变量作为方法的参数来使用
D、定义一个接口变量,该变量指向实现接口的对象来访问
E、定义一个接口对象,通过对象访问
11、执行下列代码后,哪个结论是正确的String[]s=newString[10];
BD
A、s[10]为"
"
B、s[9]为null;
C、s[0]为未定义
D、s.length为10
12、以下对substring函数的描述中,错误的是()。
BC
A、String和StringBuffer类都可以使用substring函数
B、substring函数返回一个StringBuffer对象
C、substring函数获得从指定位置开始,到指定位置为止的字符串
D、substring函数用于获得字符串的一个子串
13、如果catch块中包括多个异常类,这些异常类的匹配原则是什么?
A、接try块中程序执行的顺序,寻找最通用的异常类
B、接try块中程序执行的顺序,寻找能够最精确匹配的类
C、接catch块中异常类的排列顺序,寻找第一个能够匹配的异常对象
D、在catch块中寻找能够最精确匹配的类
14、以下异常中,不属于RuntimeException的是(D)。
A、IndexoutofBoundsException数组以下越界异常
B、NullPointerExcePtion使用未初始化的引用变量
C、ArithmeticException算术异常
D、IllegalAccessException没有足够的权限访问其他类的成员
15、运行下列程序,会产生什么结果。
AD
publicclassMyThreadextendsThreadimplementsRunnable{
publicvoidrun(){
System.out.println("
thisisrun()"
);
}
publicstaticvoidmain(String[]args) {
Threadt=newThread(newMyThread());
t.start();
A、第一行会产生编译错误
B、第六行会产生编译错误
C、第六行会产生运行错误
D、程序会运行和启动
三、简答题。
1、子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?
此时子类对象还能执行父类中原来的方法吗?
答:
这种情况称为方法的覆盖,此时,在子类中已不能找到父类原来的方法,它的内存位置已经被替代。
2、final修饰符可以用来修饰什么?
被final修饰符修饰后有何特点?
final修饰符可用来修饰类、属性、方法和终结器。
被final修饰符修饰的类没有子类。
被final修饰符修饰的属性在程序整个执行过程中都不能改变。
被final修饰符修饰的方法是功能和内部语句不能更改的最终方法。
被final修饰符修饰的终结器(以称析构器——finalize()方法,是在对象被删除前进行收尾工作的方法)也是不能更改的。
3、试写出一个语句创建一个名为myPackage的包,这个语句应该放在程序的什么位置?
packageMyPackage;
应该在程序第一句。
四、编程题。
1、打印出所有的“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=13+53+33。
#include<
stdio.h>
intmain()
{
//所谓水仙花数是指一个三位数,其各位数字立方和等于该数
inti;
inta=0,b=0,c=0;
//a表示百位上的数,b表示十位上的数,c表示个位上的数,
printf("
打印三位数的所有水仙花数\n"
for(i=100;
i<
1000;
i++)
a=i/100;
b=i/10;
c=i;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("
%d\n"
i);
}
return0;
2、编程创建一个Cube类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个构造方法对这三个变量进行初始化,然后定义一个方法求立方体的体积。
创建一个对象,求给定尺寸的立方体的体积。
publicclassBox
doublelength;
//长
doublewidth;
//宽
doubleheight;
//高
publicBox()
{//构造函数
length=0;
width=0;
height=0;
publicvoidsetLength(doublelength)
{//设置长
this.length=length;
publicdoublegetLength()
{//得到长
returnlength;
publicvoidsetWidth(doublewidth)
{//设置宽
this.width=width;
publicdoublegetWidth()
{//得到宽
returnwidth;
Java程序设计试题及答案
(二)
Java程序设计试题及答案
(二)
1、JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。
2、Java程序中不区分大小写字母。
3、已知bytei=(byte)127;
i=i+1;
这两个语句能被成功编译。
4、调用this或super构造方法的语句必须放在第一条语句。
√
5、创建对象时系统将调用适当的构造方法给对象初始化。
6、对象可作方法参数,对象数组不能作方法参数。
1、Java程序的编程与运行分几个阶段,下面的阶段描述中正确的是(BE)。
A、Java编译器将源文件编译为二进制的目标码文件
B、连接软件将目标码文件连接为最终的执行文件
C、Java虚拟机运行连接后的可执行文件,将它们翻译为硬件能够理解的机器语言
D、目标码无需连接,可以直接由Java虚拟机执行
E、Java虚拟机解释目标文件,并把它们翻译为硬件能够理解的机器语言
2、执行一个Java程序“FirstApp”的方法是(B)
A、直接双击编译好的Java目标码文件执行
B、运行“javacFirstApp.class”
C、运行“javaFirstApp.java”
D、运行“javaFirstApp”
3、按照Java的标识符命名规范,下列表示一个类的标识符正确的是(B)。
A、Helloworld
B、HelloWorld
C、helloworld
D、helloWorld
4、下列叙述中,正确的是(A)。
A、Java语言的标识符是区分大小写的
B、源文件名与public类名可以不相同
C、源文件扩展名为.jar
D、源文件中public类的数目不限
5、指出下列哪个方法不是publicvoidadd(inta){}的重载方法。
(A)
A、publicintadd(inta)
B、publicvoidadd(longa)
C、publicvoidadd(inta,intb)
D、publicvoidadd(floata)
6、关于缺省级和公开级的类在访问上的差别,描述正确的是(BD)。
A、对于其它包的类,只要用“import”关键字导入,就可以访问到缺省级的类
B、“import”关键字只能导入公开级的类
C、在公开级,不但同一个包里的其它类可以访问这个类,而且其它包里的类也可以访问它
D、缺省级下,只有同一个包内的其它类可以访问这个类,外界不能访问
E、缺省级和公开级的类都能从包外访问到
7、子类如何调用父类带有参数的构造方法?
B
A、子类也创建具有同样参数的方法参数,Java会自动调用父类构造方法
B、子类构造方法的开头用“super”语句调用父类构造方法
C、无法调用
D、创建子类对象时,先调用父类的构造方法,再调用子类的构造方法
8、public的成员变量能够被以下哪些对象访问到?
C
A、所有的对象,但子类只能直接访问,而不能继承父类对象的public组成员
B、所有的对象,但其它包中的对象只能访问少数从句中导出的成员
C、所有的对象,子类可以直接访问,也可以继承父类对象的public组成员
D、所有的对象
E、所有的对象,但子类不能访问其它包中的父类对象的public组成员
9、当父类的引用变量指向子类对象时,对于同名的方法调用哪个?
A
A、调用子类的方法
B、先调用父类的方法再调用子类的方法
C、调用父类的方法
D、先调用子类的方法再调用父类的方法
10、关于多态性,以下描述中正确的是(D
)。
A、多态性就是方法的覆盖
B、多态性就是方法重载
C、多态性只存在于同名的成员变量之间
D、多态性是指按引用变量指向的对象,而不是引用变量本身的类型来决定调用哪个方法
11、以下关于字符串函数的描述中,正确的是(
C)。
A、delete函数用于删除整个字符串
B、replace函数的作用是替换一段子串
C、setCharAt函数的作用是将String或StringBuffer字符串的某个字符替换
D、insert函数的作用是在字符串的某个位置插入一个字符
12、以下关于运行期异常的说法中,错误的是(AD)。
A、运行期异常不需要在函数定义的throws部分给出
B、在程序运行中,如发生运行期异常会被自动抛出函数
C、运行期异常必须用try、catch块捕获
D、RuntimeException是各种在正常运行情况下可以被Java虚拟机抛出的异常的父类
13、以下关于捕获的原则中,错误的是(D)。
A、Exception类必须出现,而且必须作为catch块中第一个匹配的类
B、先列出具体的异常类,后列出通用的异常类
C、先列出子类,后列出父类
D、RuntimeException可以不被捕获,Java会自动处理运行期的异常
三、简答题(每题5分,共20分)。
1、阅读下面的程序并写出类MyClass3的所有成员,并写明它们定义自哪里。
classMyClass1{
privateintpro11;
doublepro12;
}
classMyClass2extendsMyClass1{
privatedoublepro12;
intpro21;
classMyClass3extendsMyClass2{
privateintpro21;
doublepro31;
2、创建接口使用什么关键字?
接口可以有父接口吗?
试书写语句创建—个名为MyInterface的接口,它是继承了MySuperInterface1和MySuperInterface2两个接口的子接口。
创建接口使用关键字Interface。
接口可以有父接口。
InterfaceMyInterfaceextendsMySuperInterface,MySuperInterface2
四、编程题(每题10分,共30分)。
1、编写一个方法,实现对数组元素由大到小排列。
#include<
iostream>
cstdlib>
//函数exit的函数头
usingnamespacestd;
intmain()
{
voidsort(intx[],intn);
//函数声明
intn;
cin>
>
n;
//数组长度由用户输入
int*a=newint[n];
//动态分配数组的长度
if(a==NULL)
cout<
<
Error,CannotAllocateMemory!
endl;
exit
(1);
int*p,i;
p=a;
for(i=0;
i++)
cin>
a[i];
sort(p,n);
//调用函数
for(p=a,i=0;
delete[]a;
//释放内存块
voidsort(intx[],intn)
inti,j,k,t;
n-1;
i++)//选择排序法,这里也可以选用其他排序法
k=i;
for(j=i+1;
j<
j++)
if(x[j]>
x[k])
k=j;
if(k!
=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
2、定义一个学生类(Student),属性包括:
学号,班号,姓名,性别,年龄,班级总人数;
方法包括:
获得学号,获得班号,获得姓名,获得性别,获得年龄,获得班级总人数,修改学号,修改班号,修改姓名,修改性别,修改年龄以及一个toString()方法将Student类中的所有属性组合成一个字符串。
定义一个学生数组对象。
设计程序进行测试。
classstudent{
privateStringxuehao;
privateStringbanhao;
privateStringxingming;
privateStringxingbie;
privateintnianling;
publicstudent(Stringx,Stringb,Stringm,Stringb1,intn){
this.xuehao=x;
this.banhao=b;
this.xingming=m;
this.xingbie=b1;
this.nianling=n;
publicStringgetxuehao(){
returnxuehao;
publicStringgetbanhao(){
returnbanhao;
publicStringgetxingming(){
returnxingming;
publicStringgetxingbie(){
returnxingbie;
publicintgetnianling(){
returnnianling;
publicStringtoString(){
returnxuehao+"
"
+banhao+"
+xingming+"
+xingbie+"
+nianling;
publicclassDome4{
publicstaticvoidmain(Stringargs[]){
students1=newstudent("
02122168"
"
12"
安静"
男"
24);
System.out.println(s1.toString());
3、从键盘输入两个数,进行相加,显示和。
当输入串中含有非数字时,通过异常处理机制,使程序能正确运行。
datasegment
indatadw2dup(?
)
outdatadw1dup(?
notein1db'
pleaseinputthefirstdecimalnumber(0-99):
$'
notein2db'
pleaseinputtheseconddecimalnumber(0-99):
noteoutdb'
theresultofadditionis:
notewarndb'
warning:
wrongchar!
noteagaindb'
pleaseinputagain:
dataends
showmacroaddr
movah,9h
leadx,addr
int21h
endm
codesegment
assume
cs:
code,ds:
data,es:
data
mainprocfar
start:
pushds
subax,ax
pushax
movax,data
movds,ax
moves,ax
shownotein1
callcrlf
calldeci_input
movindata,bx
shownotein2
movindata+2,bx
movax,bx
addax,indata
movoutdata,ax
shownoteout
calldeci_output
ret
mainendp
deci_inputprocnear
movbx,0
newchar:
movah,1
int21h
cmpal,0dh
jzexit
subal,30h
jlnoteerr
cmpal,9d
jgnoteerr
cbw
xchgax,bx
movcx,10d
mulcx
addbx,ax
jmpnewchar
noteerr:
shownotewarn
shownoteagain
exit:
ret
deci_inputendp
deci_outputprocnear
movbx,outdata
movcl,100d
divcl
movbl,