未来工作室月末考核总结

2018级未来工作室第二次考核

一、 选择题(每道题3分,共30分)

1. 下列 javaDoc 注释正确的是(D )

A、 /* 我爱北京天安门 */

B、 //我爱北京天安门 */

C、 /** 我爱北京天安门 */

D、 /* 我爱北京天安门 **/

Java注释三种格式

单行注释 //

多行注释 /*

语句 */

文档注释 /** */

2. 在 Java语言中,下列关于类的继承的描述,正确的是(A )

A、 一个类可以继承多个父类

B、 一个类可以具有多个子类

C、 子类可以使用父类的所有方法

D、 子类一定比父类有更多的成员方法

JAVA语言不支持多重继承,一个类只能有一个直接父类。子类继承父类的成员变量和成员方法,同时可以修改父类的成员变量或重写父类的方法,还可以添加新的成员变量或成员方法。

3. 下面说法中错误的是(D  )

A、 静态代码块类一加载只执行一次 , 以后再创建对象的时候不执行

B、 局部代码块的作用是为了限制变量的生命周期

C、 构造代码块在每创建一次对象就执行一次

D、 以上都不对

类初始化时,静态代码块类一加载只执行一次。Static{},普通代码块{}。局部变量(方法内的变量),成员变量(类中的变量)。构造器(有参,无参),如果不定义有参的构造器,系统默认有一个无参的构造器,如果定义了,则需要再次定义无参构造器。

4. 下列关于修饰符混用的说法,错误的是(D )

A、 abstract不能与final并列修饰同一个类

B、 abstract类中不可以有private的成员

C、 abstract方法必须在abstract类中

D、 static方法中能处理非static的属性

 

5. 我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.001米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度为(B )

A、 20

B、 22

C、 24

D、 26

6. 分析选项中关于Java中this关键字的说法正确的是(D )

A、 this关键字是在对象内部指代自身的引用

B、 this关键字可以在类中的任何位置使用

C、 this关键字和类关联,而不是和特定的对象关联

D、 同一个类的不同对象共用一个this

在某一构造方法中调用另一构造方法时,必须使用this关键字调用,this关键字必须写在构造方法内的第一行位置

7. 下列关于字符串的描叙中错误的是(A )

A、 字符串是对象

B、 String 对象存储字符串的效率比 StringBuffer 低

C、 可以使用 StringBuffer sb="这里是字符串"; ,声明并初始化 StringBuffer 对象 sb

D、 String 类提供了许多用来操作字符串的方法:连接,提取,查询等

StringBuffer sBuffer = new StringBuffer("字符串内容");

String sb="这里是字符串";

8. 下列选项中关于 Java中封装的说法错误的是(A )

A、 封装就是将属性私有化,提供共有的方法访问私有属性

B、 属性的访问方法包括 setter 方法和 getter 方法

C、 setter 方法用于赋值, getter 方法用于取值

D、 包含属性的类都必须封装属性,否则无法通过编译

封装:将属性私有化(private),然后使用get,set方法去取值和赋值。

9. 在Java中,下面对于构造函数(构造器)的描述错误的是(B )

A、 类不一定要显式定义构造函数

B、 构造函数的返回类型是void

C、 如果构造函数不带任何参数,那么构造函数的名称和类名可以不同

D、 一个类可以定义多个构造函数

构造方法的名称必须与它所在的类名完全相同,构造方法无返回值,构造方法名前不能用修饰符void来修饰,因为一个类的构造方法的返回值类型就是该类本身

10. 匹配一个以155开头和1379结尾的11位电话号码,以下选项正则表达式正确的是(B )

A、 ^(155)[0-9]{4}(1379)$

B、 ^155(.){4}(1379)$

C、 ^(155){0-9}{4}(1379)$

D、 ^155[\\w]{4}(1379)$

正则表达式

二、 简答/填空题(共25分)

1. abstract 与哪些关键字不能共存为什么?(6分)

与final,private不能共存

abstract类是创建格式相同的子类,代表抽象;

final代表最终,两者相冲突

private代表私有的,不能被其他类所访问

final:首先abstract修饰的类,该类中的方法子类继承之后需要重写的,可是final修饰的类不能比继承,也就没子类,方法更不能得到重写,相互冲突;不能共存

private:私有的意思,方法子类是不能被继承到的,那么方法就没有被重写,可是abstract是要求方法重写的也相互冲突;不能共存

static:static能被实例化可直接调用,abstract是不能被实例化的,冲突,不能共存。所谓实例化就是创建对象理解为new对象就可以了;

2. 给定 java 代码如下所示,在 A 处增加一个方法,是对 cal 方法的重载(6分)

    public class Test {

        public void cal(int x, int y, int z) {

        }

    1.public int cal(int x,int y,float z){}

    2.public void cal(int x,int z){}       

方法的重载中参数的类型是关键,仅仅是参数的变量名不同是不行的,参数的列表必须不同,即:或者参数个数不同,或者参数类型不同,或者参数的顺序不同

    }

3. 用Calendar类来获取系统时间的年份________。(6分)

Calendar calendar=Calendar.getInstance();

int year = calendar.get(Calendar.YEAR); 

4. 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请问他的年龄是___19_____。(7分)

 1 package PREV_55;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         char[] a, b;
 6         int[] c = new int[10];
 7         for (int i = 11; i <= 99; i++) {
 8             a = String.valueOf(i * i * i).toCharArray();
 9             b = String.valueOf(i * i * i * i).toCharArray();
10 
11             int g = i*i*i;
12             int h = i*i*i*i;
13             if (g >= 1000 && g <= 9999) {
14                 if (h >= 100000 && h <= 999999) {
15                     for (int j = 0; j < 4; j++) {
16                         c[j] = a[j] - '0';
17                     }
18                     for (int k = 0; k < 6; k++) {
19                         c[k + 4] = b[k] - '0';
20                     }
21                     int[] e = new Test().sort(c);
22                     boolean f = new Test().judge(e);
23                     if(f) {
24                         System.out.println(i);
25                         break;
26                     }
27                 }
28             }
29 
30         }
31     }
32 
33     public int[] sort(int[] a) {
34         int t;
35         for (int i = 0; i < a.length; i++) {
36             for (int j = 0; j < a.length - 1; j++) {
37                 if (a[j] > a[j + 1]) {
38                     t = a[j];
39                     a[j] = a[j + 1];
40                     a[j + 1] = t;
41                 }
42             }
43         }
44         return a;
45     }
46     
47     public boolean judge(int[] a) {
48         int[] b = {0,1,2,3,4,5,6,7,8,9};
49         for(int i = 0;i<b.length;i++) {
50             if(b[i] != a[i]) {
51                 return false;
52             }
53         }
54         return true;
55     }
56 
57 }

三、 编程题(共45分)

1. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字(10分)

 1 package PREV_55;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         char[] a, b;
 6         int[] c = new int[10];
 7         for (int i = 11; i <= 99; i++) {
 8             a = String.valueOf(i * i * i).toCharArray();
 9             b = String.valueOf(i * i * i * i).toCharArray();
10 
11             int g = i*i*i;
12             int h = i*i*i*i;
13             if (g >= 1000 && g <= 9999) {
14                 if (h >= 100000 && h <= 999999) {
15                     for (int j = 0; j < 4; j++) {
16                         c[j] = a[j] - '0';
17                     }
18                     for (int k = 0; k < 6; k++) {
19                         c[k + 4] = b[k] - '0';
20                     }
21                     int[] e = new Test().sort(c);
22                     boolean f = new Test().judge(e);
23                     if(f) {
24                         System.out.println(i);
25                         break;
26                     }
27                 }
28             }
29 
30         }
31     }
32 
33     public int[] sort(int[] a) {
34         int t;
35         for (int i = 0; i < a.length; i++) {
36             for (int j = 0; j < a.length - 1; j++) {
37                 if (a[j] > a[j + 1]) {
38                     t = a[j];
39                     a[j] = a[j + 1];
40                     a[j + 1] = t;
41                 }
42             }
43         }
44         return a;
45     }
46     
47     public boolean judge(int[] a) {
48         int[] b = {0,1,2,3,4,5,6,7,8,9};
49         for(int i = 0;i<b.length;i++) {
50             if(b[i] != a[i]) {
51                 return false;
52             }
53         }
54         return true;
55     }
56 
57 }

2. 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问前20个月每个月的兔子总数为多少?(9分)

 

 1 public class Test2 {
 2     
 3         public static void main(String[] args) {
 4             System.out.println("斐波那契数列:" );
 5             //方法一:变量
 6             int a=1 , b=1 , c=0;
 7             System.out.print( a +" " + b + " ");
 8             for(int i=2; i<20; i++){
 9                 c = a + b;
10                 a = b;
11                 b = c;
12                 System.out.print(c + " ");
13             }
14             System.out.println();
15 
16     }
17 
18 }

3. 按题目编程实现下列功能。(26分)

要求:按照题目所给变量名称、类型和方法名称进行编程,禁止修改;

    (1) 图书馆接口(Library)

        成员方法:

            borrow( ),借阅图书

            revert( ),归还图书

    (2) 图书类(Book)

        成员变量:

            图书名称(name)         String类型

            出版社(publisher)           String类型

        构造方法:

            通过形参初始化图书名称(name)和出版社(publisher)

        普通方法:

            1)设置getter和setter方法用于获取和设置类中name变量的值;

            2)重写equals方法,当且仅当书名(name)和出版社(publisher) 均相等时,即为同一本书。

            3)重写toString方法,返回书名(name)和出版社(publisher)的信息,样式如下:“书名:Java程序设计,出版社:清华大学出版社”

    (3) 馆藏图书类(CollectionBook),继承自Book类,实现Library接口

        成员变量:

            图书编号(bId)         String类型         

            是否借阅(isBorrow)    boolean类型     图书状态为已借阅时,值为true

        构造方法:

            调用父类构造方法初始化书名(name)和出版社(publisher)信息,然后初始化图书编号(bId)和线路图书书库(stacks)。

        普通方法:

            1)实现接口中的borrow方法

                如果图书状态为已借阅,则输出“对不起,该图书已借阅”,否则,修改该图书状态为已借阅,输出“借阅成功”

            2)实现接口中的revert方法

                如果图书状态是可借阅状态,输出“该图书已归还”,否则,修改图书借阅状态为未借阅,并输出“还书成功”;

    (4)通过main函数测试。

        1)创建两个CollecitonBook对象book1和book2,分别输出book1和book2,并调用其equals方法判断两个对象是否相等;

        2)通过键盘输入整数,输入0,则对book1进行借阅,输入1,则对book1进行归还操作。

  1 package PREV_55;
  2 
  3 import java.util.Scanner;
  4 
  5 public class Answer2 {
  6     public static void main(String[] args) {
  7         CollectionBook book1 = new CollectionBook("Java1234","人民邮电","1",true);
  8         CollectionBook book2 = new CollectionBook("Java5678","人民邮电","2",false);
  9         System.out.println(book1.equals(book2));
 10         Scanner scanner = new Scanner(System.in);
 11         int a = Integer.parseInt(scanner.nextLine());
 12         if(a == 0) {
 13             book1.borrow();
 14         }else if(a == 1) {
 15             book1.revert();
 16         }
 17     }
 18 }
 19 
 20 interface Library{
 21     void borrow();
 22     void revert();
 23 }
 24 
 25 class Book{
 26     private String name;
 27     private String publisher;
 28     
 29     public Book(String name, String publisher) {
 30         this.name = name;
 31         this.publisher = publisher;
 32     }
 33 
 34     public String getName() {
 35         return name;
 36     }
 37 
 38     public void setName(String name) {
 39         this.name = name;
 40     }
 41 
 42     public String getPublisher() {
 43         return publisher;
 44     }
 45 
 46     public void setPublisher(String publisher) {
 47         this.publisher = publisher;
 48     }
 49 
 50     @Override
 51     public int hashCode() {
 52         final int prime = 31;
 53         int result = 1;
 54         result = prime * result + ((name == null) ? 0 : name.hashCode());
 55         result = prime * result + ((publisher == null) ? 0 : publisher.hashCode());
 56         return result;
 57     }
 58 
 59     @Override
 60     public boolean equals(Object obj) {
 61         if (this == obj)
 62             return true;
 63         if (obj == null)
 64             return false;
 65         if (getClass() != obj.getClass())
 66             return false;
 67         Book other = (Book) obj;
 68         if (name == null) {
 69             if (other.name != null)
 70                 return false;
 71         } else if (!name.equals(other.name))
 72             return false;
 73         if (publisher == null) {
 74             if (other.publisher != null)
 75                 return false;
 76         } else if (!publisher.equals(other.publisher))
 77             return false;
 78         return true;
 79     }
 80 
 81     @Override
 82     public String toString() {
 83         return "书名:"+name+",出版社:"+publisher;
 84     }        
 85 }
 86 
 87 class CollectionBook extends Book implements Library{
 88     private String bId;
 89     private boolean isBorrow;
 90     
 91     public CollectionBook(String name, String publisher, String bId, boolean isBorrow) {
 92         super(name, publisher);
 93         this.bId = bId;
 94         this.isBorrow = isBorrow;
 95     }
 96 
 97     @Override
 98     public void borrow() {
 99         if(isBorrow) {
100             System.out.println("对不起,该图书已借阅");
101         }else {
102             System.out.println("借阅成功");
103         }
104         
105     }
106 
107     @Override
108     public void revert() {
109         if(isBorrow) {
110             System.out.println("还书成功");
111         }else {
112             System.out.println("该图书已归还");
113         }
114         
115     }    
116 }
posted @ 2018-11-14 22:43  张顺海  阅读(608)  评论(0编辑  收藏  举报