尚学堂卓越班入学考试试卷笔试(A卷)

一、填空题(共15个题目,总计15分)

  1. 安装JDK后,为了告诉计算机javac.exe和java.exe等执行文件的位置,需要配置的环境变量是_____________。

  2. Java提供了三种注释类型,分别是单行注释,多行注释和_____________。

  3. char 类型用来表示在Unicode编码表中的字符,长度是______个字节。

  4. _________是短路与运算符,如果左侧表达式的计算结果是false,右侧表达式将不再进行计算。

  5. _____________语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

  6. 基本数据类型的类型转换中,要将double类型的常量3.14159赋给为整数类型变量n的语句是_____________________。

  7. 执行Person p = new Person();语句后,将在___________中给Person对象分配空间,并在栈内存中给引用变量p分配空间,存放Person对象的引用。

  8. 使用static修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是类名.静态变量名和_______________________。

  9. 在一个类文件中的关键字package,import,class出现的可能顺序是______________________________。

  10. 异常是由Java应用程序抛出和处理的非严重错误,比如所需文件没有找到、零作除数,数组下标越界等,可分为两类:Checked异常和__________________。

  11. 数组在内存中分配连续的空间,数组的长度固定,一经分配无法改变,可以使用____________属性获取数组的长度。

  12. DateFormat类可以实现字符串和日期类型之间的格式转换,其中将日期类型转换为指定的字符串格式的方法名是______________。

  13. JDK1.5后提供了____________关键字,用以定义枚举类。枚举类是一种特殊的类,可以有自己的属性、方法和构造方法。

  14. 如果希望将自定义类Student的多个对象放入集合TreeSet,实现所有元素按照某个属性的自然顺序排列,则需要Student类实现__________________接口。

  15. 迭代器Iterator为集合而生,专门实现集合遍历,该接口有三个方法,分别是hasNext() 、____________、remove()。

二、选择题(共20个题目,总计20分)
1)以下选项中是对一个Java源文件进行正确编译的语句是( )(选择一项)

A.javac Test.java
B.javac Test
C.java Test
D.java Test.class

2)以下选项中属于合法的Java标识符的是( )。(选择两项)

A.public
B.3num
C.name
D.age

3)以下代码的执行结果是( )。(选择一项)

boolean m = true;
if(m = false){
    System.out.println("false");
}else{
    System.out.println("true");
}

A.false
B.true
C.编译错误
D.无结果

4)以下do-while循环代码的执行结果是( )。(选择一项)

int a=0;
int c=0;
do{
    --c;
    a=a-1;
}while(a>0);
System.out.println(a+"  "+c);

A.-1 -1
B.死循环
C.-1 -2
D.-1 0

5)while循环和do-while循环的区别是( )。(选择一项)

A.没有区别,这两个结构在任何情况下效果一样
B.while循环比do-while循环执行效率高
C.while循环是先循环后判断,所以循环体至少被执行一次
D.do-while循环是先循环后判断,所以循环体至少被执行一次

6)分析下面的Java多重循环代码片段,编译运行后的输出结果是( )。(选择一项)

for (int i = 0; i < 6; i++) {
    int k = ++i;
    while (k < 5) {
        System.out.print(i);
        break;
    }
}

A.024
B.02
C.123
D.13

7)以下关于方法调用的代码的执行结果是( )。(选择一项)

public class Test {
    public static void main(String args[]) {
        int i = 99;
        mb_operate(i);
        System.out.print(i + 100);
    }
    static void mb_operate(int i) {
        i += 100;
    }
}

A.99
B.199
C.299
D.99100

8)以下关于继承条件下构造方法执行过程的代码的执行结果是( )。(选择一项)

class Person {  
    public Person() {
        System.out.println("execute Person()");
    }
}
class Student extends Person {  
    public Student() {      
        System.out.println("execute Student() ");
    }   
}
class PostGraduate extends Student {    
    public PostGraduate() { 
        System.out.println("execute PostGraduate()");
    }   
}
public class TestInherit {
    public static void main(String[] args) {
        new PostGraduate();     
    }
}

A.execute Person()execute Student() execute PostGraduate()
B.execute PostGraduate()
C.execute PostGraduate()execute Student() execute Person()
D.没有结果输出

9)以下语句中关于Java构造方法的说法错误的是( )。(选择一项)

A.构造方法的作用是为创建对象进行初始化工作,比如给成员变量赋值
B.一个Java类可以没有构造方法,也可以提供1个或多个构造方法
C.构造方法与类同名,不能书写返回值类型
D.构造方法的第一条语句如果是super(),则可以省略,该语句作用是调用父类无参数的构造方法

10)以下关于this和super关键字的说法错误的是( )。(选择二项)
A.this关键字指向当前对象自身,super关键字指向当前对象的直接父类
B.在main方法中可以存在this或super关键字,但不能同时存在。
C.this和super关键字都可以访问成员属性,成员方法和构造方法
D.在一个类的构造方法中可以同时使用this和super来调用其他构造方法

11)以下选项中可以使成员变量m 被函数fun()直接访问的是( )。(选择一项)

    class Test {
    private int m;
    public static void fun() {      
        System.out.println(m);
    }
}

A.将private int m 改为protected int m
B.将private int m 改为 public int m
C.将private int m 改为 static int m
D.将private int m 改为 int m

12)Person类和Test类的代码如下所示,则代码中的错误语句是( )。(选择一项)

public class Person {
    public String name;
    public Person(String name) {
        this.name = name;
    }
}
public class Test {
    public static void main(String[] args) {
        final Person person = new Person("欧欧");
        person.name = "美美";
        person = new Person("亚亚");
    }
} 

A.final Person person = new Person("欧欧");
B.person.name = "美美";
C.person = new Person("亚亚");
D.没有错误

13)以下关于异常的代码的执行结果是( )。(选择一项)

public class Test {
    public static void main(String args[]) {
        try {
            System.out.println("try");          
            return;
        } catch(Exception e){
            System.out.println("catch");
        }finally {
            System.out.println("finally");
        }
    }
}

A.trycatchfinally
B.catchfinally
C.tryfinally
D.try

14)以下关于String类的代码的执行结果是( )。(选择一项)

public class Test2 {
    public static void main(String args[]) {
        String s1 = new String("bjsxt");
        String s2 = new String("bjsxt");
        if (s1 == s2)
            System.out.println("s1 == s2");
        if (s1.equals(s2))
            System.out.println("s1.equals(s2)");
    }
}

A.s1 == s2
B.s1.equals(s2)
C.s1 == s2s1.equals(s2)
D.以上都不对

15)以下关于StringBuffer类的代码的执行结果是( )。(选择一项)

    public class TestStringBuffer {
    public static void main(String args[]) {
        StringBuffer a = new StringBuffer("A");
        StringBuffer b = new StringBuffer("B");
        mb_operate(a, b);
        System.out.println(a + "." + b);
    } 
    static void mb_operate(StringBuffer x, StringBuffer y) {
        x.append(y);
        y = x;
    } 
}

A.A.B
B.A.A
C.AB.AB
D.AB.B

16)以下选项中能够正确创建一个数组的是( )。(选择二项)
A.float []f[] = new float[6][6];
B.float f[][] = new float[][];
C.float [6][]f = new float[6][6];
D.float [][]f = new float[6][];

17)以下选项中关于int和Integer的说法错误的是( )。(选择二项)
A.int是基本数据类型,Integer是int的包装类,是引用数据类型
B.int的默认值是0,Integer的默认值也是0
C.Integer可以封装了属性和方法提供更多的功能
D.Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能

18)以下选项中关于Java集合的说法错误的是( )。(选择二项)
A.List接口和Set接口是Collections接口有两个子接口
B.List接口中存放的元素具有有序,不唯一的特点
C.Set接口中存放的元素具有无序,不唯一的特点
D.Map接口存放的是映射信息,每个元素都是一个键值对

19)以下代码的执行结果是( )。(选择一项)

Set s=new HashSet();
s.add("abc");
s.add("abc");
s.add("abc");
s.add("abcd");
System.out.println(s.size());

A.1
B.2
C.3
D.4

20)下面集合类中属于非线程安全,且结构采用了哈希表的是( )。(选择一项)

A.Vector
B.ArrayList
C.HashMap
D.Hashtable

三、判断题(共15个题目,总计15分)
1.一个Java源文件中可以定义多个类,但是至多只能有一个public类。( )

2.Java的字节码文件的扩展名是class,是一种平台独立的非二进制文件。( )

3.^ 是异或位运算符,运算规则是如果两个操作数相同,结果是0,否则结果是1。( )

4.赋值运算符优先级别低于条件运算符,条件运算符优先级别低于算术运算符。( )

5.switch选择语句是多分支选择语句,只能处理等值条件判断的情况,表达式可以是int类型、char类型,但不能是double,float类型。( )

6.在多重循环中,外层循环变量变化一遍,内层循环变量要变化一次 。( )

7.程序调用自身的编程技巧称为递归。递归的特点是编程简单并且节省内存。( )

8.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。( )

9.使用public修饰的成员属性和方法可以被当前项目中所有包的所有类访问。( )

10.将子类对象赋给父类引用变量,称为向下转型,将无法访问子类特有的方法。( )

11.继承是多态的基础,没有继承就没有多态。( )

12.内部类作为外部类成员,权限修饰符和其他成员一样,可声明为private、默认、protected或public。( )

13.数组和集合中的元素可以是任何数据类型,包括基本类型和引用类型。( )

14.增强的for循环可以遍历数组和集合,语法简单 不需要知道数组的长度,不能实现与下标相关的操作。( )

15.LinkedHashMap是一种有序的HashMap,查询速度快,便于进行添加删除操作。( )

四、简答题(共6个题目,总计30分)

1.方法重载和方法重写(覆盖)的区别。(4分)

2.简述Java中的四个权限访问修饰符及其访问范围。(5分)

3.简述static关键字的作用。(5分)

4.接口和抽象类的联系和区别。(5分)

5.String、StringBuffer、StringBuilder区别与联系(5分)

6.Vector和ArrayList、ArrayList和LinkedList的区别和联系。(6分)

五、编码题(共3个题目,总计20分)

1.编写递归算法程序:一列数的规则如下: 0、1、1、2、3、5、8、13、21、34...... 求数列的第40位数是多少。(5分)

2.编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。(6分)

(1)编写一个圆类Circle,该类拥有:

一个成员变量
Radius(私有,浮点型);//存放圆的半径;
两个构造方法
Circle() //将半径设为0
Circle(double r ) //创建Circle对象时将半径初始化为r

三个成员方法
double getArea() //获取圆的面积
double getPerimeter() //获取圆的周长
void show() //将圆的关径、周长、面积输出到屏幕

(2) 编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:

一个成员变量
double hight (私有,浮点型); //圆柱体的高;
构造方法
Cylinder(double r,double h) //创建Cylinder对象时将半径初始化为r,高度初始化为h
成员方法
double getVolume() //获取圆柱体的体积
void showVolume() //将圆柱体的体积输出到屏幕

3.实现List和Map数据的转换。(9分)具体要求如下:

功能1:定义方法public void listToMap( ){ }将List中Student元素封装到Map中

1)使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息并加入List

2)遍历List,输出每个Student信息

3)将List中数据放入Map,使用Student的id属性作为key,使用Student对象信息作为value

4)遍历Map,输出每个Entry的key和value

功能2:定义方法public void mapToList( ){ }将Map中Student映射信息封装到List

1)创建实体类StudentEntry,可以存储Map中每个Entry的信息

2)使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息,并使用Student的id属性作为key,存入Map

3)创建List对象,每个元素类型是StudentEntry

4)将Map中每个Entry信息放入List对象

你可能感兴趣的:(尚学堂卓越班入学考试试卷笔试(A卷))