java-SE部分知识点测试题

一、选择题(30分,每题2分) 1、java的编程思想是什么? (B)

A、 面向过程 B、 面向对象 C、 面向接口 D、 面向程序

2、如果我想编写java程序,那么我至少需要安装的环境是:(C)

A、 JVM B、 JRE C、 JDK D、idea

3、编译java程序的命令是:(B)

A、java B、javac C、cd D、class

4、java文件的扩展名是.java ,那么java文件经过编译之后的字节码文件的扩展名是:(D)

A、.java B、.txt C、.zip D、.class

5、一个java文件中可以定义多少个class?(D)

A、1个 B、2个 C、3个 D、任意个

6、下面定义定义变量的方式,正确的是:(D)

A、int goto = 10; B、String str = 123; C、byte b = 128; D、int num = 128;

7、下面选项中可以作为标识符的是:(A)

A、StudentName B、class C、1name D、name#

8、下面哪一个类型不属于java中的基本数据类型: (D)

A、int B、boolean C、char D、Double

9、java中int类型的变量占用多少个字节?(C)

A、1 B、2 C、4 D、8

10、已知byte a = 10; byte b = 20; byte c = a + b ; 问c的值是多少? (D)

A、10 B、20 C、30 D、编译错误

11、已知int a = 10; int b = 3; double c = a / b ; 问c的值是多少? (B)

A、3 B、3.0 C、3.33 D、3.3333333333…

12、String s = “”; int a = 10; int b = 20;问s+a+b 的值是多少?(D)

A、10 B、20 C、30 D、1020

13、读程序,问a,b,c的值分别是多少?(C)

int a = 10;
int b = 11;
int c = ++a >= b++ ? ++b : a++;

A、11 11 13 B、11 12 13 C、11 13 13 D、13 12 11

14、下列那个选项不是java中的结构 (D)

A、分支结构 B、顺序结构 C、循环结构 D、上下结构

15、读程序,问"aaa"打印的次数: (D)

for(int i= 0; i < 10; i++){
  System.out.println("aaa");
  if(i == 5){
    break;
  }
}

A、10 B、0 C、5 D、6

二、判断题(20分,每题2分) 1、调用数组的length()方法可以获取数组的长度 (错误)

2、栈用于存放程序运行过程当中所有的局部变量, 一个运行的Java程序从开始到结束会有多次变量的声明 (正确)

3、在一个类中可以定义:成员变量、成员方法、构造方法、构造块、静态块、内部类 (正确)

4、对象创建后,其成员变量是有默认值的,整数类型的默认是0 (正确)

5、方法的五大要素分别是:修饰词、返回值类型、方法名、参数列表、方法体 (正确)

6、方法的重写是指两个方法的方法名相同但是参数列表不同 (错误)

7、程序中可以使用this()调用当前类的无参构造器 (正确)

8、单例模式是说某个类的对象有且只有一个 (正确)

9、java的继承机制中,子类可以继承父类的所有内容,包括私有属性、

私有方法以及构造方法 (错误)

10、面向对象的三大特征:封装、继承、多态 (正确)

三、编程题(50分)

1、打印九九乘法表。(5分)


    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j+"*"+i+"="+j*i+"\t");
            }
            System.out.println();
        }
    }

2、猜数字游戏:随机生成数字n(1-100), 等待用户输入猜测数据, 根据用户的输入比较输出 
    猜大了,猜小了,猜对了, 如果用户猜对了就结束游戏 。(5分) 


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = (int) (Math.random() * 99 + 1);
        System.out.println(n);
        while (true){
            System.out.println("请输入您猜的数字(1-100):");
            int num = sc.nextInt();
            if (num>n){
                System.out.println("您猜大了......");
            }
            if (num<n){
                System.out.println("您猜小了......");
            }
            if (num==n){
                System.out.println("恭喜您,猜对了");
                break;
            }
        }
    }

 3、编写程序,求0-100之间的所有的素数;
  素数:只能被1及其本身整除的数(5分)


    public static void main(String[] args) {
        int index = 0;
        for (int i = 2; i <= 100; i++) {
            boolean flag = true;
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    flag = false;
                    break;
                }
            }
            if (flag == true){
                System.out.print(i+"\t");
                index++;
            }
        }
        System.out.println("\n"+"素数个数:"+index);
    }

 4、生成一个包含10元素的随机数组,元素的取值范围:10-90,并使用冒泡排序给该数组升序排列(10分)


    public static void main(String[] args) {
        int[] arr = new int[10];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int) (Math.random() * 80 + 10);
        }
        System.out.println(Arrays.toString(arr));
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-i-1; j++) {
                if (arr[j]>arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }

5、自已设计一个单例模式(10分)

  public class singleton {
    //    private static singleton instance = new singleton();
    private static singleton instance;//懒汉式

    private singleton() {
    }

    public static singleton getInstance() {
        if (instance == null)
            instance = new singleton();
        return instance;
    }
}

class singletonTest {
    public static void main(String[] args) {
        singleton instance1 = singleton.getInstance();
        singleton instance2 = singleton.getInstance();
        System.out.println(instance1 == instance2);//true
        System.out.println(instance1);
        System.out.println(instance2);
    }
}

6、编写程序,模拟验证码,要求:
  a、验证码由5个字符组成
  b、组成验证码的字符只能是字母或者数字
  c、字符不能重复(15分)

public static void main(String[] args) {
        String az = "abcdefghijklmnopqrstuvwxyz";
        String num = "012345789";
        String str = az + az.toUpperCase() + num;
        System.out.println(str);
        Set<Object> set = new HashSet<>();
        for (int i = 0; i < str.length(); i++) {
            while (set.size() < 5) {
                int index = (int) (Math.random() * str.length());
                set.add(str.charAt(index));
                break;
            }
        }
        String code = "";//验证码
        Iterator<Object> it = set.iterator();
        while (it.hasNext()) {
            code += it.next();
        }
        System.out.println("验证码:" + code);
    }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值