Java 期末考试题.docx
- 文档编号:23966668
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:42
- 大小:37.39KB
Java 期末考试题.docx
《Java 期末考试题.docx》由会员分享,可在线阅读,更多相关《Java 期末考试题.docx(42页珍藏版)》请在冰豆网上搜索。
Java期末考试题
《JAVA程序设计》期末考试试题
(1)
一、单选题
1、当某一线程正处于休眠状态,而另一个线程用Thread类中的interrupt()方法中断它时,抛出的异常类型是()。
A)IOExceptionB)RuntimeException
C)InterruptedExceptionD)ClassNotFoundException
2、下面的程序段的功能是()。
Filefile1=newFile("d:
\\xxx\\yyy\\zzz");
file1.mkdirs();
A)在当前目录下生成子目录:
\xxx\yyy\zzzB)生成目录:
e:
\xxx\yyy\zzz
C)在当前目录下生成文件xxx.yyy.zzzD)以上说法都不对
3、应用程序的main方法中有以下语句,则输出的结果是()。
Strings="xxxxxxxxxxxxxxx#123#456#zzzzz";
intn=s.indexOf("#");
intk=s.indexOf("#",n+1);
Strings2=s.substring(n+1,k);
System.out.println(s2);
A)123456B)123C)xxxxxxxxxxxxxxxD)zzzzz
4、关于下面的程序Test.java说法正确的是()。
publicclassTest{
Stringx="1";
inty;
publicstaticvoidmain(Stringargs[]){
intz=2;
System.out.println(x+y+z);
}
}
A)3B)102C)12D)程序有编译错误
5、应用程序的main方法中有以下语句,则输出的结果是()。
intb[][]={{1,1,1},{2,2},{3}};
intsum=0;
for(inti=0;i for(intj=0;j sum+=b[i][j]; } } System.out.println("sum="+sum); A)10B)6C)9D)13 6、应用程序的main方法中有以下语句,则执行后输出的结果是()。 int[]x={125,21,5,168,98}; intmin=x[0]; for(inti=1;i if(x[i] min=x[i]; } System.out.println(min); A)125B)5C)98D)168 7、应用程序的main方法中有以下语句,则输出的结果是()。 Hashtablehashtable=newHashtable(); hashtable.put("100","aaa"); hashtable.put("200","bbb"); hashtable.put("300","ccc"); System.out.println(hashtable.get("300").toString() +hashtable.get("200").toString() +hashtable.get("100").toString()); A)aaaB)bbbC)cccD)cccbbbaaa 8、以下关于java异常说法不正确的是()。 A)Throwable类是Java语言中Error类和Exception类的父类。 B)当异常对象是Exception类(或其子类)的实例时,能通过Java虚拟机或者throw语句抛出该异常对象,并能通过try…catch…finally处理。 C)如果只用一个catch块捕捉多个异常对象,则catch子句中的参数类型应是所有异常对象的父类。 D)以上说法都不对。 9、下面的程序创建了一个文件输出流对象,用来向文件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 10、下面说法不正确的是()? A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。 B)List接口是可以包含重复元素的有序集合。 C)Set接口是不包含重复元素的集合。 D)Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。 二、多选题 1、下面哪些关键字能用来控制对类成员的访问()? A)publicB)protectedC)privateD)default 2、下面关于Java中异常处理try块的说法正确的是()? A)try块后通常应有一个catch块,用来处理try块中抛出的异常。 B)catch块后必须有finally块。 C)可能抛出异常的方法调用应放在try块中。 D)对抛出的异常的处理必须放在try块中 3、线程对象的生命周期中,通常经历下面哪些状态()。 A)新建B)运行C)就绪D)死亡 4、定义如下的二维数组b,下面的说法正确的是()。 intb[][]={{1,2,3},{4,5},{6,7,8}}}; A)b.length的值是3。 B)b[1].length的值是3。 C)b[1][1]的值是5。 D)二维数组b的第一行有3个元素 5、类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是()。 A)Bx1=newB();B)Bx1=newC(); C)Cx1=newC();D)Cx1=newB(); 6、下面关于进程、线程的说法正确的是()。 A)进程是程序的一次动态执行过程。 一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。 B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。 线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java多线程的运行与平台相关。 D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。 对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。 7、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是()。 A)内部类可以直接访问外部类的成员 B)外部类可以直接访问内部类的成员 C)外部类不能访问内部类的成员 D)外部类可通过创建内部类的实例来访问内部类的成员 三、程序阅读题 1、阅读下面的程序代码,并回答问题(问3分,问3分,共6分)。 Strings1=newString("abcde"); Strings2=newString("abcde"); booleanb1=s1.equals(s2); booleanb2=s1==s2; System.out.print(b1+""+b2); 程序段执行后,在命令行的输出结果如何? 解释输出 (1)的结果的原因? 答案: truefalse equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。 2、阅读下面的程序,并回答问题(问3分,问3分,共6分)。 importjava.io.*; publicclassTest{ publicstaticvoidmain(Stringargs[])throwsIOException{ BufferedReaderbuf=newBufferedReader( newInputStreamReader(System.in)); while(true){ Stringstr=buf.readLine(); if(str.equals("quit")) break; intx=Integer.parseInt(str); System.out.println(x*x); } } } 编译运行上面的程序: 从键盘输入10,回车后输出的结果如何? 从键盘输入exit,回车后程序能正确执行吗? 为什么? 答案: 100 不能;因为方法Integer.parseInt(str)不能将字符串“exit”转化为整数,抛出异常。 3、写出下面的程序编译、运行后的结果(6分)。 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){ this.name=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); } } 答案: namesexchineseenglish Maryf7686 Jackm6689 Tomm9088 《JAVA程序设计》期末考试试题 (2) 一、填空题 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.public C.protectedD.final 5.void的含义: ( ) A.方法没有返回值 B.方法体为空 C.没有意义 D. 定义方法时必须使用 6.return语句: ( ) A.只能让方法返回数值 B.方法都必须含有 C.方法中可以有多句return D.不能用来返回对象 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.FileInputStream B.BufferedInputStream C.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)抽象; (5)覆盖和实现。 3.按注释完成程序 publicclassLeaf{ privateinti=0;//此属性值用于检验 Leafincrement(){//定义方法increment(),返回值是Leaf类的对象 i++; return (1);//将当前对象的地址作为返回值返回 } voidprint(){ System.out.println("i="+i); } publicstaticvoidmain(Stringargs[]){ Leafx= (2);//创建Leaf类的对象x x.increment().increment().increment().print(); }//多次调用方法increment(),返回的都是x的地址,i值表示调用次数 } 输出结果为i=(3) 答案: (1)this; (2)newLeaf(); (3)3 4. 按注释提示完成文件复制的程序 //FileStream源代码如下: importjava.io.*; classFileStream{ publicstaticvoidmain(Stringargs[]){ try{ FileinFile=newFile("file1.txt");//指定源文件 FileoutFile=newFile("file2.txt");//指定目标文件 FileInputStreamfis= (1); FileOutputStreamfos=newFileOutputStream(outFile); intc; //逐字节从源文件中输入,再输出到fos流 while((c=fis.read())! =-1) (2); fis.close(); fos.close(); } catch(Exceptione){ System.out.println("FileStreamsTest: "+e); } } } 答案: (1)newFileInputStream(inF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 期末考试题 期末 考试题
![提示](https://static.bdocx.com/images/bang_tan.gif)