某内Java第二次月考试题(附答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.
(单选)下面关于PreparedStatement说法错误的是:()。

A.PreparedStatement是Statement的子接口。

B.使用PreparedStatement预编译SQL可以有效的防止SQL注射。

C.PreparedStatement具有批处理执行SQL的功能。

D.PreparedStatement的setXXX方法可以用于设置预留的表名、字段名等参数。

正确答案:D
2.
(单选)下列会自动创建索引的约束的是:()。

A.UNIQUE
B.NOT NULL
C.FOREIGN KEY
D.CHECK
正确答案:A
3.
(单选)Oracle数据库中,在SQL语句中连接字符串的方法是:()。

A.CAT
B.CONCAT
C.JOIN
D.UNION
正确答案:B
4.
(单选)在Oracle中,控制年龄必须在18到50之间(包含18和50),可使用的代码是()。

A.age>18and age<50
B.age>=18and age<=50
C.age>=18&&age<=50
D.age>18&&age<50
正确答案:B
5.
(单选)在JDBC连接数据库编程应用开发中,可以实现数据库连接的是()。

A.Connection接口
B.PreparedStatement类
C.CallableStatement类
D.Statement类
正确答案:A
6.
(单选)下列Oracle语句中,属于DDL语句的是()
A.DROP
B.INSERT
C.DELETE
D.SELECT
正确答案:A
7.
(单选)下面的代码用于删除emp表中的id为100的记录:Class.forName("orcale.jdbc.OracleDriver");Connection con= DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.26:1521:tarena","openlab","open1 23");(空白处)stmt.close();con.close();空白处应填入的代码是:()。

A.Statement stmt=con.createStatement("delete from emp where id=100");int updateRows= stmt.executeUpdate();
B.Statement stmt=con.createStatement();int updateRows=stmt.executeUpdate("delete from emp where id=100");
C.Statement stmt=con.createStatement();int updateRows=stmt.execute("delete from emp where id=100");
D.Statement stmt=con.createStatement("delete from emp where id=100");int updateRows= stmt.execute();
正确答案:B
8.
(单选)在Oracle数据库中,关于主键约束与唯一约束说法错误的是()。

A.主键列的数据类型不限,但此列必须是唯一并且非空
B.一张数据表只能有一个唯一约束
C.唯一性约束所在的列允许空值
D.数据库支持两个列做联合主键
正确答案:B
9.
(单选)有关流描述错误的是:
A.InputStream,OutputStream,Reader,Writer是四个抽象类
B.FileInputStream,FileOutputStream是文件读写中的字节流,不能读写汉字
C.FileReader,FileWriter是文件读写中的字符流,能读写英文字母
D.BufferedReader是字符缓冲流,能一次读一行,速度更快。

正确答案:B
10.
(单选)现有如下建表SQL语句:CREATE TABLE departments(department_id NUMBER(4) PRIMARY KEY,department_name VARCHAR2(20),city VARCHAR2(20),province VARCHAR2(20))下面插入语句正确的是:()。

A.INSERT INTO departments VALUES(300,’abc’);
B.INSERT INTO departments(department_name,department_id)VALUES(300,’design’);
C.INSERT INTO departments(department_name,city)VALUES(‘design’,’bj’);
D.INSERT INTO departments VALUES(300,’abc’,null,null);
正确答案:D
11.
(单选)类A的定义如下:class A{protected void f()throws FileNotFoundException {………}}下列代码段没有编译错误的是:()。

A.class B extends A{public void f()throws Exception{………}}
B.class B extends A{public void g()throws IOException{f();}}
C.class B extends A{public void g(){try{f();………}catch(IOException e) {………}catch(FileNotFoundException e1){………}}}
D.class B extends A{public void g(){try{f();}catch(FileNotFoundException e){throw new RuntimeException(e);}}}
正确答案:D
12.
(单选)JDBC的Connection接口不包含的方法是()。

A.createStatement()
B.prepareStatement(String sql)
C.createPrepareStatement(String sql)
mit()
正确答案:C
13.
(单选)关于Java异常,下列说法错误的是()。

A.异常是定义了程序中遇到的非致命的错误,而不是编译时的语法错误
B.try……catch语句中对try内语句监测,如果发生异常,则把异常信息放入Exception类的对象中
C.throws用来表示一个方法有可能抛出异常给上一层,则在调用该方法时必须捕捉异常,否则无法编译通过
D.main方法不可以使用throws抛出异常
正确答案:D
14.
(单选)以下选项中可以用来在books表的isbn列上创建一个主键约束pk_books的是()。

A.CREATE PRIMARY KEY ON books(isbn);
B.CREATE CONSTRAINT pk_books PRIMARY KEY ON books(isbn);
C.ALTER TABLE books ADD CONSTRAINT pk_books PRIMARY KEY(isbn);
D.ALTER TABLE books ADD PRIMARY KEY(isbn);
正确答案:C
15.
(单选)在Oracle中,若想查询家庭地址在’北京’,’上海’,’广州’的用户信息,下列Sql 语句正确的是()。

A.SELECT*FROM student WHERE address=’北京’,’上海’,’广州’
B.SELECT*FROM student WHERE address LIKE(’北京’,’上海’,’广州’)
C.SELECT*FROM student WHERE address IN(’北京’,’上海’,’广州’)
D.SELECT*FROM student WHERE address=‘北京’AND address=’上海’AND address=‘广州’
正确答案:C
16.
(单选)在service表中,查询os账号名为:huangr的unix服务器ip地址,os帐号名,下列sql语句正确的是:
A.select unix_host,os_username from service where os_username='huangr';
B.select unix_host,os_username from service where os_username='HUANGR';
C.select unix_host,os_username from service where os_username="huangr";
D.select unix_host,os_username from service where os_username="HUANGR";
正确答案:A
17.
(单选)查询客户姓名以及他的推荐人,没有推荐人的客户信息不显示,下列sql语句正确的是:
A.select a1.real_name customer,a2.real_name recommender from account a1join account a2 on a1.id=a2.id;
B.select a1.real_name customer,a2.real_name recommender from account a1join account a2 on a1.recommender_id=a2.recommender_id;
C.select a1.real_name customer,a2.real_name recommender from account a1join account a2 on a1.recommender_id=a2.id;
D.select a1.real_name customer,a2.real_name recommender from account a1,a2on a1.recommender_id=a2.id;
正确答案:C
18.
(单选)对于Oracle数据库采用分页查询的方式查询表emp的no和name从第100(包括)条到110(不包括)条记录的SQL语句是:()。

A.select no,name from emp where rownum<110and rownum>=100
B.select no,name from(select no,name rownum num from emp where rownum>=100) where num<110
C.select no,name from(select no,name rownum num from emp where rownum<110)where num>=100
D.select no,name from emp limit99,10
正确答案:C
19.
(单选)查询tarena23和tarena20上的远程登录业务使用了哪些相同的资费标准,下列sql语句正确的是:
A.select cost_id from service where unix_host='192.168.0.20'intersect select cost_id from service where unix_host='192.168.0.23';
B.select cost_id from service where unix_host='192.168.0.20'union select cost_id from service where unix_host='192.168.0.23';
C.select cost_id from service where unix_host='192.168.0.20'union all select cost_id from service where unix_host='192.168.0.23';
D.select cost_id from service where unix_host='192.168.0.20'minus select cost_id from service where unix_host='192.168.0.23';
正确答案:A
20.
(单选)如果查询表a(有3行数据)和表b(有4行数据),使用SELECT*FROM a,b,返回的查询结果的行数是:()。

A.7
B.1
C.0
D.12
正确答案:D
21.
(单选)显示上个月的今天,这个月的今天,下个月的今天,精度到时、分、秒,下列sql语句正确的是:
A.alter session set nls_date_format='yyyy mm dd hh24:mi:ss';select add_months(sysdate,-1),sysdate,add_months(sysdate,1)from dual;
B.alter user set nls_date_format='yyyy mm dd hh24:mi:ss';select add_months(sysdate,-1),sysdate,add_months(sysdate,1)from dual;
C.alter session set nls_date_format='yyyy mm dd hh24:mi:ss';select last_month(),this_month(),next_month()from dual;
D.alter user set nls_date_format='yyyy mm dd hh24:mi:ss';select last_month(),this_month(),next_month()from dual;
正确答案:A
22.
(单选)下面关于序列的描述不正确的是:()
A.序列和表一样,都是Oracle数据库中的对象
B.序列产生的值,可以作为表的主键值
C.在序列的使用中,最好的方式是多个表可以共用一个序列,来减少Oracle数据库序列的数量
D.MySql数据不支持序列
正确答案:C
23.
(单选)下列代码的作用说法不正确的是:()。

class Card implements java.io.Serializable{}
A.开启序列化功能,使得Card类的对象可以存储到文件中
B.开启序列化功能,使得Card类的对象可以在网络上传输
C.使得Card类的子类的对象可以被序列化
D.导致Card的子类的对象不可以被反序列化
正确答案:D
24.
(单选)下列异常类是RuntimeException的子类的是:()。

A.ArrayIndexOutOfBoundsException
B.Exception
C.FileNotFoundException
D.IOException
正确答案:A
25.
(单选)以下选项中可以用来从表state中删除列update_dt的是()。

A.ALTER TABLE state DROP COLUMN update_dt;
B.ALTER TABLE state DELETE COLUMN update_dt;
C.DROP COLUMN update_dt FROM state;
D.REMOVE COLUMN update_dt FROM state;
正确答案:A
26.
(单选)下面的描述错误的是:()。

A.Statement的executeQuery()方法会返回一个结果集
B.Statement的executeUpdate()方法会返回是否更新成功的boolean值
C.使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值
D.ResultSet中的next()方法会使结果集中的下一行成为当前行
正确答案:B
27.
(单选)在Oracle中,不能通过DROP关键字进行删除的是()。

A.表
B.视图
C.表中记录
D.序列
正确答案:C
28.
(单选)在Oracle中,现有Student表,其中包括学号stuId,姓名stuName,成绩stuGrade,现要查询成绩为80分的学生姓名,并且结果按照学号降序排列,下面查询语句正确的是()。

A.SELECT stuName FROM student WHERE stuGrade=80ORDER BY stuId
B.SELECT stuName FROM student WHERE stuGrade=80ORDER BY stuId DESC
C.SELECT stuName FROM student WHERE stuGrade like80GROUP BY stuId
D.SELECT stuName FROM student WHERE stuGrade=80GROUP BY stuId DESC
正确答案:B
29.
(单选)在Oracle中,给Student表添加Address列,如下代码正确的是()。

A.ALTER TABLE student ADD COLUMN(address VARCHAR2(20))
B.UPDATE TABLE student ADD COLUMN(address VARCHAR2(20))
C.UPDATE TABLE student ADD(address VARCHAR2(20))
D.ALTER TABLE student ADD(address VARCHAR2(20))
正确答案:D
30.
(单选)关于Java线程说法错误的是()。

A.创建线程的有2种方式,方式1是继承Thread类,方式2是实现Runnable接口
B.解决线程安全使用问题synchronized关键字,使得同一时间只有一个线程执行该关键字限定的代码段
C.线程间通信所使用的方法有,wait,notify,notifyAll,它们都是Thread的方法
D.Java线程包括5个状态,线程的创建,可运行,运行,阻塞和消亡
正确答案:C
31.
(单选)DELETE和TRUNCATE都可以用来删除表内容,以下描述正确的是:()。

A.TRUNCATE不需要RollbackSegment
B.DELETE不需要RollbackSegment
C.TRUNCATE在提交COMMIT之前仍可回滚
D.TRUNCATE还可以删除表结构
正确答案:A
32.
(单选)运行下面程序:public class Foo{public static void main(String[]args){try{test(); System.out.println("condition1");}catch(ArrayIndexOutOfBoundsException e) {System.out.println("condition2");}catch(Exception e){System.out.println("condition3");} finally{System.out.println("finally");}}public static void test(){String str="cc"; pareTo("abc");}}输出的结果是:()。

A.condition1finally
B.condition2finally
C.condition1condition3finally
D.condition1condition2finally
正确答案:A
33.
(单选)阅读下面程序段:BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("file.dat"));bos.write(100);假设file.dat不存在,运行该程序段后,文件file.dat的字节数为:
A.0
B.1
C.2
D.3
正确答案:A
34.
(单选题)下列SQL语句执行后的结果是:()。

SQL>CREATE TABLE t_info(id NUMBER(4));SQL> INSERT INTO t_info VALUES(2);SQL>SAVEPOINT A;SQL>INSERT INTO t_info VALUES(3);SQL> INSERT INTO t_info VALUES(4);SQL>SAVEPOINT B;SQL>INSERT INTO t_info VALUES(5);SQL> ROLLBACK TO B;SQL>SELECT*FROM t_info;
A.在t_info表中可以看到id是2的数据,看不到id是3,4,5的数据
B.在t_info表中可以看到id是2,3,4的数据,看不到id是5的数据
C.在t_info表中可以看到id是2,3,4,5的数据
D.在t_info表中可以看到id是2,5的数据,看不到id是3,4的数据
正确答案:B
oracle中,使用"rollback"关键字可以将表的当前状态回滚至上一次事务结束后的状态,也可以使用"rollback还原点"的方式回滚到同一事务内的指定还原点处。

在本题中,从始至终都没有通过commit进行提交事务,所以从始至终所有操作都处于同一事务过程中,且在插入id为2的数据后进行了第一次设定还原点A操作,在插入了id为3、4两条数据后又进行了第二次设定还原点B操作,然后又插入了id为5的数据,然后通过rollback to B;操作可以将该表的状态还原至设定还原点B之前的张泰,也就是插入了id为2、3、4数据时的状态。

所以B选项正确。

35.
(单选)下列Oracle语句中,可以实现更新记录的是()。

A.UPDATE数据表SET字段名称=值,…[WHERE条件][GROUP BY字段名称]
B.UPDATE数据表,数据表,…SET字段名称=值,…WHERE条件
C.UPDATE数据表SET字段名称=值,…[WHERE条件]
D.UPDATE数据表Set字段名称=值,…[WHERE条件][ORDER BY字段名称]
正确答案:C
36.
(单选)在JDBC中使用事务,想要回滚事务的方法是()。

A.Connection的commit()
B.Connection的setAutoCommit()
C.Connection的rollback()
D.Connection的close()
正确答案:C
37.
(单选)下面约束中只能定义在列级的是:()。

A.UNIQUE
B.NOT NULL
C.FOREIGN KEY
D.PRIMARY KEY
正确答案:B
38.
(单选)需要读取一个比较大的文本文件,这个文件里有很多字节的数据,那么下列最合适读这个文件的选项是:()。

A.new FileInputStream(“fileName”);
B.new InputStreamReader(new FileInputStream(“fileName”));
C.new BufferedReader(new InputStreamReader(new FileInputStream(“fileName”)));
D.new RandomAccessFile(“fileName”,”+rw”);
正确答案:C
39.
(单选)操作cost表,若一个月使用了200小时,计算每种资费标准对应的最终费用是多少(考虑单位费用和基础费用为null的情况,最终费用=固定费用+超时部分×单位费用),下列sql语句正确的是:
A.select id,nvl(base_cost,0)+(200-nvl(base_duration,0))*nvl(unit_cost,0)fee from cost;
B.select id,nvl(base_cost,0)fee from cost;
C.select id,200*nvl(unit_cost,0)fee from cost;
D.select id,base_cost+(200-base_duration)*unit_cost fee from cost;
正确答案:A
40.
(单选)下列代码中对象锁的使用效率最高的是:
A.public class Foo{private Object o1,o2;public synchronized void methodA(){对o1进行操作} public synchronized void methodB(){对o1进行操作}public synchronized void methodC(){对o2进行操作}public synchronized void methodD(){对o2进行操作}}
B.public class Foo{private Object lock=new Object();private Object o1,o2;public void methodA(){synchronized(lock){对o1进行操作}}public void methodB(){synchronized(lock){对o1进行操作}}public void methodC(){synchronized(lock){对o2进行操作}}public void methodD(){synchronized(lock){对o2进行操作}}}
C.public class Foo{private Object lock=new Object(),lock2=new Object();private Object o1,o2;public void methodA(){synchronized(lock){对o1进行操作}}public void methodB(){synchronized(lock){对o1进行操作}}public void methodC(){synchronized(lock2){对o2进行操作}}public void methodD(){synchronized(lock2){对o2进行操作}}}
D.public class Foo{private Object lock=new Object(),lock2=new Object();private Object o1,o2;public void methodA(){synchronized(lock){对o1进行操作}}public void methodB(){synchronized(lock2){对o1进行操作}}public void methodC(){synchronized(lock){对o2进行操作}}public void methodD(){synchronized(lock2){对o2进行操作}}}
正确答案:C
41.
(单选)阅读以下SQL语句:INSERT INTO student(stu_no)VALUES(1001);SAVEPOINT sp1;DELETE FROM student;SAVEPOINT sp2;如果想要恢复student表中所有数据,并且结束该事务的正确做法是()。

A.rollback to sp2;
B.rollback to sp1;
mit;
D.rollback;
正确答案:D
42.
(单选)下列代码的运行结果是()public class Foo{static void test()throws RuntimeException {try{System.out.print("test");throw new RuntimeException();}catch(Exception ex) {System.out.print("exception");}}public static void main(String[]args){try{test();}catch (RuntimeException ex){System.out.print("runtime");}System.out.print("end");}}
A.test end
B.test
C.test runtime end
D.test exception end
正确答案:D
43.
(单选)试图使用下面句子查询数据:SELECT100/NVL(quantity,0)FROM inventory;quantity为NULL空值时,将导致出错,其原因是:()。

A.除数表达式为空值
B.函数参数数据类型不一致
C.空值不能被转成实际值
D.除数表达式为零
正确答案:D
44.
(单选)Oracle中查询的时候可以去掉重复记录的是()
A.SELECT DISTINCT name FROM user
B.SELECT name DISTINCT FROM user
C.SELECT name FROM user
D.SELECT name FROM user LIMIT1
正确答案:A
45.
(单选)一个VIEW被以下语句创建,请问在该VIEW上可进行操作是:()。

CREATE VIEW usa_states AS SELECT*FROM state WHERE cnt_code=1WITH READ ONLY;
A.SELECT
B.SELECT,UPDATE
C.SELECT,DELETE
D.SELECT,INSERT
正确答案:A
46.
(多选)下列异常类中,属于RuntimeException的子类的是:()。

A.ArrayIndexOutOfBoundsException
B.NullPointerException
C.NumberFormatException
D.ClassNotFoundException
正确答案:ABC
47.
(多选)以下创建线程的方式正确的是:
A.class Runner implements Runnable{public void run(){线程体…}public static void main(String args[]){Runner r=new Runner();Thread t=new Thread(r);t.start();}}
B.class Runner implements Runnable{public void run(){线程体…}public static void main(String args[]){Runner t=new Runner();t.start();}}
C.class Runner extends Thread{public void run(){线程体…}public static void main(String args[]){Thread t=new Runner();t.start();}}
D.class Runner{public static void main(String args[]){Thread t=new Thread(){public void run() {线程体…}};t.start();}}
正确答案:ACD
48.
(多选)类Super的定义如下:class A{protected void f()throws IOException{………}}下列代码段中,没有编译错误的是:()。

A.class B extends A{public void f()throws Exception{………}}
B.class B extends A{public void g()throws IOException{f();}}
C.class B extends A{public void g(){try{f();………}catch(Exception e) {………}catch(IOException e1){………}}}
D.class B extends A{public void g(){try{f();}catch(IOException e){throw new RuntimeException(e);}}}
正确答案:BD
49.
(多选)请看下列建表语句:create table test(c1number(3)constraint test_c1_pk primary key,c2 number(2),c3number(2),constraint test_c2_ck check((c2+c3)>100));下列选项中能向test表中成功实施插入数据的插入语句是:
A.insert into test values(1,40,60);
B.insert into test values(2,41,61);
C.insert into test values(3,101,1);
D.insert into test values(4,50,51);
正确答案:BD
50.
(多选题)操作account表和age_segment表,查询客户huangrong的年龄段,下列sql语句正确的是:
A.select real_name,birthdate, from account a join age_segment s on round((sysdate-birthdate)/365)between lowage and hiage and real_name='huangrong';
B.select real_name,birthdate, from account a left join age_segment s on round((sysdate-birthdate)/365)between lowage and hiage and real_name='huangrong';
C.select real_name,birthdate, from account a left join age_segment s on round((sysdate-birthdate)/365)between lowage and hiage where real_name='huangrong';
D.select real_name,birthdate, from account a left join age_segment s on round((sysdate -birthdate)/365)between lowage and hiage;
正确答案:AC
on和where的区别在于on条件是在生成临时表时使用的条件它不管on中的条件是否为真都会返回左边表中的记录where条件是在临时表生成之后再对临时表进行过滤这时已经没有left join的含义(必须返回左边表的记录)了条件不为真的就全部过滤掉所以B选项和C选项的写法其实换一种方式就比较明显了 B.select real_name,birthdate, from account a left join age_segment s on(round((sysdate-birthdate)/365)between lowage and hiage and real_name='huangrong'); C.select real_name,birthdate, from account a left join age_segment s on(round((sysdate-birthdate)/365)between lowage and hiage)where real_name='huangrong';B选项on的条件是round((sysdate-birthdate)/365)between lowage and hiage and real_name='huangrong' C选项on的条件是round((sysdate-birthdate)/365)between lowage and hiage。

相关文档
最新文档