西北农林科技大学本科课程考试试题(卷)
2012—2013学年第1学期《Java语言程序设计》课程A卷
专业班级: 命题教师: 审题教师: 学生姓名: 学号: 考试成绩:
本试卷由笔试和机试两部分组成,一到三题为笔试部分,第四题为机试部分;笔试答案写在答题纸上;笔试时间为60分钟,机试为120分钟。
一、选择题(每小题2分,共10分) 得分: 分 1、下列关于 Java语言和C++语言之间差别的描述中,不正确的一项是 :( )
A、Java编译过程与C++编译过程相同
B、Java不支持操作符重载,操作符重载被认为是C++的突出特征 C、Java没有全局变量,C++有全局变量 D、Java没有指针,C++有指针
2、下列关于double类型的说法中,正确的一项是:( )
A、double类型精度比float类型精度低 B、double可以自动转换为float类型 C、double类型存储空间和float类型的一样 D、3.2214e12f是合法的double类型数值 3、下列语句序列执行后的结果为:( )
class BB{
BB(){ System.out.print(\}
class CC{
CC(){System.out.print(\}
public class AA extends BB{
public AA(){System.out.print(\CC cc= new CC();
public static void main(String[] args){
第 1 页 共 7 页
new AA(); } }
A、AACCBB B、AABBCC C、BBCCAA D、BBAACC 4、下面程序段的输出结果是:( ) public class TestCount{ static int count=10; int selfcount=10; public TestCount(){
count++; selfcount++; }
public static void main(String[] args){
TestCount t1=new TestCount(); TestCount t2=new TestCount(); TestCount t3=new TestCount();
System.out.println(t1.count+t2.count+t3.count);
System.out.println(t1.selfcount+t2. selfcount+t3.selfcount); } }
A、39 33 B、36 33 C、36 30 D、30 33 5、欲构造ArrayList类的一个实例,此类实现了List接口,下列哪个语句是正确的?( )
A、ArrayList myList =new Object(); B、List myList=new Arraylist();
C、ArrayList myList =new List(); D、List myList =new List();
二、简答题(每小题4分,共20分) 得分: 分 1、简述接口和抽象类的区别?
2、简述多线程中为什么要使用同步机制?
3、Java为什么要采用异常处理机制? Java的异常处理是怎么实现的? 4、什么是泛型?泛型的优点? 5、简述socket编程的一般步骤。
第 2 页 共 7 页
三、程序填空题(每空2分,共10分) 得分: 分
1、public class ServerTimedOutException extends Exception{
private int port;
public ServerTimedOutException(String message,int port){
super(message); this.port=port; }
public int getPort(){
return port; } }
class Client{
//在以下空白处填上声明抛出ServerTimedOutException异常的语句
public void connectMe(String serverName) (1) {
int success;
int portToConnect=80;
success=open(servername,portToConnect); if(success==-1){
//在以下空白处填上抛出ServerTimedOutException异常的语句 (2) }
}
2、 ArrayList list = new ArrayList();
list.add(\ list.add(\list.add(\list.add(\list.add(\
//在以下空白处填上删除list中所有的“java”的语句(使用循环) (3)___________________________________ (4)___________________________________ (5)___________________________________第 3 页 共 7 页
四、编程题(每题20分,共60分) 得分: 分
说明:
? 本题属于开卷上机考试,可以参考教材和Java联机帮助。
? 答题结束后,导出工程,并将工程文件打包,压缩包名为:“学号+姓名.rar”或者“学
号+姓名.zip”。例如:学生张三的学号是09101234,那命名为:“09101234张三.rar”。
1、多线程。编写程序模拟银行接受顾客的汇款过程。顾客每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱汇入银行。程序运行结果如右图所示。
2、界面设计。设计并实现如下界面:
① 程序实现:
? 已知一个Person类(程序已给,Person.java),包含Person的姓名(name)和身份证号码(id),将Person类的对象放在一个HashSet中。
? 当点击“添加”按钮,添加一个Person类的对象到HashSet中;当点击“显示”按钮,在文本区中显示HashSet中所有Person类对象的姓名和身份证号码。 ? 程序运行结果如图上图所示(图中分别添加了两个Person对象)。
第 4 页 共 7 页
3、网络编程。设计一个Mobile类(Mobile.java),该类包括2个成员变量,名称(name,String
类型)和价格(price,float类型)。 ① 程序实现:
? 服务器端建立并发送一个Mobile对象到客户端。该对象的name为:“ iPhone5”, price
为:4650。
? 客户端接收到该对象后,保存该对象到当前工程目录下的 “mobile.txt”。 ? 客户端程序运行结果如下:
② 基本要求:使用Socket类和ServerSocket类实现。服务器端程序保存为:ObjectServer.java,客户端程序保存为:ObjectClient.java。
第 5 页 共 7 页