Java2程序设计自测题.docx
- 文档编号:2008320
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:18
- 大小:24.02KB
Java2程序设计自测题.docx
《Java2程序设计自测题.docx》由会员分享,可在线阅读,更多相关《Java2程序设计自测题.docx(18页珍藏版)》请在冰点文库上搜索。
Java2程序设计自测题
Java2语言程序设计期末复习自测题2011/6/11
注意:
题目请大家在复习完成之后做测试,注意控制时间!
一、选择(每小题2分,总计10题)
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方法可有多种形式
二、填空(共20空,每空1分)
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)方法为阻塞方法,用来等待客户端的连接。
三、程序分析(本题总计20分)
1、(本题4分)写出以下程序的输出结果。
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、(本题4分)写出以下程序的输出结果。
publicclassOpDemo{
publicstaticvoidmain(String[]args){
inta=1;
intb=2;
if(((a+=1)<2)&((b++)>2)&((a=a+b)>3)){
System.out.println("itistrue");
}
System.out.println("a="+a);
System.out.println("b="+b);
}
}
a=5
b=3
3、(本题4分)补充程序实现求
的值存放在变量pi,公式为
,程序实现要求取公式的前10项。
publicclassCalPI{
publicstaticvoidmain(String[]args){
doublepi=0;//存放求出的pi值
//补充实现代码
代码:
for(inti=1;i<20;i+=2){
if(i%4==1){
pi+=(1.0d/i);
}else{
pi-=(1.0d/i);
}
}
pi=pi*4;
/////////////////////////////////////
System.out.println("piis"+pi);//输出
}
}
4、(本题4分)写出以下程序的输出结果(执行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
5、(本题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()
四、简答(本题总计20分)
1、(本题4分)对于HashSet对象strSet中存放对象的类型全部为String字符串,遍历并输出每个元素,写出关键代码即可。
Iteratorit=strSet.iterator();
while(it.hasNext()){
Stringstr=(String)it.next();
System.out.println(str);
}
2、(本题4分)文件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、(本题3分)简述protected、private修饰的成员变量在不同包和同一包中的子类继承访问情况。 同一包protected可以、private不可以 不同包protected可以、private不可以 4、(本题5分)采用Access数据库建立数据库,数据源名称为mydb,其中有一数据表testtable,字段为id(自动增量),t_num(int),t_name(文本),补充下列程序完成查询该数据表中所有数据并输出相应信息。 publicclassJDBCDemo{ publicstaticvoidmain(String[]args){ try{ //加载驱动 Class.("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){ } try{ //获取Connection对象 Connectionconn =.getConnection("jdbc: odbc: mydb","",""); Statementstmt=conn.createStatement(); ResultSetres=stmt.executeQuery("select*fromtesttable"); //遍历res输出t_name字段 while(){ } 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分)设计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; } } 五、程序设计(本题总计20分) 1、(本题9分)String类型字符串如“b1c0d3f7g3k5d1g3ko4h2”,其中既含有小写英文字符,也包含数字字符,且数字字符可能重复;编程查找并输出共有多少种数字,并用这些数字字符组成一整数,要求输出能够表示的最大数。 参考方法: String类的charcharAt(intindex)方法获取第index位置的字符。 Stringstr="b1c0d3f7g3k5d1g3ko4h2"; MapcharMap=newHashtable(); ListcharList=newArrayList(); for(inti=0;i charc=str.charAt(i); if((c>='0')&&(c<='9')){ charList.add(c); Objectobj=charMap.get(c); if(null! =obj){ Integercount=(Integer)obj; count=count+1; charMap.put(c,count); }else{ charMap.put(c,1); } } } IteratoritKey=charMap.keySet().iterator(); while(itKey.hasNext()){ Objectkey=itKey.next(); Objectnum=charMap.get(key); System.out.println("数字"+key+"数量为: "+num); } Object[]charArray=charList.toArray(); Arrays.sort(charArray); StringnumStr=""; for(inti=charArray.length;i>0;i--){ numStr=numStr+charArray[i-1]; } System.out.println("最大数为: "+Long.parseLong(numStr)); 2、(本题11分)编程实现以下要求: (1)编写一抽象类Staff描述某软件公司员工,其中包含属性工号(jobNumber)、姓名(name)、薪水(salary)、部门(department),抽象方法showInfo用来输出员工基本信息; (2)定义接口IArchDesign表示架构设计,其中包含 designSoftware()(架构设计)抽象方法, codingSoftware()(编程序)抽象方法; (3)定义IProgram接口,其中包含 codingSoftware()(编程序)抽象方法; (4)定义接口IManageSalary表示管理工资,其中包含 riseSalary(Staffs)(提升员工工资)抽象方法; (5)编写类Programmer表示程序员,继承自Staff并实现IProgram接口; 编写类Architect表示架构师,继承自Staff并实现IProgram、接口IArchDesign; 编写类FinancialOfficer表示财务总监,继承自Staff并实现IManageSalary接口。 (1) 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) publicinterfaceIArchDesign{ voiddesignSoftware(); voidcodingSoftware(); } (3) publicinterfaceIProgram{ voidcodingSoftware(); } (4) publicinterfaceIManageSalary{ voidriseSalary(Staffs); } (5) publicclassProgrammerextendsStaffimplementsIProgram{ voidshowInfo(){ System.out.println("IamaProgrammerandmyjobNumberis"+jobNumber +"mynameis"+name +"mysalaryis"+salary +"mydepartmentis"+department); } publicvoidcodingSoftware(){ System.out.println("Mymajorworkiscoding"); } } publicclassArchitectextendsStaffimplementsIProgram,IArchDesign{ voidshowInfo(){ System.out.println("IamaArchitectandmyjobNumberis"+jobNumber +"mynameis"+name +"mysalaryis"+salary +"mydepartmentis"+department); } publicvoidcodingSoftware(){ Sys
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java2 程序设计 自测
![提示](https://static.bingdoc.com/images/bang_tan.gif)