




免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXXX大学 XXX学院 (密封线内勿答题) 姓名 学号 学院(系) 专业 年级 班(密封线内勿答题) Java程序设计课程 期末考试卷(200x200x学年 第x学期) 本科 专科R A卷R 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) RuntimeExceptionC) 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) 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:xxxyyyzzz);file1.mkdirs();A)在当前目录下生成子目录:xxxyyyzzz B)生成目录: e:xxxyyyzzz 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() 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.12345C)x=8765.1 D)x=8765.0 11、应用程序的main方法中有以下语句,则输出的结果是 ( )。 int b=1, 1, 1, 2,2, 3; int sum=0; for(int i=0;ib.length;i+) for(int j=0;jbi.length;j+) sum+=bij; 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=x0;for(int i=1;ix.length;i+)if(ximin)min=xi;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) false16、以下关于java异常说法不正确的是( )。A)Throwable 类是 Java 语言中Error类和Exception类的父类。B)当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过trycatchfinally处理。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=args2.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 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 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)的。B)程序可以编译运行,输出结果为:int: 8double: 8.0C)程序可以编译运行,输出结果为:int: 8float: 8.0D) 程序中定义的两个参数不同的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)b1.length的值是3。C)b11的值是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就能使之串行化,对象串行化并没有具体方法需要实现。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)_ Avoid 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)_);/显示迭代器中的元素 33、下面的程序的功能是从136的整数中随机选取7个数:第1次随机选择136中的一个数,第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)_; resulti=(Integer)allNum.get(x); allNum.remove(x); for(int i=0;iresult.length;i+) System.out.print(resulti+ ); 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+是有效的地址!); elseSystem.out.println(input+不是有效的地址!); 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( counter10 ) 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、阅读下面的程序代码,并回答问题(u问3分,v问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); u程序段执行后,在命令行的输出结果如何?v解释输出(1)的结果的原因?37、阅读下面的程序,并回答问题(u问3分,v问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); 编译运行上面的程序:u从键盘输入10,回车后输出的结果如何?v从键盘输入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(nametsextchinesetenglish); 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) =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); 39、阅读下面的程序,并回答问题(u问3分,v问3分,共6分)。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MenuTest extends JFrame JTextArea theArea; public MenuTest() super(MyMenu); Container contentPane = this.getContentPane(); theArea = new JTextArea( ); theArea.setText(The first snow came,nHow beautiful it was!); theArea.setLineWrap(true); contentPane.add(new JScrollPane(theArea),BorderLayout.CENTER); JMenu fontMenu = new JMenu(Font); JMenuItem fontSize= new JMenuItem(Size); fontSize.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String sizeString=JOptionPane.showInputDialog( 字号大小 ); int fontSize=Integer.parseInt(sizeString); theArea.setFont( new Font(楷体_gb2312,Font.PLAIN,fontSize); ); fontMenu.add(fontSize); JMenuItem exit= new JMenuItem(Exit); exit.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0); ); fontMenu.add(exit); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); menuBar.add(fontMenu); this.setSize(300,200); this.setVisible(true); public static void main(String args) new MenuTest(); u图示程序运行后的图形界面。v用文字描述点击菜单项“Size”后,程序的执行过程和效果。五、编程题(本大题共3个小题,40小题4分,41、42小题各6分,共16分)得分评阅人40、请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face和suit:face描述一张牌的牌面值(如:Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King);suit描述一张牌的花色(如:Hearts, Diamonds, Clubs, Spades)。定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“Ace of Hearts”、“Ten of Clubs”等)。41、程序中已定义如下字符串数组faces,用来表示牌面面值:String faces= Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King ;并已定义名为hand1的Card数组如下,存放一幅牌(共5张):Card hand1=new Card5;设已发了一幅牌,并存放在hand1数组中,为了统计该幅牌(54张牌中的任意5张)的每个面值的牌各有多少(因花色不同,不同面值的牌可能有0、1、2、3、4张),程序中已定义一个整型数组:int numbers1=new int13 ;存放5张牌中13个不同面值中的张数。请编写方法:void totalHand(),方法的功能是统计一幅牌中不同面值的牌的张数,结果保存在整型数组numbers1中。42、为了模拟两个线程共享数据,并实现线程对共享数据的同步操作,模拟生产和消费的同步。定义SynchronizedBuffer类做为生产线程和消费线程的共享数据类,类中定义整型缓冲区buffer,用来存放一个整数;定义方法set,用来模拟生产过程,即给变量buffer设置值,该方法由生产线程调用;定义方法get,用来模拟消费过程,即取变量buffer的值,该方法由消费线程调用。生产和消费的逻辑要求是:必须先生产,然后再消费。请完成程序中get方法的编写。public class SynchronizedBuffer private int buffer = -1; private boolean occupiedBuffer= false; /*该方法设置buffer值,由生产线程调用,模拟生产过程*/ public synchronized void set( int value ) String name = Thread.currentThread().getName(); while ( occupiedBuffer) try System.err.println( name + 试图生产,但上一次的还没有消费!等待消费! ); wait(); catch ( InterruptedException e ) e.printStackTrace(); buffer = value; System.out.println( name+ 生产一个整数:+buffer); occupiedBuffer=true; notify(); /*编写get方法得到buffer值,该方法将由消费线程调用,模拟消费过程*/ Java程序设计课程 期末考试卷A评分标准及标准答案(200x200x学年 第x学期)_专业_年级 本 专科R A卷R B卷 C卷命题人: XXX 二、 一、单选题(本大题共20个小题,每小题1分,共20分)1D2C3B4A5D6D 7A8B9D10A11A12C13B14D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 18268.21-2025测量、控制和实验室用的电设备电磁兼容性要求第21部分:特殊要求无电磁兼容防护场合用敏感性试验和测量设备的试验配置、工作条件和性能判据
- 大学生心理健康教育 课件 第八章大学生压力管理与挫折应对
- 应急和安全知识培训课件
- 黑龙江省安达市中考物理通关考试题库【黄金题型】附答案详解
- 蒙脱石散治疗秋季腹泻作用机制与使用规范
- 数字系统设计与VHDL(第3版)教案全套 1-12 -第1章 EDA技术概述 - 第12章 VHDL设计实例
- 2024自考专业(电子商务)常考点试卷含答案详解(巩固)
- 机构入学合同(标准版)
- 做微商如何与客户有效沟通(35篇)
- 信息系统的应急预案
- 格拉斯哥昏迷评分法详解(GCS)
- GB/T 45403-2025数字化供应链成熟度模型
- 盒饭采购合同协议
- QGDW11337-2023输变电工程工程量清单计价规范
- 小学昆虫知识科普单选题100道及答案
- 防性侵教师培训
- 纸箱厂应急救援预案演练方案
- 人工智能通识基础 课件 第1章 人工智能概述
- 《建设法规》教案+第1次课+法律体系
- 患者的卧位课件
- 中药香囊与车载香氛结合企业制定与实施新质生产力战略研究报告
评论
0/150
提交评论