XXXXXX大学XXX学院 《Java程序设计》课程期末考试卷 (200x一200x学年第x学期)本科口专科☑ A卷☑B卷和C卷 (考试时间120分钟) 题号 三 四 五总分 分数 一、单选题(本大题共20个小题,每小题1分,共20分) 得分评阅人 () 野 1、编译和运行下面的应用程序,屏幕输出的结果是()。 public class Test public static void main(String args[) A a=new A("aaaaa"); A.Bb=a.new BO); System.out.println(a.outStr+b.inStr); outStr=s; publie class B public String inStr="bbbbb" 》 公置录钱处于休保状签。另个ead类中的emp0方 C)bbb D)aaaaab 法中断它时,抛出的异常类型是( )。 A)IOException 必 C)In 器方法中方法 b)runtimeException 以下是用程中定义的静态方法 用语句printBinary(2),则输出的结果是()。 static void printBinary(int i) System.out.print(i+"的2进制数表示为:t"方 for(intj=3l,j>-0j-) if(1<<)&i)=0) 第1页共13页
XXXXXX 大学 XXX 学院 第 1 页 共 13 页 《Java 程序设计》课程 期末考试卷 (200x—200x 学年 第 x 学期) 本科□ 专科 A 卷 B 卷□ C 卷□ (考试时间 120 分钟) 题号 一 二 三 四 五 总分 分数 一、单选题(本大题共 20 个小题,每小题 1 分,共 20 分) 得分 评阅人 1、编译和运行下面的应用程序,屏幕输出的结果是( )。 public class Test { public static void main(String args[]) { A a=new A("aaaaa"); A.B b=a.new B(); System.out.println(a.outStr+b.inStr); } } class A { String outStr; public A(String s) { outStr=s; } public class B { public String inStr="bbbbb"; } } A) aaaaa B)ababa C) bbbbb D) aaaaabbbbb 2、当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方 法中断它时,抛出的异常类型是( )。 A) IOException B) RuntimeException C) InterruptedException D) ClassNotFoundException 3、以下是应用程序中定义的静态方法 printBinary,若在其 main 方法中有方法调 用语句 printBinary(2),则输出的结果是 ( )。 static void printBinary(int i) { System.out.print(i + "的 2 进制数表示为:\t"); for(int j = 31; j >=0; j--) if(((1 << j) & i) != 0) (密封线内勿答题) 姓名 学号 学院(系) 专业 年级 班(密封线内勿答题)
XXXXXX大学XXX学院 System.out.print("1"); else System.out.print("O"). System.out.printlnO,/换行 A)00000000000000000000000000000001 B)00000000000000000000000000000010 C)00000000000000000000000000001111 D)00000000000000000000000000000000 4、下面语的功能是()。 raf2=new RandomAccessFile("1txt""rw" A)打开当前目录下的文件1xt,既可以向文件写数据,也可以从文件读数据。 B)打开当前目录下的文件1.xt,但只能向文件写入数据,不能从文件读取数据 C打开当前目录下的文件1,但不能向文件写入数据,只能从文件读取数据 D)以上说法都不对。 5、下面的程序编译运行后,输出的结果是() public static void main(String]unused) String[]str=("ZZZ","AAA","BBB","CCC"): Arrays.sort(str); int index=Arrays.binarySearch(str,"ZZZ"). System.out.println(index): A)0B)1 C)2 D)3 6、下面的程序段的功能是()。 File filel=new File("d:\xxxllyyylzzz") file1.mkdirs( A)在当前目录下生成子目录: B)生成目录:e xxtyyylzzz C)在当前目录下生成文件xxxyyy.Z2z D)以上说法都不对 7、下面的程序编译运行后输出的结果是()。 public class Test{ public static void main(String args[) x a=new x() public void showX({ System.out.println(a*b); a.showX0): A ↓ classX int a=5 b=3 publie void showX 第2页共13页
XXXXXX 大学 XXX 学院 第 2 页 共 13 页 System.out.print("1"); else System.out.print("0"); System.out.println();//换行 } A) 00000000000000000000000000000001 B) 00000000000000000000000000000010 C) 00000000000000000000000000001111 D) 00000000000000000000000000000000 4、下面语句的功能是( )。 RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw" ); A)打开当前目录下的文件 1.txt,既可以向文件写数据,也可以从文件读数据。 B)打开当前目录下的文件 1.txt,但只能向文件写入数据,不能从文件读取数据。 C)打开当前目录下的文件 1.txt,但不能向文件写入数据,只能从文件读取数据。 D) 以上说法都不对。 5、下面的程序编译运行后,输出的结果是( ). import java.util.Arrays; public class Test { public static void main(String[] unused) { String[] str = {"ZZZ", "AAA","BBB","CCC"}; Arrays.sort(str); int index=Arrays.binarySearch(str,"ZZZ"); System.out.println(index); } } A) 0 B) 1 C)2 D)3 6、下面的程序段的功能是( )。 File file1=new File("d:\\xxx\\yyy\\zzz"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录: e:\xxx\yyy\zzz C)在当前目录下生成文件 xxx.yyy.zzz D)以上说法都不对 7、下面的程序编译运行后输出的结果是( )。 public class Test { public static void main(String args[]) { X a=new X( ) { public void showX() { System.out.println(a*b); } }; a.showX(); } } class X { int a=5,b=3; public void showX() {
XXXXXX大学XXX学院 System.out.printIn(a+b): A)15 B)8 C)5 D)3 8、应用程序的main方法中有以下语句,则输出的结果是()。 String S="XXXXXXXXXXXXXXX#123#456#zzzzz": =s.indexOf("#") k=s.indexOf("#"n+1) String s2=s.substring(n+l,k) System.out.println(s2): A)12345 B)123 CXXXXXXXXXXXXXXX D)zzzzz 9、关于下面的程序Test.java说法正确的是()。 public class Test String x="1" int y public static void main(String args){ int z=2: System.out.println(x+y+z). A)3 B)102 C)12 D)程序有编译错误 10、应用程序的main方法中有以下语句,则输出的结果是()。 double x=8765.12345: System.out.println("x="+forml.format(x)) Ax=8765.12 B)x=8765.12345 C)x=8765.1 D)x=8765.0 1l、应用程序的main方法中有以下语句,则输出的结果是()。 intb00={1,1,1},{2,2},{3} int sum=0 for(int i=0:i<b.length;i++){ for(int j=0j<b[i].length;j++){ sum+=b[i]j]: System.out.println("sum="+sum); A)10 B6 09 D)13 12、下面的程序段执行后输出的结果是()。 String s="Test.java"; boolean b=s.startsWith("test"); System.out.print(b). boolean b1=s.endsWith("java"), System.out.println(b+ +b1方 ,用程的万法中下句则行输出的结巢是( B)true fals C)fal D)fals imt0x={125,21,5,168,98}: int min=x[0]: 第3顶共13页
XXXXXX 大学 XXX 学院 第 3 页 共 13 页 System.out.println(a+b); } } A) 15 B) 8 C) 5 D) 3 8、应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 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 9、关于下面的程序 Test.java 说法正确的是( )。 public class Test { String x="1"; int y; public static void main(String args[]) { int z=2; System.out.println(x+y+z); } } A)3 B)102 C) 12 D)程序有编译错误 10、应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 double x=8765.12345; DecimalFormat form1 = new DecimalFormat("0000.00"); System.out.println("x="+form1.format(x)); A)x=8765.12 B)x=8765.12345 C)x=8765.1 D)x=8765.0 11、应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 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) 10 B)6 C) 9 D) 13 12、下面的程序段执行后输出的结果是( )。 String s="Test.java"; boolean b=s.startsWith("test"); System.out.print(b); boolean b1=s.endsWith("java"); System.out.println(b+" "+b1); A) true true B) true false C) false true D) false false 13、应用程序的 main 方法中有以下语句,则执行后输出的结果是 ( )。 int[] x={125,21,5,168,98}; int min=x[0];
XXXXXX大学XXX学院 for(int i=1.i<x.length;i++){ if(x[i]<min) min=x1: System.out.println(min); A)125 B)5 C)98 D)168 14、应用程序的main方法中有以下语句, 则输出的结果是()。 Hashtable hashtab e=new Hashtable(. hashtable.put(100","aaa). hashtable put("200""bbb) hashtable put("300""ccc") hashtab le.get(200).toString() hashtable.get(100).toString()) A)aaa B)bbb C)ccc D)cccbbbaaa 15、下面程序段执行后b的值是(). String str="java"; boolean b=str instanceof Object: A)0 B)true D)fal 16、以下关于java异常说法不正确的是()。 A)Throwable类是Java语言中Error类和Exception类的父类。 B)当异常对象是Exception类(或其子类)的实例时,能通过Java虚拟机或者 throw语句抛出该异常对象,并能通过ty..catch..finally处理。 C)如果只用一个catch块捕捉多个异常对象,则catch子句中的参数类型应是所 有异常对象的父类 D)以上说法都不对。 I7、应用程序Test.java的源程序如下,在命令行键入: 则输出的结果是ub6cd a Test eeeee public class Test public static void main(String args[]) int kl=args.length: int k2= args[2].length( System.out.print(k1+ "+k2) A)32 B)52 C)53 D)55 18、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据, 假设程序当前目录下不存在文件test.tt,编译下面的程序Tet.java后,将该程序 运行3次,则文件test.txt的内容是()。 mport java.lo.◆: public class Test public static void main(String args try 第4页共13页
XXXXXX 大学 XXX 学院 第 4 页 共 13 页 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 14、应用程序的 main 方法中有以下语句,则输出的结果是 ( )。 Hashtable hashtable=new Hashtable(); 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) aaa B) bbb C) ccc D) cccbbbaaa 15、下面程序段执行后 b 的值是( )。 String str = "java"; boolean b = str instanceof Object; A) 0 B) true C) 1 D) false 16、以下关于 java 异常说法不正确的是( )。 A)Throwable 类是 Java 语言中 Error 类和 Exception 类的父类。 B)当异常对象是 Exception 类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过 try…catch…finally 处理。 C)如果只用一个 catch 块捕捉多个异常对象,则 catch 子句中的参数类型应是所 有异常对象的父类。 D)以上说法都不对。 17、应用程序 Test.java 的源程序如下,在命令行键入: java Test aaa bb cc ddd eeeee 则输出的结果是 ( )。 public class Test { public static void main(String args[]) { int k1=args.length; int k2=args[2].length(); System.out.print(k1+" "+k2); } } A)3 2 B)5 2 C) 5 3 D) 5 5 18、下面的程序创建了一个文件输出流对象,用来向文件 test.txt 中输出数据, 假设程序当前目录下不存在文件 test.txt,编译下面的程序 Test.java 后,将该程序 运行 3 次,则文件 test.txt 的内容是( )。 import java.io.*; public class Test { public static void main(String args[]) { try {
XXXXXX大学XXX学院 String s="ABCDE"; file.write(b): file.close() catch(IOExceptione) System.out.println(e.toString(). A)ABCABC B)ABCDE C)Test DABCDE ABCDE ABCDE 19、下面那些方法不是接口Collection中己声明的方法()? A)添加元素的add(Object ob)方法 B)删除元素的removet(Object obj)方法 C)得到元素个数的length()方法 D)返回迭代器的iterator()方法,迭代器用于元素遍历 20、下面说法不正确的是()? A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。 B)List接口是可以包含 重复元素的有序集合 C)Set接口是不包含重复元素的集合。 D)Ma即接口将键映射到值,键可以重复,但每个键最多只能映射一个值。 二、多选题(本大题共10个小题,每小题2分,共20分) 得分评阅人 21、下面哪些关键字能用来控制对类成员的访问()? A)public B)protected C)private Ddefault 22、阅读、编译、运行下面的程序,正确的选项是() public class Test{ public static void main (String args) Test a=new Testo: a method(8) a.method(8f) void method(double i) System.out.println("double:"+i); void method(int i) System.out.println("int:"i) A)程序有编译错误,因为两个method(0方法必须定义为静态(static)的。 第5顶共13页
XXXXXX 大学 XXX 学院 第 5 页 共 13 页 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) ABCDEABCDEABCDE 19、下面那些方法不是接口 Collection 中已声明的方法( )? A)添加元素的 add(Object obj) 方法 B)删除元素的 remove(Object obj)方法 C)得到元素个数的 length()方法 D)返回迭代器的 iterator()方法,迭代器用于元素遍历 20、下面说法不正确的是( )? A)列表(List)、集合(Set)和映射(Map)都是 java.util 包中的接口。 B)List 接口是可以包含重复元素的有序集合。 C)Set 接口是不包含重复元素的集合。 D)Map 接口将键映射到值,键可以重复,但每个键最多只能映射一个值。 二、多选题(本大题共 10 个小题,每小题 2 分,共 20 分) 得分 评阅人 21、下面哪些关键字能用来控制对类成员的访问( )? A)public B)protected C)private D)default 22、阅读、编译、运行下面的程序,正确的选项是( ). public class Test { public static void main (String[] args){ Test a=new Test(); a.method(8); a.method(8f); } void method(double i) { System.out.println("double: "+i); } void method(int i) { System.out.println("int: "+i); } } A)程序有编译错误,因为两个 method()方法必须定义为静态(static)的
XXXXXX大学XXX学院 B)程序可以编译运行,输出结果为: int:8 G序行,输出结果为: int 8 float80 D)程序中定义的两个参数不同的method方法称为方法重栽。 23、 下面关 va中异常处理t y块的说法正确的是 A)ty块后通常应 有一个cach块,用米处理y块中抛出的异常。 B)catch块后必须有finally块。 C)可能抛出异常的方法调用应放在ty块中。 D)对抛出的异常的处理必须放在ty块中 24、线程对象的生命周期中通常经历下面哪些状态( A)新建 B)运行 C)就绪 D)死 25、定义如下的二维数组b,下面的说法正确的是()。 intb[☐[☐={1,2,3},{4,5),{6,7,8}: A)b.1 ength的值是3. B)b[1].1 ength的值是3。 C)b[1][1]的值是5. D)二维数组b的第一行有3个元素 26、类B是 一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中 正确的是()。 A)BxI=newB(方 B)Bxl=newC(方 C)Cxl=mewC(方 D)Cxl=newB( 27、关于下面的程序的说法正确的是()。 public class Test extendsThread 2 String name: 3 public Test(String s){ 4 name=s: 6 public static void main(Stringargs) Test thread I=new Test("xxx"). 8: Test thread2=new Test("yyy"). thread lstarto): 10 thread2.start(); 11 public void run({ 3 System out print(name): 14 151 A)类Test是线程类Thread的子类。 B)程序第7、8行分别创建两个线程对象thread和thread2 C)程序第9 10行的方注 的功能是分别启动两个线程对象thread1和thread2 D)程序编译运行后输出结果是:Xyyy。 28、下面关于对象串行化(Serializable)的说法正确的是( A)一个类实现接口Serializable就能使之串行化,对象串行化并没有具体方法需 第6页共13页
XXXXXX 大学 XXX 学院 第 6 页 共 13 页 B)程序可以编译运行,输出结果为: int: 8 double: 8.0 C)程序可以编译运行,输出结果为: int: 8 float: 8.0 D) 程序中定义的两个参数不同的 method 方法称为方法重栽。 23、下面关于 Java 中异常处理 try 块的说法正确的是( )? A) try 块后通常应有一个 catch 块,用来处理 try 块中抛出的异常。 B) catch 块后必须有 finally 块。 C)可能抛出异常的方法调用应放在 try 块中。 D)对抛出的异常的处理必须放在 try 块中 24、线程对象的生命周期中,通常经历下面哪些状态( )。 A)新建 B)运行 C)就绪 D)死亡 25、定义如下的二维数组 b,下面的说法正确的是( )。 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 个元素 26、类 B 是一个抽象类,类 C 是类 B 的非抽象子类,下列创建对象 x1 的语句中 正确的是( )。 A)B x1= new B( ); B) B x1=new C( ); C)C x1=new C( ); D) C x1=new B( ); 27、关于下面的程序的说法正确的是()。 1: public class Test extends Thread { 2: String name; 3: public Test(String s){ 4: name=s; 5: } 6: public static void main (String[] args) { 7: Test thread1=new Test("xxx"); 8: Test thread2=new Test("yyy"); 9: thread1.start(); 10: thread2.start(); 11: } 12: public void run () { 13: System.out.print(name); 14: } 15: } A)类 Test 是线程类 Thread 的子类。 B)程序第 7、8 行分别创建两个线程对象 thread1 和 thread2。 C)程序第 9、10 行的方法调用的功能是分别启动两个线程对象 thread1 和 thread2。 D)程序编译运行后输出结果是:xxxyyy。 28、下面关于对象串行化(Serializable)的说法正确的是( )。 A)一个类实现接口 Serializable 就能使之串行化,对象串行化并没有具体方法需
XXXXXX大学XXX学院 要实现。 B)一个对象串行化后,能通过对象流读取对象或写入对象 C)用transien关键字修饰的变量将不参与串行化】 D)串行化 个类 必须保证在恢复时java虚拟机能找到这个类的.class文件,否 则将会出现ClassNotFoundException。 29、下面关于进程、线程的说法正确的是( A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线 名线程形成多条执行线 B)饯程是比进程更小 执行单位 是在一个进程中独立的控制流,即程序内部的 控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java多线程的运行与平台相关。 D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对 于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。 下面关于外部类和内部类成员的相互访问的规则中,正确的选项是( A)内部类可以直接访问外部类的成员。 B)外部类可以直接访问内部类的成员 C)外部类不能访问内部类的成员。 D)外部类可通过创建内部类的实例来访问内部类的成员。 三、 填空题(本大题共5个小题,每小题4分,共20分》 得分评阅人 31、根据程序中的注释,将下面的应用程序补充完整, public class A public static void main (String args) Aa=new B(): a.testo: void test(){ System.out.print("A"); class B (1) A void test({ _(2) ∥调用父类的同名方法 System.out.printIn("B"), 32、下面方法的功能是在命令行打印1is对象,请将程序补充完整。 private static void printAm ayList(List Iterator iterato 到s 的选代器 while(iterator.hasNext()M迭代器中是否有下一个元素 System.out.printIn( (2) )/∥显示迭代器中的元素 第7顶共13页
XXXXXX 大学 XXX 学院 第 7 页 共 13 页 要实现。 B)一个对象串行化后,能通过对象流读取对象或写入对象。 C)用 transient 关键字修饰的变量将不参与串行化。 D)串行化一个类,必须保证在恢复时 java 虚拟机能找到这个类的.class 文件,否 则将会出现 ClassNotFoundException。 29、下面关于进程、线程的说法正确的是( )。 A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线 程——多线程,形成多条执行线索。 B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的 控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java 多线程的运行与平台相关。 D)对于单处理器系统,多个线程分时间片获取 CPU 或其他系统资源来运行。对 于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。 30、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是( )。 A)内部类可以直接访问外部类的成员。 B)外部类可以直接访问内部类的成员 C)外部类不能访问内部类的成员。 D)外部类可通过创建内部类的实例来访问内部类的成员。 三、填空题(本大题共 5 个小题,每小题 4 分,共 20 分) 得分 评阅人 31、根据程序中的注释,将下面的应用程序补充完整。 public class A { public static void main (String[] args) { A a=new B( ); a.test(); } void test() { System.out.print ("A"); } } class B ____(1)_____ A{ void test() { ____(2)____;//调用父类的同名方法 System.out.println("B"); } } 32、下面方法的功能是在命令行打印 list 对象,请将程序补充完整。 private static void printArrayList(List list) { Iterator iterator =____(1)____;//得到 list 的迭代器 while ( iterator.hasNext() )// 迭代器中是否有下一个元素 System.out.println(____(2)____);//显示迭代器中的元素
XXXXXX大学XXX学院 33、下面的程序的功能是从1~36的整数中随机选取7个数:第1次随机选择136 1的 个数,第2次从剩下的35个数 (第 1次选中的数不包括其中)中随机选 一个数,,重复这个过程,直到选中7个整数。请完成程序填空。 import java util. public class Select7From36 public static void main(String]args) Random ra new Random(), ArrayList allNum=new ArrayList() 创建有7个元素的Integer数组 Integer result0=」 _(1) int x; forint i=lis=36:++) allNum.add(new Integer(i)): for(inti=0,ik-6:i+) result[i](Integer)allNum.get(x), allNum.remove(x); for(int i=0i<result.length;+) System.out.print(result 34、假定一个英文表示的地址格式要求是:数字号码(至少1个),然后是一个或 多个空格隔开,然后是 个单词(至少两个字母)表示的地名,或用空格隔开的两 个单词(至少两个字母)表示的地名,例如 waiganxijie Beijing, 就是符合要 求的地址格式。下面应用程序的main方法中使用JOptionPane类的文本输入对 话框输入地址,通过正则字符串和字符串类的matches(0方法判断是否为地址格 式要求的地址。精完成程序填空。 import javax.swing* import java.utilregex.Pattem: public class UseMatchesMethod public static void main(String args[]) String regex= 1 String input=JOptionPane..showInputDialog("请输入地址")方 f道 (2) System.out.printn(input+-"是有效的地址!"方 else System.out.println((input+-"不是有效的地址!"方 第8页共13页
XXXXXX 大学 XXX 学院 第 8 页 共 13 页 } 33、下面的程序的功能是从 1~36 的整数中随机选取 7 个数:第 1 次随机选择 1~36 中的一个数,第 2 次从剩下的 35 个数(第 1 次选中的数不包括其中)中随机选 择一个数,…,重复这个过程,直到选中 7 个整数。请完成程序填空。 import java.util.*; public class Select7From36 { public static void main(String[] args) { Random rd= new Random(); ArrayList allNum=new ArrayList(); //创建有 7 个元素的 Integer 数组 Integer result[]=____(1)____; int x; for(int i=1;i<=36;i++){ allNum.add(new Integer(i)); } for(int i=0;i<=6;i++){ x=____(2)____; result[i]=(Integer)allNum.get(x); allNum.remove(x); } for(int i=0;i<result.length;i++){ System.out.print(result[i]+" "); } } } 34、假定一个英文表示的地址格式要求是:数字号码(至少 1 个),然后是一个或 多个空格隔开,然后是一个单词(至少两个字母)表示的地名,或用空格隔开的两 个单词(至少两个字母)表示的地名,例如: 5 waiganxijie Beijing,就是符合要 求的地址格式。下面应用程序的 main 方法中使用 JOptionPane 类的文本输入对 话框输入地址,通过正则字符串和字符串类的 matches()方法判断是否为地址格 式要求的地址。请完成程序填空。 import javax.swing.*; import java.util.regex.Pattern; public class UseMatchesMethod{ public static void main( String args[] ) { String regex=____(1)_____; String input=JOptionPane.showInputDialog("请输入地址"); if(____(2)____) System.out.println(input+"是有效的地址!"); else System.out.println(input+"不是有效的地址!"); }
XXXXXX大学XXX学院 35、下面是一个实现了Runnable接口的小程序,程序通过多线程实现了以下功 能:从1开始,每个两秒钟显示下 一个连续的自然数, 显示到直到10后结束 请根完成程序填空 Import lava awt * import javax.swing. public class Test Runnable int co Thread t; public void init() =(2): /创建线程对象 t.startO): public void run() { while(counter<10 counter++ tryThread.sleep(2000). catch(InterruptedExceptione) } repaint( public void paint(Graphics g) setBackground(Color.black). g.setColor(Color.green): g.setFont(new Font("Times New Roman".Font.BOLD,35)); g.drawString(String.valueOf(counter),60+counter*20,60). public void update(Graphicsg) paint(g) 四、程序阅读题(本大题共4个小题,每小题6分,共24分) 得分评阅人 36、阅读下面的程序代码,并回答问题(0问3分,©问3分,共6分)。 String sl-new String("abcde"): abcde"): boolean b2=s1- System.out.print(b1 +b2) 0程序段执行后,在命令行的输出结果如何? 第9顶共13页
XXXXXX 大学 XXX 学院 第 9 页 共 13 页 } 35、下面是一个实现了 Runnable 接口的小程序,程序通过多线程实现了以下功 能:从 1 开始,每个两秒钟显示下一个连续的自然数,显示到直到 10 后结束。 请根完成程序填空。 import java.awt.*; import javax.swing.*; public class Test extends JApplet _____(1)_____ Runnable { int counter=0; Thread t; public void init() { t=___(2)___; //创建线程对象 t.start(); } public void run() { while( counter<10 ) { counter++; try { Thread.sleep(2000); } catch ( InterruptedException e ) { } repaint(); } } public void paint( Graphics g ) { setBackground(Color.black); g.setColor(Color.green); g.setFont(new Font("Times New Roman",Font.BOLD,35)); g.drawString( String.valueOf(counter),60+counter*20,60 ); } public void update(Graphics g){ paint(g); } } 四、程序阅读题(本大题共 4 个小题,每小题 6 分,共 24 分) 得分 评阅人 36、阅读下面的程序代码,并回答问题(问 3 分,问 3 分,共 6 分)。 String s1=new String("abcde"); String s2=new String("abcde"); boolean b1=s1.equals(s2); boolean b2=s1==s2; System.out.print(b1+" "+b2); 程序段执行后,在命令行的输出结果如何?
XXXXXX大学XXX学院 ©解释输出(1)的结果的原因? 37、阅读下面的程序,并回答问题(0问3分,®问3分,共6分) public elas Testf publ BaiteRdirSrieesDthouslOExceptionf new InputStreamReader(System.in)). str.gual”quit) break 编译运行上面的程序: 0从键盘输入10,回车后输出的结果如 从键盘输入 车后程序 E确 行吗?为什么? 38、写出下面的程序编译、运行后的结果(6分)。 oid main(St s0) new Student("Tom"m90.8) new Student("Jack",'m,66,89) x\tchinese\tenglish") Student.printO): cass Student sex protected in chine static Student list Student(String name.char sex.int chinese int english) this.name=name; chin this.english static void print() if(friend=null) seymheim) do' System.out.println(friend.toString() 第10页共13页
XXXXXX 大学 XXX 学院 第 10 页 共 13 页 解释输出(1)的结果的原因? 37、阅读下面的程序,并回答问题(问 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); } } } 编译运行上面的程序: 从键盘输入 10,回车后输出的结果如何? 从键盘输入 exit,回车后程序能正确执行吗?为什么? 38、写出下面的程序编译、运行后的结果(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); }