Java基础-每天进步一点点-第一期

Java程序设计 专栏收录该内容
2 篇文章 0 订阅

个人同名博文地址: https://blog.dhbxs.top/posts/45c3582a.html

选择题


  1. 以下哪个不是Java的原始数据类型( B )
    A、int B、Boolean C、float D、char

  2. 若需要定义一个类域或类方法,应使用哪种修饰符?( A )
    A、static B、package C、private D、public

  3. 给出下面代码,关于该程序以下哪个说法是正确的?( C )

    public class Person{
    	static int arr[] = new int[5];
    	public static void main(String a[]){
    	System.out.println(arr[0]); 
    	}
    }
    

    A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空

  4. 以下哪个关键字可以用来对对象加互斥锁?( B )
    A、transient B、synchronized C、 serialize D、static

  5. 以下代码段执行后的输出结果为( A )

    int x =3int y =10;
    System.out.println(y%x);
    

    A、 -1 B、2 C、1 D、3

  6. 有以下程序片段,下列哪个选项不能插入到行1。( D )

    public class Interesting{
     //do sth
    }
    

    A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ }

  7. 设有下面两个赋值语句:

    a = Integer.parseInt("12");
    b = Integer.valueOf("12").intValue();
    

    下述说法正确的是( D )。
    A、a是整数类型变量,b是整数类对象。
    B、a是整数类对象,b是整数类型变量。
    C、a和b都是整数类对象并且值相等。
    D、a和b都是整数类型变量并且值相等。

  8. 类Parent、Child定义如下:

    public class Parent
    { public float aFun(float a, float b) throws
     IOException { }
    }
    public class Child extends Parent{
    } 
    

    将以下哪种方法插入行6是不合法的。( A )
    A、float aFun(float a, float b){ }
    B、public int aFun(int a, int b)throws Exception{ }
    C、public float aFun(float p, float q){ }
    D、public int aFun(int a, int b)throws IOException{ }

  9. 在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。
    A、private B、protected C、private protected D、public

  10. 有以下方法的定义,请选择该方法的返回类型( D )。

    ReturnType method(byte x, double y){
    	return (short) x/y*2;
    }
    

    A、byte B、short C、int D、double

  11. 关于以下代码段的说法正确的是( D )

    String s="abcde";
    StringBuffer s1=new StringBuffer("abcde");
    if(s.equals(s1))
        s1=null;
    if(s1.equals(s))
        s=null;
    

    A、第1行编译错误,String的构造器必须明确调用
    B、第3行编译错误,因为s与s1有不同的类型
    C、编译成功,但执行时在第5行有异常抛出
    D、编译成功,过程中也没有异常抛出

  12. 下列程序段执行后的结果是( A )。

    String s = new String("abcdefg");
    for (int i=0; i<s.length(); i+=2){
    System.out.print(s.charAt(i));
    }
    

    A) aceg B) ACEG C) abcdefg D) ab

  13. 有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( A ).
    A) 2 7 8 12 35 B) 12 35 8 7 2
    C) 35 12 8 7 2 D) 8 7 12 35 2

  14. 下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( C )。

    File f = new File(填代码处);
    file =new FileReader(f);
    in=new BufferedReader(file);
    

    A) “/1.txt” B) “…/my/1.txt” C) “c:\\my\\1.txt” D) “c:\ my\1.txt”

  15. 应用程序的main方法中有以下语句,则输出的结果是 ( A )。

    String s1=new String("abc");
    String s2=new String("abc");
    boolean b1=s1.equals(s2);
    boolean b2=(s1==s2);
    System.out.print(b1+" "+b2);
    

    A)true false B) false true C) true true D)false false

  16. 应用程序的main方法中有以下语句,则输出的结果是 ( B )。

    Hashtable hashtable=new Hashtable();
    hashtable.put("x","12345");
    hashtable.put("y","67890");
    hashtable.put("a","abcde");
    System.out.println(hashtable.get("a"));
    

    A) a B) abcde C) 12345 D) 67890

  17. 下面程序段执行后b的值是( B )。

    Integer integ =new Integer(9)boolean b = integ instanceof Object;
    

    A) 9 B) true C) 1 D) false

  18. 应用程序Test.java的源程序如下,在命令行键入:
    java Test aaa bb c
    回车后输出的结果是 ( D )。

    public class Test {
        public static void main(String args[]) {
            int k1=args.length;
            int k2=args[1].length();
            System.out.print(k1+" "+k2);
        }
    }
    

    A) 3 2 B)1 2 C) 1 3 D) 3 3

  19. 应用程序的main方法中有以下语句,则输出的结果是 ( )。

    int b[][]={{1}, {2,2}, {2,2,2}};
    int sum=0;
    for(int i=0;i<b.length;i++) {
        for(int j=0;j<b[i].length;j++) {
        sum*=b[i][j];
        }
    }
    System.out.println("sum=" + sum);
    

    A) 32 B)11 C) 2 D) 3 执行结果是0

  20. 应用程序的main方法中有以下语句,则执行后输出的结果是 ( D )。

    int[] x={125,21,5,168,98};
    int max=x[0];
    for(int i=1;i<x.length;i++){
        if(x[i]> max)
        	max =x[i];
    }
    System.out.println(max);
    

    A) 125 B) 5 C) 98 D) 168

  21. 程序Test.java编译运行后输出的结果是( A )。

    public class Test {
        
        String s1="java";
        
        public static void main(String args[]) {
        
        int z=2;
        
        Test t=new Test();
        
        System.out.println(t.s1+z);
        
        }
     }
    

    A) java2 B)2 C)没有输出结果 D)java

  22. 应用程序的main方法中有以下语句,则输出的结果是 ( A )。

    String s1="0.5", s2="12";
    double x=Double.parseDouble(s1);
    
    int y=Integer.parseInt(s2);
    
    System.out.println(x+y);
    

    A) 12.5 B) 120.5 C) 12 D) “12.5”

  23. 以下哪个方法用于定义线程的执行体? ( C )
    A、 start() B、init() C、run() D、synchronized()

  24. 有如下代码段:

    { if(unsafe()){//do something...}
    else if(safe()){//do the other...}
    }
    

    其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( D )
    A、public IOException methodName()
    B、public void methodName()
    C、public void methodName() throw IOException
    D、public void methodName() throws IOException

  25. 编译并运行以下程序,以下描述哪个选项是正确的( D )

     class A{
     protected boolean equals(){
     	return super.equals();}
     }
    

    A、编译通过运行无异常 B、编译通过但运行时出错
    C、行2出错,不能成功编译 D、不能成功编译,行3出错

  26. 有语句String s=“hello world”; ,以下操作哪个是不合法的?( B )
    A、int i=s.length(); B、s>>>=3; C、String ts=s.trim(); D、String t=s+"!";

  27. 给出如下代码:

    
    class Test{
    
      private int m;
    
      public static void fun() {
    
         // some code\...\
    
       }
    
    }
    

    如何使成员变量m 被函数fun()直接访问?( C )
    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

  28. Java application中的主类需包含main方法,main方法的返回类型是什么?( void )

  29. 设有下面两个赋值语句:

    a = Integer.parseInt("123");
    b = Integer.valueOf("123").intValue();
    

    下述说法正确的是( D )。
    A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。
    C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。

  30. 关于以下application的说明,正确的是( C )。

    class StaticStuff{
     static int x;
     static { x+=5}
     public static void main(String args[ ]{
     System.out.println("x=" + x);
     }
     static { x/=5;}
    }
    

    A、4行与9行不能通过编译,因为缺少方法名和返回类型
    B、9行不能通过编译,因为只能有一个静态初始化器
    C、编译通过,执行结果为:x=1
    D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化

  31. 有程序片段如下,以下哪个表示式的结果为true?( B )

    Float s=new Float(0.1f);
    Float t=new Float(0.1f);
    Double u=new Double(0.1);
    

    A、s==tB、s.equals(t) C、u.equals(s) D、t.equals(u)

编程基础题


  1. 编写一个Java程序在屏幕上输出"你好!"。

    package exam;
     /**
     * @ClassName Exam1
       
     * @Description TODO
       
     * @Author 17235
       
     * @Date 2020/6/3 下午 1:22
       
     * @Version 1.0
       
    
     **/
    
    public class Exam1 {
    
        public static void main(String[] args) {
           
            System.out.println("你好!");
           
        }
    
    }
    
  2. 编写一个Java程序,用if-else语句判断某年份是否为闰年。

    package exam;
       import java.util.Scanner;
       /**
       
     * @ClassName exam2
        
        * @Description TODO
        
        * @Author 17235
        
        * @Date 2020/6/3 下午 1:32
        
        * @Version 1.0
        
        **/
       
    public class Exam2 {
       
        public static void main(String[] args) {
        
               Scanner in = new Scanner(System.in);
        
               System.out.println("请输入年份:");
        
               int year = in.nextInt();
        
               if (year % 4 == 0 && year % 100 != 0){
        
                   System.out.println(year + "是闰年");
        
               }else if (year % 400 == 0){
        
                   System.out.println(year + "是闰年");
        
               }else{
        
                   System.out.println(year + "不是闰年");
        
               }
        
           }
       
    }
    
  3. 编写一个Java程序在屏幕上输出1!+2!+3!+…+10!的和。(p64,例2-2)

    package exam;
    
    /**
    
     * @ClassName Exam3
       
     * @Description TODO
       
     * @Author 17235
       
     * @Date 2020/6/3 下午 1:42
       
     * @Version 1.0
       
    
     **/
    
    public class Exam3 {
    
        public static int factorial(int n){
           
            int multiply = 1;
           
            for (int i = n; i > 0; i--){
           
                multiply *= i;
           
            }
           
            return multiply;
           
        }
           
        public static void main(String[] args) {
           
            int sum = 0;
           
            for (int i = 10; i > 0; i--){
           
                sum += factorial(i);
           
            }
           
            System.out.println(sum);
           
        }
    
    }
    
  4. 定义一个表示学生信息的类Student,要求如下:

    (1)类Student的成员变量:
    ​ sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。
    (2)类Student带参数的构造方法:
    ​ 在构造方法中通过形参完成对成员变量的赋值操作。
    (3)类Student的方法成员:
    ​ getNo():获得学号;
    ​ getName():获得姓名;
    ​ getSex():获得性别;
    ​ getAge()获得年龄;
    ​ getJava():获得Java 课程成绩
    ​ 根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

     package exam4;
        /**
        
      * @ClassName Student
         
         * @Description TODO
         
         * @Author 17235
         
         * @Date 2020/6/3 下午 2:01
         
         * @Version 1.0
         
         **/
        
     public class Student {
        
         private String sNo;
         
            private String sName;
         
            private String sSex;
         
            private int sAge;
         
            private int sJava;
         
            public String getsNo() {
         
                return sNo;
         
            }
         
            public void setsNo(String sNo) {
         
                this.sNo = sNo;
         
            }
         
            public String getsName() {
         
                return sName;
         
            }
         
            public void setsName(String sName) {
         
                this.sName = sName;
         
            }
         
            public String getsSex() {
         
                return sSex;
         
            }
         
            public void setsSex(String sSex) {
         
                this.sSex = sSex;
         
            }
         
            public int getsAge() {
         
                return sAge;
         
            }
         
            public void setsAge(int sAge) {
         
                this.sAge = sAge;
         
            }
         
            public int getsJava() {
         
                return sJava;
         
            }
         
            public void setsJava(int sJava) {
         
                this.sJava = sJava;
         
            }
         
            public void setAll(String sNo, String sName, String sSex, int sAge, int sJava) {
         
                setsNo(sNo);
         
                setsName(sName);
         
                setsSex(sSex);
         
                setsAge(sAge);
         
                setsJava(sJava);
         
            }
         
            @Override
         
            public String toString() {
         
                return "{" +
         
                        "学号'" + sNo + '\'' +
         
                        ", 姓名'" + sName + '\'' +
         
                        ", 性别'" + sSex + '\'' +
         
                        ", 年龄" + sAge +
         
                        ", Java成绩" + sJava +
         
                        '}';
         
            }
         
            public static int[] bubbleSort(int[] array) {
         
                if (array.length == 0) {
         
                    return array;
         
                }
         
                for (int i = 0; i < array.length; i++) {
         
                    for (int j = 0; j < array.length - 1 - i; j++) {
         
                        if (array[j + 1] < array[j]) {
         
                            int temp = array[j + 1];
         
                            array[j + 1] = array[j];
         
                            array[j] = temp;
         
                        }
         
                    }
         
                }
         
                return array;
         
            }
         
            public static void main(String[] args) {
         
                Student s1 = new Student();
         
                Student s2 = new Student();
         
                Student s3 = new Student();
         
                Student s4 = new Student();
         
                Student s5 = new Student();
        
             s1.setAll("001", "甲", "男", 18, 100);
         
                s2.setAll("002", "乙", "女", 19, 99);
         
                s3.setAll("003", "丙", "男", 18, 98);
         
                s4.setAll("004", "丁", "女", 19, 99);
         
                s5.setAll("005", "戊", "男", 18, 100);
        
             System.out.println(s1);
         
                System.out.println(s2);
         
                System.out.println(s3);
         
                System.out.println(s4);
         
                System.out.println(s5);
         
                double total = 5.0;
         
                double avg = (s1.getsJava() + s2.getsJava() + s3.getsJava() + s4.getsJava() + s5.getsJava()) / total;
         
                System.out.printf("平均成绩: %.2f\n", avg);
                int[] score = {s1.getsJava(), s2.getsJava(), s3.getsJava(), s4.getsJava(), s5.getsJava()};
                int[] sortScore = bubbleSort(score);;
                System.out.println("Java最高成绩:" + sortScore[sortScore.length - 1] + " Java最低成绩:" + sortScore[0]);
            }
        
     }
    
  5. 题目:判断101-200之间有多少个素数,并输出所有素数。

    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。

        package exam;
        /**
        
      * @ClassName Exam5
         
         * @Description TODO
         
         * @Author 17235
         
         * @Date 2020/6/3 下午 2:43
         
         * @Version 1.0
         
         **/
        
     public class Exam5 {
        
         public static void main(String[] args) {
         
                boolean isPrime = true;
         
                int total = 0;
         
                for (int i = 101; i <= 200; i++){
         
                    double temp = Math.sqrt(i);
         
                    for (int j = 2; j < temp; j++){
         
                        if (i % j == 0){
         
                            isPrime = false;
         
                            break;
         
                        }
         
                    }
         
                    if (isPrime){
         
                        System.out.println(i);
         
                        total++;
         
                    }
         
                    isPrime = true;
         
                }
         
                System.out.println("共有素数" + total + "个");
         
            }
        
     }
    
  6. 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

    package exam;
    /**
    
        * @ClassName Exam6
    
        * @Description TODO
    
        * @Author 17235
    
        * @Date 2020/6/3 下午 3:10
    
        * @Version 1.0
    
        **/
    
    public class Exam6 {
    
        public static void main(String[] args) {
    
            int min = 100;
    
            int max = 1000;
    
            for (int i = min; i < max; i++){
    
                int ge = i % 10;
    
                int shi = i / 10 % 10;
    
                int bai = i / 100;
    
                if (Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3) == i){
    
                    System.out.println(i);
    
                }
            }
    
        }
    
    }
    
  7. 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

    在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。

    package exam;
    import java.util.Scanner;
    /**
    
     * @ClassName Exam7
     
     * @Description TODO
     
     * @Author 17235
     
     * @Date 2020/6/3 下午 3:22
     
     * @Version 1.0
     
     **/
    
    public class Exam7 {
        public static int max(int a,int b){
     
            return (a > b)?a:b;
     
        }
    
        public static int min(int a,int b){
     
            return (a < b)?a:b;
     
        }
     
        public static void main(String[] args) {
     
            Scanner in = new Scanner(System.in);
     
            System.out.println("请输入第一个正整数:");
     
            int n1 = in.nextInt();
     
            System.out.println("请输入第二个正整数:");
     
            int n2 = in.nextInt();
     
            int Multiply = n1 * n2;
     
            int min = min(n1,n2);
     
            int max = max(n1,n2);
    
            int greatestCommonDivisor;
     
            int leastCommonMultiple;
            while (min != 0){
     
                int temp = max % min;
     
                max = min;
     
                min = temp;
     
            }
     
            greatestCommonDivisor = max;
     
            System.out.println("最大公约数:" + greatestCommonDivisor);
     
            leastCommonMultiple = Multiply / greatestCommonDivisor;
     
            System.out.println("最小公倍数:" + leastCommonMultiple);
     
        }
    
    }
    
  8. 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    package exam;
       import java.util.Scanner;
       /**
       
     * @ClassName Exam8
        
        * @Description TODO
        
        * @Author 17235
        
        * @Date 2020/6/3 下午 4:59
        
        * @Version 1.0
        
        **/
       public class Exam8 {
       
        public static void scanStatistics(String a) {
        
               char[] array = a.toCharArray();
        
               //字母个数
        
               int letter = 0;
        
               //空格个数
        
               int space = 0;
        
               //数字个数
        
               int num = 0;
        
               //其他字符
        
               int character = 0;
               for (int i = 0; i < array.length; i++) {
        
                   array[i] = a.charAt(i);
        
                   if (63 <= array[i] && array[i] <= 90 || 97 <= array[i] && array[i] <= 122) {
        
                       letter++;
        
                   } else if (48 <= array[i] && array[i] <= 57) {
        
                       num++;
        
                   } else if (array[i] == 32) {
        
                       space++;
        
                   } else {
        
                       character++;
        
                   }
        
               }
        
               System.out.print("英文字母个数:" + letter  + " 空格个数:" + space + " 数字个数:" + num + " 其他字符个数:" + character);
        
           }
           public static void main(String[] args) {
        
               Scanner in = new Scanner(System.in);
        
               System.out.println("请输入一串字符:");
        
               String a = in.nextLine();
        
               scanStatistics(a);
        
           }
       
    }
    
  • 0
    点赞
  • 1
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值