Java2程序设计自测题1.docx
- 文档编号:30726993
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:18
- 大小:58.69KB
Java2程序设计自测题1.docx
《Java2程序设计自测题1.docx》由会员分享,可在线阅读,更多相关《Java2程序设计自测题1.docx(18页珍藏版)》请在冰豆网上搜索。
Java2程序设计自测题1
Java2语言程序设计期末复习自测题2012/5/9
注意:
此自测题仅作参考!
题目请大家在复习完成之后做测试,注意控制时间!
一、选择
1、下列可以作为Java语言标识符的是(B)
A.classB.$abcC.3xD.hello!
2、关于Java语言中的循环语句,下列说法正确的是(B)
A.while类型的循环至少执行一次循环体
B.do-while类型的循环至少执行一次循环体
C.for循环可构成多重循环,while循环不可
D.return语句不可用在循环中
3、对于类的定义,下列说法正确的是(D)
A.static与final关键字在不能同时修饰成员变量
B.private关键字可以修饰类定义
C.final关键字只能用于定义常量,不能用来作为类修饰符
D.一个源程序文件(.java文件)中最多只能有一个public类型的类
4、对于类、接口的实现,下列说法错误的是(B)
A.Java中的任何类都默认继承自Object
B.子类可同时继承自多个抽象类来实现
C.继承自某个父类声明一个子类时,该子类也可同时定义一些成员方法和变量
D.接口也可以进行继承接口,采用extends关键字实现
5、对于default访问权限修饰符,使用正确的是(B)
A.子类和父类在同一包,只继承default变量,不继承default方法
B.子类和父类不在同一包,不继承default变量和方法
C.子类和父类在同一包,不继承default变量,只继承default方法
D.子类和父类不在同一包,继承default变量和方法
6、对于HashSet和ArrayList的比较,正确的是(A)
A.两者均可包含null元素
B.两者均不可包含不同类型元素
C.两者均有Objectget(intindex)方法
D.两者均可排序
7、关于String和StringBuffer类的相同与不同,错误的是(C)
A.前者为不变字符串,后者则实现了可变字符串
B.对于String字符串,运算符“+”实现字符串连接,与concat方法功能相当
C.对于比较字符串内容,两者均采用“==”运算符实现
D.StringBuffer字符串采用append方法追加内容时,实现字符串连接
8、定义一个成员方法时,声明其可能会抛出的各种异常和主动抛出异常使用(C)
A.throws、catchB.try、catchC.throws、throwD.throw、throws
9、对于JavaGUI布局管理器,实现将容器划分为规则的网格,每个网格大小相同,采用以下哪个(C)
A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout
10、关于Java程序结构,下列说法错误的是(D)
A.Java程序由类作为基本构成单元,可由多个类构成
B.一个Java程序可包含多个源程序文件,每个源程序文件中可包含多个类
C.一个可执行的Java程序必须有一个类中存在main方法
D.可执行的Java程序main方法可有多种形式
二、填空
1、Java语言程序的字节码文件的扩展名为(.class),在命令提示符界面运行字节码文件的命令为(java)。
2、switch语句中使用(break)关键字在执行case分支后跳出语句块,(default)子句可选,表示与任何case字句都不匹配时执行的语句。
3、声明类属于某个包,使用(package)关键字,若引入包testpackage中的类Test,语句为(importtestpackage.Test;)。
4、子类继承父类时,若存在与父类相同形式的方法称为方法(重写),若在某个类中存在多个同名方法,称为方法(重载)。
5、子类构造方法调用父类的构造方法,使用(super)关键字,(final)关键字修饰的类不能被继承。
6、static关键字修饰的方法称为(静态成员)方法,修饰的成员变量称为(静态成员)变量。
7、对文件进行按字符顺序读取,可使用输入输出流的(FileReader)类实现,若获取文件大小等相关信息,使用(File)类。
8、Java语言中数组作为对象,属性(length)可获取数组长度,Arrays类的(sort)方法可对数组元素进行排序。
9、Object类提供了线程的同步方法,其中(wait)方法用来使线程进入等待状态,(notify)方法用来唤醒等待队列中的线程。
10、Java语言编程中可使用(ServerSocket)类完成TCP通信的服务器端程序通信功能,该类的(accept)方法为阻塞方法,用来等待客户端的连接。
三、程序分析
1、写出以下程序的输出结果。
publicclassExceptionDemo{
publicstaticvoidmain(Stringargs[]){
intn=1,m=1;
try{
m=Integer.parseInt("123");
n=Integer.parseInt("abc123");
System.out.println("n="+n);
}catch(NumberFormatExceptione){
System.out.println("execcatch{}");
n=456;
m=789;
}finally{
System.out.println("execfunally{}");
}
System.out.println("n="+n+",m="+m);
}
}
execcatch{}
execfunally{}
n=456,m=789
2、补充程序实现求
的值存放在变量pi,公式为
,程序实现要求取公式的前10项。
publicclassCalPI{
publicstaticvoidmain(String[]args){
doublepi=0;//存放求出的pi值
//补充实现代码
System.out.println("piis"+pi);//输出
}
}
for(inti=1;i<20;i+=2){
if(i%4==1){
pi+=(1.0d/i);
}else{
pi-=(1.0d/i);
}
}
pi=pi*4;
3、写出以下程序的输出结果(执行Test类的main方法)。
publicclassTestStatic{
privatestaticTestStaticsin=newTestStatic();
privatestaticintcount1=1;
privatestaticintcount2=3;
static{
++count1;
++count2;
}
privateTestStatic(){
++count1;
++count2;
}
publicstaticTestStaticgetInstance(){
returnsin;
}
publicstaticintgetCount1(){
returncount1;
}
publicstaticintgetCount2(){
returncount2;
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
TestStaticresult=TestStatic.getInstance();
System.out.println(result.getCount1());
System.out.println(result.getCount2());
}
}
2
4
4、写出以下程序的输出结果。
publicclassA{
publicA(){
System.out.println("createA");
}
publicvoidtestMethod1(){
System.out.println("A:
testMethod1()");
}
publicvoidtestMethod2(){
System.out.println("A:
testMethod2()");
}
}
publicclassBextendsA{
publicB(){
System.out.println("createB");
}
publicvoidtestMethod2(){
System.out.println("B:
testMethod2()");
}
publicvoidtestMethod3(){
System.out.println("B:
testMethod3()");
}
}
publicclassTestAB{
publicstaticvoidmain(String[]args){
Bb=newB();
b.testMethod2();
b.testMethod3();
Aa=(A)b;
a.testMethod1();
a.testMethod2();
}
}
createA
createB
B:
testMethod2()
B:
testMethod3()
A:
testMethod1()
B:
testMethod2()
四、简答
1、对于HashSet对象strSet中存放对象的类型全部为String字符串,遍历并输出每个元素,写出关键代码即可。
Iteratorit=strSet.iterator();
while(it.hasNext()){
Stringstr=(String)it.next();
System.out.println(str);
}
2、文件d:
/test1大小超过128字节,任意选择方法和类,完成将其中第32字节开始至128字节的内容复制到空文件d:
/test2中,每次最多拷贝32字节,补充完成。
byte[]buffer=newbyte[32];//作为32字节拷贝缓冲区
//补充代码实现要求
FileInputStreamis=newFileInputStream("d:
/test1");
FileOutputStreamos=newFileOutputStream("d:
/test2");
is.skip(32);
intcpyCount=0;
intcanCpy=128-32+1;
while(cpyCount is.read(); if(canCpy-cpyCount>=32){ os.write(buffer); }else{ os.write(buffer,0,canCpy-cpyCount); } cpyCount=cpyCount+32; } 3、简述protected、private修饰的成员变量在不同包和同一包中的子类继承访问情况。 同一包protected可以、private不可以 不同包protected可以、private不可以 4、采用Access数据库建立数据库,数据源名称为mydb,其中有一数据表testtable,字段为id(自动增量),t_num(int),t_name(文本),补充下列程序完成查询该数据表中所有数据并输出相应信息。 publicclassJDBCDemo{ publicstaticvoidmain(String[]args){ try{ //加载驱动 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){ } try{ //获取Connection对象 Connectionconn =DriverManager.getConnection("jdbc: odbc: mydb","",""); Statementstmt=conn.createStatement(); ResultSetres=stmt.executeQuery("select*fromtesttable"); //遍历res输出t_name字段 while(res.next()){ Stringtname=res.getString("t_name"); System.out.println("t_name: "+tname); } res.close(); stmt.close(); conn.close(); }catch(SQLExceptione){ } } } forName DriverManager while(res.next()){ Stringtname=res.getString("t_name"); System.out.println("t_name: "+tname); } 5、设计4个线程,都对某数操作,其中两个线程每次对此数增加1,另外两个线程对此数每次减少1,写出程序,注意互斥访问。 publicclassOpNum{ publicintcount=0; publicsynchronizedvoidinc(){ count++; } publicsynchronizedvoiddec(){ count++; } } //增加线程 publicclassIncThreadextendsThread{ privateOpNumopNum; publicvoidrun(){ opNum.inc(); } publicvoidsetOpNum(OpNumopNum){ this.opNum=opNum; } publicOpNumgetOpNum(){ returnopNum; } } //减线程 publicclassDecThreadextendsThread{ privateOpNumopNum; publicvoidrun(){ opNum.dec(); } publicvoidsetOpNum(OpNumopNum){ this.opNum=opNum; } publicOpNumgetOpNum(){ returnopNum; } } 6、已知界面的效果如图所示,补全下面的程序 初始界面点击日期按钮点击时间按钮 importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; importjava.util.*; classJButtonDemoextendsJFrameimplementsActionListener{ JButtonbutton1,button2,button3; JLabellabel; JButtonDemo(){ super("按钮动作范例"); //获得JFrame的内容窗格 Containerc=getContentPane(); label=newJLabel("欢迎进入Java世界! ",JLabel.CENTER); button1=newJButton("日期[d]"); //button1注册点击事件 button1.addActionListener(this);; button2=newJButton("时间[t]"); //button2注册点击事件 button2.addActionListener(this);; //创建button3按钮 button3=newJButton("退出[q]");; button3.addActionListener(this); //设置布局为BorderLayout c.setLayout(newBorderLayout());; 向内容窗格中添加label组件 c.add(label,BorderLayout.NORTH); c.add(button1,BorderLayout.WEST); c.dd(button2,BorderLayout.CENTER); c.add(button3,BorderLayout.EAST); } publicvoidactionPerformed(){ Calendarc=Calendar.getInstance(); if(e.getSource()==button1){ label.setText("今天是"+c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+ c.get(Calendar.DATE)+"日"); label.setHorizontalAlignment(JLabel.LEFT); } elseif(e.getSource()==button2){ label.setText("现在是"+c.get(Calendar.HOUR)+"时"+c.get(Calendar.MINUTE)+"分"+ c.get(Calendar.SECOND)+"秒"); label.setHorizontalAlignment(JLabel.RIGHT); } elseif(e.getSource()==button3) System.exit(0);} 五、程序设计 1、编写程序,从键盘输入平行四边形的底和高,求面积并输出。 Scannerstr1=newScanner(System.in); System.out.println("请输入平行四边形的底: "); doublebottom=str1.nextDouble(); Scannerstr2=newScanner(System.in); System.out.println("请输入平行四边形的高: "); doubleheight=str2.nextDouble(); 2、编程实现以下要求: (1)编写一抽象类Staff描述某软件公司员工,其中包含属性工号(jobNumber)、姓名(name)、薪水(salary)、部门(department),抽象方法showInfo用来输出员工基本信息; publicabstractclassStaff{ protectedintjobNumber; protectedStringname; protecteddoublesalary; protectedStringdepartment; abstractvoidshowInfo(); publicintgetJobNumber(){ returnjobNumber; } publicvoidsetJobNumber(intjobNumber){ this.jobNumber=jobNumber; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicdoublegetSalary(){ returnsalary; } publicvoidsetSalary(doublesalary){ this.salary=salary; } publicStringgetDepartment(){ returndepartment; } publicvoidsetDepartment(Stringdepartment){ this.department=department; } } (2)定义接口IArchDesign表示架构设计,其中包含 designSoftware()(架构设计)抽象方法, codingSoftware()(编程序)抽象方法; publicinterfaceIArchDesign{ voiddesignSoftware(); voidcodingSoftware(); } (3)定义IProgram接口,其中包含 codingSoftware()(编程序)抽象方法; publicinterfaceIProgram{ voidcodingSoftware(); } (4)定义接口IManageSalary表示管理工资,其中包含 riseSalary(Staffs)(提升员工工资)抽象方法; publicinterfaceIManageSalary{ voidriseSalary(Staffs); } (5)编写类Programmer表示程序员,继承自Staff并实现IProgram接口; 编写类Architect表示架构师,继承自Staff并实现IProgram、接口IArchDesign; 编写类FinancialOfficer表示财务总监,继承自Staff并实现IManageSalary接口。 publicclassProgrammerextendsStaffimplementsIProgram{ voidshowInfo(){ System.out.println("IamaProgrammerandmyjobNumberis"+jobNumber +"mynameis"+name +"mysalaryis"+salary +"mydepartmentis"+department); } publicvoidcodingSoftware(){ System.out.println("Mymajorworkiscoding"); } } publi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java2 程序设计 自测