2024年4月26日发(作者:)

软件开发评测题

(考核时间120分钟,总分100分+附加题15分)

一、选择题(每题2分,共30分)

1、请判断一下程序的正确结果是哪项(D)

public class myprogram{

public static void main (String args[]){

try{

(“Hello world ”); }

finally{

n(“Finally executing”);

}

}

}

A、无法编译,因为没有指定异常

B、无法编译,因为没有catch子句

C、Hello world

D、Hello world Finally executing

2、JDBC中要显式地关闭连接的命令是(A)

A、(); B、()

C、() D、e()

3、[多选题] 根据下面的代码, String s = null; 会抛出NullPointerException异常的有(AC)。

A、if( (s!=null) & (()>0) )

B、if( (s!=null) & & (()>0) )

C、if( (s==null) | (()==0) )

D、if( (s==null) || (()==0) )

4、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的(A ):

A、 x[24]为0

B、 x[24]未定义

C、 x[25]为0

D、 x[0]为空

5、[多选题]执行下列代码后,哪个结论是正确的 String[] s=new String[10] (AD);

A、 s[9] 为 null;

B、 s[10] 为 “”;

C、 s[0] 为 未定义

D、 为10

6、[多选题]有关线程的哪些叙述是对的(BCD )

A、一旦一个线程被创建,它就立即开始运行。

B、使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

C、当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

D、一个线程可能因为不同的原因停止并进入就绪状态。

7、使用"=="比较操作符,是为了判断两个对象(C)

A、是否为同一个类的实例

B、是否值相同

C、是否为完全相同的对象

8、[多选题]下面说法哪项是正确的(BD)

A、Java虚拟机中的自动垃圾回收机阻止程序运行溢出内存

B、一段程序可以建议垃圾回收执行,但不能强迫它执行

C、垃圾回收是一个独立的平台

D、当一个对象的所有引用都被置空时,这个对象就可以变为能被垃圾回收

9. [多选题] JDBC编程的异常类型分为 (AC)

A、 SQLException

B、 SQLError

C、 SQLWarning

D、 SQLFatal

E、 SQLTruncation

10、 如果要限制某个查询语句返回的最多的记录数,可以通过调用Statement的方法( C )

来实现。

A、 setFetchSize

B、 setMaxFieldSize

C、 setMaxRows

11、[多选题]以下哪些是定义在ResultSet中用于Cursor定位的方法:(ABCEF )

A、 next() //此方法是使游标向下一条记录移动。

B、 beforeFirst() //把游标移动到第一条记录的前面(逻辑位置)。

C、 afterLast() //把游标移动到最后一条记录的后面(逻辑位置)。

D、 isBeforeFirst()//判断的,不是定位

E、 absolute(int) //定位到指定的记录位置

F、 relative(int) //相对定位方法

12、 DataSource是 (B)类型,可以调用DataSource的方法(D)获得数据库连接。

A、 Delegate

B、 Factory

C、 connect

D、 getConnection

13、 [多选题]我们实现的基于HTTP协议的Servlet的服务方法签名正确的有 (BCD ) 。

A、 public void doGet(ServletRequest req, ServletResponse res) throws IOException,

ServletException// 参数不对

B、 public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException,

ServletException

C、 public void service(HttpServletRequest req, HttpServletResponse res) throws IOException,

ServletException

D、 public void service(ServletRequest req, ServletResponse res) throws IOException,

ServletException

14、 [多选题] 典型的JDBC程序按(DBECFA)顺序编写。

A、 释放资源

B、 获得与数据库的物理连接

C、 执行SQL命令

D、 注册JDBC Driver

E、 创建不同类型的Statement

F、 如果有结果集, 处理结果集

选择题答案:

D、A、AC、A、AD

BCD、C、BD、AC、C

ABCEF 、B D、BCD 、DBECFA

二、简答题(每题5分,共计10分)

1、简述Collection与Map的共同点和区别。

二者都作为容器存储对象,能够在添加更多对象时,自动调整其尺寸。

Collection只保存单一元素;Map保存对象关联的键值对。

2、简述String与StringBuffer的区别。

String类对象为不可变对象,一旦修改了String对象的值,隐性重新创建了一个新的对象,

释放原String对象;StringBuffer类对象为可修改对象,可以通过append()方法来修改值;对

同一字符串做频繁更改时,String类对象的性能远不如StringBuffer类。

三、程序阅读题(每题5分,共计20分)

1、请写出以下程序的运行结果。

public class ShortCircuit{

static bollean test1(int val){

}

print(“test1(”+val+”)”);

print(“result: ”+(val < 1));

return val < 1;

static bollean test2(int val){

}

static bollean test3(int val){

}

Public static void main(String[] args){

Bollean b = test1(0) && test2(2) && test3(2);

Print(“expression is “ + b);

}

}

答案:

Test1(0)

result: true

test2(2)

result: false

expression is false

2、请写出以下程序的运行结果。

Public class StringOperators{

Public static void main(String[] args){

print(“test3(”+val+”)”);

print(“result: ”+(val < 3));

return val < 3;

print(“test2(”+val+”)”);

print(“result: ”+(val < 2));

return val < 2;

}

Int x = 0, y = 1, z = 2;

String s = “x, y, z ”;

print(s + x + y + z);

print(x + “ ” + s);

s += “(summed) = ”;

print(s + (x + y + z));

print(“” + x);

}

答案:

x, y, z 012

0 x, y, z

x, y, z (summed) = 3

0

3、请写出以下程序的运行结果。

public class CastingNumbers{

public static void main(String[] args){

}

}

答案:

(int)above: 0

(int)below: 0

(int)fabove: 0

double above = 0.7, below = 0.4;

float fabove = 0.7f, fbelow = 0.4f;

print(“(int)above: ” + (int)above);

print(“(int)below: ” + (int)below);

print(“(int)fabove: ” + (int)fabove);

print(“(int)fbelow: ” + (int)fbelow);

(int)fbelow: 0

4、请写出以下程序的运行结果。

public class ArraysOfPrimitives{

public static void main(String[] args){

}

}

答案:

a1[0] = 2

a1[1] = 3

a1[2] = 4

a1[3] = 5

a1[4] = 6

四、编程题(每题10分,共计40分)

1、题目:输入三个整数x,y,z,请把这三个数由小到大输出。 (写出符合的伪代码即可)

帮助分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的

值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最

小。

答案:

import .*;

public class test {

public static void main (String[]args){

int[] a1 = {1, 2, 3, 4, 5 };

int[] a2;

a2 = a1;

for(int i = 0; I < ; i++)

a2[i] = a2[i] + 1;

for(int I = 0; I < ; i++)

print(“a1[” + I + “] = ” + a1[i]);