《Java程序设计》期末复习100题

  1. (单选题)
    分析选项中关于Java中this关键字的说法正确的是()
    A. this关键字是在对象内部指代自身的引用
    B. this关键字可以在类中的任何位置使用
    C. this关键字和类关联,而不是和特定的对象关联
    D. 同一个类的不同对象共用一个this
    参考答案:
    A
  2. (单选题)
    下面哪个Set是根据内容排序的
    A. AbstractSet
    B. LinkedHashSet
    C. HashSet
    D. TreeSet
    参考答案:
    D
  3. (单选题)
    在Java的异常处理模型中,能单独和finally语句一起使用的块是()。
    A. try
    B. catch
    C. throw
    D. throws
    参考答案:
    A
  4. (单选题)
    在Java接口中,下列选项中有效的方法声明是()
    A. public void fn();
    B. public void fn(){ };
    C. protected void fn();
    D. private void fn();
    参考答案:
    A
  5. (单选题)
    下列选项中关于Java中super关键字的说法正确的是()。
    A. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
    B. super关键字是在子类对象内部指代其父类对象的引用
    C. 子类通过super关键字只能调用父类的方法,而不能调用父类的属性
    D. 类通过super关键字只能调用父类的属性,而不能调用父类的方法
    参考答案:
    B
  6. (单选题)
    给的如下所示的Java代码,运行时,会产生( )类型的异常。
    String s = “bnuz”;s.substring(5,7);
    A. ArithmeticException
    B. StringIndexOutOfBoundsException
    C. NullPointerException
    D. StringNullException
    参考答案:
    B
  7. (单选题)
    在Java中,关于构造方法,下列说法错误的是()。
    A. 构造方法的名称必须与类名相同;
    B. 构造方法可以带参数;
    C. 构造方法不可以重载;
    D. 构造方法给对象分配内存
    参考答案:
    C
  8. (单选题)
    对象的特征在类中表示为变量,称为类的()。
    A. 对象
    B. 属性
    C. 方法
    D. 数据类型
    参考答案:
    B
  9. (单选题)
    下列()不属于引用数据类型。
    A. boolean
    B. 数组;
    C. 字符串;
    D. 接口;
    参考答案:
    A
  10. (单选题)
    以下程序的运行结果是()。
    public class Demo{
    public static void main(String[] args) {
    int a = 8;
    System.out.println(a);
    System.out.println(a++);
    System.out.println(a);
    }
    }

A. 888
B. 889
C. 899
D. 898
参考答案:
B
11. (单选题)
在JAVA编程中,Java编译器会将java程序转换为()
A. 字节码
B. 执行代码
C. 机器代码
D. 以上所有选项都不正确
参考答案:
A
12. (单选题)
在JAVA中,()关键字用来终止循环语句。
A. return
B. continue
C. break
D. exit
参考答案:
C
13. (单选题)
给定某java 程序的main方法如下,该程序的运行结果是()。
public static void main(String[] args){
boolean boo=false;
if(boo==false){
System.out.println(“false”);
}else{
System.out.println(“true”);
}
}

A. true
B. false
C. 1
D. 0
参考答案:
B
14. (单选题)
设 MyClass为已定义的类名,下列声明MyClass类的对象mc的语句中正确的是()。
A. public MyClass a=new MyClass ( );
B. public MyClass a=MyClass ( );
C. MyClass a=new class( );
D. a MyClass;
参考答案:
A
15. (单选题)
下列选项中,定义接口Eatable的语句正确的是 ()。
A. interface Eatable{ }
B. implements Eatable{ }
C. class Eatable{ }
D. implements interface Eatable{ }
参考答案:
A
16. (单选题)
给定java程序,如下:编译运行T.java,结果是()。
public class T{
private final int a = 123;
public static void main(String [] args){
System.out.println(a++);
}
}

A. 123
B. 124
C. 编译错误
D. 运行时出现异常
参考答案:
C
17. (单选题)
下列选项中,属于java语言的关键字的是()
A. go
B. TRUE
C. implements
D. FALSE
参考答案:
C
18. (单选题)
给定JAVA代码,如下 ,运行编译后,输出结果是( )
class P{
public void fn(){
System.out.println(17 % 3);
}
}
public class T extends P{
public void fn(int i){
System.out.println(17 / 3);
}
public static void main(String args[]){
P p = new P ()
p.fn();
}
}

A. 0
B. 5
C. 2
D. 5.6666666665
参考答案:
C
19. (单选题)
有一个类MyClass,以下为其构造函数的声明,其中正确的是()。
A. public MyClass(String s){…}
B. static MyClass (String s){…}
C. public myclass (String s){…}
D. void MyClass (String s){…}
参考答案:
A
20. (单选题)
在JAVA中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )
A. interface A extends B,C
B. interface A implements B,C
C. class A implements B,C
D. class A implement B,implement C
参考答案:
C
21. (单选题)
下列语句序列执行后,c的值是()。
int a = 0;
char ch =’X’;
switch( ch)
{
case ‘X’: c = 50;
case ‘Y’: c = 60;
case ‘Z’: c = 70;
default: c = 100;
}

A. 50
B. 60
C. 70
D. 100
参考答案:
D
22. (单选题)
下面选项中不能使用final修饰符修饰的是 ()。
A. 类
B. 属性
C. 方法
D. 接口
参考答案:
D
23. (单选题)
在java中,有如下代码片段:
for(int i=0; i17; i++){
if( i % 5 !=0){
continue;
}
System.out.print( i + “ ” );
if(i == 10-i){
break;
}
}

编译运行后,输出结果是()。
A. 0
B. 0 0
C. 0 5 10
D. 0 5
参考答案:
D
24. (单选题)
给定java代码,如下:
String str=null;
s.indexOf(“xy”);
运行时,会产生()类型的异常。
A. ArithmeticException
B. NullPointerException
C. IOException
D. ArrayIndexOutOfBoundsException
参考答案:
B
25. (单选题)
以下关于Java语言继承的说法正确的是( )。
A. Java中的类可以有多个直接父类
B. 抽象类不能有子类
C. Java中的接口支持多继承
D. 最终类可以作为其它类的父类
参考答案:
C
26. (单选题)
现有两个类C、D,以下描述中表示D继承自C的是( )。
A. class C extends D
B. class D implements C
C. class C implements D
D. class D extends C
参考答案:
D
27. (单选题)
在javaFx编程中,创建一个按钮需要使用组件()。
A. Pane
B. Label
C. Button
D. TextField
参考答案:
C
28. (单选题)
在某个类中存在一个方法:int fn(int x,int y),以下能作为这个方法的重载的声明的是( )。
A. public fn(float x)
B. int fn(int a,int b)
C. double fn(double x,int y)
D. int getFn(int x,int y)
参考答案:
C
29. (单选题)
下列方法定义中,正确的是()。
A. void fn( int x,int y ); { return (x * y); }
B. fn( int x,int y) { return x % y; }
C. double fn { return x; }
D. int fn( int x,int y) { return x - y; }
参考答案:
D
30. (单选题)
执行下面的语句后,c的值为( )。
String str= hello bnuz;int c=s.indexOf(‘l’);
A. 2
B. 1
C. 0
D. 3
参考答案:
A
31. (单选题)
在java中,在什么情况下类获得缺省构造方法?()
A. 类被定义时
B. 类没有其他构造方法时
C. 在类中至少定义了一个构造方法时
D. 以上皆非
参考答案:
B
32. (单选题)
现有一变量声明为boolean b;下面赋值语句中正确的是()。
A. b=true;
B. b=True;
C. b=“true”;
D. b=1;
参考答案:
A
33. (单选题)
private声明的类的方法作用范围()
A. 只可以给类本身访问
B. 只可以给同一个目录的类访问
C. 可以给所有的类访问
D. 可以给子类访问
参考答案:
A
34. (单选题)
下面的逻辑表达式中合法的是__________
A. (3+5)&&(4-3)
B. (1913)||(43)
C. 3>7&&5<100
D. (19%3)&&(2*23)
参考答案:
C
35. (单选题)
在JAVA中,如果父类中的某些方法没有方法体,并且需要由子类重写,应该使用()关键字来声明父类的这些方法.
A. final
B. static
C. abstract
D. void
参考答案:
C
36. (单选题)
给定两个java程序,如下:
public interface MyInterface{
int x = 20;
}
public class Test implements MyInterface{
private static int x;
public static void main(String[] args){
System.out.println(++x);
}
}

Test.java的编译运行结果是()。
A. 20
B. 21
C. 0
D. 1
参考答案:
D
37. (单选题)
下列哪个关键字用来定义抽象类
A. interface
B. abstract
C. extends
D. class
参考答案:
B
38. (单选题)
下列变量定义错误的是()。
A. float f=9.8
B. int a = 12
C. boolean b=true
D. double b=4.5
参考答案:
A
39. (单选题)
对于下列代码:
public class Test{
int x;
public Test (int x){ this.x = x; }
public static void main(String args[]){
Test t1, t2, t3;
t1 = new Test(5);
t2 = new Test(5);
t3 = t2;
int n = 5;
}
}

下列哪些表达式返回值为true?()
A. t1 == t2;
B. t2 == t3;
C. n == t1;
D. t1.equals(n)
参考答案:
B
40. (单选题)
在JavaFx中,为了处理鼠标点击事件,注册监听器的方法是()。
A. addOnMouseClicked
B. setOnMouseClicked
C. addMouseListener
D. setMouseListener
参考答案:
B
41. (单选题)
研究下面的Java代码:
public class Test{
public static void main(String[] args){
int a[]={10,20,30,40,50};
int sum = 0;
try{
for(int i=1;i6;i++)
sum += a[i];
System.out.println(sum= + sum);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(数组a越界);
}catch(Exception e){
System.out.println(程序有异常);
}finally{ System.out.println(程序执行结束);}

}
}

输出结果将是()。
A. 150 数组a越界 程序执行结束
B. 150 程序执行结束
C. 数组a越界 程序执行结束
D. 程序执行结束
参考答案:
C
42. (单选题)
在java 中,读取一个不存在的文件,会出现什么异常?( )
A. IOException
B. FileNotFoundException
C. NullPointerException
D. NoObjectException
参考答案:
B
43. (单选题)
接口中的成员变量被隐含地声明为
A. public final
B. public static
C. public static final
D. public abstract
参考答案:
C
44. (单选题)
下列程序运行后正确的输出结果是()。
class AA{
AA(){
System.out.print(“父类 ”);
}
}
public class BB extends AA{
BB(String str){
System.out.println(str);
}
public static void main(String[] args){
BB a = new BB(“子类”);
}
}

A. 子类
B. 父类 子类
C. 子类 父类
D. 编译错误
参考答案:
B
45. (单选题)
执行下面的语句后,a的值为( )。
String str= welcome;char a=str.charAt(1);
A. ’e’
B. ’w’
C. 'l ’
D. ‘elcome’
参考答案:
A
46. (单选题)
在Java中,在父类A中的方法method(),代码如下:
public void method(){
int a = 13;
int r = a % 3;
System.out.println®;}
在子类B中方法method()定义如下:
public void method(){
int a = 13;
System.out.println(a / 3);}
在main方法中有下面的代码,执行输出的结果是( )。
A aa = new B();
aa.method();

A. 1
B. 4.3333
C. 4
D. 3
参考答案:
C
47. (单选题)
给定Java代码片段,如下:
String str1 = new String(“bnuz”);
String str2 = new String (“bnuz”);
System.out.println(str1 == str2);运行后,这段代码将输出()。
A. true
B. false
C. 1
D. 0
参考答案:
B
48. (单选题)
在Java里,下列选项()不是实现面向对象思想的机制。
A. 封装
B. 继承
C. 多态
D. 数据型转换
参考答案:
D
49. (单选题)
以下由 for 语句构成的循环执行的次数是()。
for ( int i = 0; true ; i++) ;
A. 有语法错误,不能执行
B. 一次也不执行
C. 执行1次
D. 无限次
参考答案:
D
50. (单选题)
运行下列Java代码:
public class Test{
public static void main(String args[]){
int a = 10 ,s = 0;
do{
s += a;
}while(–a 0);
System.out.println(s);
}
}

下面选项()会出现在输出结果中。

A. 53
B. 54
C. 55
D. 56
参考答案:
C
51. (单选题)
switch(x){
case 10:
System.out.print(“10 ”);
case 20:
System.out.println(“20 ”);break;
case 30:
System.out.println(“30”);break;
}

假如X的值为10,程序输出的结果是( )。
A. 10 20
B. 10
C. 10 20 30
D. 30
参考答案:
A
52. (单选题)
下列哪行代码将输出整数7?
1: public class Main{
2: public static void main(String args[]){
3: double x=6.5;
4: System.out.println(Math.floor(x+1));
5: System.out.println(Math.ceil(x));
6: System.out.println(Math.round(x));
7: }
8: }

A. 第4行
B. 第4行和第5行
C. 第6行
D. 第4、5、6行
参考答案:
C
53. (单选题)
给定下列代码,则下列选项中能够正确编译的是哪一个?
abstract class Shape{
int x;
int y;
public abtract void draw();
}

A. abstract class Circle implements Shape{ private int radius; }
B. abstract class Circle extends Shape{ private int radius; }
C. class Circle extends Shape{ private int radius; public void draw(); }
D. class Circle implements Shape{ private int radius; public void draw(); }
参考答案:
B
54. (单选题)
给定以下代码,请问下列选项中哪个是正确的?
public interface Top{
void twiddle(String s);
}

A. public abstract class Sub implements Top{ public abstract void twiddle(String s){ }
B. public class Sub implements Top{ public void twiddle(Integer i){ } }
C. public class Sub implements Top{ void twiddle(String s){ } }
D. public class Sub implements Top{ public void twiddle(String s){ } public void twiddle(Integer i){ } }
参考答案:
D
55. (单选题)
当编译运行下列代码时,运行结果是什么?
public class Main{
int arr[]=new int[10];
public static void main(String args[]){
System.out.println(arr[1]);
}
}

A. 编译错误
B. 编译正确,但运行时出现异常
C. 输出0
D. 输出null
参考答案:
A
56. (主观题)
编写一个程序,包括两个TextField和一个Button。当单击按钮时,可以把一个文本框中的内容复制到另一个文本框中。要求用JavaFx组件实现。界面如下图所示:

参考答案:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Main extends JFrame {
private JTextArea text1 = null;
private JTextArea text2 = null;
private JButton copyButton = null;
public Main() {
baisuper("测试");
init();
JPanel pane = new JPanel(null);
getContentPane().add(pane);
JScrollPane s1 = new JScrollPane(text1);
JScrollPane s2 = new JScrollPane(text2);
pane.add(s1);
pane.add(s2);
s1.setBounds(10, 10, 200, 300);//横坐标纵坐标长宽
s2.setBounds(260, 10, 200, 300);
getContentPane().add(copyButton, BorderLayout.SOUTH);//获取内容面板,因为JFrame不能直接添加组件,需要用getContentPane()函数获取内容面板,再在内容面板上进行添加组件
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(480, 380);
setLocationRelativeTo(null);
setVisible(true);
}
/**
* 初始化组件对象
*/
private void init(){
text1 = new JTextArea();
text2 = new JTextArea();
copyButton = new JButton("复制");
copyButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
copy();
}
});
}
private void copy(){
text2.setText(text1.getText());
}
public static void main(String[] args) {
new Main();
}
}

  1. (主观题)
    编写程序,创建一个如下图所示的用户界面,其上共有6个按钮,点击按钮“Button 1”时显示消息“button 2 has been clicked”,点击按钮“Button 2”时显示消息“button 2 has been clicked”,点击按钮“Button 3”时显示消息“button 3 has been clicked”,以此类推…

参考答案:

package fourteen;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class Exercise14_3 extends JFrame{
      private JButton jbtbutton1 = new JButton("Button 1");
 private JButton jbtbutton2 = new JButton("Button 2");
 private JButton jbtbutton3 = new JButton("Button 3");
 private JButton jbtbutton4 = new JButton("Button 4");
 private JButton jbtbutton5= new JButton("Button 5");
 private JButton jbtbutton6 = new JButton("Button 6");
       JPanel p = new JPanel();
      private JLabel lab = new JLabel();
    public Exercise14_3() {
        p.setLayout(new FlowLayout());
        p.add(jbtbutton1);
        p.add(jbtbutton2);  
p.add(jbtbutton3);  
p.add(jbtbutton4);    
 p.add(jbtbutton5);    
 p.add(jbtbutton6);    
        p.add(lab);
        jbtbutton1.setToolTipText("this is OK button1");//鼠标短暂停留在按钮时显示文本
        jbtbutton2.setToolTipText("this is OK button2");
  jbtbutton3.setToolTipText("this is OK button3");
      jbtbutton4.setToolTipText("this is OK button4");
      jbtbutton5.setToolTipText("this is OK button5");
      jbtbutton6.setToolTipText("this is OK button6");

        add(p);
        lab.setHorizontalAlignment(JLabel.CENTER);//文本左右对齐、居中对其方法
         jbtbutton1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lab.setText("button1 has been clicked");
            }
        });
     Jbtbutton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lab.setText("button2 has been clicked");
            }
        });     
Jbtbutton3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lab.setText("button3 has been clicked");
            }
        });
          Jbtbutton4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lab.setText("button4 has been clicked");
            }
        });
          Jbtbutton5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lab.setText("button5 has been clicked");
            }
        });
         Jbtbutton6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lab.setText("button6 has been clicked");
            }
        });
    }
    public static void main(String[] args) {
        Exercise14_3 frame = new Exercise14_3();
        frame.setTitle("Exercise14_3");//设置窗体标题
        frame.setSize(300,200);
        frame.setLocationRelativeTo(null);//设置窗口相对于指定组件的位置。如果组件当前未显示或者 c 为 null,则此窗口将置于屏幕的中央。
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);//设置为可见
    } 
}

  1. (主观题)
    当编译并运行下列代码时,其运行结果是什么?
    public class Main{
    public static void main(String args[]){
    certkiller(four);
    certkiller(tee);
    certkiller(to);
    }
    public static void certkiller(String str){
    int check=4;
    if(check==str.length())
    System.out.print(str.charAt(check-=1));
    else
    System.out.print(str.charAt(0));
    }
    }

参考答案:
rtt

  1. (主观题)
    当编译并运行下列代码时,其运行结果是什么?
    public class Main{
    public static void main(String args[]){
    String s=Java;
    StringBuffer sb=new StringBuffer(Java);
    change(s);
    change(sb);
    System.out.println(s+sb);
    }
    public static void change(String s){
    s=s.concat(Hello);
    }
    public static void change(StringBuffer sb){
    sb.append(Hello);
    }
    }

参考答案:
JavaJavaHello

  1. (填空题) 如果一个方法只有方法的声明,而没有方法的实现,则称为 _________ 。
    参考答案:
    抽象方法|abstract方法

  2. (填空题) 异常处理try-catch-finally语句中,是用 _________ 语句块来捕获和处理异常。
    参考答案:
    catch

  3. (主观题)
    读程序,写出程序运行结果
    public class Test {

    public static void main(String[ ] args) {
    int i=0;
    while (i–0){
    System.out.print(The value of i is +i);
    }
    System.out.print(The end);
    }
    }

参考答案:
The end

  1. (主观题)
    在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
    你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。输入格式:
    你的程序首先会读到一个正整数n,1=n=100000。然后是n个整数。输出格式:
    如果这些整数中存在重复的,就输出:
    YES

否则,就输出:
NO
输入样例:
5
1 2 3 1 4
输出样例:
YES

参考答案:

  1. (主观题)
    定义一个贷款类Loan,其中有属性:
    annualInterestRate:double,表示贷款的年利率(默认值:2.5)
    numberOfYears:int,表示贷款的年数(默认值:1)
    loanAmount:double,表示贷款额(默认值:100)
    loanDate:java.util.Date,表示创建贷款的日期
    定义方法:
    (1)默认的无参构造方法
    (2)带指定利率、年数和贷款额的构造方法
    (3)所有属性的get/set方法
    (4)返回这笔贷款的月支付额getMonthlyPayment()
    月支付额 = (贷款额度月利率)/(1-(1/Math.pow(1+月利率,年数12)))
    (5)返回这笔贷款的总支付额getTotalPayment()
    总支付额度 = 月支付额度年数12
    附上如下的测试类。
    public class Main{
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    while (input.hasNext()) {
    double AIR = input.nextDouble();
    int NOY = input.nextInt();
    double LA = input.nextDouble();
    try {
    Loan m = new Loan(AIR, NOY, LA);
    System.out.printf(%.3f\n,m.getTotalPayment());
    } catch (Exception ex) {
    System.out.println(ex);
    }
    }

}
}

输入格式:
输入有多组数据,一个实数表示年利率,一个整数表示年数,一个实数表示贷款总额。
输出格式:
若任意一项小于或等于零,抛出IllegalArgumentException异常及相应描述(Number of years must be positive或Annual interest rate must be positive或Loan amount must be positive);有多项不符合,以不符合最前项为准;
若均符合要求,按照格式输出总额。
输入样例:
在这里给出一组输入。例如:
1 1 1000 2.0 0 2000 0 0 0
输出样例:
在这里给出相应的输出。例如:
1005.425 java.lang.IllegalArgumentException: Number of years must be positive java.lang.IllegalArgumentException: Annual interest rate must be positive

参考答案:

import java.util.*;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		while(true) {
			double air=in.nextDouble();
			int noy=in.nextInt();
			double la=in.nextDouble();
			if(air<=0) {
				System.out.println("java.lang.IllegalArgumentException: Annual interest rate must be positive");
				continue;
			}
			if(noy<=0) {
				System.out.println("java.lang.IllegalArgumentException: Number of years must be positive");
				continue;
			}
			if(la<=0) {
				System.out.println("java.lang.IllegalArgumentException: Loan amount must be positive");
			}
			System.out.printf("%.3f\n",la*12*noy*(air/1200)/(1-(1/Math.pow(1+air/1200,12*noy))));	
		}
	}
}



  1. (主观题)
    定义一个USB接口,并通过Mouse和U盘类实现它,具体要求是:
    1.接口名字为USB,里面包括两个抽象方法:
    void work();描述可以工作
    void stop(); 描述停止工作
    2.完成类Mouse,实现接口USB,实现两个方法:
    work方法输出“我点点点”;
    stop方法输出 “我不能点了”;
    3.完成类UPan,实现接口USB,实现两个方法:
    work方法输出“我存存存”;
    stop方法输出 “我走了”;

4.测试类Main中,main方法中
定义接口变量usb1 ,存放鼠标对象,然后调用work和stop方法
定义接口数组usbs,包含两个元素,第0个元素存放一个Upan对象,第1个元素存放Mouse对象,循环数组,对每一个元素都调用work和stop方法。输出样例:

我点点点
我不能点了
我存存存
我走了
我点点点
我不能点了

参考答案:

  1. (主观题)设计一个名为Time 的类。这个类包含:表示时间的数据域hour、minute 和second。一个以当前时间创建Time 对象的无参构造方法(数据域的值表示当前时间)。一个构造Time 对象的构造方法,这个对象有一个特定的时间值,这个值是以毫秒表示的、从1970 年1 月丨日午夜开始现在流逝的时间段(数据域的值表示这个时间)。一个构造带特定的小时、分钟和秒的Time 对象的构造方法。三个数据域hour、minute 和second 各自的get 方法。— 个名为setTime(long elapseTime)的方法使用流逝的时间给对象设置一个新时间。例如,如果流逝的时间为 555550000 毫秒,則转换为 10 小时、 10 分钟、 10 秒。编写一个测试程序,创建两个 Time 对象(使用 new Time() 和 new Time( 555550000)), 然后显示它们的小时、分钟和秒.输入格式:
    输入毫秒
    输出格式:
    按照小时、分钟、秒显示
    输入样例:
    在这里给出一组输入。例如:
    555550000
    输出样例:
    在这里给出相应的输出。例如:
    Hour: 10 Minute: 19 Second: 10

参考答案:

import javax.xml.crypto.dsig.spec.XSLTTransformParameterSpec;

public class test {
    public static void main(String[] args) {
        Time time1=new Time();
        Time time2=new Time(555550000);
        Time time3=new Time(3,80,3700);
        System.out.println(time1.toString());
        System.out.println(time2.toString());
        System.out.println(time3.toString());
    }
}
class Time{
    private long hour,minute,second;
    public Time(){
        setTime(System.currentTimeMillis());
    }
    public Time(long elapsedTime){
        setTime(elapsedTime);
    }
    public Time(long hour,long minute,long second){
        this.second=second%60;
        this.minute=(second/60+minute)%60;
        this.hour=(second/60+minute/60+hour)%60;
    }
    public void setTime(long elapsedTime){
        long totalSeconds = elapsedTime / 1000;
        second = (long)(totalSeconds % 60);
        long totalMinutes = totalSeconds / 60;
        minute = (long)(totalMinutes % 60);
        long totalHours = (int)(totalMinutes / 60);
        hour = (long)(totalHours % 24);
    }
    public void setTime(int hour,int minute,int second){
        this.hour=hour;
        this.minute=minute;
        this.second=second;
    }

    @Override
    public String toString() {
        return "Hour: " + this.hour + " Minute: " +  this.minute + " Second: " + this.second;
    }

}
  

  1. (主观题)
    求矩阵A+B的结果,程序给出部分代码,请在原来代码基础上填写完整,完成整个程序。
    import java.util.Scanner;
    //矩阵相加 C = A + B //写出方法调用
    public class Main {
    public static Scanner scan = new Scanner(System.in);
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int m = scan.nextInt();//矩阵的行
    int n = scan.nextInt();//矩阵的列
    //创建二维数组a 行m,列n

            //调用方法 为a输入数据
    
            //创建二维数组b 行m,列n 
    
           //调用方法,为b输入数据
    
            //调用方法 求 a+b
    
    
            //输出结果
    
        }
        public static void inputData(int[][] arr){
            for(int i =0;iarr.length;i++)
                for(int j=0;jarr[i].length;j++)
                    arr[i][j] =scan.nextInt();
        }
        public static int[][] addMatrix(int[][]arr1,int[][]arr2){
            int [][] c = new int[arr1.length][arr1[0].length];
            for(int i =0;iarr1.length;i++)
                for(int j =0;jarr1[i].length;j++)
                    c[i][j] = arr1[i][j] + arr2[i][j];
            return c;
        }
        public static void showResult(int[][] arr){
            for(int i =0;iarr.length;i++){
                for(int j =0;jarr[i].length;j++)
                    System.out.print( +arr[i][j]);
                System.out.println();
            }
        }
    
        }
    

输入格式:
第一行通过键盘输入矩阵的行数和列数 第二行通过键盘输入矩阵A的元素,中间用空格隔开 第三行通过键盘输入矩阵B的元素 ,中间用空格隔开
输出格式:
输出矩阵相加的结果,每一行输出矩阵一行,每一个元素前面有一个空格
输入样例:
在这里给出一组输入。例如:
2 3 1 2 3 4 5 6 2 3 4 5 6 7
输出样例:
在这里给出相应的输出。例如:
3 5 7 9 11 13

参考答案:

  1. (主观题)
    实现一个名为People的类和它的子类Emp,Emp有两个子类Faculty和Teacher。
    各类实例变量描述如下:
    (1)People类中的属性有:姓名name(String类型),地址addr(String类型),电话号码tel(String类型)和电子邮件地址email(String类型);
    (2)Emp类中的属性有:办公室office(String类型),工资wage(double类型),受雇日期hiredate(java.util.Date类型);
    (3)Faculty类中的属性有:职务称号duty(String类型);
    (4)Teacher类中的属性有:学历degree(String类型),职称jobTitle(String类型);
    画出People、Emp、Faculty和Teacher类的UML类图。
    实现People、Emp、Faculty和Teacher类,每个类均有2个构造方法,其中1个不带任何参数,另一个是带参数的构造方法,用于初始化各类的实例变量;各类均需要提供每个实例变量的访问器和修改器。
    在main方法中,提示用户输入姓名、地址、电话号码、电子邮件、办公室、工资、职务信息,创建一个Faculty对象,并输出Faculty对象的姓名、地址、电话号码、电子邮件、办公室、工资、职务信息。提示用户输入姓名、地址、电话号码、电子邮件、办公室、工资、学历、职称信息,创建一个Teacher对象,并输出Teacher对象的姓名、地址、电话号码、电子邮件、办公室、工资、学历、职称信息。
    参考答案:
package zuoye;
 
public class People {
	//属性
	public String name;//姓名
	public String address;//地址
	public String telphone;//电话
	public String email;//邮箱
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getTelphone() {
		return telphone;
	}
	public void setTelphone(String telphone) {
		this.telphone = telphone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	
}

package zuoye;
 
public class Emp extends People{
	public String office;//办公室
	public double wage;//工资
	public String hiredate;//受雇日期
	public String getOffice() {
		return office;
	}
	public void setOffice(String office) {
		this.office = office;
	}
	public double getWage() {
		return wage;
	}
	public void setWage(double wage) {
		this.wage = wage;
	}
	public String getHiredate() {
		return hiredate;
	}
	public void setHiredate(String hiredate) {
		this.hiredate = hiredate;
	}
	
	
}

package zuoye;
 
public class Faculty extends Emp{
 
	public String duty;
 
	public String getDuty() {
		return duty;
	}
 
	public void setDuty(String duty) {
		this.duty = duty;
	}
	
	
}

package zuoye;
 
public class Teacher extends Emp {
	public String degree;//学位
	public String jobTitle;//级别
	
	public String getDegree() {
		return degree;
	}
	public void setDegree(String degree) {
		this.degree = degree;
	}
	public String getJobTitle() {
		return jobTitle;
	}
	public void setLevel(String level) {
		This.jobTitle = jobTitle;
	}
	
	
	
}

package zuoye;
 
public class Ceshi_people {
 
	public static void main(String[] args) {
	//测试
		People p=new People();
		p.setName("张三");
		p.setAddress("x省x市x区123号");
		p.setEmail("510652434@qq,com");
		p.setTelphone("189xxxx6492");
		System.out.println("姓名是:"+p.getName()+"地址是:"+p.getAddress()+"电话:"+p.getTelphone()+"邮箱:"+p.getEmail());
		
		Employee e=new Employee();
		e.setOffice("A座407");
		e.setWage(5000.0);
		e.setHiredate("16.08.16");
		System.out.println("信息是:姓名是:"+p.getName()+"地址是:"+p.getAddress()+"电话:"+p.getTelphone()+"邮箱:"+p.getEmail()+"办公室:"+e.getOffice());
	}
 
}


  1. (主观题)
    读程序,写出程序运行结果:
    class A{
    public A(){
    System.out.print(“A类无参构造方法 ”);
    }}
    class B extends A{
    public B(){
    System.out.print(“B类无参构造方法”);
    }}
    public class C{
    public static void main(String[] args){
    B b = new B();
    }
    }

参考答案:
A类无参构造方法 B类无参构造方法

  1. (主观题)
    读程序,写出程序运行结果:
    public class Demo4{
    public static void main(String[] args){
    String str = new String(welcome to China);
    for(int i = 0; istr.length(); i += 2){
    System.out.print(str.charAt(i));
    } } }

参考答案:
wloet hn

  1. (主观题)
    读程序,写出程序运行结果:
    public class Demo3{
    public static void main(String[] args){
    int a = 54;
    int b = 3;
    System.out.print( a * b + 10 / 3);
    }
    }

参考答案:
165

  1. (主观题)
    读程序,写出程序运行结果:
    public class Demo2{
    public static void main(String[] args){
    try{
    int a = 0;
    int b = 1234 / a;
    System.out.println(b);
    }catch(Exception e){
    System.out.print(throw exception );
    }finally{
    System.out.print(end);
    }
    }
    }

参考答案:
throw exception end

  1. (主观题)
    编写一个程序,运行结果如下图所示.

参考答案:

public class Fan {
    static final int SLOW = 1;//三个名为SLOW,MEDIUM,FAST而值为1,2,3的常量,表示风扇的速度。
    static final int MEDIUM = 2;
    static final int FAST = 3;
    private int speed = SLOW;//一个名为speed的int类型私有数据域,表示风扇的速度(默认值是SLOW)
    private boolean on = false;//一个名为on的boolean类型私有数据域,表示风扇是否打开(默认值是false)
    private double radius = 5;//一个名为radius的double类型私有数据域,表示风扇的半径(默认值是5)
    String color = "blue";//一个名为color的string类型数据域,表示风扇的颜色(默认值是blue)

    public Fan() {//构造方法

    }

    public int getSpeed() {//访问器方法,返回速度

        return speed;
    }

    public void setSpeed(int speed) {//修改器方法,修改速度
        if (on)
        this.speed = speed;

    }

    public boolean getOn() {//访问器方法,返回风扇是否打开的状态
        return on;
    }

    public void setOn(boolean on) {//修改器方法,打开风扇
        this.on = on;
    }

    public double getRadius() {//访问器方法返回风扇半径
        return radius;
    }

    public void setRadius(double radius) {//修改器方法修改风扇半径
        if (on)
        this.radius = radius;
    }

    public String getColor() {//访问器方法返回风扇的颜色
        return color;
    }

    public void setColor(String color) {//修改器方法修改风扇的颜色
        if (on)
        this.color = color;
    }

    public String toString() {//toString方法返回描述风扇的字符串
        if (on ) {//如果风扇打开,该方法在一个字符串中返回风扇的速度,颜色,半径
            return speed + " " + color + " " + radius;
        } else//如果风扇关闭,该方法就会返回一个有“fan is off”和风扇颜色及半径组成的字符串
            return "fan is off" +" " +color + " "+radius;
    }

}

public class Test {
    public static void main(String[] args) {
        Fan fan = new Fan();//创建两个Fan对象
        Fan fan1 = new Fan();

        fan.setOn(true);
        fan.setSpeed(Fan.FAST);//将第一个对象设置成最大速度,半径为10,颜色为yellow,状态为打开
        fan.setRadius(10);
        fan.setColor("yellow");


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

        fan1.setOn(false);
        fan1.setSpeed(Fan.MEDIUM);//将第二个对象设置成中等速度,半径为5,颜色8,状态为关闭
        fan1.setRadius(8);
        fan1.setColor("red");


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

  1. (主观题)
    定义一个抽象类,名称为GeometricObject,此类有3个私有实例变量,分别是字符串类型的color,boolean类型的filled,以及java.util.Date类型的dateCreated,除了构造方法、修改器方法和访问器方法外还包含2个抽象方法:getArea()和getPerimeter()。
    定义一个扩展自GeometricObject的新的类Circle,Circle类有1个私有的double类型变量radius,以及相应的修改器和访问器,重写GeometricObject类中的getArea方法,计算圆的面积;重写GeometricObject类中的getPerimeter方法,计算圆的周长。
    定义一个扩展自GeometricObject的新的类Rectangle,继承自GeometricObject类,具有double类型的width、和height2个私有变量及它们的修改器和访问器,重写GeometricObject类中的getArea方法,计算矩形的面积;重写GeometricObject类中的getPerimeter方法,计算矩形的周长。
    绘制GeometricObject类、Circle类和Rectangle类的UML图,并实现这3个类。
    编写一个测试程序,提示用户输入圆的半径,一种颜色以及一个表明该圆是否填充的布尔值。程序根据用户的输入,使用输入的半径、颜色、是否填充的信息,创建一个Circle对象,并显示圆的面积、周长、颜色以及是否填充。提示用户输入矩形的宽和高,一种颜色以及一个表明该矩形是否填充的布尔值。程序根据用户的输入,使用这些宽、高、颜色、是否填充信息,创建一个Rectangle对象,并显示矩形的面积、周长、颜色以及是否填充。
    参考答案:
package TestAbstract;

import java.util.Scanner;

abstract class GeometricObject {
	private String color = "white";
	private boolean filled = false;
	public GeometricObject() {
	}
	public GeometricObject(String color, boolean filled) {
		this.color = color;
		this.filled = filled;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public boolean getFilled() {
		return filled;
	}
	public void setFilled(boolean filled) {
		this.filled = filled;
	}
	public abstract double getArea();
	public abstract double getPerimeter();
}

class Rectangle extends GeometricObject{
	private double width = 5.0;
	private double height = 4.0;
	public Rectangle() {
		this.width = 5.0;
		this.height = 4.0;
	}
	public Rectangle(double width, double height, String color, boolean filled) {
		super(color, filled);
		this.width = width;
		this.height = height;
	}
	public double getWidth() {
		return width;
	}
	public void setWidth(double width) {
		this.width = width;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	public double getArea() {
		return width * height;
	}
	public double getPerimeter() {
		return 2 * (width + height);
	}
}

class Triangle extends GeometricObject{
	private double side1 = 1.0;
	private double side2 = 1.0;
	private double side3 = 1.0;
	public Triangle() {
		this.side1 = 1.0;
		this.side2 = 1.0;
		this.side3 = 1.0;
	}
	public Triangle(String color, boolean filled, double side1, double side2, double side3) {
		super(color,filled);
		this.side1 = side1;
		this.side2 = side2;
		this.side3 = side3;
	}
	public double getSide1() {
		return side1;
	}
	public void setSide1(double side1) {
		this.side1 = side1;
	}
	public double getSide2() {
		return side2;
	}
	public void setSide2(double side2) {
		this.side2 = side2;
	}
	public double getSide3() {
		return side3;
	}
	public void setSide3(double side3) {
		this.side3 = side3;
	}
	public double getArea() {
		double s = (side1 + side2 + side3) / 2;
		return Math.sqrt(s* (s- side1) * (s - side2) * (s - side3));
	}
	public double getPerimeter() {
		return side1 + side2 + side3;
	}
}

public class TestAbstract {
	public void display(GeometricObject gb) {
			System.out.println("      周长为:" + gb.getPerimeter());//加空格的原因是为了好看,可以不加,下同
			System.out.println("      面积为:" + gb.getArea());
			System.out.println("      颜色为:" + gb.getColor());
			System.out.println("      是否填充:" + gb.getFilled());
		}
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		Triangle t = new Triangle();
		System.out.println("请分别输入三角形的三条边、颜色、是否填充:");
		t.setSide1(input.nextDouble());
		t.setSide2(input.nextDouble());
		t.setSide3(input.nextDouble());
		t.setColor(input.next());
		t.setFilled(input.nextBoolean());
		while((t.getSide1() + t.getSide2()) <= t.getSide3() || (t.getSide1() + t.getSide3()) <= t.getSide2() 
				||(t.getSide2() + t.getSide3()) <= t.getSide1()) {
			System.out.println("三角形边长输入错误,请重新输入!" + '\n' + "请分别输入三角形的三条边:");
			t.setSide1(input.nextDouble());
			t.setSide2(input.nextDouble());
			t.setSide3(input.nextDouble());
		}
		Rectangle r = new Rectangle();
		System.out.println("请分别输入矩形的边长、颜色、是否填充:");
		r.setWidth(input.nextDouble());
		r.setHeight(input.nextDouble());
		r.setColor(input.next());
		r.setFilled(input.nextBoolean());
		System.out.println('\n' + "三角形的信息:");//加\n的原因还是为了好看(#^.^#),下同
		TestAbstract tr = new TestAbstract();
		tr.display(t);
		System.out.println('\n' + "矩形的信息:");
		TestAbstract re = new TestAbstract();
		re.display(r);
	}
}



  1. (主观题)读程序,写出程序运行结果:
    class Base {
    public void fn() {
    System.out.println(Base fn);
    }
    }
    public class SubClass extends Base {
    public void fn() {
    System.out.print(SubClass fn);
    }
    public static void main(String[] args) {
    new SubClass().fn();
    }
    }

参考答案:
SubClass fn

  1. (主观题)
    读程序,写出程序运行结果
    public class T4{
    public static void main(String[] args){
    String str = new String(I love bnuz for ever);
    for(int i = 0; istr.length(); i+=3){
    System.out.print(str.charAt(i));
    }
    }
    }

参考答案:
Io uf e

  1. (主观题)
    读程序,写出程序运行结果
    public class T2{
    public static void main(String[] args){
    int a = 11; char ch = x;
    switch(score % 10){
    case 1 :
    case 2: ch = a;
    case 3: ch = b;
    case 4: ch = c; break;
    case 5: ch = d;
    }
    System.out.print(ch);
    }
    }

参考答案:
c

  1. (主观题)
    本题要求在列表中存储动物,包括鸟和狗,请写代码完成下列内容:
    1.定义抽象类Animal,包含私有属性name和age,为其完成setter、getter,带参构造方法,以及toString方法
    2.定义子类Bird继承Animal,完成带参构造方法,重写toString方法。
    3.定义子类Dog继承Animal,添加属性leg,为其完成setter,getter,完成带参构造方法,重写toString方法
    4.在Main类的main方法中,定义列表list,在列表中规定只能放Dog和Bird,完成下列操作:
    1.输入整数n,表示向列表中加入的对象的个数,然后向list中加入n个Animal 。
    2.在加入每一个对象之前,若输入整数1,表示加入Dog对象,输入其他整数,加入Bird对象,然后通过键盘输入相关属性,创建对应对象,加入list中。
    3.一次输出所有的list对象
    4.键盘输入一个name,然后判断在列表中是否存在对象属性name与此相同,如果相同,输出其对象的类名,并输出对象的信息, 如果不存在对象name与键盘输入相同,显示“no this one

输入格式:
请在这里写输入格式。例如:输入在一行中给出2个绝对值不超过1000的整数A和B。

输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。

输入样例:
在这里给出一组输入。例如:

4
1
tom 3 3
2
bir 2
1
may 3 5
2
baby 3
may
3
1
tom 3 2
2
may 4
1
jerry 3 1
tina
输出样例:
在这里给出相应的输出。例如:

[Dog[leg=3, name=tom, age=3], Bird[name=bir, age=2], Dog[leg=5, name=may, age=3], Bird[name=baby, age=3]]
Dog
Dog[leg=5, name=may, age=3]
[Dog[leg=2, name=tom, age=3], Bird[name=may, age=4], Dog[leg=1, name=jerry, age=3]]
no this one
参考答案:

  1. (多选题)
    下列有关匿名对象的说法,正确的有:

A. 匿名对象只能继承一个类或实现一个接口
B. 匿名对象可以有构造函数
C. 匿名对象不能被重复构造
D. 每个匿名对象都具有独一无二的类型
参考答案:
A, C, D
80. (多选题)
对于如下的代码片段,执行
b.func()
之后,值为27的表达式有
class A {
int i, j;
public void fun() {
i++;
j++;
}
}

        class B extends A {
            static int j;
            public void func() {
                int j = 2;
                for (i = 0; i  10; i++) {
                    j += 3;
                    fun();
                }
                if (j  30) {
                    super.j = j;
                } else {
                    /**/ B.j = j;
                }
            }
        }
        class Main {
            public static void main(String[] args) throws Exception {
                B b = new B();
                A a = b; b.func();
            }
        }

A. b.i + b.j
B. ((A)b).i + ((A)b).j;
C. a.i + a.j
D. b.i + a.j
参考答案:
B, C, D
81. (主观题)
编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个。数字之间用一个空格字符隔开。
参考答案:

public class Test {   
  public static void main(String[] args) {
    int count = 0; 	  
    for(int i = 100;i= 1000;i++) {
      if(i % 5 == 0  i % 6 == 0) {
        System.out.print(i +  );
        count++; 		  
      } 		  
      if(count == 10) { 			
        System.out.println(); 		
        count = 0; 		  
      } 	  
    }      
  } 
}	
  1. (判断题)
    抽象类是不能实例化的。
    A. 正确
    B. 错误
    参考答案:
    正确

  2. (判断题)
    子类和父类必须在一个包中。
    A. 正确
    B. 错误
    参考答案:
    错误

  3. (主观题)
    读程序,写出程序运行结果
    public class T3{
    public static void main(String[] args){
    System.out.print (3 + 3 + 3 + 3 + (3 + 3));
    }
    }

参考答案:
6336

  1. (主观题)
    写出程序运行的结果
    public class T1{
    int a = 1000;
    public static void main(String[] args){
    int a = 10;
    System.out.print(a);
    }
    }

参考答案:
10

  1. (单选题)
    以下关于Java语言继承的说法正确的是( )。
    A. Java中的类可以有多个直接父类
    B. 抽象类不能有子类
    C. Java中的接口支持多继承
    D. 最终类可以作为其它类的父类
    参考答案:
    C
  2. (单选题)
    以下关于Java语言继承的说法正确的是( )。
    A. Java中的类可以有多个直接父类
    B. 抽象类不能有子类
    C. Java中的接口支持多继承
    D. 最终类可以作为其它类的父类
    参考答案:
    C
  3. (单选题)
    以下关于Java语言继承的说法正确的是( )。
    A. Java中的类可以有多个直接父类
    B. 抽象类不能有子类
    C. Java中的接口支持多继承
    D. 最终类可以作为其它类的父类
    参考答案:
    C
  4. (单选题)
    以下关于Java语言继承的说法正确的是( )。
    A. Java中的类可以有多个直接父类
    B. 抽象类不能有子类
    C. Java中的接口支持多继承
    D. 最终类可以作为其它类的父类
    参考答案:
    C
  5. (单选题)
    以下关于Java语言继承的说法正确的是( )。
    A. Java中的类可以有多个直接父类
    B. 抽象类不能有子类
    C. Java中的接口支持多继承
    D. 最终类可以作为其它类的父类
    参考答案:
    C
  6. (多选题)
    根据下面的代码,String s = null;会抛出NullPointerException异常的有
    A. if( (s!=null) & (s.length()>0) )
    B. if( (s!=null) & & (s.length()>0) )
    C. if( (s==null) | (s.length()==0) )
    D. if( (s==null) || (s.length()==0) )
    参考答案:
    A, C
  7. (多选题)
    接口和抽象类描述正确的有
    A. 抽象类没有构造函数
    B. 接口没有构造函数
    C. 抽象类不允许多继承
    D. 接口中的方法可以有方法体
    参考答案:
    B, C
  8. (多选题)
    以下关于final关键字说法错误的是
    A. final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
    B. final修饰的类肯定不能被继承
    C. final修饰的方法不能被重载
    D. final修饰的变量不允许被再次赋值
    参考答案:
    A, C
  9. (多选题)
    以下可以正确获取结果集的有

A. Statement sta=con.createStatement(); ResultSet rst=sta.executeQuery(“select * from book”);
B. Statement sta=con.createStatement(“select * from book”); ResultSet rst=sta.executeQuery();
C. PreparedStatement pst=con.preparedStatement(); ResultSet rst=pst.executeQuery(“select * from book”);
D. PreparedStatement pst=con.preparedStatement(“select * from book”); ResultSet rst=pst.executeQuery();
参考答案:
A, D
95. (填空题)若变量s为int型, 且其值大于0, 则表达式s%2+(s+1)%2的值为 _________ .
参考答案:
1

  1. (填空题)CPU 内用于暂存指令、数据和地址的高速存储部件,称为 _________ 。
    参考答案:
    寄存器

  2. (单选题)
    什么是裸机?
    ▁▁▁▁▁ 的计算机称为裸机。
    A. 没有机箱
    B. 没有外部设备
    C. 没有软件系统
    D. 没有应用软件
    参考答案:
    C

  3. (单选题)
    已知代码如下:

        上述代码结果是(      )。
    

A. World Hello
B. World MLDN
C. Hello MLDN
D. World World
参考答案:
B
99. (单选题)
下面( )不是创建数组的正确语句。
A. float f[ ][ ] = new float[6][6];
B. float f[ ] = new float[6];
C. float f[ ][ ] = new float[ ][6];
D. float[ ][ ] f = new float[6][ ];
参考答案:
C
100. (主观题)
成绩文件处理:
设计学生类Student,属性:学号(整型);姓名(字符串),选修课程(名称)及课程成绩(整型)。编写一个控制台程序,能够实现Student信息的保存、读取。具体要求:(1)提供Student信息的保存功能:通过控制台输入若干个学生的学号、姓名以及每个学生所修课程的课程名和成绩,将其信息保存到data.dat中;(2)数据读取显示:能够从data.dat文件中读取学生及其课程成绩并显示于控制台。(要求,学号和课程成绩按照整数形式(而非字符串形式)存储)
参考答案:

import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args) {
        ObjectInputStream oi = null;
        ObjectOutputStream oo = null;
        Scanner sc = new Scanner(System.in);
        try{
            oo = new ObjectOutputStream(new FileOutputStream("D:\\data.dat"));
            oi = new ObjectInputStream(new FileInputStream("D:\\data.dat"));
            while(true){
                System.out.println("write:向文件写入数据");
                System.out.println("read: 从文件读出数据");
                System.out.println("exit: 退出");
                System.out.println("\n请输入命令:");
                String ju = sc.next();
                if("exit".equalsIgnoreCase(ju)){
                    System.out.println("程序结束");
                    break;
                }
                switch (ju){
                    case "write":{
                    	//用Set存储多个对象
                        Set<Student> set = new HashSet<>();
                        System.out.println("\n开始向文件中写入数据\n");
                        System.out.println("请输入学生个数:");
                        int n = sc.nextInt();
                        for (int i = 1; i <= n; i++) {
                            System.out.println("请输入第" + i + "名同学的学号、姓名:");
                            Student stu = new Student(sc.nextInt(), sc.next());
                            System.out.println("请输入该学生的课程个数:");
                            int m = sc.nextInt();
                            for (int j = 1; j <= m; j++) {
                                System.out.println("请输入第" + j + "门课程的名称、学分");
                                stu.setCourse(sc.next(), sc.nextInt());
                            }
                            set.add(stu);
                        }
                        oo.writeObject(set);
                        System.out.println("\n写入结束,请输入下一条指令");
                        break;
                    }

                    case "read":{
                        System.out.println("\n开始从文件中读出数据\n");
                        Set<Student> set = (Set) oi.readObject();
                        for(Student stu: set){
                            System.out.println(stu.toString());
                        }
                        System.out.println("\n读出结束,请输入下一条指令");
                        break;
                    }
                    default:{
                        System.out.println("\n无此命令,请重新输入");
                    }

                }
            }

        }catch (ClassNotFoundException e1){
            e1.printStackTrace();
        }
        catch (IOException e2){
            e2.printStackTrace();
        }finally {
            try{
                //关闭文件
                oi.close();
                oo.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

class Student implements Serializable{
    private int no;
    private String name;
    private TreeMap<String, Integer> course;

    public Student(int no, String name) {
        this.no = no;
        this.name = name;
        course = new TreeMap<>();
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public TreeMap<String, Integer> getCourse() {
        return course;
    }

    public void setCourse(String name, int score) {
        this.course.put(name, score);
    }

    @Override
    public String toString() {
        return  "no:" + no +
                "\nname:" + name +
                "\ncourse:" + course + "\n";
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return no == student.no;
    }

    @Override
    public int hashCode() {

        return Objects.hash(no);
    }
}


  • 77
    点赞
  • 836
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一角灯辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值