软件学院实训第一次考试

软件学院实训第一次考试,第1张

软件学院实训第一次考试 软件学院实训第一次考试 选择题

1.设x=1,y=2,z=3,则表达式y+=z–/++x值是( A)。

A、3

B、3.5

C、4

D、5

2.Java中,Byte数据类型的取值范围是( B)。

A、-127~128

B、-128~127

C、-255~255

D、-256~255

3.关于多态性的说法正确的是( D)。

A、子类中不能有和父类中同名的方法

B、多态性就是方法的名字可以一样,但返回的类型必须不一样

C、一个类中不能有同名的方法

D、子类中可以有和父类中同名且参数相同的方法

4.关于下面程序片段,结论正确的是(B )。

String a =”Java”;

String b=”Java”;

String x=”Ja”;

String y=”va”;

String c=x+y;

A、a和b不指向同一个实例对象,a和c指向同一个实例对象

B、a和b不指向同一个实例对象,a和c不指向同一个实例对象

C、a和b指向同一个实例对象,a和c不指向同一个实例对象

D、a和b指向同一个实例对象,a和c指向同一个实例对象

5.关于super的说法正确的是( C)。

A、可以用在main()方法中

B、是指当前对象的内存地址

C、是指当前对象的父类对象的内存地址

D、是指当前对象的父类

6.构造函数何时会被调用?( B)

A、抽象类中的方法都是抽象方法

B、创建对象时

C、可以出现在非抽象类中

D、是没有方法体的方法

7.不允许作为类及类成员的访问控制符是(C )

A、public

B、private

C、static

D、protected

8.执行下面代码后,描述正确的是( C)

int a,b,c;

a=1;

b=2;

c=(a+b > 3?a++:b++)

A、c的值是false

B、a的值是2,b的值是2

C、a的值是1,b的值是3

D、a的值是2,b的值是3

9.下面的方法重载正确的是( B)。

A、float fun1 (int a, float b){} float fun2(int a ,float b){}

B、float fun (float a){} float fun(float a, float b){}

C、float fun (int a, float b) {} float fun (int x, float y){}

D、int fun (int a, float b){} float fun(int a, float b){}

10.下面代码中,编译时会发生错误的是( A)。

class Parent{ } 

class Child extends Parent{ 

public static void main (String [] args){ 
    Parent p1 = new Child (); //第一行 
    Parent p2 = new Parent (); //第二行 
    Child c1 = new Child (); //第三行 
    Child c2 = new Parent (); //第四行 }
}


A、第四行

B、第三行

C、第二行

D、第一行

11.字符流和字节流的区别在于( D)。

A、前者带有缓冲,后者没有

B、前者是块读写,后者是字节读写

C、二者没有区别,可以互换使用

D、每次读写的字节数不同

12.Java中,关于HashMap类的描述,错误的是(D )。

A、HashMap使用键/值的形式保存数据

B、HashMap允许将null用作值

C、HashMap允许将null用作键

D、HashMap能够保证其中元素的顺序

13.关于继承的说法,正确的是(A )。

A、一个类只能有一个超类

B、一个类只能有一个子类

C、一个类可以有几个超类

D、超类的对象就是子类的对象

14.Java语言中,尝试对null对象进行 *** 作时,会产生(B )类型的异常。

A、EOFException

B、IOException

C、NullPointerException

D、ArithmeticException

15.编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( A)

A、class

B、exe

C、java

D、html

填空题

16.任何一个Java程序都默认引入一个包,这个包的名字是(java.lang)。

17.什么是多态(相同类型的对象调用相同的方法表现出不同的行为特征。)

18.输入输出流一般分为(字节输入流),(字节输出流),(字符输入流),(字符输出流)。

19.继承是做什么用的(复用),还可以通过什么方式实现(组合)

20.面向对象的三大特性有哪些?(封装)(继承)(多态)

21.FileInputStream是(字节流),BufferedWriter是(字符流),ObjectOutputStream是(对象流)

22.假设x=13,y=14,则表达式x%y!=0的值是(true),其数据类型是(boolean)

23.ArrayList集合的底层实现是一个类型的(Object),如果要使ArrayList集合只能存储一个数据类型,需要为这个集合添加(泛型)。

24.方法add(T p) 不能对对象p进行(set) *** 作,方法add(T

25.什么是封装(把一个类的信息封装到类的内部,不能让外部直接访问,如果外部需要访问,必须使用这个类提供的方法进行访问。)

26.在使用interface声明一个接口时,只可以使用(public)修饰符修饰该接口。

简答题

27.接口和抽象类的用法区别是什么?
(1)接口中只能包含抽象方法,不能包含普通方法;抽象类中可以包含普通方法。
(2)接口中不能定义静态方法;抽象类中可以定义静态方法。
(3)接口中只能定义静态常量属性,不能定义普通属性;抽象类里可以定义静态常量属性,也可以定义普通属性。
(4)接口不能包含构造器;抽象类可以包含构造器,抽象类里的构造器为了让其子类调用并完成初始化 *** 作。
(5)接口中不能包含初始化块,但抽象类可以包含初始化块。
(6)一个类最多只能有一个直接父类,包括抽象类;但是一个类可以实现多个接口。

28.请使用lambda表达式,获取dishs集合中Dish对象的calories小于400的Dish的名称,并按照calories进行正序排列。(请附上代码和运行结果,以图片的形式)

题目部分信息

dishs集合数据:
new Dish("salmon", 240);
new Dish("beef", 150);
new Dish("chicken", 450);
new Dish("fruit", 550);
new Dish("rice", 350);
new Dish("pizza", 250);
Dish类  部分
class Dish {
    private final String name;
    private final int calories;
}

答案

public class StreamTest {
    public static void main(String[] args) {
        List menus = Arrays.asList(
              new Dish("salmon", 240);
			  new Dish("beef", 150);
			  new Dish("chicken", 450);
			  new Dish("fruit", 550);
			  new Dish("rice", 350);
			  new Dish("pizza", 250););
         List lastMenus =	menus.stream()
                .filter(item->item.getCalories()<400)
                .sorted(Comparator.comparing(Dish::getCalories))
                .map(Dish::getName)
                .collect(Collectors.toList());
        lastMenus.forEach(System.out::println);
    }
}

29.请使用冒泡排序将数据(1,5,8,9,2,4,1,5,80,41,20)进行正序排序(请附上代码和运行结果,以图片的形式)

public class Sort {
    public static void main(String[] args) {
        int[] arr ={1,5,8,9,2,4,1,5,80,41,20};
        for (int i = 0; i < arr.length; i++) {
            boolean flag= true;
            for (int m =0;marr[m+1]){
                    int temp =arr[m];
                    arr[m]=arr[m+1];
                    arr[m+1]=temp;
                    flag=false;
                }
            }
            if (flag) break;
        }
        System.out.println(Arrays.toString(arr));
    }
}

30.抽象类和抽象方法有哪些规则?
(1)抽象类必须使用abstract修饰符来修饰,抽象方法必须使用abstract修饰符来修饰。
(2)抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例,即使抽象类里不包含抽象方法,这个抽象类也不能创建实例。
(3)抽象类可以包含属性、方法(普通方法和抽象方法)、构造器、初始化块、内部类、枚举类。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
(4)含有抽象方法的类(包括直接定义了一个抽象方法;继承了一个抽象父类,但没有完全实现父类包含的抽象方法;以及实现了一个接口(本书第六章详细介绍),但没有完全实现接口包含的抽象方法三种情况)只能被定义成抽象类。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5686020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存