第 1 页 共 8 页
湖南人文科技学院 2007年上学期期终考试
《Java程序设计与技术》
试题
中考模拟试题doc幼小衔接 数学试题 下载云南高中历年会考数学试题下载N4真题下载党史题库下载
A卷
(时量:120分钟,适用于 06级网络
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
本科专业 1 ~2班)
一、判断题,正确的记√,错误的记×(共 4题,每题 1分,共计 7分)
1.组成 Java Application程序的若干个类中,有且仅有一个主类,只有主类中含有主方法 main
()。 (√)
2.Java语言使用的是 Unicode字符集,每个字符在内存中占 8位。 (×)
3.静态方法只能处理静态变量。( √ )
4.捕获异常 try语句后面通常跟有一个或多个 catch()方法用来处理 try块内生成的异常事件。
( √ )
5.当线程类所定义的 run()方法执行完毕,线程的运行就会终止。 (√)
6.Map接口是自 Collection接口的继承而来。(×)
7.文件缓冲流的作用是提高文件的读/写效率。(√)
二、填空题(共 4题,每题 2分,共计 8分)
1.已知:int a =8,b=6; 则:表达式++a-b++的值为(3)
2.已知:boolean b1=true,b2; 则:表达式! b1 && b2 ||b2的值为(false)
3.Java语言中,重载方法的选择是在编译时进行的,系统根据(参数个数)、(参数类型)和参
数顺序寻找匹配方法。
4.实现接口中的抽象方法时,必须使用(完全相同)的方法头,并且还要用(public)修饰符。
二、单选择题(共 8题,每题 2分,共计 16分)
1.下列关于运行字节码文件的命令行参的描述中,正确的是( A )
A.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中
B.第一个命令行参数被存放在args[1]中
C.命令行的命令字被存放在args[0]中
D.数组 args[]的大小与命令行的参数的个数无关
2.下列循环语句的循环次数是( D )
int i=5;
do {
System.out.println(i--);
i--;
}while(i!=0);
A.0 B.1 C.5 D.无限
3.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类
子类的修饰符是( D )
A.private B.public C.默认 D.protected
4.下列关于子类继承父类的成员的描述中,错误的是( A )
A.子类中继承父类中的所有成员都可以访问
B.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行
自己的操作中,使用自己定义的变量
C.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法.
D.方法重载是编译时处理的,而方法覆盖是在运行时处理的
5.实现字符流的写操作类是( D )
A.FileInputStream B.FileOutputStream
第 2 页 共 8 页
C.FileReader D.Writer
6.在套接字编程中,客户方需用到Java类( A )来创建TCP连接
A. Socket B.URL
C.ServerSocket D.DatagramSocket
7.下列代码哪几行会出错: ( C )
1)public void modify() {
2) int I, j, k;
3) I = 100;
4) while (I > 0) {
5) j = I * 2;
6) System.out.println(" The value of j is " + j);
7) k = k + 1;
8) I--;
9) }
10}
A.line 4
B.line 6
C.line 7
D.line 8
8.要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? ( A )
A. FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int
c=in.read();
B.FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int
c=in.read();
C.FileInputStream in=new FileInputStream("file.dat"); int c=in.read();
D.RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9); int
c=in.readByte();
三、多选择题(共 5题,每题 3分,共计 15分)
1.下列关于数组的定义形式,错误的是( ACD )
A.int[ ]a; a=new int; B.char b[ ]; b=new char[80];
C.int[ ]c=new char[10]; D.int[ ][3]=new int[2][ ];
2.( CD )可实现有序的对象的操作
A.HashMap B.HashSet C.TreeMap D.LinkedList
3.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; ( BD )
A.s[10] 为 "";
B.s[9] 为 null;
C.s[0] 为 未定义
D.s.length 为10
4.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的
正确声明应为:( CD )
A.private class MyClass extends Object 5
B.class MyClass extends Object
C.public class MyClass
D.public class MyClass extends Object
5.下面哪些代码段是正确的Java源程序?( ACD )
第 3 页 共
public void run(Dog fast) {
8 页
A. package testpackage;
public class Test{//do something...} 4
B. import java.io.*;
package testpackage;
public class Test{// do something...}
C. import java.io.*;
class Person{// do something...}
public class Test{// do something...}
D. import java.io.*;
import java.awt.*;
public class Test{// do something...}
四、简答题(共 3小题,每小题 4分,共计 12分)
1.什么是重载方法?什么是覆盖方法?它们的主要区别是什么?(3分)
答:重载方法是指在一个类中具有相同的方法名称但有不同的签名(方法的参数个数不同或参数的
类型不同)的方法。重载方法是可能有多个版本的方法(包括构造方法),只要他们的签名不相同。
覆盖方法是指在一个类层次中,当一个子类中的方法与它的超类中的方法具有同样的名称和类型签
名时,在子类中方法被说成是覆盖了超类中的方法。当从一个了类中调用被覆盖的方法时,它将总是引
用由那个子类定义的方法版本。由超类定义的方法版本将被隐藏。
2.什么是类 ( 或静态,Static) 变量? 什么是实例变量?它们的主要区别是什么?
A1:如果一个类中的变量被声明为静态的, 无论多少个该类的实例( 可能为零)被产生,则在内存
中只存在该静态变量的一个副本。该类的所有实例共享同一个 Static变量。Static变量本质上是全
局变量。Static变量有时又叫一个类变量(class variable), 当类被实例化时 Static变量也被
初始化。
没有被声明为静态的变量则叫做一个实例变量(instance variable), 有时叫做一个非静态的
变量。每当类的一个新的实例被产生,与那个实例有关的一个新的变量被该类或它的父类中被声明的每
个实例产生。
3.举例说明什么是上转型对象,上转型对象的操作原则是什么?(3分)
答:上转型对象,如,若 Mammal类是 Monkey的父类,Mammal mammal = new Monkey();
则 mammal是 Monkey类对象的上转型对象;上转型对象可强制转化为子类的对象,如,Monkey monkey
= (Monkey)mammal;
上转型对象不能操作子类新增的成员变量和方法;上转型对象可以操作子类继承或重写的成员变量
和方法;如果子类重写了父类方法,则上转型对象调用的是子类重写的方法。上转型对象可再强制转换
到一个子类对象,该子类对象又具备了子类所有的属性和方法。
五、阅读程序(共 2小题,每题 4分,共计 8分)
1.
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
下面的程序,写运行结果:
class T5_2 {
class Dog {
private String name;
private int age;
public int step;
Dog(String s, int a) {
name = s;
age = a;
step = 0;
}
第 4 页 共 8 页
fast.step++;
}
}
public static void main(String args[]) {
T5_2 a = new T5_2();
Dog d = a.new Dog("Tom", 3);
d.step = 27;
d.run(d);
System.out.println(" " + d.step);
}
}
运行结果是:
( 28 )
2.分析下面的程序,写运行结果:
public class T5_2 {
private static int count;
private String name;
public class Student {
private int count;
private String name;
public void Output(int count) {
count++;
this.count++;
T5_2.count++;
T5_2.this.count++;
System.out.println(count + " " + this.count + " "
+ T5_2.count + " " + T5_2.this.count++);
}
}
public Student aStu() {
return new Student();
}
public static void main(String args[]) {
T5_2 g3 = new T5_2();
g3.count = 10;
T5_2.Student s1 = g3.aStu();
s1.Output(5);
}
}
运行结果是:
( 6 1 12 12 )
六、填充程序(共 2题,每小题 8分,共计 16分)
1.下面是基于套接字的客户端程序,客户程序向服务程序发出连接请求,在连接创建后向服务程
序发送信息并接收服务程序的回声在屏幕上打印出来,请在标号处完成程序编写。
import java.io.*;
import java.net.*;
第 5 页 共 8 页
public class ClientSocketDemo {
public static void main(String[] args) throws IOException {
InetAddress ipaddress = InetAddress.getByName(null);
System.out.println("ipaddress = " + ipaddress);
(1)new Socket
Socket socket = (1) (ipaddress, ServerSocketDemo.PORT);
try {
System.out.println("socket : " + socket);
(2)socket.getInputStream()
BufferedReader in = new BufferedReader(new InputStreamReader( (2)
));
PrintWriter out = new PrintWriter(new BufferedWriter(new
OutputStreamWriter(socket.getOutputStream())), true);
for (int i = 0; i < 10; i++) {
(3)out.println
(3) ("Message " + i);
(4)in.readLine()
String str = (4) ();
System.out.println(str);
}
out.println("End Communications");
}
finally {
System.out.println("Communications closing...");
socket.close();
}
}
}
2.下面的程序采用 JDBC方式,在 Ms SQL Server数据库管理系统的 DBStudent数据库中,对
学生表 tblstudent的学号为"20063561001"和 "20063561003"的学生的成绩进行修改,并将修
改后的结果在屏幕输出,请完成程序编写。
package comsoft.db.jdbc.mssqlserver;
import java.sql.*;
public class UpdateRecord {
public static void main(String[] args) {
String JDBCDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
// 声明JDBC驱动程序类型
String conURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433;" +
"DatabaseName=DBStudent;User=sa;Password=ok"; // 定义JDBC的URL对象
String[] sno = { "20063561001", "20063561003"};
int[] score = { 100, 99};
try {
(1)Class.forName(JDBCDriver)
(1) ;
}
catch (ClassNotFoundException e) {
第 6 页 共 8 页
System.out.println("Class.forname:" + e.getMessage());
}
try {
(2)DriverManager.getConnection
Connection con = (2) (conURL);
// 修改数据库中数据表的内容
(3)con.prepareStatement
PreparedStatement psmt = (3) (
"UPDATE tblstudent set score=? where sno=?");
int i = 0, idlen = sno.length;
do {
psmt.setInt(1, score[i]);
psmt.setString(2, sno[i]);
(4)psmt.executeUpdate()
if ( (4) == 1) {
System.out.println("修改数据表:tblstudent中学号为 " + sno[i] + " 的
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
成功!");
}
else {
System.out.println("错误=数据表:tblstudent中没有学号为 " + sno[i] + " 的记录!");
}
++i;
}
while (i < sno.length);
psmt.close();
// 查询数据库并把数据表的内容输出到屏幕上
Statement smt = con.createStatement();
ResultSet rset = smt.executeQuery("select * from tblstudent");
while (rset.next()) {
System.out.println(rset.getString("sno") + "\t" +
rset.getString("sname") +
"\t" + rset.getString("sex") + "\t" +
rset.getInt("score"));
}
smt.close();
con.close();
}
catch (SQLException e) {
System.out.println("SQLException:" + e.getMessage());
}
}
}
七、编写程序(共 2题,第 1小题 8分,第 2小题 10分,共计 18分)
1.编写一个程序用选择法对数组a[]={9, 5, 3, 12, 22, 35, 88, 11, 90, 1}进行由小
到大的排序。
参考
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
:
import java.io.*;
第 7 页 共 8 页
public class SelectSort2 {
public static void main(String args[]) {
int a[] = { 9, 5, 3, 12, 22, 35, 88, 11, 90, 1 };
int temp;
for (int i = 0; i < a.length - 1; i++)
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for (int k = 0; k < a.length; k++) {
System.out.println("a[" + k + "]:" + a[k]);
}
}
}
2.设计一个银行账户类,用以模拟存款和取款过程,其主要功能如下:
1)账户信息:账号、姓名、开户时间、存款额
2)存款方法、取款方法
3)显示姓名、显示账号、查询余额等方法。
4)在主方法中对上述功能进行测试。
5)要求将前述接口和类统一放在 comsoft.test类包中。
参考答案:
package comsoft.test;
class Account {
private String accountID;
private String Name;
private String Date;
private String ID;
private float xj;
public Account() {
}
public Account(String accountID, String Name, String Date, String ID,
float xj) {
this.accountID = accountID;
this.Name = Name;
this.Date = Date;
this.ID = ID;
this.xj = xj;
}
public void setName(String name) {
this.Name = name;
}
public String getName() {
return this.Name;
第 8 页 共 8 页
}
public void setcxj(float xj) {
this.xj = this.xj + xj;
}
public void getqxj(float xj) {
this.xj = this.xj - xj;
}
public float getxj() {
return xj;
}
public String getAccountID() {
return accountID;
}
}
public class AccountTest {
public static void main(String args[]) {
Account account = new Account("123", "张三", "2006/10/09",
"12345678",900.0f);
System.out.println(account.getName());
System.out.println(account.getAccountID());
account.setcxj(100.0f);
System.out.println(account.getxj());
account.getqxj(100.0f);
System.out.println(account.getxj());
}
}
《Java程序设计与技术》试题A卷