Java考试常考基础题(Examination Questions Parsing04)

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: Java考试常考基础题(Examination Questions Parsing04)

一、 单选题


1. 下列关于方法定义说法错误的( )


A、定义在类中方法外面


B、返回值类型,必须要和 return 语句返回的类型相同,否则编译失败 。


C、必须是 public 类型的


D、不能在 return 后面写代码, return 意味着方法结束,所有后面的代码永远不会执行,属于无效代码。


解析:C 类中方法外没问题方法内嵌套,方法外离谱 其他都没啥问题


2. 有如下程序段:


则表达式 a == b 与 s == s2 的结果分别是:( )。


20200911222750161.png


A、true 与 true


B、false 与 true


C、true 与 false


D、false 与 false


解析:B 做过不解释 但是强调下a++ 加上去了,a为6 b还是5


3. 根据以下的代码得出的 a、b、c 和 d 的值为?


20200911223135866.png


A: 5,4,5,5


B: 6,5,6,5


C: 6,4,6,4


D: 6,4,6,5


解析: D        b为4 a为6  d为5   c为6


4. ArrayList 的初始化内容如下:

20200911223317968.png



下面可以删除 list 集合中所有的”b”的代码是()


A、 for (int i = 0; i < list.size (); i++) {


if (list.get (i).equals ("b")) { list.remove (i); } }


B、 for (int i = list.size ()-1; i > 0; i--) {


if (list.get (i).equals ("b")) { list.remove (i); } }


C、list.remove ("b");


D、以上的代码都不能成功删除 list 集合中所有的”b”;


解析:B 做过不解释  但是吧集合删除有个坑如果正序容易漏记得i--,或者倒序删除


5. 以下关于构造方法说法错误的是?()


A、方法名与类名相同


B、如果你提供了构造方法,系统还会提供默认构造方法


C、没有返回值类型,连 void 都没有


D、没有具体的返回值


解析:B  自己重载构造方法默认的无参就没了 需要自己写  一般就都写了就行了反正都是快捷键


6. 下面的代码执行完 x 的值是()


20200911223609808.png


A、35


B、36


C、34


D、16


解析: A   穿透 这里我说个东西就是default在最开始如果没有匹配到会一直穿透到底


7. 下列 test 类中的变量 r 的最后结果为


20200911223747815.png


A、31


B、30


C、28


D、29


解析:A  做过不解析 简单题  ++在前就先加就完事了,除非单独一句.


8. 以下哪两个基本数据类型占 4 个字节()


A、long,double


B、short,int


C、int,float


D、long,char


解析:C   记住就行了 short2 int4 long8 float4 double8 个字节


9.以下代码反转字符串逻辑正确的是( )


A :


String s = "12345";


for (int i = s.length(); i >= 0; i--) {


s+= s.charAt(i); }


System.out.println(s);


B :


String s = "12345";


for (int i = s.length()-1; i >= 0; i--) {


s+= s.charAt(i); }


System.out.println(s);


C :


String s = "12345";


String s2 = "";


for (int i = s.length()-1; i >= 0; i--) {


s2+= s.charAt(i);}


s = s2;


System.out.println(s);


D :


String s = "12345";


String s2 = "";


for (int i = 0; i < s.length(); i++) {


s2+= s.charAt(i); }


s = s2;


System.out.println(s);


解析:C  简单题


10. 下面变量名定义正确的是()


A、final


B、1var1


C、_var2


D、var3&


解析:C  简单题


二、 多选题(每题 4 分,共计 28 分;得分____)


11. 给定如下 java 代码,编译运行时,以下哪个语句的值为 true()

20200911224509303.png



A、s.equals(t);


B、 t.equals(c);


C、t.equals(e);


D、 t==c;


解析:AC   比较的是两字符串的内容是否相同


12. 以下表达式结果为 True 的有( )


A、


int a=8;


byte b=8;


System.out.println(a==b);


B、int a=97;


char b='a';


System.out.println(a==b);


C、


int a=10;


long b=10;


System.out.println(a==b);


D、


short a=127;


long b=127;


System.out.println(a==b);


解析:ABCD  基本数据类型比较自动类型转换ACD没问题 B在参与运算char会转为int字符aASCII码是97所以相同.


13. 以下选项中不能获取到下图所示字符串(包含空格)的有()


A、


Scanner sc = new Scanner(System.in);


System.out.println("请输入一个字符串:");


String x = sc.next ();


20210814231754157.png



B、


Scanner sc = new Scanner(System.in);


System.out.println("请输入一个字符串:");


String x = sc.nextInt ();


C、


Scanner sc = new Scanner(System.in);


System.out.println("请输入一个字符串:");


String x = sc.nextLine();


D、


Scanner sc = new Scanner(System.in);


System.out.println("请输入一个字符串:");


String x = sc.nextDouble ();


解析:A(X)BD   唯有nextLine不行,因为除了回车谁也不能让他停下接收,答案A可以接收


14. 现有 Animal 类 属性有 name 和 age,下列选项中属于它的构造方法的有( )


A.


public Animal() { }


B.


public Animals() { }


C.


public Animal(String name, int age) { this.name = name; this.age = age; }


D.


public void Animal(String name, int age) { this.name = name; this.age = age; }


解析:AC 构造方法没有返回值连void都没  同类名


15. 若只能修改一处,想要输出结果为 0,可以对哪一步进行修改( )


public static void main(String[] args) {


int [ ] arr = new int[1]; ①


arr[0] = 3;②


System.out.println( arr[1] ); ③


}


A、②处修改为 arr[3] = 0;


B、③处修改为 System.out.println(arr[0]-3) ;


C、①处修改为 int [ ] arr = new int[2];


D、②处修改为 arr[1] = 0;


解析: BC  A就没那么大边界  B优秀直接干为0  C再加一个默认值为0  D没有空间


16. 下列关于形参、实参说法正确的是()


A、形参是指在方法定义时的参数


B、实参是指在方法调用时的参数


C、方法调用时,形参实参之间的个数,顺序,类型不一定都需要一致


D、方法调用时,形参实参之间的个数,顺序,类型都需要一致


解析:ABD  解析 简单不解释


17.下面关于 String 的描述不正确的是()


A、toCharArray()是将此字符串转换成新的字符数组


B、equals()方法比较的是两个字符串的地址和内容


C、charAt()返回的是指定的索引处的 char 值


D、length 属性代表的是字符串的长度


解析:BD  字符串没有length属性,B的话对于我有点迷惑在我看到源码后确定是要比较地址但是,分装给我们使用就是比较值了.


三、 代码题(共计 42 分;得分____)


18.本题本质为代码分析题,下载试题附件(需要分析的代码图片),代码图片中共有 5 处


错误,红框标出的代码中存在错误,请找出具体的错误并给出修改方案。


20200911231847662.png


答案格式要求如下:


错误代码的行号,正确代码;


解析:


11,while (i<=5){    //因为i的值为1 要5个也就是1-5 a.length连循环体都进不去  这个较难想


15,int num=scanner.nextInt();  //这个简单


20,i++;  //这个必须要加要不死循环了


27,int nextInt = random.nextInt(10)+1;   //1-10 范围为[x,y]就要 (y-x+1)+1


31,if(arr[j]%nextInt==0){  //取余写成除了


19.本题本质为代码填空


public class wanxing {
    public static void main(String[] args) {
        //分别实例化四个Singer对象,
     Singer s1=new Singer("郭富城",55,"踢足球");
     Singer s2=new Singer("张学友",35,"游泳");
     Singer s3=new Singer("刘德华",25,"打篮球");
     Singer s4=new Singer("黎明",18,"击剑");
      //创建一个ArrayList集合,这个集合里面存储的是Singer类型,分别将上面的四个Singer对象添加到集合中
      ArrayList<Singer> list=new ArrayList<>();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
      //遍历集合,如果集合中对象的年龄大于30,将这个对象的爱好改成”打保龄球”
     ______________1________________
      //遍历集合,如果对象的年龄小于30,那么就把这个对象删除
     ______________2________________
       //打印修改后集合里面全部对象所有的属性信息到控制台。
       for(int i=0;i<list.size();i++){
        System.out.println(list.get(i).getName()+list.get(i).getAge()+list.get(i).getLike());
      }
    }
}
//定义"歌手"类,Singer
class Singer{
    // 成员属性: name (姓名):String类型,age (年龄):int类型,like (爱好):String类型,属性必须使用private修饰。
    // 成员方法:有参构造方法
    ______________3_________________________
    //3个属性的get/set方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getLike() {
        return like;
    }
    public void setLike(String like) {
        this.like = like;
    }
}


放入程序中运行通即为正确,此题较为简单.懒得解析了.直接放答案.

import java.util.ArrayList;
public class wanxing {
    public static void main(String[] args) {
        //分别实例化四个Singer对象,
     Singer s1=new Singer("郭富城",55,"踢足球");
     Singer s2=new Singer("张学友",35,"游泳");
     Singer s3=new Singer("刘德华",25,"打篮球");
     Singer s4=new Singer("黎明",18,"击剑");
      //创建一个ArrayList集合,这个集合里面存储的是Singer类型,分别将上面的四个Singer对象添加到集合中
      ArrayList<Singer> list =new ArrayList<>();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
      //遍历集合,如果集合中对象的年龄大于30,那么将这个对象的爱好改成”打保龄球”
      for(int i=0;i< list.size();i++){
            if (list.get(i).getAge()>30){
                list.get(i).setLike("打保龄球");
            }
        }
      //遍历集合,如果对象的年龄小于30,那么就把这个对象删除
      for(int i=0;i< list.size();i++){
            if (list.get(i).getAge()<30){
                list.remove(i);
                i--;
            }
        }
       //打印修改后集合里面全部对象所有的属性信息到控制台。
       for(int i=0;i< list.size();i++){
            System.out.println(list.get(i).getName()+list.get(i).getAge()+list.get(i).getLike());
      }
    }
}
//1.定义"歌手"类,Singer,包含以下成员:
//
class Singer{
    // 成员属性: name (姓名):String类型,age (年龄):int类型,like (爱好):String类型,属性使用private修饰。
    // 成员方法:  1).get/set方法    2)生成有参构造方法
    private  String name;
    private int age;
    private String like;
    public Singer(String name, int age, String like) {
        this.name = name;
        this.age = age;
        this.like = like;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getLike() {
        return like;
    }
    public void setLike(String like) {
        this.like = like;
    }
}


20.【代码题】


定义返回值类型为 int 类型,名为 getScore(int[] arr)的静态方法,方法内完成:获取指定数


组 arr 中大于平均值的元素的个数,并返回。


定义 main 方法,方法内完成:


1).定义一个长度为 5 的 int 数组 arr


2).使用随机数生成 5 个范围为 1-99 的数字存入 arr 中(包含 1 和 99),之后打印数组


3).传递 arr 调用 getScore(int[] arr)方法,获取方法返回值并在控制台打印输出该返回值


/*定义返回值类型为 int 类型,名为 getScore(int[] arr)的静态方法,方法内完成:获取指定数

组 arr 中大于平均值的元素的个数,并返回。

定义 main 方法,方法内完成:

1).定义一个长度为 5 的 int 数组 arr

2).使用随机数生成 5 个范围为 1-99 的数字存入 arr 中(包含 1 和 99),之后打印数组

3).传递 arr 调用 getScore(int[] arr)方法,获取方法返回值并在控制台打印输出该返回值*/

import java.util.Random;
public class Test {
    public static void main(String[] args) {
        int[] arr = new int[5];
        Random r = new Random();
        for (int i = 0; i < arr.length; i++) {
            int anInt = r.nextInt(99) + 1;
            arr[i] = anInt;
        }
        int score = getScore(arr);
        System.out.println(score);
    }
    public static int getScore(int[] arr) {
       int sum = 0;
        int avg = 0;
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        if (i==arr.length-1) {
            avg = sum / arr.length;
            for (int i1 = 0; i1 < arr.length; i1++) {
                if (arr[i1] > avg) {
                    count++;
                }
            }
        }
        }
        return count;
    }
}


最后一道题耗了我十分钟吧,我一直以为一个for循环可以,但是两件不同的事儿怎么能一个for循环如果有想法欢迎骚扰,睡觉了.答案没什么问题.


目录
相关文章
|
6月前
|
Java 数据库 数据安全/隐私保护
基于Java的公务员考试资料共享平台的设计与实现
基于Java的公务员考试资料共享平台的设计与实现
129 0
|
6月前
|
JavaScript Java 测试技术
基于JAVA语言的在线考试与学习交流网页平台附带文章和源代码设计说明文档ppt
基于JAVA语言的在线考试与学习交流网页平台附带文章和源代码设计说明文档ppt
36 1
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的java语言的考试信息报名系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的java语言的考试信息报名系统附带文章源码部署视频讲解等
51 0
|
6月前
|
XML Java 开发工具
阿里云大学考试Java高级题目及解析-java高级
阿里云大学考试Java高级题目及解析-java高级
43 0
|
6月前
|
SQL Java 开发工具
阿里云大学考试Java中级题目及解析-java中级
阿里云大学考试Java中级题目及解析-java中级
34 0
|
6月前
|
Java 开发工具 数据库
阿里云大学考试Java初级题目及解析-java初级
阿里云大学考试Java初级题目及解析-java初级
38 0
|
12月前
|
存储 前端开发 Java
Java Web框架,如Spring MVC,是一种用于构建Web应用程序的软件框架:学生考试Web应用程序
Java Web框架,如Spring MVC,是一种用于构建Web应用程序的软件框架。它们提供了一种结构化的方法,用于处理Web请求、生成动态内容和管理Web应用程序的组件。以下是关于Java Web框架和Spring MVC的详细解释,以及如何使用Spring MVC创建一个简单的Web应用程序的示例代码。
122 0
|
7天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
77 38
|
4天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
6天前
|
安全 Java
在 Java 中使用实现 Runnable 接口的方式创建线程
【10月更文挑战第22天】通过以上内容的介绍,相信你已经对在 Java 中如何使用实现 Runnable 接口的方式创建线程有了更深入的了解。在实际应用中,需要根据具体的需求和场景,合理选择线程创建方式,并注意线程安全、同步、通信等相关问题,以确保程序的正确性和稳定性。