JAVA期末试题及答案_第1页
JAVA期末试题及答案_第2页
JAVA期末试题及答案_第3页
JAVA期末试题及答案_第4页
JAVA期末试题及答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Java程序设计》课程试卷1.使用Java语言编写的源程序保存时的文件扩展名是〔〕。〔A〕.class〔B〕.java〔C〕.cpp〔D〕.txt2.设inta=-2,那么表达式a>>>3的值为〔〕。〔A〕0〔B〕3〔C〕8〔D〕-13.设有数组的定义int[]a=newint[3],那么下面对数组元素的引用错误的选项是〔〕。〔A〕a[0];〔B〕a[a.length-1];〔C〕a[3];〔D〕inti=1;a[i];4.在类的定义中可以有两个同名函数,这种现象称为函数〔〕。〔A〕封装〔B〕继承〔C〕覆盖〔D〕重载5.在类的定义中构造函数的作用是〔〕。

〔A〕保护成员变量〔B〕读取类的成员变量〔C〕描述类的特征〔D〕初始化成员变量6.下面关键字中,哪一个不是用于异常处理语句〔〕。〔A〕try〔B〕break〔C〕catch〔D〕finally7.类与对象的关系是〔〕。〔A〕类是对象的抽象〔B〕对象是类的抽象〔C〕对象是类的子类〔D〕类是对象的具体实例8.下面哪一个是Java中不合法的标识符〔〕。

〔A〕$persons〔B〕twoNum〔C〕_myVar〔D〕*point9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。〔A〕staticvoidmethod()〔B〕publicvoidmethod()〔C〕finalvoidmethod()〔D〕abstractvoidmethod()10.欲构造ArrayList类的一个实例,此类继承了List接口,以下哪个方法是正确的〔〕。〔A〕ArrayListmyList=newObject()〔B〕ListmyList=newArrayList()〔C〕ArrayListmyList=newList()〔D〕ListmyList=newList()11.Java源文件和编译后的文件扩展名分别为〔

〕(A).class和

.java

(B).java和.class(C).class和

.class

(D).java和

.java12.在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画图操作。(A)start()(B)stop()(C)init()(D)paint()13.对于一个Java源文件,import,class定义以及package正确的顺序是:

(A)package,import,class

(B)class,import,package(C)import,package,class

(D)package,class,import14.下面哪个是非法的:(A)intI=32;

(B)floatf=45.0;

(C)doubled=45.0;

(D)charc=‘u’;//符号错15.Java语言使用的字符码集是(A)ASCII(B)BCD(C)DCB(D)Unicode16.如果一个类的成员变量只能在所在类中使用,那么该成员变量必须使用的修饰是(A)public(B)protected(C)private(D)static17.下面关于main方法说明正确的选项是(A)publicmain(Stringargs[])(B)publicstaticvoidmain(Stringargs[])(C)privatestaticvoidmain(Stringargs[])(D)voidmain()18.哪个关键字可以对对象加互斥锁?()(A)transient(B)synchronized(C)serialize(D)static19.关于抽象方法的说法正确的选项是()(A)可以有方法体(B)可以出现在非抽象类中(C)是没有方法体的方法(D)抽象类中的方法都是抽象方法20.java.io包的File类是

(A)字符流类(B)字节流类(C)对象流类(D)非流类21.Javaapplication中的主类需包含main方法,以下哪项是main方法的正确形参?〔〕A、 Stringargs B、Stringargs[] C、Chararg D、StringBufferargs[]22.以下代码段执行后的输出结果为〔〕 intx=-3;inty=-10; System.out.println(y%x);A、 -1 B、2 C、1 D、323.以下关于继承的表达正确的选项是〔〕。A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口C、在Java中一个类不能同时继承一个类和实现一个接口D、在Java中接口只允许单一继承24.假设有定义:byte[]x={11,22,33,-66};其中0≤k≤3,那么对x数组元素错误的引用是〔〕A〕x[5-3]B〕x[k]C〕x[k+5] D〕x[0]25.paint()方法使用哪种类型的参数?〔〕A、Graphics B、Graphics2D C、String D、Color26.以下哪个不是Java的原始数据类型〔〕A、int B、Boolean C、float D、char27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为〔〕A〕隐藏B〕重写C〕重载D〕Java不支持此特性28.以下有关构造方法的说法,正确的选项是:〔〕A.一个类的构造方法可以有多个B.构造方法在类定义时被调用C.构造方法只能由对象中的其它方法调用。D.构造方法可以和类同名,也可以和类名不同29.在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行〔〕。A、init() B、start() C、destroy() D、stop()30.给出下面代码,关于该程序以下哪个说法是正确的?〔〕publicclassPerson{staticintarr[]=newint[5];publicstaticvoidmain(Stringa[]){System.out.println(arr[0]);}}A、编译时将产生错误 B、编译时正确,运行时将产生错误C、输出零 D、输出空31、有以下方法的定义,请选择该方法的返回类型〔〕。 ReturnTypemethod(bytex,doubley) { return(short)x/y*2; }A、byte B、short C、int D、double32.以下类定义中哪些是合法的抽象类的定义?〔〕A、abstractAnimal{abstractvoidgrowl();}B、classabstractAnimal{abstractvoidgrowl();}C、abstractclassAnimal{abstractvoidgrowl();}D、abstractclassAnimal{abstractvoidgrowl(){System.out.println(“growl”);};}33.有以下程序片段,以下哪个选项不能插入到行1。〔〕1.2.publicclassInteresting{3.//dosth4.}A、importjava.awt.*; B、packagemypackage; C、classOtherClass{} D、publicclassMyClass{}34.设有下面两个赋值语句:a=Integer.parseInt(“12”);b=Integer.valueOf(“12”).intValue();下述说法正确的选项是〔〕。A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。35.在编写JavaApplet程序时,需在程序的开头写上()语句。A、importjava.awt.*; B、importjava.applet.Applet;C、importjava.io.*; D、importjava.awt.Graphics;36.以下哪一项不属于Swing的顶层容器?〔〕A〕JAppletB〕JTreeC〕JDialogD〕JFrame37.为了使包ch4在当前程序中可见,可以使用的语句是〔〕。A〕importch4.*;B〕packagech4.*;C〕ch4import;D〕ch4package;38.请问所有的异常类皆继承哪一个类?〔〕。A〕java.io.Exception B〕C〕D〕39.进行Java根本的GUI设计需要用到的包是〔〕。A〕java.ioB〕java.sql C〕java.awtD〕java.rmi40.当点击鼠标或者拖动鼠标时,触发的事件是以下的哪一个?〔〕A〕KeyEventB〕ActionEventC〕ItemEventD〕MouseEvent填空题:1.数组x定义:Stringx[][]=newint[3][2];x[0][0]=”abc”,x[0][1]=”12345”;那么x.length的值为______2___,x[0][1].length()的值为__5___。2、Java语言的变量由变量名、_修饰符_、变量属性、_初值___组成。3、当程序中需要抛出异常时,应该使用_catch_子句,当需要在方法中声明可能抛出的异常类型,应该使用_______子句。4、java.applet包中的________类定义了Applet与其运行环境之间的一个标准接口。5、Java语言中提供的GUI功能主要由java.awt包和_java.swing_包中的类和接口实现。6、Java源程序文件和字节码文件的扩展名分别为_.java___和__.class___。7、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加___void___进行说明。类是Java语言的一种_______数据类型。在Java语言中,所有的对象均通过___________运算符分配内存,并对内存进行自动管理。10、每个JavaApplication程序可以包括许多方法,但是必须有且只能有一个______方法,统一格式为__________,它是程序执行的入口。假设要在程序中定义一个公用的int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,那么定义该变量的语句是_____________________。子类必须通过_super_关键字调用父类有参数的构造函数。在Java语言中,所有的类都是类__Object__的子类。在Java程序中,通过类的定义只能实现单重继承,但通过__接口__的定义可以实现多重继承关系。如果在Java程序中,需要使用java.util包中的所有类,那么应该在程序开始处加上语句_importjava.util.*_。以下程序的运行结果是__01234_______________publicclassex2{ publicstaticvoidmain(String[]args) { for(intcnt=0;cnt<10;cnt++) { if(cnt==5) break; System.out.print(cnt); }}}以下程序的运行结果是______4_________importjava.io.*;publicclassATest{publicstaticvoidmain(Stringargs[]){SubClasssb=newSubClass();System.out.println(sb.fun());}}classSuperClass{inta=24,b=5;}classSubClassextendsSuperClass{intfun(){returna%b;}}分析以下程序,填上空白处的语句classpoint//定义坐标类{intx,y;test(inta,intb){x=a;y=b;}}classrec_extendspoint__________//定义长方形类{ intlength,width; rec(inta1,intb1,intl,intw) {super(a1,b1); length=l;width=w; }}classtest{publicstaticvoidmain(Stringargs[]) { ___testr1=newtest(“0”,“0”,“10”,“20”)__________________//定义名为r1的对象同时初始化坐标为0,0,长度为10,宽度为20 r1.print(); }}19、Java源文件中最多只能有__________1___________个公共类,其它类的个数不限。

20、在Java中所有实现的多维数组,实际上是由一维数组构成的_数组的数组。

21、设x=15,那么表达式(x++)/4的值是___3_______________。22、___抽象______方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。23、____run〔〕______方法用于定义线程的执行体._____start〔〕______方法用于启动线程.24、Stringstr1=”abc”;Stringstr2=newString(“abc”);System.out.println(str1==str2);那么程序运行后输出结果为:_____fault________25、Java语言中,有一个类是所有类或接口的父类,这个类的名称是____Object______。26、当启动Applet程序时,首先调用的方法是_____________________。27、Java语言是一种完全的_____________________程序设计语言。28.如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,那么类MyApplet必须是____Applet_____类的子类并且存储该源程序文件的文件名为。29.设intx=2,那么表达式(x++)/3的值是_____0_______________。30.Java提供的访问权限修饰符有4个,即:public、_private、protected和友元。31.Java中有两种常用的字符串类,一个是String,另一个是_____________________。32.Java实现多线程的方法有两种,一种方法是通过创立_____________________类的子类实现多线程,另一种方法是定义一个实现_____________________接口的类。33.Java不支持多继承。但它允许一个类同时实现多个__接口____,这就相当于局部实现了多继承。34.Java源文件中,__________import___________语句位于package语句之后、类定义之前。35.__OutputStreamWriter__类是OutputStream类的子类,用来处理以文件作为数据输出的数据流。三、编程题:1.编写一个输出"HelloWorld!"的程序,用两种方式实现〔Application、Applet〕。2.编写一个JavaApplication,接收从键盘输入的10个整数,并输出其中的最大、最小以及平均值。要求:将计算功能定义在一个类中,由主类接收输入,再用数组的方式传递给实现计算的类的方法,再输出结果。3.编写一个程序,使用复数类Complex验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。复数类Complex必须满足如下要求:(1)复数类Complex的属性有:RealPart:

int型,代表复数的实数局部ImaginPart:int型,代表复数的虚数局部(2)复数类Complex的方法有:Complex():构造函数,将复数的实部和虚部都置0Complex(intr,inti):构造函数,形参r为实部的初值,i为虚部的初值。ComplexcomplexAdd(Complexa):将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。StringToString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。4.求10个数中的最大值并输出。5.建立一个学生类,其中成员变量为学号,姓名,及三门课成绩。另外建立一个包含主方法的类,定义2个学生类的对象,求出这2个学生三门课总分的最高分,并将最高分这个学生的信息输出。6.编写一个Application,接受用户输入的帐号和密码,给三次输入时机.7.定义一个圆类circle,它有一个变量radius(半径)、假设干个构造函数和一个求圆的面积的方法。在主类test的main()方法中随机生成一个100以内的整数,通过构造函数的参数传递给radius,调用圆类circle中的方法计算并输出圆的面积。8.编写Applet程序模拟屏幕保护程序,在屏幕上随机画圆。圆的位置和半径是随机的。50毫秒后再随机画下一个圆,一旦画满了50个圆,就去除屏幕。然后重新开始画圆。9.请编写一个实现如下功能的Application:比拟从键盘输入的两个整数是否相等,并根据比拟结果显示“相等”或“不相等”。10.请编写一个Applet,其中包含两个标签〔一个用于给出提示信息,另一个用来输出结果〕和一个文本框。要求从文本框中获取用户给出的一个整数,并将该数的绝对值在标签上输出。11.编写一个Application,利用数组求出”HELLO”,”JAVA””PROGRAM”三个字符串的平均长度。12.SQLServer中有一个名为friends的表,如以下图,利用JDBC编程实现显示表中记录信息。一:application程序

publicclassa

{

publicstaticvoidmain(Stringargs[])

{

System.out.println("HelloWorld!");

}

}

2、applet程序

publicclassbextendsjava.applet.Applet

{

publicpaint(java.awt.Graphicsg)

{

g.outstring("HelloWorld!",10,10);

}

}二:publicclassComplex{privatefloatshibu;privatefloatxubu;Complex(){this(0,0);}Complex(floatshibu,floatxubu){this.shibu=shibu;this.xubu=xubu;}publicvoidAdd(Complexp){Complexresult=newComplex();result.shibu=this.shibu+p.shibu;result.xubu=this.xubu+p.xubu;System.out.print("加法果为:"+result.shibu+"+"+result.xubu+"i");}publicstaticvoidmain(String[]args){Complexfushu1=newComplex(1,2);Complexfushu2=newComplex(3,4);fushu1.Add(fushu2);}}三:importjava.lang.*;publicclassCOMplex{intRealPart;intImagePart;COMplex(){RealPart=0;ImagePart=0;}COMplex(intreal,intimage){RealPart=real;ImagePart=image;}COMplexcomplexAdd(COMplexa){COMplexrepart=newCOMplex();repart.RealPart=this.RealPart+a.RealPart;repart.ImagePart=this.ImagePart+a.ImagePart;returnrepart;}voidToString(){System.out.println(this.RealPart+"+"+this.ImagePart+"i");}publicstaticvoidmain(Stringargs[]){COMplexC1=newCOMplex(2,3);COMplexC2=newCOMplex(4,6);COMplexC3=newCOMplex();C1plexAdd(C2).ToString();C2plexAdd(C3).ToString();//C3.ToString();}}四:importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(Stringargs[]){

intnum[]=newint[10];

intmax;

Scannerscan=newScanner(System.in);

System.out.print("请输入10个数字:");

for(inti=0;i<10;i++){

num[i]=scan.nextInt();

}

max=num[0];

for(inti=1;i<10;i++){

if(max<num[i])max=num[i];

}

System.out.println("最大值是"+max);

}五://学生类publicclassStudent{privateStringstu_id;privateStringstu_name;privatefloatmath;privatefloatchinese;privatefloatcomputer;publicvoidsetStu_id(Stringstu_id){this.stu_id=stu_id;}publicStringgetStu_id(){returnstu_id;}publicvoidsetStu_name(Stringstu_name){this.stu_name=stu_name;}publicStringgetStu_name(){returnstu_name;}publicvoidsetMath(floatmath){this.math=math;}publicfloatgetMath(){returnmath;}publicvoidsetChinese(floatchinese){this.chinese=chinese;}publicfloatgetChinese(){returnchinese;}publicvoidsetComputer(floatcomputer){thisputer=computer;}publicfloatgetComputer(){returncomputer;}}//主方法的类publicclassStart{publicstaticvoidmain(String[]args){Studentstu1=newStudent();stu1.setStu_id("No1");stu1.setStu_name("张三");stu1.setMath(89.5f);stu1.setChinese(70f);stu1.setComputer(98f);Studentstu2=newStudent();stu2.setStu_id("No2");stu2.setStu_name("李四");stu2.setMath(79.5f);stu2.setChinese(90f);stu2.setComputer(68f);floatstu1Sum=stu1.getMath()+stu1.getChinese()+stu1.getComputer();floatstu2Sum=stu2.getMath()+stu2.getChinese()+stu2.getComputer();if(stu1Sum>stu2Sum){System.out.println("总分最高分为:"+stu1Sum);System.out.println("学号:"+stu1.getStu_id());System.out.println("姓名:"+stu1.getStu_name());System.out.println("数学:"+stu1.getMath());System.out.println("语文:"+stu1.getChinese());System.out.println("计算机:"+stu1.getComputer());}elseif(stu1Sum<stu2Sum){System.out.println("总分最高分为:"+stu2Sum);System.out.println("学号:"+stu2.getStu_id());System.out.println("姓名:"+stu2.getStu_name());System.out.println("数学:"+stu2.getMath());System.out.println("语文:"+stu2.getChinese());System.out.println("计算机:"+stu2.getComputer());}else{System.out.println("总分一样高为:"+stu1Sum);System.out.println("学号:"+stu1.getStu_id());System.out.println("姓名:"+stu1.getStu_name());System.out.println("数学:"+stu1.getMath());System.out.println("语文:"+stu1.getChinese());System.out.println("计算机:"+stu1.getComputer());System.out.println("学号:"+stu2.getStu_id());System.out.println("姓名:"+stu2.getStu_name());System.out.println("数学:"+stu2.getMath());System.out.println("语文:"+stu2.getChinese());System.out.println("计算机:"+stu2.getComputer());}}}九:importjava.util.Scanner;publicclassCOMPare{publicstaticvoidmain(Stringargs[]){Scannertr=newScanner(System.in);intb=tr.nextInt();inta=tr.nextInt();if(a==b)System.out.println("相等");elseSystem.out.println("不相等");}}十一:classAverage{publicstaticvoidmain(Stringargs[]){Stringarray[]=newString[3];array[0]="HELLO";array[1]="JAVA";array[2]="PROGRAM";inttotal=array[0].length();total+=array[1].length();total+=array[2].length();System.out.println("平均字符串长度为:"+total/3);}}JAVA复习卷一、选择题(2’*15=30’)1、如下哪个是Java中的标识符()A、fieldnameB、super C、3number D、#number2、设x=1,y=2,z=3,那么表达式y+=z--/++x的值是()。A.3B.3.5C.4D.53、下面的代码段执行之后count的值是什么()intcount=1;for(inti=1;i<=5;i++){ count+=i; } System.out.println(count);A、5 B、1 C、15 D、164、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()5、以下程序段执行后的结果是()。Strings=newString("abcdefg");for(inti=0;i<s.length();i+=2){System.out.print(s.charAt(i));}A)acegB)ACEGC)abcdefgD)abcd6、下面程序段执行后b的值是()。 Integerinteg=newInteger(9);booleanb=integinstanceofObject;A)9B)trueC)1D)false7.关于for循环和while循环的说法哪个正确?〔〕A.while循环先判断后执行,for循环先执行后判断。B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空8.关于对象成员占用内存的说法哪个正确?〔〕A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对9.关于继承的说法正确的选项是:〔〕A、子类将继承父类所有的属性和方法。B、子类将继承父类的非私有属性和方法。C、子类只继承父类public方法和属性D、子类只继承父类的方法,而不继承属性10.覆盖与重载的关系是〔〕A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事11、下面哪一个import命令可以为我们提供编写网络应用程序的类〔〕A、importjava.sql.*; B、importjava.util.*;C、importjava.io.*; D、import.*;12、如果容器组件p的布局是BorderLayout,那么在p的下边中添加一个按钮b,应该使用的语句是〔〕 A、p.add(b); B、p.add(b,"North");C、p.add(b,"South"); D、b.add(p,"North");13、Frame对象默认的布局管理器是〔〕A、FlowLayout B、BorderLayoutC、CardLayout D、null14、如果需要从文件中读取数据,那么可以在程序中创立哪一个类的对象〔〕A、FileInputStream B、FileOutputStreamC、DataOutputStream D、FileWriter15、下面的程序创立了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,那么文件test.txt的内容是()。importjava.io.*;publicclassTest{ publicstaticvoidmain(Stringargs[]){ try{ Strings="ABCDE"; byteb[]=s.getBytes(); FileOutputStreamfile=newFileOutputStream("test.txt",true); file.write(b); file.close(); } catch(IOExceptione){ System.out.println(e.toString()); } }}A)ABCABCB)ABCDEC)TestD)ABCDEABCDEABCDE二、填空题(1’*10=10’)1、如果将类MyClass声明为public,它的文件名必须是MyClass.java才能正常编译。2.面向对象有三大特点分别是继承、封装、多态。3、设x=2,那么表达式(x++)/3的值是0。4、在Java的根本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间5、Java中用于两个数相等比拟的运算符是:〔==〕,用于不相等比拟的运算符是〔<>〕。6、在Java中声明一个字符串类型的变量str的语句是:Stringstr;,定义一个具有10个元素的整型数组a的语句是:int[]a=newint[10];。7、设有数组定义:intMyIntArray[]={10,20,30,40,50,60,70};那么执行以下几个语句后的输出结果是20+40+60=120。ints=0;for(inti=0;i<MyIntArray.length;i++)if(i%2==1)s+=MyIntArray[i];System.out.println(s);8、定义接口的保存字是(interface)。9、异常处理是由〔try〕、〔catch〕和finally块三个关键所组成的程序块。10.Socket通常也称为(套接字),用于描述(IP地址)和(端口)。三、读程题(6’*5=30’)1、以下程序的输出结果为:publicclassPerson{ Stringname;intage;publicPerson(Stringname,intage){=name;this.age=age; }publicstaticvoidmain(String[]args){ Personc=newPerson("Peter",17); System.out.println(+"is"+c.age+"yearsold!"); }}Peteris17yearsold!2、输出结果为:publicclassSum{ publicstaticvoidmain(String[]args){ intj=10; System.out.println("jis:"+j); calculate(j); System.out.println("Atlast,jis:"+j); }staticvoidcalculate(intj){ for(inti=0;i<10;i++) j++; System.out.println("jincalculate()is:"+j); }}jis:

10jincalculate()is:20Atlastjis:

103、以下程序输出的结果为:abstractclassShape{//定义抽象类Shape和抽象方法display abstractvoiddisplay();}classCircleextendsShape{ voiddisplay(){ //实现抽象类的方法 System.out.println("Circle"); }}classRectangleextendsShape{ voiddisplay(){//实现抽象类的方法 System.out.println("Rectangle"); }}classTriangleextendsShape{ voiddisplay(){ //实现抽象类的方法 System.out.println("Triangle"); }}publicclassAbstractClassDemo{ publicstaticvoidmain(Stringargs[]){ (newCircle()).display(); //定义无名对象来调用对应的display方法 (newRectangle()).display(); (newTriangle()).display(); }}CircleRectangularTriangle4、以下程序的输出结果为:publicclassTom{privatefloatweight;privatestaticStringname;publicvoidsetWeight(floatweight){this.weight=weight; }privatevoidout(){ System.out.println(name+"体重:"+weight+"斤"); }publicstaticvoidmain(String[]args){ T="汤姆猫"; Tomcat=newTom(); cat.setWeight(20); cat.out(); }}汤姆猫体重:20.0斤5、以下程序的输出结果为:publicclassTest{publicstaticvoidmain(Stringargs[]){newStudent("Tom",'m',90,88);newStudent("Jack",'m',66,89);newStudent("Mary",'f',76,86);System.out.println("name\tsex\tchinese\tenglish");Student.print();}}classStudent{protectedStringname;protectedcharsex;protectedintchinese;protectedintenglish;protectedStudentnext;staticStudentlist;Student(Stringname,charsex,intchinese,intenglish){=name;this.sex=sex;this.chinese=chinese;this.english=english;this.next=list;list=this;}staticvoidprint(){Studentfriend=list;if(friend==null)System.out.println("Thelistisempty.");else{do{System.out.println(friend.toString());friend=friend.next;}while(friend!=null);}}publicStringtoString(){returnnewString(name+"\t"+sex+"\t"+chinese+"\t"+english);}}namesexchineseenglishMaryf7686Jackm6689Tomm9088四、简答题(4’*5=20’)JAVA的根本数据类型有那些?String是不是根本类型?float,int,char,byte,double,long,short,boolean。string不是根本类型2、什么是继承?3、JavaI/O中字符流和字节流的区别?4.创立线程的两种方法5.抽象类和接口的区别五、编程题(3’+7’=10’)1、按以下要求编写程序(1)创立一个Rectangle类,添加width和height两个成员变量(2)在Rectangle中添加两种方法分别计算矩形的周长和面积(3)编程利用Rectangle输出一个矩形的周长和面积2、编写一个完整的JavaApplet程序使用复数类Complex验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。复数类Complex必须满足如下要求:(1)复数类Complex的属性有:RealPart:int型,代表复数的实数局部ImaginPart:int型,代表复数的虚数局部(2)复数类Complex的方法有:Complex():构造函数,将复数的实部和虚部都置0Complex(intr,inti):构造函数,形参r为实部的初值,i为虚部的初值。ComplexcomplexAdd(Complexa):将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。StringToString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。一、AADAABBBBADCBAD二、MyClass.java封装,多态02==,<>Stringstr;int[]arr=newint[10];120interfacetrycatch套接字IP地址端口三、1、Peteris17yearsold!2、jis:

10jincalculate()is:20Atlastjis:

103、CircleRectangularTriangle4、汤姆猫体重:20.0斤5、namesexchineseenglishMaryf7686Jackm6689Tomm9088四、1、float,intchar,byte,double,long,short,boolean。string不是根本类型2、通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。3、java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组4、a.Thread类的子类创立线程包括继承Thread类,重写run方法,在应用类中创立Thread之类的对象和调用start方法。B.使用Runnable接口包括实现Runnable接口,实现run方法,创立THread类对象,采用实现Runnable接口类的对象作为参数和调用start方法。5、a。接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法。b。一个类可以实现多个接口,而只能继承一个抽象父类。c。接口与实现它的类不构成继承体系,而抽象类是属于一个类的继承体系。d。接口中的方法默认是publicabstract的,而成员变量默认是publicstatic常量。e。implements关键字用于实现接口,extends关键字用于继承。五、1、publicclassRectangle{floatwidth,height;publicRectangle(floatwidth,floatheight){this.width=width;this.height=height; }publicfloatgetLength(){return(this.width+this.height)*2; }publicfloatgetArea(){returnthis.width*this.height; }publicstaticvoidmain(String[]args){ Rectanglerect=newRectangle(10,20); System.out.println("周长是:"+rect.getLength()); System.out.println("面积是:"+rect.getArea()); }}2、importjava.applet.*;importjava.awt.*;publicclassabcextendsApplet{Complexa,b,c;publicvoidinit(){a=newComplex(1,2);b=newComplex(3,4);c=newComplex();}publicvoidpaint(Graphicsg){c=aplexAdd(b);g.drawString("第一个复数:"+a.toString(),10,50);g.drawString("第二个复数:"+b.toString(),10,70);g.drawString("两复数之和:"+c.toString(),10,90);}}classComplex{intRealPart;//复数的实部intImaginPart;//复数的虚部Complex(){RealPart=0;ImaginPart=0;}Complex(intr,inti){RealPart=r;ImaginPart=i;}ComplexcomplexAdd(Complexa){Complextemp=newComplex();//临时复数对象temp.RealPart=RealPart+a.RealPart;temp.ImaginPart=ImaginPart+a.ImaginPart;returntemp;}publicStringtoString(){return(RealPart+"+"+ImaginPart+"i");}}《JAVA程序设计》期末考试试题〔一〕一、单项选择择题1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。A.javaB..classC.htmlD..exe2、设x=1,y=2,z=3,那么表达式y+=z--/++x的值是()。A.3B.3.5C.4D.53、不允许作为类及类成员的访问控制符的是()。A.publicB.privateC.staticD.protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。2、在Java的根本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。3、设x=2,那么表达式(x++)/3的值是0。4、假设x=5,y=10,那么x<y和x>=y的逻辑值分别为true和false。5、抽象(abstract)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。6、创立一个名为MyPackage的包的语句是packageMyPackage;,该语句应该放在程序的位置为:应该在程序第一句。7、设有数组定义:intMyIntArray[]={10,20,30,40,50,60,70};那么执行以下几个语句后的输出结果是120。ints=0;for(inti=0;i<MyIntArray.length;i++)if(i%2==1)s+=MyIntArray[i];System.out.println(s);8、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。三、写出下面程序的运行结果1、importjava.io.*;publicclassabc{publicstaticvoidmain(Stringargs[]){ABs=newAB("Hello!","IloveJAVA.");System.out.println(s.toString());}}classAB{Strings1;Strings2;publicAB(Stringstr1,Stringstr2){s1=str1;s2=str2;}publicStringtoString(){returns1+s2;}}运行结果:Hello!IloveJAVA.2、importjava.io.*;publicclassabc{publicstaticvoidmain(Stringargs[]){inti,s=0;inta[]={10,20,30,40,50,60,70,80,90};for(i=0;i<a.length;i++)if(a[i]%3==0)s+=a[i];System.out.println("s="+s);}}运行结果:s=1803、importjava.io.*;publicclassabc{publicstaticvoidmain(Stringargs[]){System.out.println("a="+a+"\nb="+b);}}classSubClassextendsSuperClass{intc;SubClass(intaa,intbb,intcc){super(aa,bb);c=cc;}}classSubSubClassextendsSubClass{inta;SubSubClass(intaa,intbb,intcc){super(aa,bb,cc);A=aa+bb+cc;}voidshow(){System.out.println("a="+a+"\nb="+b+"\nc="+c);}}运行结果:a=60b=20c=30《JAVA程序设计》期末考试试题〔六〕一、填空题1.定义类的保存字是(class),定义接口的保存字是(interface)。2.Socket通常也称为(套接字),用于描述(IP地址)和(端口)。3.线程的优先级在(1)至(10)之间,数值越大(任务越紧急)。4.构造方法是一种特殊的成员方法,构造方法名与(类名)相同。5.Java语言只允许单继承,指每个类只能有一个(父类)。6.Java源程序的扩展名是(.java),经过编译后的程序的扩展名是〔.class〕。7.在一个时间只能由一个线程访问的资源称为(临界资源)。访问临界资源的代码(临界代码)。8.在多线程系统中,多个线程之间有(同步)和(互斥)两种关系。二、选择题1.关于选择结构以下哪个说法正确?〔〕A.if语句和else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句2.while循环和do…while循环的区别是:〔〕A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.while循环是先循环后判断,所以循环体至少被执行一次D.do…while循环是先循环后判断,所以循环体至少被执行一次3.关于for循环和while循环的说法哪个正确?〔〕A.while循环先判断后执行,for循环先执行后判断。B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空4.以下修饰符中与访问控制无关的是〔〕A.private B.publicC.protected D.final5.void的含义:〔〕A.方法没有返回值B.方法体为空C.没有意义D.定义方法时必须使用6.return语句:〔〕A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句returnD.不能用来返回对象7.关于对象成员占用内存的说法哪个正确?〔〕A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对8.以下说法哪个正确?A.不需要定义类,就能创立对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量9.以下说法哪个正确?〔〕A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用10.关于方法main〔〕的说法哪个正确?〔〕A.方法main〔〕只能放在公共类中Bmain()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创立都必须放在main()方法中11.构造函数何时被调用?〔〕A、创立对象时B、类定义时C、使用对象的方法时D、使用对象的属性时12.抽象方法:〔〕A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法13.关于继承的说法正确的选项是:〔〕A、子类将继承父类所有的属性和方法。B、子类将继承父类的非私有属性和方法。C、子类只继承父类public方法和属性D、子类只继承父类的方法,而不继承属性14.关于构造函数的说法哪个正确?〔〕A、一个类只能有一个构造函数B、一个类可以有多个不同名的构造函数C、构造函数与类同名D、构造函数必须自己定义,不能使用父类的构造函数15.this和super:A、都可以用在main()方法中B、都是指一个内存地址C、不能用在main()方法中D、意义相同16.关于super的说法正确的选项是:A、是指当前对象的内存地址B、是指当前对象的父类对象的内存地址C、是指当前对象的父类D、可以用在main()方法中17.覆盖与重载的关系是〔〕A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事18.关于接口哪个正确?〔〕A、实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口C.接口间不能有继承关系D.接口和抽象类是同一回事19.异常包含以下哪些内容?〔〕A.程序执行过程中遇到的事先没有预料到的情况B.程序中的语法错误C.程序的编译错误D.以上都是20.对于已经被定义过可能抛出异常的语句,在编程时:〔〕A、必须使用try/catch语句处理异常,或用throws将其抛出B.如果程序错误,必须使用try/catch语句处理异常C.可以置之不理D.只能使用try/catch语句处理21.字符流与字节流的区别在于〔〕A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写C.二者没有区别,可以互换使用D.每次读写的字节数不同22.以下流中哪个不属于字节流〔〕A.FileInputStreamB.BufferedInputStreamC.FilterInputStream D.InputStreamReader三、程序填空题1.publicclassSum{ publicstaticvoidmain(String[]args){ intj=10; System.out.println("jis:"+j); calculate(j); System.out.println("Atlast,jis:"+j); }staticvoidcalculate(intj){ for(inti=0;i<10;i++) j++; System.out.println("jincalculate()is:"+j); }}输出结果为:jis:

(1)jincalculate()is:(2)Atlastjis:

(3)答案:(1)10;(2)20;(3)10。2.按要求填空abstractclassSuperAbstract{ voida(){…} abstractvoidb(); abstractintc(inti);}interfaceAsSuper{ voidx();}abstractclassSubAbstractextendsSuperAbstractimplementsAsSuper{publicvoidb(){…} abstractStringf();}publicclassInheritAbstractextendsSubAbstract{ publicvoidx(){…} publicintc(inti){…} publicStringf(){…} publicstaticvoidmain(Stringargs[]){ InheritAbstractinstance=newInheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(100); System.out.println(instance.f()); }}在以上这段程序中:抽象类有:SuperAbstract和〔1〕(写出类名)非抽象类有:〔2〕(写出类名)接口有:〔3〕(写出接口名)AsSuper中的x()方法是〔4〕方法,所以在InheritAbstract中必须对它进行〔5〕答案:(1)SuperAbstract;(2)InheritAbstract;(3)AsSuper;(4)抽象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论