收藏 分销(赏)

《JAVA语言程序设计》期末考试试题及答案.docx

上传人:人****来 文档编号:10071440 上传时间:2025-04-20 格式:DOCX 页数:27 大小:43.49KB
下载 相关 举报
《JAVA语言程序设计》期末考试试题及答案.docx_第1页
第1页 / 共27页
《JAVA语言程序设计》期末考试试题及答案.docx_第2页
第2页 / 共27页
点击查看更多>>
资源描述
《JAVA语言程序设计》期末考试试题及答案 一、单选题 1、下列程序段执行后的结果是(A )。 String s = new String("abcdefg"); for (int i=0; i<s.length(); i+=2){ System.out.print(s.charAt(i)); } A) aceg B) ACEG C) abcdefg D) abcd 2、有整型数组:int[] x={12,35,8,7,2则调用方法Arrays.sort后),数组x中 的元素值依次是(A ). A) 2781235B) 12 35872 C) 3512872D) 8712352 3、下面的程序段创建了 BufferedReader类的对象in,以便读取本机c盘my文 件夹下的文件1.txt File构造函数中正确的路径和文件名的表示是(C ) File f = new F填代码处); file =new FileReader(f); D) "c:\ my\1.txt" (A )。 in=new BufferedReader(file); :\\my\\1.txt" 则输出的结果是 A) "./1.txt" B) "../my/1.txt" C) "c: ' 4、应用程序的main方法中有以下语句, String s1=new String("abc"); String s2=new String("abc"); boolean b1=s1.equals(s2); boolean b2=(s1==s2); D)false false (B )。 System.out.print(b1+""+b2); C) true true 则输出的结果是 A) true false B) false true 5、应用程序的main方法中有以下语句, Hashtable hashtable=new Hashtable(); hashtable.put("x","12345"); hashtable.put("y","67890"); hashtable.put("a","abcde"); System.out.println(hashtable.get("a")); A) a B) abcde C) 12345 D) 67890 6、下面语句的功能是(A ) RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw"); A) 打开当前目录下的文件1 .tx,t既可以向文件写数据,也可以从文件读数据。 B) 打开当前目录下的文件1.txt但只能向文件写入数据,不能从文件读取数据。 C) 打开当前目录下的文件1.txt但不能向文件写入数据,只能从文件读取数据。 D) 以上说法都不对。 7、应用程序的main方法中有以下语句,则输出的结果是(B )。 String s="12345#aaa#bbb#67890"; intn=s.indexOf("#"); intk=s.indexOf("#",n+1); intm=s.indexOf("#",k+1); String s2=s.substring(m+1); System.out.println(s2); A) 123456 B) 67890 C) aaa D) bbb 8、下面程序段执行后b的值是(B )。 Integer integ =new Integpr(9) boolean b = inteignstanceof Object; A) 9 B) true C) 1 D) false 9、应用程序Test.jav的源程序如下,在命令行键入: java Test aaa bb c 回车后输出的结果是(A )。 public class Test { public static void main(String args[]) { int k1=args.length; int k2=args[1].length(); System.out.print(k1+" "+k2); } } A) 3 2B)1 2 C) 1 3 D) 3 3 10、应用程序的main方法中有以下语句,则输出的结果是(A )。 int b[][] = {{1}, {2,2}, {2,2,2}}; int sum=0; for(int i=0;i<b.length;i++) { for(int j=0;j<b[i].length;j++) { sum*=b[i][j]; } System.out.println("sum="+sum); A) 32B)11 C) 2 D) 3 11、应用程序的main方法中有以下语句,则执行后输出的结果是(D )。 int[] x={125,21,5,168,98}; int max=x[0]; for(int i=1;i<x.length;i++){ if(x[i]> max) max =x[i]; } System.out.println(max); A) 125 B) 5 C) 98 D) 168 12、程序Test.jav编译运行后输出的结果是(A )。 public class Test { String s1="java"; public static void main(String args[]) { int z=2; Test t=new Test(); System.out.println(t.s1+z); } } A) java2 B)2 C)没有输出结果D)java 13、应用程序的main方法中有以下语句,则输出的结果是(A)。 String s1="0.5”, s2="12"; double x=Double.parseDouble(s1); int y=Integer.parseInt(s2); System.out.println(x+y); A) 12.5B) 120.5 C) 12D) 12.5' 14、下面的程序创建了一个文件输出流对象,用来向文件test.tx中输出数据, 假设程序当前目录下不存在文件test.tx编译下面的程序Test.jav后,将该程序 运行3次,则文件test.txt内容是(D)。 import java.io.*; public class Test { public static void main(String args[]) { try { String s="ABCDE”; byte b[]=s.getBytes(); FileOutputStream file=new FileOutputStream("test.txt",true); file.write(b); file.close(); } catch(IOException e) { System.out.println(e.toString()); } } } A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE 15、下面那些方法不是接 Collection已声明的方法(C ? A) 添加元素的add(Object obj)方法 B) 删除元素的 remove(Object obj)法 C) 得到元素个数的length方法 D) 返回迭代器的iterato方法,迭代器用于元素遍历 二、多选题 1、下面main(方法的定义哪些是正确的(ACD )? A) public static void main(String argsB[)])pu{b}lic static void main(String[]) {} C) public static void main(String[] aD)sp)ub{l}ic static void main(String [] x) {} 2、线程对象的生命周期中,通常经历下面哪些状态(ABCD )。 A) 新建 B)运行 C)就绪 D)死亡 3、下面说法正确的是(ABCD )。 A) final可修饰类、属性(变量)、方法。 B) abstract修饰类、方法。 C) 抽象方法只有方法头,没有方法体。 D) 关键字fina和abstract能同时使用。 4、下面关于java中输入/输出流的说法正确的是(ABCD)。 A)FileInputStream与 FileOutputStream类用读、写字节流。 B)Reader与Writer类用来读、写字符流。 C)RandomAccessFile既可以用来读文件,也可以用来写文件。 D)File类用来处理与文件相关的操作。 5、下面说法正确的是(ABCD)。 A)如果某公共接被声明在一个源文件中,则接必须与源文件具有相同名字。 B)如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语 句行。 C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。 D)接中的方法必定是抽象方法,但可以不用关键字abstract饰。 6、下面关于Java中异常处理try块的说法正确的是(AC )? A)tr映后通常应有一个catch块,用来处理try块中抛出的异常。 B)catch块后必须有finall块。 C)可能抛出异常的方法调用应放在try块中。 D)对抛出的异常的处理必须放在try块中 7、下面关于进程、线程的说法正确的是(ABCD )。 A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线 程——多线程,形成多条执行线索。 B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的 控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java多线程的运行与平台相关。 D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对 于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。 8、关于BufferedReade类的readLine()f法,以下说法正确的是ACD ()。 A)方法readLine每次读取一行数据。 8)方法readLine每次读取一个字节。 C)该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中, 并通过catch块处理异常。 D)如果读到流的末尾,该方法返回的结果为null 三、程序阅读题 1、阅读下面的程序,回答问题(问3分, 问3分,共6分)。 import java.awt.*; import javax.swing.*; public class T extends JFrame { public T ( ) { super("GridLayout"); Container con=this.getContentPane(); con.setLayout(new GridLayout(2,3)); con.add(new JButton("a")); con.add(new JButton("b")); con.add(new JButton("c")); con.add(new JButton("d")); con.add(new JButton("e")); con.add(new JButton("f")); setSize(2, 80); setVisible(true); } public static void main(String args[]) { new T(); } } 画图表示程序运行后的图形界面。 如果程序通过实现某个接处理按钮的动作事件,则该接名为何?接中的 方法头声明如何? 答案: W 接名:ActionListener 接中的方法:public void actionPerformed(ActionEvent e) 2、阅读下面的程序,回答问题(问3分, 问3分,共6分)。。 import java.util.*; public class T { public static void main(String afgs[]) Set set = new TreeSet(); set.add(new Integer(10)); set.add(new Integer(5)); set.add(new Integer(15)); set.add(new Integer(5)); set.add(new Integer(10)); System.out.println("size = " + set.size()); Iterator it=set.iterator(); while(it.hasNext()){ System.out.print(it.next()"+)"; } } } 程序运行后输出的结果如何? 说明java中的集合(Set接)和映射(Map接)的主要区别。 答案: size = 3 51015 Set接是不包含重复元素的集合;Map接将键映射到值,键可以重复,但 每个键最多只能映射一个值。 3、阅读下面的程序,并回答问题(问3分, 问3分,共6分)。 import java.io.*; public class Test { public static void main(String args[]) throws IOException { BufferedReader buf=new BufferedReader( new InputStreamReader(System.in)); while(true) { String str=buf.readLine(); if(str.equals("quit")) break; int x=Integer.parseInt(str); System.out.println(x*x); } } 编译运行上面的程序: 从键盘输入5,回车后输出的结果如何? 从键盘输入quit回车后程序执行情况如何? 答案: 25 终止应用程序的运行。 《JAVA程序设计》期末考试试题(五) 二、单选题 1、当某一线程正处于休眠状态,而另一个线程用Thread类中的interrupt方 法中断它时,抛出的异常类型是(C )。 A) lOExceptionB) RuntimeException C) InterruptedException D) ClassNotFoundException 2、下面的程序段的功能是(D)。 File file1=new File("d:\\xxx\\yyy\\zzz"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录:e:\xxx\yyy\zzz C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对 3、应用程序的main方法中有以下语句,则输出的结果是(B )。 String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"; int n = s.indexOf("#"); int k = s.indexOf("#", n+1); String s2 = s.substring(n+1, k); System.out.println(s2); A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz 4、关于下面的程序Test.jav说法正确的是(D )。 public class Test { String x="1"; int y; public static void main(String args[]) { int z=2; System.out.println(x+y+z); } } A)3B)102 C) 12d)程序有编译错误 5、应用程序的main方法中有以下语句,则输出的结果是(A )。 int b[][] = {{1, 1, 1}, {2,2}, {3}}; int sum=0; for(int i=0; i<b.length; i++) { for(int j=0; j<b[i].length; j++) { sum+=b[i][j]; } } System.out.println("sum="+sum); A) 10B)6 C) 9 D) 13 6、应用程序的main方法中有以下语句,则执行后输出的结果是(B)。 int[] x = {125,21,5,168,98}; int min = x[0]; for (int i=1; i<x.length; i++){ if(x[i] < min) min = x[i]; } System.out.println(min); A) 125 B) 5 C) 98 D) 168 7、应用程序的main方法中有以下语句,则输出的结果是(D )。 Hashtable hashtable=new Hashtable(); hashtable.put("1","aaa"); hashtable.put("2","bbb"); hashtable.put(" 3","ccc"); System.out.println(hashtable.get(" 3").toString() + hashtable.get("2").toString() + hashtable.get("1").toString()); A) aaa B) bbb C) ccc D) cccbbbaaa 8、以下关于java异常说法不正确的是(D)。 A) Throwable类是Java语言中Error类和Exception类的父类。 B) 当异常对象是Exception类(或其子类)的实例时,能通过Java虚拟机或者 throw语句抛出该异常对象,并能通过try...catch...finyi处理。 C) 如果只用一个catch块捕捉多个异常对象,则catch子句中的参数类型应是所 有异常对象的父类。 D) 以上说法都不对。 9、下面的程序创建了一个文件输出流对象,用来向文件test.t康输出数据,假 设程序当前目录下不存在文件test.tx编译下面的程序Test.jav后,将该程序运 行3次,则文件test.tx的内容是(D)。 import java.io.*; public class Test { public static void main(String args[]) { try { String s="ABCDE”; byte b[]=s.getBytes(); FileOutputStream file=new FileOutputStream("test.txt", true); file.write(b); file.close(); } catch(IOException e) { System.out.println(e.toString()); } A) ABCABC B) ABCDE C)Test D) ABCDE ABCDE ABCDE 10、下面说法不正确的是()D? A) 列表(List、)集合(Set和映射(Map)都是java.ut包中的接。 B) List接 是可以包含重复元素的有序集合。 C) Set接是不包含重复元素的集合。 D) Map接将键映射到值,键可以重复,但每个键最多只能映射一个值。 二、多选题 1、下面哪些关键字能用来控制对类成员的访问(ABC) ? A) public B) protected C) private D) default 2、下面关于Java中异常处理try块的说法正确的是(AC )? A) try块后通常应有一个catch块,用来处理try块中抛出的异常。 B) catch块后必须有finall块。 C) 可能抛出异常的方法调用应放在try块中。 D) 对抛出的异常的处理必须放在try块中 3、线程对象的生命周期中,通常经历下面哪些状态( ABCD )。 A)新建 B)运行 C)就绪 D)死亡 4、定义如下的二维数组b,下面的说法正确的是(ACD )。 int b[][] = {{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的语句中 正确的是( BC )。 A) B x1= new B( );B) B x1= new C( ); C) C x1=new C( );D) C x1= new B( ); 6、下面关于进程、线程的说法正确的是(ABCD )。 A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线 程——多线程,形成多条执行线索。 B) 线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的 控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C) Java多线程的运行与平台相关。 D) 对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对 于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。 7、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是(AD )。 A) 内部类可以直接访问外部类的成员 B) 外部类可以直接访问内部类的成员 C) 外部类不能访问内部类的成员 D) 外部类可通过创建内部类的实例来访问内部类的成员 三、程序阅读题 1、阅读下面的程序代码,并回答问题(问3分, 问3分,共6分)。 String si = new String("abcde"); String s2 = new String("abcde"); boolean bi= si.equals(s2); boolean b2 = si== s2; System.out.print(b1+""+b2); 程序段执行后,在命令行的输出结果如何? 解释输出(1)的结果的原因? 答案: true false equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否 指向同一个引用,即是否为同一个对象。 2、阅读下面的程序,并回答问题(问3分, 问3分,共6分)。 import java.io.*; public class Test { public static void main(String args[]) throws lOException { BufferedReader buf=new BufferedReader( new InputStreamReader(System.in)); while(true) { String str = buf.readLine(); if(str.equals("quit")) break; int x=Integer.parseInt(str); System.out.println(x*x); } } } 编译运行上面的程序: 从键盘输入10,回车后输出的结果如何? 从键盘输入exit回车后程序能正确执行吗?为什么? 答案: 1 不能;因为方法Integer.parseInt(s能将字符串“exit转化为整数,抛出异 受 )常。 3、写出下面的程序编译、运行后的结果(6分)。 public class Test( public static void main(String args[]) { new Student("Tom", 'm', 90, 88); new Student("Jack", 'm', 66, 89); new Student("Mary", 'f', 76, 86); System.out.println("name\tsex\tchinese\tenglish"); Student.print(); } } class Student { protected String name; protected char sex; protected int chinese; protected int english; protected Student next; static Student list; Student (String name, char sex, int chinese, int( english) this.name=name; this.sex=sex; this.chinese=chinese; this.english=english; this.next=list; list=this; } static void print() { Student friend=list; if (friend==null) System.out.println("The list is empty."); else { do( System.out.println(friend.toString()); friend=friend.next; }while(friend!=null); } } public String toString() return new String(name+"\t"+sex+"\t"+chinese+"\t"+english); } } 答案: name sex chinese english Mary f 76 86 Jack m 66 89 Tom m 90 88 《JAVA程序设计》期末考试试题(六) 一、填空题 1. 定义类的保留字是(class ),定义接的保留字是(interface )。 2. Socket通常也称为(套接字),用于描述(IP地址)和(端)。 3. 线程的优先级在(1 )至(10 )之间,数值越大(任务越紧急)。 4. 构造方法是一种特殊的成员方法,构造方法名与(类名)相同。 5. Java语言只允许单继承,指每个类只能有一个(父类)。 6. Java源程序的扩展名是(.jav),经过编译后的程序的扩展名是(.clas )。 7. 在一个时间只能由一个线程访问的资源称为(临界资源)。访问临界资源的 代码(临界代码)。 8. 在多线程系统中,多个线程之间有(同步)和(互斥)两种关系。 二、选择题 1. 关于选择结构下列哪个说法正确?() A. if语句和else语句必须成对出现B B. if语句可以没有else语句对应 C. switch结构中每个case语句中必须用break语句 D . switch结构中必须有defaul语句 2. while循环和do...while循环的区别是:(D ) A. 没有区别,这两个结构任何情况下效果一样 B. while循环比do.while循环执行效率高 C. while循环是先循环后判断,所以循环体至少被执行一次 D. do.while循环是先循环后判断,所以循环体至少被执行一次 3. 关于for循环和while循环的说法哪个正确?( B ) A. while循环先判断后执行,for循环先执行后判断。 B. while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果 C. 两种循环任何时候都不可以替换 D. 两种循环结构中都必须有循环体,循环体不能为空 4. 下列修饰符中与访问控制无关的是( D ) A . privateB. public C. protectedD. final 5. void的含义: ( A ) B.方法体为空 D.定义方法时必须使用 B-方法都必须含有 D.不能用来返回对象 A. 方法没有返回值 C.没有意义 6. return语句:(C ) A. 只能让方法返回数值 C .方法中可以有多句return 7. 关于对象成员占用内存的说法哪个正确?( B ) A. 同一个类的对象共用同一段内存 B. 同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间 C. 对象的方法不占用内存 D. 以上都不对 8. 下列说法哪个正确? C A. 不需要定义类,就能创建对象 B. 对象中必须有属性和方法 C. 属性可以是简单变量,也可以是一个对象 D. 属性必须是简单变量 9. 下列说法哪个正确?( A ) A、一个程序可以包含多个源文件 B、一个源文件中只能有一个类 C、一个源文件中可以有多个公共类 D、一个源文件只能供一个程序使用 10. 关于方法main ()的说法哪个正确? ( C ) A-方法 main ()只能放在公共类中 B main()的头定义可以根据情况任意更改 C . 一个类中可以没有main()方法 D.所有对象的创建都必须放在main()方法中 11.构造函数何时被调用? A、创建对象时 (A B、类定义时 C、使用对象的方法时 D、使用对象的属性时 12. 抽象方法: ( C ) A、可以有方法体 B、可以出现在非抽象类中 C、是没有方法体的方法 D、抽象类中的方法都是抽象方法 13. 关于继承的说法正确的是:(B ) A、子类将继承父类所有的属性和方法。 B、子类将继承父类的非私有属性和方法。 C、子类只继承父类public方法和属性 D、子类只继承父类的方法,而不继承属性 14. 关于构造函数的说法哪个正确?( C ) A、一个类只能有一个构造函数 B、一个类可以有多个不同名的构造函数 C、构造函数与类同名 D、构造函数必须自己定义,不能使用父类的构造函数 15. thi和 super C A、都可以用在main()方法中 B、都是指一个内存地址 C、不能用在main()方法中 D、意义相同 16. 关于super的说法正确的是: A、是指当前对象的内存地址 B、是指当前对象的父类对象的内存地址 C、是指当前对象的父类 D、可以用在main()方法中 17. 覆盖与重载的关系是(A ) A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 B. 覆盖方法可以不同名,而重载方法必须同名 C. fina修饰的方法可以被覆盖,但不能被重载 D. 覆盖与重载是同一回事 18. 关于接哪个正确?( A ) A. 实现一个接必须实现接的所有方法 B. 一个类只能实现一个接 C. 接间不能有继承关系 D. 接和抽象类是同一回事 19. 异常包含下列哪些内容?( A ) A. 程序执行过程中遇到的事先没有预料到的情况 B. 程序中的语法错误 C. 程序的编译错误 D. 以上都是 20. 对于已经被定义过可能抛出异常的语句,在编程时: ( A ) A. 必须使用try/ catch语句处理异常,或用throws将其抛出 B. 如果程序错误,必须使用try/ catch语句处理异常 C. 可以置之不理 D. 只能使用try/ catch语句处理 21. 字符流与字节流的区别在于(D ) A. 前者带有缓冲,后者没有 B. 前者是块读写,后者是字节读写 C. 二者没有区别,可以互换使用 D. 每次读写的字节数不同 22. 下列流中哪个不属于字节流 ( D ) A. FileInputStream B. BufferedInputStream C. FilterInputStream D. InputStreamReader 三、程序填空题 1. public class Sum( public static void main(String [] args)( int j=10; System.out.println("j is : "+j); calculate(j); System.out.println("At last, j is : "+j); } static void calculate (int j)( for (int i = 0;i<10;i++) j++; System.out.println("j in calculate() is: "+j); } } 输出结果为: j is :(1) j in calculate() is (2) At last j is :(3) 答案:(1) 10 (2) 20 (3) 10 2. 按要求填空 abstract class SuperAbstract{ void a(){...} abstract void b(); abstract int c(int i); } interface AsSuper { void x(); } abstract class SubAbstract extends SuperAbstract implements AsSuper { public void b(){.}abstract String f(); public class InheritAbstract extends SubAbstract{ public void x(){...} public int c(int i ) {..•} public String f(){...} public static void main(String args[]){ InheritAbstract instance=new InheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(1); System.out.println(instance.f()); } } 在以上这段程序中: 抽象类有:SuperAbstrac和(1) 非抽象类有:(2) 接有:(3) (写出类名) (写出类名) (写出接名) AsSuper中的x()方法是(4)方法,所以在InheritAbstraict^、须对它进行(5) 答案: (1) SuperAbstract (2) InheritAbstract (3) AsSuper ⑷抽象; ⑸覆盖和实现。 3. 按注释完成程序 public class Leaf { private int i =此嘱性/值用于检验 Leaf increment。定义方法increment ()返回值是Leaf类的对象 i++; return(1);将当前对象的地址作为返回值返回 } void print() { System.out.println(" i = " + i); } public static void main(String args[])( Leaf x = (2);创建Leaf
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服