Java杨枝12.23/12.24测试题

1.在JAVA中,下列哪些说法是正确的(AC )
A.java源文件的扩展名为.java
B.写好的java源程序可以直接运行
C.编写的源程序必须先编译后才能运行
D.程序员可以读懂扩展名为.class的文件
2.下列标识符哪个是合法的(BD)
A.class
B.$abc
C.1234
D._name
3.下面哪些赋值语句是正确的?(AC)
A. long test = 012;
B. int other = (int) true;
C. double d = 0x12345678;
D. byte b = 128;
4.在Java中,下列语句不能通过编译的有(BD)
A. String s= “join”+ 3;
B. int a= “join”+3;
C. int a= ‘a’+5;
D. float f=5+5.5;
5.下列代码运行的结果是(C )
public static void main(String[] args) {

int x = 4;
int y = 5;
if(x++>4 & ++y>5) {   //X=5,Y=6
    x++;
}
System.out.println("x=" + x + ",y=" + y);

}
A. x=4,y=5
B. x=4,y=6
C. x=5,y=6
D. x=6,y=6
C
6.尝试运行下面的代码会发生什么?(B )
public class Test {
public static void main(String[] args) {
boolean m = true;
if (m = false) {
System.out.println(“true”);
} else {
System.out.println(“false”);
}
}
}
A. 输出字符串”true”
B. 输出字符串”false”
C. 编译时错误
D. 运行时错误

7.编译并运行以下代码将发生什么? (A )
public static void main(String args[]){
char digit = ‘a’;
for (int i = 0; i < 10; i++){
switch (digit)
{
case ‘x’ :
{
int j = 0;
System.out.println(j);
}
default :
{
int j = 100;
System.out.println(j);
}
}
}
int i = j;
System.out.println(i);
}
A. 输出11次100
B. 输出10次100,然后抛出运行期异常
C. 编译错误,因为变量i不能在main() 方法中被声明2次
D. 编译错误,因为变量j不能在main() 方法中被声明2次
E. 以上都不对

8.class Demo B
{
public static int fun(int c)
{
return c+=2;
}
public static void main(String[] args)
{
int temp = fun(2);
System.out.println(temp);
}
}
A. 2
B. 4
C. 6
D. 8

9.下面哪些函数是public void aMethod(){…}的重载函数?(BCD )
A. void aMethod( ){…}
B. public int aMethod(int a, float b){…}
C. public void aMethod (){…}
D. public float aMethod (int m){…}

10.在java中,关于数组描述正确的是(BD )
A.数组中的索引下标从1开始
B.存储在数组当中的数据都属于同一数据类型
C.通过数组名.length()能获得数组的长度
D.数组的最大索引下标是数组的长度减1

11.下面程序的输出结果是什么(D )
int[] arr = new int[10];
System.out.println(arr[0]);
A.编译不通过
B.运行时出错
C.输出null
D.输出0

12.下面哪个语句正确地声明一个整型的二维数组(C )
A. int a[][] = new int[][];
B. int b[10][10] = new int[][];
C. int c[][] = new int[10][10];

13.以下代码输出是( D )
class Demo {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i <= 10) {
i++;
if (i % 2 != 0)
continue;
sum += i;

    }
    System.out.println(sum);
}

}
A. 55
B. 45
C. 35
D. 30

14.和下面代码能完成相同的选项是(B)
class Demo {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
if (i % 2 == 0) {
sum = sum + i;
}
i++;
}
System.out.println(sum);
}
}  
A. for (int x =1; x<=100;x++){ sum=sum+x;}
B. for (int x =0; x<=100;x+=2){ sum=sum+x;}
C. for (int x =1; x<=100;x+=2){ sum=sum+x;}
D.上述全对

15.下列有关类、对象和实例的叙述,正确的是哪一项?(D)
A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别
B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称
D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称

16.下面关于java中包的说法正确的是( ACD)
A. 在java中可以使用import语句导入包
B. 在java中可以使用package语句导入包
C. 位于同一个包中的类,不需要导包就可以直接访问
D. 不同的包中可以出现类名相同的类

17.下列有关抽象类的叙述正确的是哪项?(C)
A.抽象类中一定含有抽象方法
B.抽象类既能被实例化也能被继承
C.抽象类的声明必须包含abstract关键字
D.抽象类中不能有构造方法

18.下列有关接口的叙述错误的是哪项?(D)
A.接口中只能包含抽象方法和常量
B.一个类可以实现多个接口
C.类实现接口时必须实现其中的方法
D.接口不能被继承

19.下列关于类的继承的描述,正确的有(B D )
A. 一个类可以同时继承多个父类
B. 一个类可以具有多个子类
C. 子类会自动拥有父类所有的方法
D. 一个类继承另一个类需要使用 extends 关键字

20.下列选项中关于java中this关键字的说法错误的有( C )
A. this关键字是一个对象的引用
B. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行
C. this可用于静态方法中

21.下列关于构造函数的说法正确的是(AB )
A. 方法名必须与类名相同
B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数
C. 我们在定义一个类时,必须要声明至少一个构造函数
D. 构造函数中不能使用return语句(这个是错的,可以rutrun;)

22.编译并运行以下代码将发生什么?( D )
class MyClass {
int x;
MyClass(int i) {
x = i;
}
public static void main(String args[]) {
MyClass m1 = new MyClass(100);
MyClass m2 = new MyClass(100);
if (m1.equals(m2)) {
System.out.println(“Both are equal”);
} else {
System.out.println(“Both are not equal”);
}
}
}
A. 代码编译时报出错误提示信息“equals() 方法未定义”
B. 编译通过,抛出运行期异常.
C. 输出Both are equal.
D. 输出Both are not equal

23.运行以下的main()方法,结果是?( A )
1 public static void main(String[] args)
2 {
3 String myString;
4 int x = 100;
5
6 if (x < 100) myString = “x is less than 100”;
7 if (x > 100) myString = “x is greater than 100”;
8 System.out.println(myString.length());
9 }
A. 编译时报出错误提示信息“变量myString没有被初始化”
B. 编译通过
C. 编译未能通过。但如果变量myString在第8行前的代码中被初始化,代码可以编译通过,运行时可以输出字符串myString的长度
D. 以上都不对

24.关于继承, 以下说法正确的是: (ACD)
A.Java中只支持单继承, 一个类只能继承一个类, 但是可以有多个子类
B.一个类如果没有自己写无参构造方法, 那么子类将无法继承
C.子类可以当父类用, 父类不可以当子类用
D. 子类重写父类方法时访问权限不能更低

25.在Java中,如果要在字符串类型对象s=”java”中,得到字符 ‘v’ 出现的位置,可使用下面的那个方法?( C )
A. s.matches(‘v’);
B. s.charAt(‘v’);
C. s.indexOf(‘v’);
D. s.substring(‘v’);

26.下列关于ArrayList和LinkedList集合的说法正确是有(ABC )
A. ArrayList集合底层是数组实现,该集合线程不安全
B. LinkedList集合底层是链表结构,适合做元素的增删操作
C. 这三个集合都是List接口的实现类

27.下面程序的输出结果是什么( D )
Set set= new HashSet();
set.add(“aaa”);
set.add(“bbb”);
set.add(“aaa”);
System.out.println(set.size());
A. 编译不通过
B. 运行时出错
C. 输出3
D. 输出2

28.下列哪些方法是ArrayList和LinkedList集合中都定义的( A )
A. add(Object o)
B. removeFirst()
C. remove(Object o)
D. add(int index,Object o)

29.下列哪些集合属于Collection体系的子类( BD )
A. TreeMap
B. ArrayList
C. Hashtable
D. HashSet

30.下列关键字能和try语句一起使用的是( CD )
A. final
B. finalize
C. finally
D. catch

31.下面程序的运行结果是( B )
FileOutputStream fos = new FileOutputStream(“c:\demo.txt”);
fos.write(“abc”);
fos.close();
A.在C盘创建文件demo.txt,但文件是空的
B.在C盘创建文件demo.txt,并写入数据abc
C.将C盘已有的文件demo.txt中追加写入abc
D.编译失败

32.下列关于Java中文件输入输出的说法正确的是( AC )
A. 在Java中,文件的输入输出功能是通过流来实现的
B. 如果要把数据写入到一个文件中,需要创建一个输入流对象
C. 字符流在某些方面比如汉字的处理,比字节流更方便
D. 可以通过Reader r = new Reader(“c:\pet.txt”)创建一个输入流对象

33.请看如下代码:
BufferedReader br = new BufferedReader(new FileReader(“c:\a.txt”));
BufferedWriter bw = new BufferedWriter(new FileWriter(“d:\b.txt”));
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
它表达的意思是?( A )
A. 把c盘目录下的a.txt文件内容复制到d盘目录下的b.txt
B. 把d盘目录下的b.txt文件内容复制到c盘目录下的a.txt
C. 读取c盘目录下a.txt文件,输出在控制台
D. 把控制台的内容写入到d盘目录下的b.txt文件中

34.下列哪个关键字可以用于实现同步?( C)
A. native
B. static
C. synchronized
D. abstract

35.下列哪些方法可以让线程中断? (A D )
A. sleep
B. start
C. notify
D. wait

36.启动线程调用哪个方法? ( B )
A. run()
B. start()
C. play()
D. go()

37.下面哪项不是TCP的特点? ( BD)
A.面向连接
B.数据不可靠
C.传输速度慢
D.对数据大小无限制

38.TCP协议的服务器的Socket对象是下面哪一个类? ( C)
A.Socket
B.InputStream
C.ServerSocket
D.OutputStream

39.正则表达式中可以表示所有的单词字符信息的是下面哪个规则:( D )
A. \W
B. \w
C. [a-zA-Z]
D.[a-zA-Z_0-9]

40.获取Class类型的对象的三种方式是:( ABD )
B. class静态属性
A. Object类的getClass()
D. Class类的forName()静态方法
C. 自己创建Class对象

编程:(4*5)
1. 把c:\a.jpg复制到d:\b.jpg(任意一种方式实现即可)

package prc01;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/*1. 把c:\\a.jpg复制到d:\\b.jpg(任意一种方式实现即可)*/
public class Prac01 {
    public static void main(String[] args) throws Exception {
        BufferedInputStream bi = new BufferedInputStream(new FileInputStream(
                "c:\\a.jpg"));
        BufferedOutputStream bo = new BufferedOutputStream(
                new FileOutputStream("d:\\b.jpg"));

        byte[] b = new byte[1024];
        int len = 0;
        while ((len = bi.read(b)) != -1) {
            bo.write(b, 0, len);
            bo.flush();
            bo.close();
        }
    }
}
  1. HashMap的键是Integer,值是String,存储三对元素,并遍历。(根据键找值的方式遍历)
package prc01;

import java.util.HashMap;
import java.util.Set;

/*2. HashMap的键是Integer,值是String,存储三对元素,并遍历。(根据键找值的方式遍历)*/
public class Prac02 {
    public static void main(String[] args) {
        HashMap hm = new HashMap();
        hm.put(1, "小王");
        hm.put(2, "小杨");
        hm.put(3, "小张");

        Set keySet = hm.keySet();
        for (Integer key : keySet) {
            System.out.println(key + "......." + hm.get(key));
        }

    }
}

3.键盘录入5个数字,使用冒泡排序进行排序

package prc01;

import java.util.Scanner;

/*3.键盘录入5个数字,使用冒泡排序进行排序*/
public class Prac03 {

    public static void main(String[] args) {
        System.out.println("请输入五个数字:");
        int[] arr = new int[5];
        for (int i = 0; i < 5; i++) {
            Scanner sc = new Scanner(System.in);
            arr[i] = sc.nextInt();
        }
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        System.out.println("排序之后的数字为:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

4.请在main方法里面实现统计一个字符串的英文大写字符,英文小写字符及数字字符分别有多少个的程序代码,并输出统计结果

package prc01;

/*4.请在main方法里面实现统计一个字符串的英文大写字符,
 * 英文小写字符及数字字符分别有多少个的程序代码,并输出统计结果。*/
public class Prac04 {
    public static void main(String[] args) {
        String s = "aaaBBB1234";
        char[] c = s.toCharArray();
        int x = 0;//
        int y = 0;
        int z = 0;
        for (int i = 0; i < c.length; i++) {
            if (Character.isLowerCase(c[i])) {
                x++;
            }
            if (Character.isUpperCase(c[i])) {
                y++;
            }
            if (Character.isDigit(c[i])) {
                z++;
            }
        }
        System.out.println("小写字母有:" + x + "个");
        System.out.println("大写字母有:" + y + "个");
        System.out.println("数字有:" + z + "个");
    }
}

你可能感兴趣的:(Java杨枝12.23/12.24测试题)