综合测试笔试
一、选择题(40*2分)
1、在Java类中,使用以下(D)声明语句来定义公有的int型常量MAX。(单选)
A. public int MAX = 100;
B. final int MAX = 100;
C. public static int MAX = 100;
D. public static final int MAX = 100;
2、以下代码段将创建几个对象(D)。
String s1="bc";
String s2="bc";
A. 2
B. 3
C. 0
D. 1
3、分析如下所示的Java代码,其中this关键字的意思是(B )。(单选)
public class Test {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
https://www.wendangku.net/doc/6a17073792.html, = name; //this关键字所在的行}
}
A. name属性
B. Test类的内部指代自身的引用
C. Test类的对象引用Test类的其他对象
D. 指所在的方法
4、在Java语言中,下列关于类的继承的描述,正确的是( B)。(单选)
A. 一个类可以继承多个父类
B. 一个类可以具有多个子类
C. 子类可以使用父类的所有方法 //私有方法不行
D. 子类一定比父类有更多的成员方法
5、执行下面代码,下面描述正确的是(D)
public class Person{
static int arr[] = new int[10];
public static void main(String a[]){
System.out.println(arr[1]);
}
}
A. 产生编译错误
B. 输出空
C. 编译正确,运行错误
D. 输出0
6、给定一个Java程序Test.java的代码如下所示,编译时,会出现以下( A)情况。(单选)
class Parent {
public int count() { // 第1行
return 0;
}
}
public class Test extends Parent {
private int i;
public int count() { // 第2行
return i % 9; // 第3行
}
}
A. 编译通过
B. 在第1行引发编译错误
C. 在第2行引发编译错误
D. 在第3行引发编译错误
7、下列程序段执行后,t5的结果是(B)
int t1=5,t2=6,t3=7,t4,t5;
t4=t1t5=t4A. 7
B. 5
C. 6
D. 4
8、用▁B▁方法可以改变线程的优先级。
A.run
B.setPrority
C.yield
D.sleep
9、以下方法不属于同步通信的是( B)。
a) wait()
b) yield()
c) notify()
d) notifyAll()
10、字符流与字节流的区别在于( D )
A.前者带有缓冲,后者没有
B.前者是块读写,后者是字节读写
C. 二者没有区别,可以互换使用
D.每次读写的字节数不同
11、下列关于线程特点说法错误的是(C )。
a) 一个线程可以创建和删除另一个线程。
b) 线程与父进程的其他线程共享进程所有的全部资源。
c) 一个线程可以包含多个进程。
d) 线程的调度管理是由进程来完成的。
12、阅读下面的JavaScript代码:
var names=[‘黎明’,’张学友’,’刘德华’,’郭富城’];
for(int i=0;idocument.write(names[i]);
}
当网页加载时执行该代码在网页中输出的内容是(d)。(选择一项)
a)黎明张学友刘德华郭富城
b)0123
c)黎明张学友刘德华
d)这段代码有错误
13、有语句“var x=0;while(__C_) x+=2;”,要使while循环体执行10次,空白处的循环判定式应写为(C)。(选择一项)//x=x+2
a)x<10;
b)x<=10;
c)x<20;
d)x<=20;
14、对于ServerSocket,有以下代码
ServerSocket ss = new ServerSocket(9000);
以下说法正确的是(AB)(多选)
A.这句代码创建了一个ServerSocket 对象的同时,把该对象绑定到本机上的9000 端口。
B.对ss 调用getLocalPort 方法,返回值为9000
C.对ss 调用getInputStream 和getOutputStream 方法可以获得输入输出流,从而与客户端通信
15、如图,网页中有一个表格,请问创建该表格的HTML代码是(B)。(选择一项)
A、
< tr >
性别 | < /tr >
< tr >
< td >男< /td > < td >男< /td >
< /tr >
B、
C、
D、
| 性别
| 男
女
16、在HTML文档中,下列( C)标记用于为网页上的内容提供标题。(选择一项)
A)〈BODY〉
B)〈HEAD〉
C)〈H1〉
D)〈PRE〉
17、在Oracle中,使用(B)语句可以删除数据库中学生表(Student)里名称为DF_stuSex的约束。(选择一项)
a)ALTER TABLE Student DELETE CONSTRAINT DF_stuSex
b)ALTER TABLE Student DROP CONSTRAINT DF_stuSex
c)DROP DF_stuSex for Student
d)DELETE Student for DF_stuSex
18、在Oracle中,关于视图的说法不正确的是(D)。(选择一项)
a)视图是一种虚拟表,通常是作为执行查询的结果而创建的
b)使用CREATE VIEW语句创建视图
c)使用SELETE语句查看视图的查询结果
d)定义视图的查询可以基于一个或多个表,但不可以基于其他视图
19、在Oracle中,Result表保存了100个学生的成绩信息,以下SQL代码,说法正确的是(C)。(选择一项)
SELECT * FROM Student WHERE studentNo=(SELECT studentNo FROM Result)
a)此代码正确的查询出所有参加考试的学生的信息
b)此代码将“=”换作“>=”更合理
c)此代码将“=”换作“IN”更合理
d)此代码正确的查询出参加考试的第一条学生的信息
20、下面查询中(D)返回所有没有下属的员工。(选择一项)
A. SELECT e.ename FROM emp e WHERE e.mgr IS NOT NULL;
B. SELECT e.ename FROM emp e WHERE e.empno IN (SELECT m.mgr FROM emp m)
C. SELECT e.ename FROM emp e WHERE e.empno NOT IN (SELECT m.mgr FROM emp m)
D. SELECT e.ename FROM emp e WHERE e.empno IN (SELECT m.mgr FROM emp m WHERE m.mgr IS NOT NULL)
21、在执行下面SQL时DELETE FROM dept WHERE dept_id = 12;出现integrated constraint error because the child record was found错误,下面做法能使这条SQL语句执行成功的是(AD)。(多选)
A. 执行之前,删除child record
B. 无法使该命令执行成功
C. 在该命令上添加另外的关键字
D. 在命令中添加cascade constraints 选项
22、事务的原子性是指________A____
A,事务中包括的所有操作要么做,要么不做
B,事务一旦提交,对数据库的改变是永久的
C,一个事务的内部的操作及使用的数据对并发的其他事务是隔离的
D,事务必须是使数据库从一个一致性状态到变到另一个一致性的状态
23、关于“死锁”,下列说法正确的是 __D___
A,死锁是操作系统中的问题,数据库中不存在
B,在数据库操作中防止死锁的方法是禁止两个用户同时同时操作数据库
C,当两个用户竞争相同资源时不会发生死锁
D,只有出现并发操作时,才有可能出现死锁
24、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排序出来。正确的SELECT语句是__A_______。
A . SELECT S#,SUM(GRADE)FROM SC
WHERE GRADE>=60
GROUP BY S#
ORDER BY 2 DESC
HAVING COUNT(*>=4) WHERE GRADE>=
(SELECT GRADE FROM SC
WHERE C#=”C2”)
B. SELECT S# FROM SC
WHERE C#=”C3” AND GRADE IN
(SELECT GRADE FROM SC
WHERE C#=”C2”)
C. SELECT S# FROM SC
WHERE C#=”C2” AND GRADE NOT IN
(SELECT GRADE FROM SC
WHERE C#=”C2”)
D. SELECT S# FROM SC
WHERE C#=”C2” AND GRADE >=ALL
(SELECT C#=”C2”)
25、教师信息表teacher包含以下字段:
LAST_NAME VARCHAR2(25)
FIRST_NAME VARCHAR2(25)
EMAIL VARCHAR2(25)
下面哪个语句可以显示无EMAIL地址的教师的姓名(C )
SELECT last_name,fist_name from teacher where email=null
SELECT last_name,first_name from teacher where email<>null
SELECT last_name,first_name from teacher where email IS null
SELECT last_name,first_name from teacher where email IS NOT NULL 26、我们需要在employee数据表中查出工号emp_no为29346,24323的记录,可以使用的SQL语句有:( AB )(多选)
A、SELECT * FROM employee WHERE emp_no=29346 OR emp_no=24323 ;
B、SELECT * FROM employee WHERE emp_no IN(29346,24323);
C、SELECT * FROM employee WHERE emp_no=29346 AND emp_no=24323;
D、SELECT * FROM employee WHERE emp_no NOT IN(29346,24323)='dl');
27、以下关于jQuery的说法中错误的是(D)。(选择一项)
a)jQuery是JavaScript的程序库之一,它是对JavaScript的封装
b)相对于JavaScript,jQuery语法更为简单,能大幅提高开发效率
c)相对于JavaScript,jQuery解决了大部分浏览器兼容性问题,减少了出
错的概率
d)jQuery功能强大,能完全代替JavaScript
28、在JSP中,以下关于JavaBean描述正确的是(BC)。(多选)
a)JavaBean只能封装数据不能封装业务
b)JavaBean类中的属性私有,并提供公有访问属性的getter和setter方
法
c)JavaBean类可以提供有参的公有构造方法
d)JavaBean是一个Java类,并且这个类不可以被实例化
29、在JSP中实现数据分页的关键是编写SQL语句,对于以下SQL Server中实现新闻表(news)中数据分页显示的SQL代码描述正确的是(B)。(选择一项)
SELECT top 5 * FROM news where NID not in(SELECT top 10 NID from news)
a)该SQL语句的作用是显示news表中第6—10行记录
b)该SQL语句的作用是显示news表中第11—15行记录
c)该SQL语句的作用是显示news表中除第6—10行记录之外的其他行记录
d)该SQL语句的作用是显示news表中除第11—15行记录之外的其他行记
录
30、在J2EE.中,使用Servlet过滤器时,需要在web.xml通过()元素将过滤
器映射到Web资源。(B)
a)
b)
c)
d)
31、构造函数何时被调用?(A )
(A)创建对象时 (B)类定义时 (C)使用对象的方法时 (D)使用对象的属性时
32、下面的代码段执行之后count的值是什么( D )
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System.out.println(count);
A、5
B、1
C、15
D、16
33、下列程序段执行后的结果是( A )。
String s = new String("abcdefg");
for (int i=0; iSystem.out.print(s.charAt(i));
}
A) aceg B) ACEG C) abcdefg D) abcd
34、请看下列程序,运行结果是(B)。
class Super{
int i=10;
Super(){
print();
i=20;
}
void print(){
System.out.print(i);
}
}
public class Sub extends Super{
int j=30;
Sub(){
print();
j=40;
}
void print(){
System.out.print(j);
}
public static void main(String[] args){
System.out.print(new Sub().j);
}
}
A、102030
B、03040
C、3040
D、代码错误
35、有如下代码:
import java.io.File;
public class TestFile{
public static void main(String args[]){
File file = new File("chp13/corejava.txt"); }
}
请选择一个正确答案(C)//需要调用creatNewFile方法
A. corejava.txt 文件在系统中被创建
B. 在windows 系统上运行出错,因为路径分隔符不正确
C. corejava.txt 文件在系统中没有被创建
D. 如果corejava.txt 文件已存在,则抛出一个异常
36、一个可以独立运行的Java应用程序( D )
(A) 可以有一个或多个main方法 (B) 最多只能有两个main方法
(C) 可以有一个或零个main方法 (D) 只能有一个main方法
37、关于变量的初始化赋值,以下说法不正确的是(A )
(A)所有的变量都可以自动地初始化为默认值
(B)类中变量的赋值可以通过构造函数来完成
(C)如果类中没有构造函数,则编译时会自动生成一个不带参数的构造函数,调用该构造函数初始化类对象时,将变量初始化为该类型的默认值(如果类中没有为其赋值)
(D)方法体中的局部变量必须先赋值后才能使用
38、以public修饰的类如:public class fish{…} 则fish( A )
(A) 可被其它程序包中的类使用 (B) 仅能被本程序包中的类使用
(C) 不能被任意其它类使用 (D) 不能被其它类继承
39、下列关于修饰符混用的说法,错误的是(C)//也可以放在接口中
(A)abstract不能与final并列修饰同一个类 (B)abstract类中可以有private的成员
(C)abstract方法必须在abstract类中(D)static方法中不能处理非static的属性
40、对Java运算符,下面说法正确的是(D )
(A) 不具有优先级的区别 (B) 相同优先级的运算符,计算顺序是从右到左
(C) 圆括号具有最高优先级(D) ”+”号的优先级高于”&&”
二、简答题(4*2)
1、关于get和post的描述正确?<2分>
2、forward和sendRedirect的区别有?<2分>
3、说出ArrayList,Vector, LinkedList的存储性能和特性?<2分> ArrayList和Vector在底层都是用数组来存储数据,插入时就会创造一个新数组并把数据全部转移至其内,因此在这两种数据结构中插入数据会有很大损耗,但是由于数组特性,他
们索引取出数据性能较好。Vector更注重线程安全,所以通用性较差,大多数情况下可以用Arraylist就够了。LinkedList内部结构是双向链表,即保存一种含有前后索引的对象
的引用的对象的方式(好纠结。。。),所以插入时只需要更改有限几个对象内的引用就可以了,所以插入损耗低。但是如果要以索引取出对象就麻烦了。在正着顺序遍历或倒着遍历
时LinkedList性能也很好,只是在随机读取(按索引读取)时损耗高
4、Final、finally、finalize的区别?<2分>
finalize-方法名。Java 技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
三、代码分析题
1、(3分)有如下代码
public class TestFinally{
public static void main(String args[]){
System.out.println ( ma() );
}
public static int ma(){
int b;
//读入b
try{
int n = 100;
return n/b;
}catch(Exception e){
return 10;
}finally{
return 100;
}
}
}
在ma 中,当读入的b 为100 时,输出结果为__100____,当读入的b 为0 时,输出结果为__100___。
2、下面程序的运行结果是()。(4分)
class A{
static{
System.out.print("a");
}
public A (){
System.out.print("x");
}
}
class B extends A{
static{
System.out.print("b");
}
public B (){
System.out.print("y");
}
}
public class Test{
public static void main(String[] args){
A ab = new
B ();
ab = new B ();
}
}
Abxyxy
3、(5分)写出下面程序的输出结果
import java.util.*;
class MyClass{
int value;
public MyClass(){}
public MyClass(int value){ this.value = value; }
public String toString(){
return ""+value;
}
}
public class TestList{
public static void main(String args[]){
MyClass mc1 = new MyClass(10);
MyClass mc2 = new MyClass(20);
MyClass mc3 = new MyClass(30);
List list = new ArrayList();
list.add(mc1);
list.add(mc2);
list.add(mc3);
MyClass mc4 = (MyClass) list.get(1);
mc4.value = 50;
for(int i = 0; iSystem.out.println(list.get(i));
}
}
}
10 50 30