《JAVA语言程序设计》期末考试试题题库整理版.docx
《《JAVA语言程序设计》期末考试试题题库整理版.docx》由会员分享,可在线阅读,更多相关《《JAVA语言程序设计》期末考试试题题库整理版.docx(30页珍藏版)》请在冰豆网上搜索。
![《JAVA语言程序设计》期末考试试题题库整理版.docx](https://file1.bdocx.com/fileroot1/2023-6/7/d81774b3-28cb-4308-b3a2-d850e0a98f69/d81774b3-28cb-4308-b3a2-d850e0a98f691.gif)
《JAVA语言程序设计》期末考试试题题库整理版
一、单项选择题
1、如下哪个是Java中的标识符()
A、publicB、superC、3numberD、width
2、如下哪个是Java中的标识符()
A、fieldnameB、superC、3numberD、#number
3、已知如下定义:
Strings="story";下面哪个语句不是合法的()
A、s+="books";B、s=s+100;
C、intlen=s.length;D、Stringt=s+“abc”;
4、如下哪个是Java中有效的关键字()
A、nameB、helloC、falseD、good
5、定义一个类,必须使用的关键字是()
A、publicB、classC、interfaceD、static
6、定义一个接口必须使用的关键字是()
A、publicB、classC、interfaceD、static
7、下列哪一个import命令可以使我们在程序中创建输入/输出流对象()
A、importjava.sql.*;B、importjava.util.*;
C、importjava.io.*;D、import.*;
8、关于对象成员占用内存的说法哪个正确?
()
A.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
B、同一个类的对象共用同一段内存
C.对象的方法不占用内存
D.以上都不对
9、下面关于子类和父类构造函数描述正确的是( )
A、子类必须通过super关键字调用父类无参的构造函数
B、子类必须通过this关键字调用父类无参的构造函数
C、调用父类的构造函数语句必须出现在子类构造函数的第一行
D、如果子类调用了自己有参的构造函数,就不能调用父类的构造函数
10、抽象方法( )
A、可以有方法体B、是没有方法体的方法
C、可以出现在非抽象类中
D、抽象类中的方法都是抽象方法
11、this和super():
A、都可以用在main()方法中B、都是指一个内存地址
C、意义相同D、不能用在main()方法中
12、关于接口哪个正确?
()
A、接口和抽象类是同一回事
B.一个类只能实现一个接口
C.接口间不能有继承关系
D.实现一个接口必须实现接口的所有方法
13、关于静态成员下面说法错误的是()
A、静态成员是最终成员变量
B、静态成员属于类成员
C、定义静态成员使用的关键字是static
D、静态成员必须创建对象时才能使用
14、以下关于继承的叙述正确的是()。
A、在Java中一个类只能实现一个接口
B、在Java中类只允许单一继承
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
15、要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,则()
A.让该类不使用任何关键字
B.使用private关键字
C.使用final关键字
D.使用protected关键字
16、下列哪个代码替换程序中的【代码】不会导致编译错误?
BCD
(A)protectedintgetNumber(){return100;}
(B)intgetNumber(){return100;}
(C)publicintgetNumber(){return100;}
(D)intgetNumber(){return’a’+’b’;}
interfacec1assAAA{
abstractintgetNumber();
}
classBBBimplementsAAA{
【代码】
}
17、void的含义:
()
A.没有意义B.方法体为空
C.方法没有返回值D.定义方法时必须使用
18、覆盖与重载的关系是 ( )
A、覆盖方法可以不同名,而重载方法必须同名
B.覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
19、下列类声明错误的有?
(A)finalabstractclassA
(B)finalclassA
(C)protectedclassA
(D)publicclassA
20、下列E类的类体中哪个【代码】是错误的?
classE{
floatx;//【代码1】
longy=(int)x;//【代码2】
publicvoidf(intn){
doublem;//【代码3】
doublet=n;//【代码4】
}
}
21、下列A类的类体中哪些【代码】是错误的?
classA{
intx=100;//【代码1】
staticlongy;//【代码2】
y=200;//【代码3】
publicvoidf(){
y=300;//【代码4】
}
publicstaticvoidg(){
x=-23;//【代码5】
}
}
22、下列A类的类体中哪些【代码】是错误的?
classTom{
privateintx=120;
protectedinty=20;
intz=11;
privatevoidf(){
x=200;
System.out.println(x);
}
voidg(){
x=200;
System.out.println(x);
}
}
publicclassA{
publicstaticvoidmain(Stringargs[]){
Tomtom=newTom();
tom.x=22;//【代码l】
tom.y=33;//【代码2】
tom.z=55;//【代码3】
tom.f();//【代码4】
tom.g();//【代码5】
}
}
23、下列叙述哪些是正确的?
(A)final类不可以有子类。
(B)abstract类中只可以有abstract方法。
(C)abstract类中可以有非abstract方法,但该方法不可以用final修饰。
(D)不可以同时用final和abstract修饰一个方法。
24、下列哪个代码替换程序中的【代码】会导致编译错误?
(A)protectedintgetNumber(){return100;}
(B)intgetNumber(){return100;}
(C)publicintgetNumber(){return100;}
(D)publicintgetNumber(){return'a'+'b';}
abstractclassAAA{
abstractprotectedintgetNumber();
}
classBBBextendsAAA{
【代码】
}
25、下列哪个代码替换程序中的【代码】不会导致编译错误?
(A)protectedlonggetNumber(){return20L;}
(B)publicbytegetNurnber(){return10;}
(C)publicintgetNumber(){return(byte)lO;}
(D)publicchargetNumber(){return'A’;}
abstractclassAAA{
abstractprotectedintgetNumber();
}
classBBBextendsAAA{
【代码】
}
二、填空题
1、如果将类MyClass声明为public,它的文件名称必须是(MyClass.java)才能正常编译。
2、Java程序中的单行注释符是(//),多行注释符是(/**/)。
3、Java中布尔类型的常量有两种,它们是(true)和(false)。
4、Java中用于定义小数的关键字有两个:
(float)和(double),后者精度高于前者。
5、Java中用于两个数相等比较的运算符是:
(==),用于不相等比较的运算符是(<>)。
6、在Java中定义一个字符串类型的变量str的语句是:
(Stringstr;),定义一个具有10个元素的整型数组a的语句是:
(int[]arr=newint[10];)。
7、导入mypackage包中的所类的命令是(importmypackage.*;)。
8、当声明一个数组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0到4)。
9、假设x=13,y=4,则表达式x%y!
=0的值是(true),其数据类型是(boolean)。
10、异常处理是由(try)、(catch)和finally块三个关键所组成的程序块。
11、导入mypackage包中的类myclass的命令是(importmypackage.myclass;)。
12、使用命令行敲入javac命令,其含义是(编译java文件,得到字节码文件)。
13.定义类的保留字是(class),定义接口的保留字是(interface)。
14.构造方法是一种特殊的成员方法,构造方法名与(类名)相同。
15.Java语言只允许单继承,指每个类只能有一个(父类)。
16.Java源程序的扩展名是(.java),经过编译后的程序的扩展名是(.class)。
17、如果将类MyClass声明为public,它的文件名称必须是(Myclass.java)才能正常编译。
三、程序阅读题
1、以下程序的输出结果为_Peteris17yearsold!
___。
publicclassPerson{
Stringname;
intage;
publicPerson(Stringname,intage){
this.name=name;
this.age=age;
}
publicstaticvoidmain(String[]args){
Personc=newPerson("Peter",17);
System.out.println(c.name+"is"+c.age+"yearsold!
");
}
}
2、以下程序的输出结果为__课程号:
101课程名:
ASP学分:
3___。
publicclassCourse{
privateStringcNumber;
privateStringcName;
privateintcUnit;
publicCourse(Stringnumber,Stringname,intunit){
cNumber=number;
cName=name;
cUnit=unit;
}
publicvoidprintCourseInfo(){
System.out.println("课程号:
"+cNumber+"课程名:
"+cName+"学分:
"+cUnit);
}
}
classCourseTest{
publicstaticvoidmain(String[]args){
Coursec;
c=newCourse("101","ASP",3);
c.printCourseInfo();
}
}
3、以下程序的输出结果为__汤姆猫体重:
20.0斤___。
publicclassTom{
privatefloatweight;
privatestaticStringname;
publicvoidsetWeight(floatweight){
this.weight=weight;
}
privatevoidout(){
System.out.println(name+"体重:
"+weight+"斤");
}
publicstaticvoidmain(String[]args){
Tom.name="汤姆猫";
Tomcat=newTom();
cat.setWeight(20);
cat.out();
}
}
4、以下程序的输出结果_姓名:
Tom年龄:
15家庭住址:
金水区电话:
66123456学校:
九中_。
publicclassFather{
Stringname,address,tel;
intage;
publicFather(Stringname,intage){
this.name=name;
this.age=age;
}
voidout(){
System.out.print("姓名:
"+name);
System.out.print("年龄:
"+age);
}
voidoutOther(){
System.out.print("家庭住址:
"+address);
System.out.print("电话:
"+tel);
}
}
classSonextendsFather{
Stringschool;
publicSon(Stringname,intage){
super(name,age);
}
voidout(){
super.out();
super.outOther();
System.out.println("学校:
"+school);
}
publicstaticvoidmain(Stringargs[]){
Sonson=newSon("Tom",15);
son.address="金水区";
son.school="九中";
son.tel="66123456";
son.out();
}
}
5、下列程序的运行结果是__12345____。
publicclassMyClass{
inta[]={1,2,3,4,5};
voidout(){
for(intj=0;jSystem.out.print(a[j]+"");
}
publicstaticvoidmain(String[]args){
MyClassmy=newMyClass();
my.out();
}
}
6.运行下面的程序,输出并记录结果。
classFather{
privateintf1,f2;
publicFather(intf1,intf2){
this.f1=f1;this.f2=f2;
}
publicvoidprint(){
System.out.println("f1="+f1+"f2="+f2);
}
}
classChildextendsFather{
privateintc1,c2;
publicChild(intf1,intf2,intc1,intc2){
super(f1,f2);
this.c1=c1;this.c2=c2;
}
publicvoidprint(){
super.print();
System.out.println("c1="+c1+"c2="+c2);
}
}
//增加的测试代码
publicclassXT003302{
publicstaticvoidmain(String[]args){
Childc=newChild(1,2,3,4);
c.print();
}
}
输出:
f1=1f2=2
c1=3c2=4
7.请说出A类中System.out.println的输出结果。
classB{
intx=100,y=200;
publicvoidsetX(intx){
x=x;
}
publicvoidsetY(inty){
this.y=y;
}
publicintgetXYSum(){
returnx+y;
}
}
publicclassA{
publicstaticvoidmain(Stringargs[]){
Bb=newB();
b.setX(-100);
b.setY(-200);
System.out.println("sum="+b.getXYSum());
}
}
sum=-100
8.请说出A类中System.out.println的输出结果。
publicclassA{
publicstaticvoidmain(Stringargs[]){
Bb=newB(20);
add(b);
System.out.println(b.intValue());
}
publicstaticvoidadd(Bm){
intt=777;
m.setIntValue(t);
}
}
classB{
intn;
B(intn){
this.n=n;
}
publicvoidsetIntValue(intn){
this.n=n;
}
intintValue(){
returnn;
}
}
777
9.请说出A类中System.out.println的输出结果。
publicclassA{
publicstaticvoidmain(Stringargs[]){
Integerinteger=newInteger(20);
add(integer);
System.out.println(integer.intValue());
}
publicstaticvoidadd(Integerm){
intt=777;
m=newInteger(t);
}
}
20
10.请说出A类中System.out.println的输出结果。
classB{
intn;
staticintsum=0;
voidsetN(intn){
this.n=n;
}
intgetSum(){
for(inti=1;i<=n;i++)
sum=sum+i;
returnsum;
}
}
publicclassA{
publicstaticvoidmain(Stringargs[]){
Bb1=newB(),b2=newB();
b1.setN(3);
b2.setN(5);
ints1=b1.getSum();
ints2=b2.getSum();
System.out.println(s1+s2);
}
}
21
11.请说出E类中System.out.println的输出结果。
classA{
doublef(doublex,floaty){
returnx+y;
}
doublef(floatx,floaty){
returnx*y;
}
}
publicclassE{
publicstaticvoidmain(Stringargs[]){
Aa=newA();
System.out.println("**"+a.f(10,10));
System.out.println("##"+a.f(10.0,10.0F));
}
}
**100.0
##20.0
12.请说出E类中System.out.println的输出结果。
classA{
doublef(doublex,doubley){
returnx+y;
}
}
classBextendsA{//重载
doublef(intx,inty){
returnx*y;
}
}
publicclassE{
publicstaticvoidmain(Stringargs[]){
Bb=newB();
System.out.println(b.f(3,5));
System.out.println(b.f(3.0,5.0));
}
}
15.08.0
13.请说出E类中System.out.println的输出结果。
c1assA{
doublef(doublex,doubley){
returnx+y;
}
staticintg(intn){
returnn*n;
}
}
classBextendsA{
doublef(doublex,doubley){//重写
doublem=super.f(x,y);
returnm+x*y;
}
staticintg(intn){
intm=A.g(n);
returnm+n;
}
}
publicclassE{
publicstaticvoidmain(Stringargs[]){
Bb=newB();
System.out.println(b.f(10.0,8.0));
System.out.println(b.g(3));
}
}
98.012
14.请说出E类中System.out.printf的输出结果。
interfaceComputer{
intcomputer(intx,inty);
}
abstractclassAA{
intcomputer(intx,inty){
returnx-y;
}
}
classBextendsAAimplementsComputer{
publicintcomputer(intx,inty){
returnx+y;
}
}
publicclassE{
publicstaticvoidmain(Stringargs[]){
Computercom=newB();
AAa=newB();
System.out.printf("%d\n",puter(12,10));
System.out.printf("%d\n",puter(15,5));
}
2220
四、简答题
1.如果在D:
\MyJavaFi