考试3.26

一、选择题(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的值是多少? C      F  /D

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

11、已知int a = 10; int b = 3; double c = a / b ; 问c的值是多少?D     F   /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++;

    1
    2
    3

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;
  }
}

    1
    2
    3
    4
    5
    6

A、10 B、0 C、5 D、6
二、判断题(20分,每题2分)

1、调用数组的length()方法可以获取数组的长度 F

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

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

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

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

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

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

8、单例模式是说某个类的对象有且只有一个T

9、java的继承机制中,子类可以继承父类的所有内容,包括私有属性、私有方法以及构造方法T  /F       私有方法构造方法继承不了

10、面向对象的三大特征:封装、继承、多态T
三、编程题(50分)

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

    1

package com.qiku.yrc.test3_26;

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

        }
    }
}

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

   

package com.qiku.yrc.test3_26;

import java.util.Scanner;

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

    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);

        int a= (int)(Math.random()*99+1);
        for(;;) {
            System.out.print("请输入数字:");
            int b = scanner.nextInt();
            if (b==-1){
                System.out.println("欢迎下次光临!");
                break;
            }
            if (a > b) {
                System.out.println("猜小了再试试看");
            } else if (a<b){
                System.out.println("猜大了再试试看");}
            else {
                System.out.println("恭喜你!猜对了");
                break;
            }
        }
    }
}

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

   

package com.qiku.yrc.test3_26;

public class PrimeNum {
    //0-100所有素数
    public static void main(String[] args) {
         lable: for (int i = 2; i <=100; i++) {
            for (int j = 2; j <= Math.sqrt(i); j++) {
                if (i%j==0){
                    continue lable;
                }
                }
             System.out.println(i);
            }


        }
    }

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

   

package com.qiku.yrc.test3_26;

import java.util.Arrays;

public class MaoPAO {
    public static void main(String[] args) {
        //4、生成一个包含10元素的随机数组,元素的取值范围:10-90,并使用冒泡排序给该数组升序排列(10分)
        //
        //    1
        int[] arr = new int[10];
        for (int i = 0; i < arr.length; i++) {
            int num= (int)(Math.random()*10+90);
            arr[i]=num;
        }
        System.out.println(Arrays.toString(arr));
        for (int j = 0; j < arr.length; j++) {
            for (int k = 0; k < arr.length-j-1; k++) {
                if (arr[k]>arr[k+1]){
                    int temp= arr[k];
                    arr[k]=arr[k+1];
                    arr[k+1]=temp;
                }

            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

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

    1

package com.qiku.yrc.test3_26;

public class Singleton {
    private Singleton() {
    }
    private static final Singleton instance= new Singleton();//饿汉式

    public static Singleton getInstance() {
        return instance;
    }

    public static void main(String[] args) {
        Singleton s1= getInstance();
        Singleton s2 =getInstance();
        System.out.println(s1==s2);//true

    }

//懒汉式
    class MySingleton{
    private MySingleton() {
    }
    private static MySingleton instance = null;

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

}

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

package com.qiku.yrc.test3_26;

import java.util.Random;

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

public class RandomtStr {
    public static void main(String[] args) {
        System.out.println("随机验证码:"+randomCode());
    }
    public static String randomCode() {
        Random random = new Random();
        String str = "";
        for (int i = 0; i < 5; i++){
            int key = random.nextInt(3);
            switch (key){
                case 0:
                    int code1 = random.nextInt(10);//数字0-9
                    str += code1;
                    break;
                case 1:
                    char code2 = (char)(random.nextInt(26)+65);//
                    str += code2;
                    break;
                case 2:
                    char code3 = (char)(random.nextInt(26)+97);//
                    str += code3;

            }
        }
        return str;
    }


}

 二public static String getRanStr(){
        String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        Set<String> set = new HashSet<>();
        while (set.size()<5){
            int index = (int)(Math.random() * str.length());
            String s = str.charAt(index)+"";
            set.add(s);
        }
        return set.toString();
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值