2023年6月20日发(作者:)
期终考试试卷(A)
考试课程:java语言程序设计 考试时间:120分钟
题号 一 二 三 四 五 总分
得分
得分 评卷人
一、单项选择题(每题3分,共30分)
1、下述字符组合不能..作为Java程序标识符的是( D )
A、Aa12 B、$x C、y2z D、5x
、以下程序代码的输出的结果是( A )
int x=53;
n(1.0+x/2);
A、27.0 B、27.5 C、1.026 D、1.026.5
3、下列特点不属于java的是( B )
A、多线程 B、多继承 C、跨平台 D、动态
4、下列说法正确的是( D )
A、Set 集合中的元素可以重复 B、Map集合中的元素不能重复
C、List集合中的元素不允许重复 D、Map集合中的元素可以重复,但key不能重复5、用Thread子类实现多线程的步骤顺序是( D)
A、声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法
B、声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例
C、创建Thread子类的实例,让线程调用start()方法
D、声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法
6、可以为16位字符流提供读和写操作支持的类分别是( C )
A.FileInputStream类和FileOutputStream类
B.InputStream类和OutputStream类
C.FileReader类和FileWriter类
D.File_Reader类和File_Writer类
7、要实现序列化,序列化类必须实现的接口是( A )
A、Serializable B、Runnable C、Thread D、Extenalizable
8、下列输出的结果是( A )。
第1页
class AA {
public void show( ) {
n(“类AA”);
}
}
class BB extends AA {
public void show( ){
n(“类BB”);
}
}
public class Test{
public static void main(String args[ ]) {
AA a=new AA( );
( );
a=new BB( );
( );
}
}
A、类AA B、类BB C、类BB D 类BB 类AA 类BB
、关于抽象类和接口,下列说法正确的是( D
、抽象类不能有非抽象方法
、接口可以有构造方法
、可以用new方法实例化接口和抽象类
、抽象类和接口不能实例化对象
、下列代码块执行完后,x的值是( D )
}catch(Exception e){
n(sage());
}finally{
、类AA
类AA
9) A B C D 10 int x=2;
int a=2,b=0;
try{
x++; 3
x=a/b; 0
x+=a; 2
2
x *= a;
}
A、0 B、2 C、4 D、6
得分 评卷人
二、填空题(每空2 分。共30分)
11、Java源程序文件和字节码文件的扩展名分别为__ JAVA java__ __和___CLASS_______class___。
12、在比较两个对象的值是否相同时,可以调用___ equals() ____方法。
13、用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是String ss=_goal==10__? “对了!” : 错了!
__ 。
14、程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_____run()____方法;二是建立线程实例。
15、jdbc编程时,应导入的包是 。
16、class AA implements BB{ „„„} 则AA 和BB 的关系是 BB是父类 AA是子类
AA类实现BB接口 。
17、设有数组定义:int[ ] MyIntArray={10,20,30,40,50,60,70};
则执行下面几个语句后的输出结果是___ 280 ____。
int s=0;
for(int i=0;i s+=MyIntArray[i]; n(S); 18、在java I/O 编程时,要使用带缓冲的字节流输入,应使用 BufferedInputStream 类。 19、被调方法中产生异常后,要让异常由调用方法处理,在被调方法定义中使用 Throws 关键字。 20、User 为一个类,user1 和user2 是User类的两个引用,if(user1==user2){„„}语句中,“==”运算符比较的是user1和user2 对象引用是否相等 。是否指向同一个Uesr对象 21、为了让一个类不能被派生子类,在定义这个类时要用 final 关键字。 22、一个源文件中只能有一个和文件名相同名称的类,这个类要用 public 关键字修饰。 23、class B{ 第2页 private int b; public int getB(){ return b;} B(int x){ b=x;(“b=”+b); } } class A extends B{ private int a; A(int x,int y){ super(x); a=y; n(",a="+a); } } public class Test{ public static void main(String[]args){ A obj=new A(1,2); } } 得分 评卷人 上述程序的输出结果是 b=1 , a=2 。 24、设有数组定义int[][] x={{1,2},{3,4,5},{6},{7}};,则的值为 4 。 三、程序填空题(每空2分,共20分) 25、以下定义的类ShareData用于管理多个线程共享数据data。一个线程生成data,另一个线程使用data。约定,新生成的data只有被另一个线程使用后,才能生成下一个data。反之,一个data被使用后,也不能再继续使用。所以,生成和使用data的线程之间需要互斥和同步。以下是管理上述使用方式的类,类内有要管理的共享数据,以及对共享数据的存操作putData()和取操作getData()。 class ShareData{ int data;∥共享数据 boolean newData=false;∥有最近新生成data的标志,有date为true public synchronized int getData(){ if(!newData){ try{ wait(); ; }catch(InterruptedException e){ n(″因错误,而中断! ″); } } newData= false ; notify( ); return data; } public synchronized void putData(int n){ if(!newData){ data=n; newData=__true________; notify() ; } try{ wait(); }catch(InterruptedException e){ n(″因错误,而中断! ″); } } 26、下面方法实现了文件复制,src是源文件路径名字符串,dest是目标文件路径名字符串。 public static void copy(String src, String dest) { File from = new File(src); File to = new File(dest); if ( !() ) { n("源文件不存在!"); return; } File parent = entFile(); boolean f = true; if (!()) { //如果目标文件所在的文件夹不存在,建立文件夹 f = () ; } if (f) { BufferedInputStream in = null; BufferedOutputStream out = null; try { NewFile(); in =new BufferedInputStream(new FileInputStream (from)); out = new BufferedOutputStream(new FileOutputStream(to)); n("正在复制中!"); int i; while ((i = ()) != -1 ) { (i) ; 第3页 } n("文件复制成功!"); } catch (IOException ex) { tackTrace(); } finally { if (in != null) { try { (); } catch (IOException ex) { tackTrace(); } } if (out != null) { try { (); } catch (IOException ex) { tackTrace(); } } } } } 得分 评卷人 四、程序分析题(每题4分,共8分)27、阅读下列程序,请写出该程序的输出结果。 public class A { int m = 5; static int n = 3; public static void main(String[] args) { A obj1 = new A(); A obj2 = new A(); objl.m *= 2; 10 objl.n *= 4; 18 obj2.m += 1; 6 obj2.n += 6; 18 n("obj1.m=”+ obj1.m); n("obj1.n=" + obj1.n); n("obj2.m=" + obj2.m); n("obj2.n=" + obj2.n); } } } 28、写出下列程序运行的输出结果 class Parent{ private void method 1(){ n(″Parent′s method 1()″);} public void method 2(){ n(″Parent′s method 2()″); method 1(); } (){ n(″Child′s method 1 ()″);} (String args[]){ (); (); Parent′s method 2() Parent′s method 1 () 得分 评卷人 五、程序设计题(每题6分。共12分) 29、请编写方法double averageOfArray(double[] a),返回非空数组中正数的平均值(数组中可能有非正数元素)。 Public double averageOfArray(double[] a){ double sum=0; int j=0; for(int i=0;i<;i++){ if(a[i]>0){ sum+=a[i]; j++ } return Sum=sum/j; } 第4页 } 30、Dbutil类中已实现 public static Connection getConnection()方法和public static void close(ResultSet rs,PreparedStatement ps,Connection conn)方法。getConnection方法取得数据库连接,close方法关闭连接及相关数据库操作对象。 利用Dbutil类,编写方法public boolean insertUser(String name,String password)方法,采用预编译SQL语句向数据库表user 中插入新用户,插入成功返回true,失败返回false。user表中字段为 name vachar(40),password Varchar(40)。 public boolean insertUser(String name,String password) { Connection con=null; PreparedStatement st=null; Boolean bol=false; Try{ Con=Dbutil. getConnection(); String sql=”insert into user values(?,?)”; } class Child extends Parent { public void method l public static void main Parent p = new Child 2 } } St=eStatement(); ing(1,name); ing(2, password); Int i=executeUpdate(); If(i>0){ bol=true; } }catch(SQlException e){ tackTrace(); }finally{ close(null,st ps, con); return bol ; } } 第5页
2023年6月20日发(作者:)
期终考试试卷(A)
考试课程:java语言程序设计 考试时间:120分钟
题号 一 二 三 四 五 总分
得分
得分 评卷人
一、单项选择题(每题3分,共30分)
1、下述字符组合不能..作为Java程序标识符的是( D )
A、Aa12 B、$x C、y2z D、5x
、以下程序代码的输出的结果是( A )
int x=53;
n(1.0+x/2);
A、27.0 B、27.5 C、1.026 D、1.026.5
3、下列特点不属于java的是( B )
A、多线程 B、多继承 C、跨平台 D、动态
4、下列说法正确的是( D )
A、Set 集合中的元素可以重复 B、Map集合中的元素不能重复
C、List集合中的元素不允许重复 D、Map集合中的元素可以重复,但key不能重复5、用Thread子类实现多线程的步骤顺序是( D)
A、声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法
B、声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例
C、创建Thread子类的实例,让线程调用start()方法
D、声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法
6、可以为16位字符流提供读和写操作支持的类分别是( C )
A.FileInputStream类和FileOutputStream类
B.InputStream类和OutputStream类
C.FileReader类和FileWriter类
D.File_Reader类和File_Writer类
7、要实现序列化,序列化类必须实现的接口是( A )
A、Serializable B、Runnable C、Thread D、Extenalizable
8、下列输出的结果是( A )。
第1页
class AA {
public void show( ) {
n(“类AA”);
}
}
class BB extends AA {
public void show( ){
n(“类BB”);
}
}
public class Test{
public static void main(String args[ ]) {
AA a=new AA( );
( );
a=new BB( );
( );
}
}
A、类AA B、类BB C、类BB D 类BB 类AA 类BB
、关于抽象类和接口,下列说法正确的是( D
、抽象类不能有非抽象方法
、接口可以有构造方法
、可以用new方法实例化接口和抽象类
、抽象类和接口不能实例化对象
、下列代码块执行完后,x的值是( D )
}catch(Exception e){
n(sage());
}finally{
、类AA
类AA
9) A B C D 10 int x=2;
int a=2,b=0;
try{
x++; 3
x=a/b; 0
x+=a; 2
2
x *= a;
}
A、0 B、2 C、4 D、6
得分 评卷人
二、填空题(每空2 分。共30分)
11、Java源程序文件和字节码文件的扩展名分别为__ JAVA java__ __和___CLASS_______class___。
12、在比较两个对象的值是否相同时,可以调用___ equals() ____方法。
13、用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是String ss=_goal==10__? “对了!” : 错了!
__ 。
14、程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_____run()____方法;二是建立线程实例。
15、jdbc编程时,应导入的包是 。
16、class AA implements BB{ „„„} 则AA 和BB 的关系是 BB是父类 AA是子类
AA类实现BB接口 。
17、设有数组定义:int[ ] MyIntArray={10,20,30,40,50,60,70};
则执行下面几个语句后的输出结果是___ 280 ____。
int s=0;
for(int i=0;i s+=MyIntArray[i]; n(S); 18、在java I/O 编程时,要使用带缓冲的字节流输入,应使用 BufferedInputStream 类。 19、被调方法中产生异常后,要让异常由调用方法处理,在被调方法定义中使用 Throws 关键字。 20、User 为一个类,user1 和user2 是User类的两个引用,if(user1==user2){„„}语句中,“==”运算符比较的是user1和user2 对象引用是否相等 。是否指向同一个Uesr对象 21、为了让一个类不能被派生子类,在定义这个类时要用 final 关键字。 22、一个源文件中只能有一个和文件名相同名称的类,这个类要用 public 关键字修饰。 23、class B{ 第2页 private int b; public int getB(){ return b;} B(int x){ b=x;(“b=”+b); } } class A extends B{ private int a; A(int x,int y){ super(x); a=y; n(",a="+a); } } public class Test{ public static void main(String[]args){ A obj=new A(1,2); } } 得分 评卷人 上述程序的输出结果是 b=1 , a=2 。 24、设有数组定义int[][] x={{1,2},{3,4,5},{6},{7}};,则的值为 4 。 三、程序填空题(每空2分,共20分) 25、以下定义的类ShareData用于管理多个线程共享数据data。一个线程生成data,另一个线程使用data。约定,新生成的data只有被另一个线程使用后,才能生成下一个data。反之,一个data被使用后,也不能再继续使用。所以,生成和使用data的线程之间需要互斥和同步。以下是管理上述使用方式的类,类内有要管理的共享数据,以及对共享数据的存操作putData()和取操作getData()。 class ShareData{ int data;∥共享数据 boolean newData=false;∥有最近新生成data的标志,有date为true public synchronized int getData(){ if(!newData){ try{ wait(); ; }catch(InterruptedException e){ n(″因错误,而中断! ″); } } newData= false ; notify( ); return data; } public synchronized void putData(int n){ if(!newData){ data=n; newData=__true________; notify() ; } try{ wait(); }catch(InterruptedException e){ n(″因错误,而中断! ″); } } 26、下面方法实现了文件复制,src是源文件路径名字符串,dest是目标文件路径名字符串。 public static void copy(String src, String dest) { File from = new File(src); File to = new File(dest); if ( !() ) { n("源文件不存在!"); return; } File parent = entFile(); boolean f = true; if (!()) { //如果目标文件所在的文件夹不存在,建立文件夹 f = () ; } if (f) { BufferedInputStream in = null; BufferedOutputStream out = null; try { NewFile(); in =new BufferedInputStream(new FileInputStream (from)); out = new BufferedOutputStream(new FileOutputStream(to)); n("正在复制中!"); int i; while ((i = ()) != -1 ) { (i) ; 第3页 } n("文件复制成功!"); } catch (IOException ex) { tackTrace(); } finally { if (in != null) { try { (); } catch (IOException ex) { tackTrace(); } } if (out != null) { try { (); } catch (IOException ex) { tackTrace(); } } } } } 得分 评卷人 四、程序分析题(每题4分,共8分)27、阅读下列程序,请写出该程序的输出结果。 public class A { int m = 5; static int n = 3; public static void main(String[] args) { A obj1 = new A(); A obj2 = new A(); objl.m *= 2; 10 objl.n *= 4; 18 obj2.m += 1; 6 obj2.n += 6; 18 n("obj1.m=”+ obj1.m); n("obj1.n=" + obj1.n); n("obj2.m=" + obj2.m); n("obj2.n=" + obj2.n); } } } 28、写出下列程序运行的输出结果 class Parent{ private void method 1(){ n(″Parent′s method 1()″);} public void method 2(){ n(″Parent′s method 2()″); method 1(); } (){ n(″Child′s method 1 ()″);} (String args[]){ (); (); Parent′s method 2() Parent′s method 1 () 得分 评卷人 五、程序设计题(每题6分。共12分) 29、请编写方法double averageOfArray(double[] a),返回非空数组中正数的平均值(数组中可能有非正数元素)。 Public double averageOfArray(double[] a){ double sum=0; int j=0; for(int i=0;i<;i++){ if(a[i]>0){ sum+=a[i]; j++ } return Sum=sum/j; } 第4页 } 30、Dbutil类中已实现 public static Connection getConnection()方法和public static void close(ResultSet rs,PreparedStatement ps,Connection conn)方法。getConnection方法取得数据库连接,close方法关闭连接及相关数据库操作对象。 利用Dbutil类,编写方法public boolean insertUser(String name,String password)方法,采用预编译SQL语句向数据库表user 中插入新用户,插入成功返回true,失败返回false。user表中字段为 name vachar(40),password Varchar(40)。 public boolean insertUser(String name,String password) { Connection con=null; PreparedStatement st=null; Boolean bol=false; Try{ Con=Dbutil. getConnection(); String sql=”insert into user values(?,?)”; } class Child extends Parent { public void method l public static void main Parent p = new Child 2 } } St=eStatement(); ing(1,name); ing(2, password); Int i=executeUpdate(); If(i>0){ bol=true; } }catch(SQlException e){ tackTrace(); }finally{ close(null,st ps, con); return bol ; } } 第5页
发布评论