您的位置:首页 > 编程语言 > Java开发

java第一阶段考试

2017-02-28 19:29 148 查看
一、 选择题(每题1.5分*50=75分)

1.下面的方法,当输入为2的时候返回值是多少?(D)  

    public static int getValue(int i) {  

        int result = 0;  

        switch (i) {  

        case 1:  

            result = result + i;  

        case 2:  

            result = result + i * 2;  

        case 3:  

            result = result + i * 3;  

        }  

        return result;  

    }  

A) 0         B) 2        C) 4         D) 10  

 

2.下列哪种异常是检查型异常,需要在编写程序时声明 (C)   

A) NullPointerException     

B) ClassCastException      

C) FileNotFoundException       

D) IndexOutOfBoundsException   

 

3. 下面程序的运行结果:(B)  

    public static void main(String args[]) {  

        Thread t = new Thread() {  

            public void run() {  

                pong();  

            }  

        };  

          t.run();  

        System.out.print("ping");  

    }  

    static void pong() {  

        System.out.print("pong");  

  

    }  

A) pingpong     B) pongping     C) pingpong和pongping都有可能      D) 都不输出  

 

4. 下列说法正确的是(AC)  (多选题)

  A) LinkedList继承自List  

  B) AbstractSet继承自Set  

C) HashSet继承自AbstractSet  

D) WeakMap继承自HashMap  

 

 

5. 下面哪个流类属于面向字符的输入流(D  )  

A) BufferedWriter B) FileInputStream  C) ObjectInputStream D)  InputStreamReader  

 

 

6.下列哪个类声明是正确的?D

 A)abstract final class HI{•••} B)abstract private move(){•••}

 C)protected private number;   D)public abstract class Car{•••}

 

7.在Java语言中,下列哪些语句关于内存回收的说明是正确的?B

A.程序员必须创建一个线程来释放内存;

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在指定的时间释放内存对象

 

8.下列Object类中的方法,哪一项不是完全跟线程有关:A

A.String toString()

B.void notify()

C.void notifyAll()

D.void wait()

 

9.给出下面代码:

public class Person{

    static int arr[] = new int[10];

    public static void main(String a[])

    {

      System.out.println(arr[1]);

    }

}

 

下列说法中正确的是?C

A.编译时将产生错误;

B.编译时正确,运行时将产生错误;

C. 输出零;

D. 输出空。

 

10.字符串是Java已定义的类型,关于它的构造函数,下面说法正确的是:(多选题)ABCD

A.String(char[] value, int offset, int count)

B.String(int[] codePoints,int offset,  int count)

C.String(String original)

D.String(StringBuffer buffer)

 

11、下列说法中正确的是:C

A.导入包会影响程序的性能

B.包存储在类库中

C.包是类的容器

D.上述说法都不对

 

12.下列不是String类的常用方法是:C

A、boolean equals(String str)

B、int compareTo(String str)

C、int SetindexOf(String str)

D、int lastIndexOf(String str)

 

13.表达式:(x>y) ? (z>w) ?x:z:w,(其中x=5,y=9,z=1,w=9)的值为:D

A、5                   B、8

C、1                   D、9

 

14.main方法是Java  Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( B    )?

A、public  static  void  main( )

B、public  static  void   main( String  args[] )

C、public static int  main(String  [] arg )

D、public  void  main(String  arg[] )

 

15.欲构造ArrayList类的一个实例,下列哪个方法是正确的 ?B

A. ArrayList myList=new Object();

B. ArrayList myList=new ArrayList();

C. myList= new Object();

D. myList= new ArrayList();

 

16.哪个关键字可以对对象加互斥锁?B

A.transient

B.synchronized

C.serialize

D.static

 

17.下列程序段执行后的结果是(A  )。

String s = new String("abcdefg");

for (int i=0; i<s.length(); i+=2){

    System.out.print(s.charAt(i));

}  

A) aceg   B) ACEG    C) abcdefg    D) abcd        

                                       

18.有整型数组:int[]  x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( A ).

A) 2   7   8   12   35     B) 12  35  8    7    2     

C) 35  12  8    7    2     D) 8   7   12   35   2

 

19.下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是(D )。

File f = new File(填代码处);

file =new FileReader(f);

in=new BufferedReader(file);

A) "./1.txt"    B) "../my/1.txt"    C) "c:\\my\\1.txt"      D) "c:\ my\1.txt"      

     

20.应用程序的main方法中有以下语句,则输出的结果是 ( A )。

    String  s1=new String("abc");

        String  s2=new String("abc");

        boolean b1=s1.equals(s2);

        boolean b2=(s1==s2);            

        System.out.print(b1+"   "+b2);           

A)true  false        B) false  true      C) true  true    D)false  false      

                       

21.应用程序的main方法中有以下语句,则输出的结果是 ( B )。

   Hashtable hashtable=new Hashtable();

        hashtable.put("x","12345");

        hashtable.put("y","67890");

        hashtable.put("a","abcde");

System.out.println(hashtable.get("a"));       

 A) a   B) abcde    C) 12345   D) 67890         

                                                                           

22.下面语句的功能是(A )。

RandomAccessFile  raf2 = new RandomAccessFile("1.txt","rw" );

A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。                

B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。

C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。

D) 以上说法都不对。    

       

23、应用程序的main方法中有以下语句,则输出的结果是 (  B)。

String   s="12345#aaa#bbb#67890";

int     n=s.indexOf("#");

     int     k=s.indexOf("#",n+1);

int     m=s.indexOf("#",k+1);

String  s2=s.substring(m+1);

System.out.println(s2);

A) 123456     B) 67890     C) aaa      D) bbb      

                                            

24、下面程序段执行后b的值是( B )。

Integer integ =new Integer(9);

    boolean b = integ  instanceof  Object;

A) 9     B) true     C) 1     D) false

 

25、应用程序Test.java的源程序如下,在命令行键入:

java Test  aaa  bb  c

回车后输出的结果是 (A  )。

public class Test {

    public static void main(String args[]) {

        int  k1=args.length;

        int  k2=args[1].length();         

        System.out.print(k1+"    "+k2);

    }  

}

A) 3  2       B)1  2     C) 1  3    D) 3  3       

                                          

26、应用程序的main方法中有以下语句,则输出的结果是 ( A)。

 int  b[][]={{1}, {2,2}, {2,2,2}};

        int sum=0;

        for(int i=0;i<b.length;i++) {            

            for(int j=0;j<b[i].length;j++) {

                sum*=b[i][j];

            }            

        }

        System.out.println("sum="+sum);

A) 32     B)11     C) 2     D) 3  

                                                                                                    

27、应用程序的main方法中有以下语句,则执行后输出的结果是 (D  )。

int[]  x={125,21,5,168,98};

int  max=x[0];

for(int i=1;i<x.length;i++){

if(x[i]> max)

max =x[i];

}

System.out.println(max);

A) 125     B) 5     C) 98        D) 168  

                                               

28、程序Test.java编译运行后输出的结果是( A)。

public class Test {

    String s1="java";  

    public static void main(String args[]) {                  

        int z=2;              

        Test t=new Test();              

        System.out.println(t.s1+z);

    }  

}  

A) java2     B)2     C)没有输出结果         D)java   

                                 

29、应用程序的main方法中有以下语句,则输出的结果是 (A)。

String s1="0.5", s2="12";

       double x=Double.parseDouble(s1);

        int    y=Integer.parseInt(s2);

  System.out.println(x+y);

A) 12.5         B) 120.5        C) 12           D) “12.5”   

                                                 

30、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( D )。

import java.io.*;

public class Test {

public static void main(String args[]) {

try {

String s="ABCDE";

byte b[]=s.getBytes();

FileOutputStream file=new FileOutputStream("test.txt",true);

file.write(b);            

file.close();

}

catch(IOException e) {

System.out.println(e.toString());

}

}

}

A) ABCABC   B) ABCDE     C) Test    D) ABCDE ABCDE ABCDE  

         

31、下面那些方法不是接口Collection中已声明的方法( C )

A)添加元素的add(Object  obj) 方法

B)删除元素的remove(Object obj)方法

C)得到元素个数的length()方法

D)返回迭代器的iterator()方法,迭代器用于元素遍历        

 

32.设 x = 1 , y = 2 , z = 3,则表达式  y+=z--/++x  的值是(   D  )。

     A. 3    B. 3. 5    C. 4     D. 5

 

33.下面说法不正确的是(  D)?

A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。

B)List接口是可以包含重复元素的有序集合。

C)Set接口是不包含重复元素的集合。

D)Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。

 

34.下面哪些关键字能用来控制对类成员的访问(ABC )?(多选题)

A) public   B) protected    C) private     D) default    

                                                                               

35、下面关于Java中异常处理try块的说法正确的是(   AC )? (多选题)

A) try块后通常应有一个catch 块,用来处理try块中抛出的异常。   

B) catch 块后必须有finally块。

C)可能抛出异常的方法调用应放在try块中。                      

D)对抛出的异常的处理必须放在try块中

 

36、线程对象的生命周期中,通常经历下面哪些状态(    ABCD)。(多选题)

A)新建      B)运行      C)就绪      D)死亡

                                            

37、定义如下的二维数组b,下面的说法正确的是(ACB )。(多选题)

int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}};

A)b.length的值是3。   B)b[1].length的值是3。

C)b[1][1]的值是5。    D) 二维数组b的第一行有3个元素  

 

38、类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是( BC )。(多选题)

A) B x1= new B( );        B) B x1= new C( );   

C) C x1=new C( );         D) C x1= new B( );

 

39、下面关于进程、线程的说法正确的是(  ABCD  )。(多选题)

A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。

B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。

C)Java多线程的运行与平台相关。

D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。

 

40、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是(  AD )。(多选题)

A)内部类可以直接访问外部类的成员

B)外部类可以直接访问内部类的成员

C)外部类不能访问内部类的成员

D)外部类可通过创建内部类的实例来访问内部类的成员

 

41.下面的描述正确的是什么? (A)

A. PreparedStatement继承自Statement  

B. Statement继承自PreparedStatement 

C. ResultSet继承自Statement  

D. CallableStatement继承自PreparedStatement 

 

42. 下面的描述错误的是什么? (B)

A. Statement的executeQuery()方法会返回一个结果集  

B. Statement的executeUpdate()方法会返回是否更新成功的boolean值  

C. 使用ResultSet中的getString()可以获得一个对应于数据库中char类型的

值  

D. ResultSet中的next()方法会使结果集中的下一行成为当前行 

 

43. 下面代码加载Oracle驱动正确的是哪一个? ()A

A. DriverManager.register("oracle.driver.OracleDriver"); 

B. DriverManager.forname("oracle.driver.OracleDriver"); 

C. DriverManager.load("oracle.driver.OracleDriver"); 

D. DriverManager.newInstance("oracle.driver.OracleDriver");

 

44. 在Jdbc中使用事务,想要回滚事务事务的方法是什么? (C)

A. Connection的commit()  

B. Connection的setAutoCommit() 

C. Connection的rollback() 

D. Connection的close()  

 

45. 在JDBC编程中执行完下列SQL语句SELECT name, rank, serialNo  

FROM employee,能得到rs的第一列数据的代码是哪两个? (多选题)(BC)

A. rs.getString(0);  

B. rs.getString("name");

C. rs.getString(1);

D. rs.getString("ename"); 

46. SQL语句中修改表结构的命令是 (C) 

A、MODIFY TABLE        

B、MODIFY STRUCTURE  

C、ALTER TABLE       

D、ALTER STRUCTURE 

 

47.ORACLE中,用来判断列值是否为空的操作符是(B) 

A ==NULL   B IS NULL  C AS NULL  D NULLIS 

 

48. 在CUSTOMER中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句(D)。 

A SELECT * FROM CUSTOMER WHERE PRICE MORE THAN 500; 

B SELECT * FROM CUSTOMER WHERE PRICE BETWEEN 500 AND *;

C SELECT * FROM CUSTOMER WHERE PRICE  LIKE '%500%';

D SELECT * FROM CUSTOMER WHERE PRICE>=500; 

 

49.在oracle中,用来显示emp表中没有奖金的员工信息的命令是:( B)  

(A) select * from emp where comm=null  

(B) select * from emp where comm<>null  

(C) select * from emp where comm is null 

(D) select * from emp where comm  is not null 

 

50. 在Oracle中,下面用于限制分组函数的返回值的子句是(B)。     

a) WHERE  b) HAVING  c) ORDER BY  d) 无法限定分组函数的返回值

 

 

 

二、简答题(每题5分*5=25分)

1.JDBC操作中 execute,executeQuery,executeUpdate的区别是什么?

execute:返回类型是boolean值,代表的含义是有无ResultSet返回

executeQuery返回类型是ResultSet,代表含义是有ResultSet返回;

executeUpdate返回类型是int,代表含义是有受影响的记录数量


2.、java程序中控制程序跳转的语句有哪些?在程序中有何作用?

Break:跳出当前的循环;

Continue1:跳出本次循环,执行下一次循环。


3. 简述throw和throws的区别?

Throw:手动抛出异常,作为程序员可以任意位置的手动的抛出异常。

Throws:修饰方法,告诉调用者有可能会抛出异常,后面要跟上抛出的异常的名字。


4.sleep()和wait()有什么区别?


sleep是让当前线程指定休眠时间,然后继续工作 ,不释放锁

wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,

也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。

wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。


5. 编写程序读入整数并求出他们的最大值和最小值(不包括0)输入0时结束程序 

 InputStreamReader in=new InputStreamReader(System.in);

            BufferedReader bin=new BufferedReader(in);

            int k,max=0,min=100;

            System.out.println("请输入一个整数");

            k=Integer.parseInt(bin.readLine());

            while(k!=0){

                if(k>max){

                    max=k;

                }

                if(k<min){

                    min=k;

                }

            }

            System.out.println("请输入一个整数");

            k=Integer.parseInt(bin.readLine());

            System.out.println("max"+max);

            System.out.println("min"+min);

        }

       

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: