java期末复习试题.docx
《java期末复习试题.docx》由会员分享,可在线阅读,更多相关《java期末复习试题.docx(27页珍藏版)》请在冰豆网上搜索。
java期末复习试题
《Java语言初步》课程(A卷)
一、 单项选择题(从A、B、C、D四个选项中选择最恰当的一个,每题2′,共30分)
1.下列选项不属于结构化程序设计方法的是(D)
A)自顶向下B)逐步求精C)模块化D)可复用
2.在Switch(expression)中,expression的数据类型不可以是(A)
A)doubleB)charC)shortD)byte
3.下列描述中,正确的是(A)
A)声明变量时,必须指定一个类型B)Java认为number和Number是相同的变量
C)Java中唯一的注释方式是//D)源文件的public类可以是0个或者多个
4.用来导入已经定义好的包或者类的语句是(B)
A)mainB)importC)publicclassD)Class
5.下列命题中,错误的是(A)
A)java编程时,要尽量多用公共变量B)java编程时,要尽量少用公共变量
C)java编程时,要尽量不用公共变量D)java编程时,要尽量多用私有变量
6.商品和顾客两个实体集之间的联系通常是(D)
A)一对一B)一对多C)多对一D)多对多
7.下列描述中,错误的是(A)
A)Java要求编程者管理内存
B)Java的安全性体现在多个层次上
C)Applet要求在支持Java的浏览器上执行
D)Java有多线程机制
8.在Java语言中,不允许使用指针体现出的Java特性是(D)
A)可移植性B)解释执行
C)健壮性D)安全性
9.下列方法中,不属于WindowListener接口的是(D)
A)WindowOpened()B)WindowClosed()
C)WindowActivated()D)MouseDragged()
10.下列语句中,属于多分支语句的是(B)
A)if语句B)Switch语句
C)for语句D)While语句
11.阅读下列代码
PublicclassTest
{
Publicstaticvoidmain(Stringargs[])
{
System.out.println((3>2)?
4:
5);
}
}
其运行结果是(C)
A)2B)3
C)4D)5
12.在Applet中,显示文字、图形等信息时,应使用方法是(A)
A)paint()B)init()
C)start()D)destory()
13.线程生命周期中,正确的状态是(C)
A)新建状态、运行状态和终止状态
B)新建状态、运行状态、阻塞状态和终止状态
C)新建状态、可运行状态、运行状态、阻塞状态和终止状态
D)新建状态、可运行状态、运行状态、恢复状态和终止状态
14.在程序读入字符文件时,能够以该文件作为直接参数的类是(A)
A)FileReaderB)BufferedReader
C)FileInputStreamD)ObjectInputStream
15.下列命题中,错误的是(C)
A)File类能够存储文件B)File类能够读写文件
C)File类能够建立文件D)File类能够获取文件目录信息
二、判断题(每题1′,共10分)
1. Java的标识符不可以以数字开头()
2. Java中没有do-while循环(F)
3. Java不支持多重继承()
4. Java不支持构造函数的重载(F)
5. Java只能采取ODBC驱动连接数据库(F)
6. Java中进行按钮事件处理的是ActionListener接口()
7. Java中定义接口的关键字是class(F)
8. Java中父类的对象变量可以调用其子类对象的任何方法(F)
9. Java中利用throw关键字指定方法抛出异常(F)
10.Java中抽象类不一定要包含抽象方法()
三、简答题(注意举例说明,每题5′,共20分)
1.为什么在Java程序中要使用类的概念?
2.比较实例变量与类变量有什么不同?
解释变量的含义?
3.请解释构造函数有哪些特点?
4.请解释Java程序中输入与输出的处理过程?
四、 利用for循环编写出一个能产生如下图结果的程序。
请先绘制出流程图后,根据流程图编写程序。
(10’)
1
22
333
4444
55555
五、 请试着逐步完成下列的程序设计:
(10’)
1)编写一个课程类Cource,包含:
3个成员变量:
课程编号(cNumber)、课程名(cName)和学分数(cUnit);
1个方法:
printCourceInfo:
用于输出课程的相关信息;
2) 写Cource类的测试程序,创建课程对象:
编号为112101,课程名为Java程序设计,学分为3。
要求输出课程的相关信息。
六、 利用对象数组补充程序,主类格式如下:
(10’)
classPeople
{
longNum;
StringName;
StringSex;
intAges;
publicPeople(longNum,StringName,StringSex,intAges)
{
this.Num=Num;
this.Name=Name;
this.Sex=Sex;
this.Ages=Ages;
}
publicvoidShowPeople()
{
System.out.print("姓名:
"+Name+"性别:
"+Sex+"年龄:
"+Ages);
}
voidGetnextid(inti)
{}
}
//补充Student类的程序
classTeacherextendsPeople
{
publiclongNum;
staticlongnextNum=0;
StringPrincipaship;
StringDeparment;
publicTeacher(longNum,StringName,StringSex,intAges,StringPrincipaship,StringDeparment)
{
super(Num,Name,Sex,Ages);
this.Num=nextNum++;
this.Principaship=Principaship;
this.Deparment=Deparment;
}
publicvoidShowPeople()
{
System.out.print("编号:
"+super.Num+"0"+this.Num+"");
super.ShowPeople();
System.out.println("职务:
"+Principaship+"部门:
"+Deparment);
if(nextNum-this.Num==1)Getnextid(nextNum);
}
voidGetnextid(longi)
{
System.out.println("下一位信息系教师的有效编号:
"+super.Num+"0"+i);
}
}
publicclassapp3_11_1
{
publicstaticvoidmain(Stringargs[])
{
Peoplep[]=newPeople[6];
p[0]=newStudent(12005,"张三","男",22,"计算002");
p[1]=newStudent(12005,"李四","男",23,"计算002");
p[2]=newStudent(12005,"王五","男",24,"计算002");
p[3]=newTeacher(22002,"李志","男",32,"教师","信息系");
p[4]=newTeacher(22002,"张强","男",33,"教师","信息系");
p[5]=newTeacher(22002,"王锋","男",34,"教师","信息系");
for(inti=0;i
p[i].ShowPeople();
}
}
使其输出结果为:
以下输出学生信息:
编号:
1200520姓名:
张三性别:
男年龄:
22班级:
计算002
编号:
1200521姓名:
李四性别:
男年龄:
23班级:
计算002
编号:
1200522姓名:
王五性别:
男年龄:
24班级:
计算002
下一位计算002班学生有效编号:
1200523
以下输出教师信息:
编号:
2200200姓名:
李志性别:
男年龄:
32职务:
教师部门:
信息系
编号:
2200201姓名:
张强性别:
男年龄:
33职务:
教师部门:
信息系
编号:
2200202姓名:
王锋性别:
男年龄:
34职务:
教师部门:
信息系
下一位信息系教师有效编号:
2200203
七、阅读以下代码,根据注释补充程序(10’)
publicstaticUserEntityqueryUser(StringuserName)throwsSQLException
{
try
{
____________________________________;//加载jdbc-odbc驱动程序
}
catch(java.lang.ClassNotFoundExceptione)
{
System.err.println("UserEntity:
"+e.getMessage());
}
Stringsql="selectid,user_name,user_passwordfromuserwhereuser_name=?
";
ResultSetrs=null;
try
{
_________________________________//连接数据源名称为vote的数据库
_______________________________________//生成SQL语句执行的容器
_________________________________//将参数值(多个)传递给sql语句
___________________________________//执行sql语句得到结果集
}
catch(SQLExceptionex)
{
System.err.println("OrderItemEntityexecuteQuery:
"+ex.getMessage());
}
UserEntityuser=null;
if(rs.next())
user=newUserEntity(rs.getString
(1),rs.getString
(2),rs.getString(3));
returnuser;
}
《Java语言初步》课程(B卷)(闭卷)
一、 单项选择题(从A、B、C、D四个选项中选择最恰当的一个,每题2′,共30分)
1.下列选项不属于结构化程序设计方法的是(D)
A)自顶向下B)逐步求精C)模块化D)可复用
2.++运算符的操作数个数是(A)
A)1个B)2个C)3个D)4个
3.下列属于合法的Java标志符是(D)
A)“Abc”B)&5678C)+mitoD)saler
4.假设特快订单是一种订单,那么特快订单和订单之间的关系是(B)
A)使用关系B)包含关系C)继承关系D)无关系
5.假设数组a定义为int[][]a=newint[3][4],则a是(B)
A)一维数组B)二维数组C)三维数组D)四维数组
6.Java语言中,负责并发管理的机制是(D)
A)垃圾回收B)虚拟机C)代码安全D)多线程
7.Java为移动设备提供的平台是(A)
A)J2MEB)J2SEC)J2EED)JDK5.0
8.JDK提供的文档生成器是(C)
A)Java.exeB)Javap.exeC)Javadoc.exeD)Javaprof.exe
9.阅读下列代码
PublicclassTest
{
Publicstaticvoidmain(Stringargs[])
{
Strings=“Test”;
Switch(s)
{
Case“java”:
System.out.println(“java”);
break;
Case“Language”:
System.out.println(“Language”);
break;
Case“Test”:
System.out.println(“Test”);
break;
}
}
}
其运行结果是(C)
A)JavaB)LanguageC)TestD)编译出错
10.阅读下列代码
PublicclassTest
{
Publicstaticvoidmain(Stringargs[])
{
System.out.println(89>>1);
}
}
其运行结果是(A)
A)44B)45C)88D)90
11.在Applet中,显示文字、图形等信息时,应使用方法是(A)
A)paintB)initC)startD)destory
12.Thread类中能运行线程体的方法是(A)
A)startB)initC)resumeD)run
13.下列关于Applet的说法中,错误的是(C)
A)Applet程序自身不能运行,必须其它应用程序中运行
B)可以在安全策略的控制下访问本地文件
C)Java中不支持向Applet传递参数
D)Applet的主类要定义为Java.applet.Applet类的子类
14.在Java语言中,与数据库连接的技术是(B)
A)ODBCB)JDBCC)数据库厂家驱动程序D)数据库厂家的连接协议
15.Java.io包的File类是(B)
A)字符流类B)字节流类C)对象流类D)非流类
二、判断题(每题1′,共10分)
1. Java的标识符可以以字母开头()
2. Java中有do-while,for循环()
3. Java支持多重继承(F)
4. Java支持构造函数的重载()
5. Java只能采取ODBC驱动连接数据库(F)
6. Java中进行按钮事件处理的是ItemListener接口(F)
7. Java中定义接口的关键字是class(F)
8. Java中父类的对象变量可以调用其子类对象的任何方法(F)
9. Java中利用throw关键字指定方法抛出异常(F)
10.Java中抽象类一定要包含抽象方法(F)
三、简答题(注意举例说明,每题5′,共20分)
1.为什么在Java程序中要使用对象的概念?
2.请解释super关键字的使用过程?
3.请解释构造函数的重载和继承有哪些特点?
4.请解释Java程序中异常处理的过程?
四、利用for循环编写出一个能产生如下图结果的程序。
请先绘制出流程图后,根据流程图编写程序。
(10’)
1
22
333
4444
55555
五、请试着逐步完成下列的程序设计:
(10’)
1)编写一个课程类Cource,包含3个私有成员变量:
课程编号(cNumber)、课程名(cName)和学分数(cUnit);,并为其添加相应的set和get方法。
2)写Cource类的测试程序,创建课程对象:
编号为112101,课程名为Java程序设计,学分为3。
要求输出课程的相关信息。
六、对象数组补充程序,主类格式如下:
(10’)
classPeople
{
longNum;
StringName;
StringSex;
intAges;
publicPeople(longNum,StringName,StringSex,intAges)
{
this.Num=Num;
this.Name=Name;
this.Sex=Sex;
this.Ages=Ages;
}
publicvoidShowPeople()
{
System.out.print("姓名:
"+Name+"性别:
"+Sex+"年龄:
"+Ages);
}
voidGetnextid(inti)
{}
}
//补充Teacher类的程序
classStudentextendsPeople
{
publiclongNum;
staticlongnextNum=20;
StringClassNo;
publicStudent(longNum,StringName,StringSex,intAges,StringClassNo)
{
super(Num,Name,Sex,Ages);
this.Num=nextNum++;
this.ClassNo=ClassNo;
}
publicvoidShowPeople()
{
System.out.print("编号:
"+super.Num+this.Num+"");
super.ShowPeople();
System.out.println("班号:
"+ClassNo);
if(nextNum-Num==1)Getnextid(nextNum);
}
voidGetnextid(longi)
{
System.out.println("下一位计算002班的有效编号:
"+super.Num+i);
System.out.println("\n\n");
}
}
publicclassapp3_11_1
{
publicstaticvoidmain(Stringargs[])
{
Peoplep[]=newPeople[6];
p[0]=newStudent(12005,"张三","男",22,"计算002");
p[1]=newStudent(12005,"李四","男",23,"计算002");
p[2]=newStudent(12005,"王五","男",24,"计算002");
p[3]=newTeacher(22002,"李志","男",32,"教师","信息系");
p[4]=newTeacher(22002,"张强","男",33,"教师","信息系");
p[5]=newTeacher(22002,"王锋","男",34,"教师","信息系");
for(inti=0;i
p[i].ShowPeople();
}
}
使其输出结果为:
以下输出学生信息:
编号:
1200520姓名:
张三性别:
男年龄:
22班级:
计算002
编号:
1200521姓名:
李四性别:
男年龄:
23班级:
计算002
编号:
1200522姓名:
王五性别:
男年龄:
24班级:
计算002
下一位计算002班学生有效编号:
1200523
以下输出教师信息:
编号:
2200200姓名:
李志性别:
男年龄:
32职务:
教师部门:
信息系
编号:
2200201姓名:
张强性别:
男年龄:
33职务:
教师部门:
信息系
编号:
2200202姓名:
王锋性别:
男年龄:
34职务:
教师部门:
信息系
下一位信息系教师有效编号:
2200203
七、阅读以下代码,根据注释补充程序(10’)
publicstaticUserEntityqueryUser(StringuserName)throwsSQLException
{
try
{
____________________________________;//加载jdbc-odbc驱动程序
}
catch(java.lang.ClassNotFoundExceptione)
{
System.err.println("UserEntity:
"+e.getMessage());
}
Stringsql="selectid,user_name,user_passwordfromuserwhereuser_name=?
";
ResultSetrs=null;
try
{
_________________________________//连接数据源名称为vote的数据库
_______________________________________//生成SQL语句执行的容器
_________________________________//将参数值(多个)传递给sql语句
___________________________________//执行sql语句得到结果集
}
catch(SQLExceptionex)
{
System.err.println("OrderItemEntityexecuteQuery:
"+ex.getMessage());
}
UserEntityuser=null;
if(rs.next())
user=newUserEntity(rs.getString
(1),rs.getString
(2),rs.getString(3));
returnuser;
}
《Java语言初步》课程(C卷)(闭卷)
一、 单项选择题(从A、B、C、D四个选项中选择最恰当的一个,每题2′,共30分)
1.++运算符的操作数个数是(A)
A)1个B)2个C)3个D)4个
2.在Switch(expression)中,expression的数据类型不可以是(A)
A)doubleB)charC)shortD)byte
3.用来导入已经定义好的包或者类的语句是(B)
A)mainB)importC)publicclassD)Class
4.下列命题中,错误的是(A)
A)java编程时,要尽量多用公共变量B)java编程时,要尽量少用公共变量
C)