JAVA练习题选择编程

在一系统中,不同类对象之间的通信的一种构造称为(消息),一个对象具有多种形态称为(多态)。

以下关于构造函数的描述错误的是()。 (2分)

  1. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。
  2. 构造函数的主要作用是完成对类的对象的初始化工作。
  3. 构造函数的返回类型只能是void型。
  4. 一般在创建新对象时,系统会自动调用构造函数。

在Java中,能实现多重继承效果的方式是( )。 (2分)

  1. 继承
  2. 内部类
  3. 适配器
  4. 接口

在面向对象的软件系统中,不同类对象之间的通信的一种构造称为_。 (2分)

  1. 封装
  2. 属性
  3. 消息

类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是( )。(2分)

  1. double a = fun(1.0,2.0)
  2. double a = fun(1,2)
  3. int x = fun(1,2)
  4. int x = fun(1.0,2.0)

下列语句会造成数组new int[10]越界是( )。 (2分)

  1. for(int i=0;i<=10;i++) a[i]++;
  2. a[0] += 9;
  3. a[9]=10;
  4. a[9]

下面哪个对类的声明是错误的? (2分)

  1. public class MyClass{}
  2. class MyClass extends MySuperClass implements YourInterface {}
  3. class MyClass extends MySuperClass1, MySupperClass2 {}
  4. abstract class MyClass implements YourInterface1, Youriterface2 {}
  5. private class MyClass {}

list是一个ArrayList的对象,哪个选项的代码填写到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?( ) (2分)

        Iterator it = list.iterator();
        int index = 0;
        while (it.hasNext()){ 
              Object obj = it.next(); 
              if (needDelete(obj)) { //needDelete返回boolean,决定是否要删除
//todo delete } index ++; }

  1. list.remove(it.next());
  2. list.remove(obj);
  3. list.remove(index);
  4. it.remove();

下面哪个流类属于面向字符的输入流( ) 。 (2分)

  1. InputStreamReader
  2. BufferedWriter
  3. FileInputStream
  4. ObjectInputStream

电话号码同步(Java)(10 分)

文件phonebook1.txt和phonebook2.txt中有若干联系人的姓名和电话号码。请你设计一个程序,将这两个文件中的电话号码同步。(所谓同步,就是将两个文件中的电话号码合并后剔除相同的人名和电话号码。请将同步后的电话号码按照姓名拼音顺序排序后保存到文件phonebook3.txt中。)

由于目前的OJ系统暂时不能支持用户读入文件和写文件,我们编写程序从键盘输入文件中的姓名和电话号码,当输入的单词为end时,表示文件结束。将同步后的电话号码按照姓名拼音顺序排序后输出。

输入格式:

张三 13012345678

李四 13112340000

王五 13212341111

马六 13312342222

陈七 13412343333

孙悟空 13512345555

end (表示文件phonebook1.txt结束)

张三 13012345678

孙悟空 13512345555

王五 13212341111

陈七 13412343333

唐三藏 13612346666

猪悟能 13712347777

沙悟净 13812348888

end (表示文件phonebook2.txt结束)

输出格式:

陈七 13412343333

李四 13112340000

马六 13312342222

沙悟净 13812348888

孙悟空 13512345555

唐三藏 13612346666

王五 13212341111

张三 13012345678

猪悟能 13712347777

输入样例:

Zhang3 13012345678
Li4 13112340000
Wang5 13212341111
Ma6 13312342222
Chen7 13412343333
SunWuKong 13512345555
end
Zhang3 13012345678
SunWuKong 13512345555
Wang5 13212341111
Chen7 13412343333
TangSanZang 13612346666
ZhuWuneng 13712347777
ShaWuJing 13812348888
end
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in 
);
        TreeMap map = new TreeMap<>(((o1, o2) -> {
            String s1,s2;
            s1 = (String)o1;
            s2 = (String)o2;
            return s1.compareTo(s2);
        }));
        String pinyin;
        String[] data = new String[2];
        while(true){
            pinyin = cin.nextLine();
            if(pinyin.substring(0,3).equals("end")){
                break;
            }
            data = pinyin.split(" ");
            map.put(data[0],Long.parseLong(data[1]));
        }
        while(true){
            pinyin = cin.nextLine();
            if(pinyin.substring(0,3).equals("end")){
                break;
            }
            data = pinyin.split(" ");
            map.put(data[0],Long.parseLong(data[1]));
        }
        Set keys = map.keySet();
        for(String key:keys){
            System.out.println(key+" "+map.get(key));
        }
    }
}

你可能感兴趣的:(JAVA练习题选择编程)