2021-09-16 第三周周测解析 :81

习题链接:https://blog.csdn.net/zz2097831284/article/details/120334301

一、单选题(每题 2 分,共 40 分)

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

A./*我爱北京**/ 多行注释,是注释的一种

B.//我爱北京**/

C./**我爱北京**/ 文本注释,是javaDoc注释

D./*我爱北京***/

2.计算二进制 1100^1010 的结果是( C )

A.1000   B.1110      C.0110       D.0000

2021-09-16 第三周周测解析 :81

3.计算~36 的十进制结果是( D )

A.36 B.-36 C.37 D.-37 

  36: 00000000  00000000  00000000  00010100

~36:11111111  11111111  11111111  11101011  即-1-36=-37

4.二进制数(0011 1101)转换成十六进制数是( B )

 A.3C          B.3D         C.E1         D.F1  //0011为3,1101为13即D

5.在位运算中,操作数每左移一位,其结果相当于( A )

A.操作数乘以 2   //左移一位=*2

B.操作数除以 2   //右移一位=/2

C.操作数除以 4   //左移二位=*4

D.操作数乘以 4   //右移二位=/4

6.以下(  C  )表达式产生一个 0~7 之间(含 0,7)的随机整数

A、Math.floor(Math.random()*6) //向下取整5

B、Math.floor(Math.random()*7) //向下取整6

C、Math.floor(Math.random()*8)//向下取整7

D、Math.ceil(Math.random()*8) //向上取整9

7.SimpleDateFormat 类的哪个方法可以将 Date 转化成 String 对象?( D )。

A.equals B.toString C.parse D.format  //C是String转Date

8.String 类中的getBytes()方法的作用是(  C  )

 A.将整数变成字符串 //int->String用valueOf或””+拼接

B.将字符串变成字符数组 //字符是char,用toCharArray()

C.将字符串变成字节数组

D.获取字符串中字符的个数 //获取长度length()

9。下面程序的输出结果是(  A )

Class Demo{

public static void main(String[] args){

System.out.println(“abcd”.substring(1,3));//从1到3含头不含尾

}

}

A.bc

B.b

C.bcd

D.abcd

10.关于 Integer 类中的静态方法 parseInt()说法正确的是(  B  )

A.将小数转换为整数 //强转(int)

B.将数字格式的字符串转成整数 

C.parseInt 方法永远不会抛出异常 //非int格式字符串会异常

D.将单个字符转成整数 

11.将十进制数 100 转成二进制数用哪个方法 A

A.toBinaryString //十进制->二进制

B.toHexString //十进制->十六进制

 C.intValue

D.toOctalString

12.假设有 random.dat 文件,其内容为“International”

请看下列代码的输出结果是:B

RandomAccessFile raf = new RandomAccessFile("random.dat", "r");

raf.seek (5); //指针挪向下标5 Inter↓national

byte[] buf = new byte[8]; raf.read(buf);//数组长8

System.out.println(new String(buf, “utf-8”));//输出下标5开始8个,national

raf.close();

A.International  B.national  C.rnational  D.ational

13.阅读下面程序段:

BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream("bos.txt"));

bos.write( "hello".getBytes(“utf-8”)));//写完没刷新flush没关流close,还在缓冲区

假设bos.txt 不存在,运行该程序段后,文件bos.txt 的字节数为:  D

 A.5         B.10         C.4           D.0

14.请看下列代码:

public class Foo {

public static void main (String[]args) throws Exception {

String name = "tarena"; 

byte[] c = name.getBytes(); //将name转化为byte数组

File f = new File("company.txt");

FileOutputStream out = new FileOutputStream(f, true); //为true,从末尾开始写

out.write(c); //文件末尾+tarena

out.close();

}

}

假设文件 company.txt 中已存在一些内容,则关于上述代码的说法正确的是:( D )。

A.编译错误

B.程序可以通过编译,运行后文件 company.txt 没有任何改变

C.程序可以通过编译,运行后文件 company.txt 的长度变为 0

D.程序可以通过编译,运行后company.txt 文件末尾增加了字符串“tarena”

15.分析如下Java代码,如果想在控制台上输出"B类的test()方法",则1处应填入( A )。

class A {

public void test() {

System.out.println("A 类的 test()方法");

}

}

class B extends A {

public void test() {

System.out.println("B 类的test()方法");

}

public static void main(String args[]) {

// 1

}

}

A.A a = new B(); a.test(); //父类指向子类,用子类重写的test

B.A a = new A(); a.test();//父类指向父类,用父类的

C.B b = new A(); b.test();//子类指向父类,编译报错

D.B.test();//不是静态,不能直接调用

16.下面的程序输出结果是( C )。

public class A extends B {

int k = 20; //A的成员变量

public static void main(String args[]) { int i;

B c1 = new A();//父类指向子类,属性用自己的,方法用重写的

 i = c1.k;//用父类B的k=10

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

}

}

class B {

int k = 10; //B的成员变量

}

A.i=20 B.程序有编译错误 C.i=10 D.i=true

17.Java 语言中,String 类的 charAt ()方法返回的类型是( B )

A.int B.char C.double D.float

18.Java I/O 程序设计中,下列描述正确的是( A  )

A.OutputStream 用于写操作 

B.InputStream 用于写操作//Input是读read

C.I/O 库不支持对文件可读可写 API //File不能修改文件内容,IO可

D.InputStream 是一个接口 //是一个类

19.System.out.println("5" + 2);的输出结果应该是( A )。

A.52 //字符串拼接起来了

B.7

C.2

D.5

20.计算机中的流是( D )

A.流动的字节

B.流动的对象

C.流动的文件

D.流动的数据缓冲区

二、多选题(每题 3 分,共 15 分)

1.下列文档注释规范说明正确的是 ABCD

A.@author Lee Boynton 代表作者

B.@version 1.2.1 代表版本号

C.@see import java.util.Arrays;代表参见

D.@since JDK1.8 代表 JDK 版本

2.下列对 File 类的描述正确的是( CD )。

A.创建File 类对象,即在磁盘上创建了一个目录或文件//创建得createNewFile和mkdir

B.通过 File 类可以访问文件中的内容 //file访问目录,IO访问内容

C.File 类中的delete()方法,可以删除文件或目录,如果删除目录,只能删除空目录D.File 类中的 isDirectory()方法用于判断当前对象表示的是否是一个目录。

3.下列( AC )属于引用数据类型

A.String

B.char //BD是基本数据类型

C.用户自定义的 Student 类类型

D.int

4.下面的方法属于 StringBuffer 的是:( BCD )。

A.size

B.insert //插入,StringBuffer和Builder特有

C.delete //删除,StringBuffer和Builder特有

D.length //长度,大家都有

5.关键字 abstract 修饰类时,不可以和下列(ABD )关键字一起使用

A.final //修饰类不继承

B.private //修饰类不继承

C.public

D.static //修饰类不继承

三、简答题(每题 5 分,共 25 分)

1.double、Double 和 BigDecimal 的区别?

double是基本数据类型的浮点型,是浮点型的字面值,所占字节为8

Double是double对应的包装类,可以调用类的属性和方法

BigDecimal是为了解决浮点数计算精度丢失问题而产生的,当构造传参为double时会更加不精确,需要使用String的参数类型。

2.什么是可变参数?

可变参数:适用于传入多个相同数据类的的参数,写为:参数类型...参数名,实质上是传入一个数组,可以使用数组对应的方法。

当多个参数共同传递时,需要将可变参数放到最后。比如 int a,int...b;

3.什么是匿名内部类?什么是 lambda 表达式?二者有什么区别和联系?

匿名内部类:当抽象类或接口只使用一次,并且在创建对象后立刻能用到,此时不必定义子类,可以使用匿名内部类的方式,在创建对象的()后增加{},在大括号中重写抽象类/接口的抽象方法,也可以重写普通方法。

lambda表达式是JDK8后推出的新特性,可以简写。语法:(参数列表) ->{ 方法体 }

当是接口,且只有一个抽象方法时使用lambda表达式。

4.简述RandomAccessFile 与FileOutputStream 的异同

RAF是基于指针的随机读写形式,可以对文件任意位置进行局部的覆盖,但是文件流不行,由于java标准的IO是顺序读写形式,对于写write而言只能顺序先后写,不能回退,因此写操作的灵活性不如RAF。

但是后期基于流连接,我们可以串联若干高级流完成复杂的读写操作,这一点是RAF所不及的。

5.Date 和 Calendar 的区别?

① Date类是日期类,Calendar类是日历类,获取对象后输出内容不同。

② Calendar类是一个抽象类,无法直接创建对象,该类提供了一个静态方法getInstance(),用于返回Calendar的子类对象,该子类对象是根据当前默认时区和语言环境所获取的。Date可以直接创建对象。

③ Calendar类出现于Date类之后,在很大程度上替代了Date方法,该类将所有可能用到使用到的时间信息都封装为静态成员变量,方便使用。

四、编程题(每题 10 分,共 20 分)

1. 设计方法,传入文件夹路径,删除该文件夹

public static void delDirs (File dir){
        //1.获取目标数组中的所有子项
        File[] subs = dir.listFiles();
        //2.遍历数组,获取每个子项
        for (int i = 0; i < subs.length; i++) {
            //3.判断该子项是文件还是目录,如果是文件直接删除
            if(subs[i].isFile()){
                subs[i].delete();
            }else{//如果是目录,需要再获取遍历判断……
                delDirs(subs[i]);//递归,重复之前做的1 2 3
            }
        }
        dir.delete();//删除空目录
}

2. 分析以下需求,并用代码实现

通过键盘录入日期字符串,格式(2015-10-20),获取该字符串表示的日期是星期几,以及

这一年的第几天。

如输入:2015-10-20,输出"2015 年 10 月 20 日 是 星期二,是 2015 年的第 293 天"

	public static void method2() throws Exception {
		Scanner sc = new Scanner(System.in);
		String strin = sc.next();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date datein = sdf.parse(strin);
        Calendar cin = Calendar.getInstance();
        cin.setTime(datein);
        int weekday = cin.get(Calendar.DAY_OF_WEEK)-1;
        if(weekday != 0) {
        	System.out.println(strin+"是星期"+weekday);
        }else {
        	System.out.println(strin+"是星期日");
        }
        int date = cin.get(Calendar.DAY_OF_YEAR);
        System.out.println("是"+cin.get(Calendar.YEAR)+"年的第"+date+"天");  
	}

上一篇:video_website创建数据表


下一篇:video_website的使用——jdk安装和添加jdk环境变量