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

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

一、 单选题


1. int a=1; byte b=3; b=a+b; System.out.println(b); 以上代码执行的结果是( )


A、4


B、3


C、运行出错


D、编译时有错


[解析]:D   b是byte类型=int类型a+byte类型b  需求接收是byte传入int类型不匹配


2. 不能构成循环的语句是( )


A、for 语句


B、while 语句


C、switch 语句


D、do while 语句


[解析]:C   swith选择结构


3. 请问数组 int[] num = {1,-1,-56,56,12};,索引为 3 的元素值是?


A、1


B、-1


C、-56


D、56


[解析]:D   从开始


4. 有如下程序段:则表达式 a == b 与 s == s2 的结果分别是:( )。


20200906151320565.png


A、true 与 true


B、false 与 true


C、true 与 false


D、false 与 false


[解析]:B   前面有这道解析  


5. 下面代码中会报错的是第几行代码


20200906152320617.png


A、第一行


B、第二行


C、第三行


D、第四行


[解析]:C   c是byte类型=int类型i+byte类型b  需求接收是byte传入int类型不匹配


6. 下面数组定义错误的是()


A、int [] arr ={23,45,65,78,89};


B、int [] arr=new int[10] ;


C、int [] arr=new int[4]{3,4,5,6};


D、int [] arr={‘a’, 23 , 45 , 6};


[解析]:C   动态生命和静态声明不能同时都进行使用


7. 已知: int[] a =new int[100]; 请问以下给出的数组元素中会发生 ArrayIndexOutOfBoundsException 异常


A、a[0]


B、a[1]


C、a[99]


D、a[100]


[解析]:D 索引范围是0-99,100超出访问范围


8. 下面代码段中:运行结果是:( )


20200906152348517.png


A、String


B、不知道


C、编译出错


D、运行出错


[解析]:A 这个应该没什么问题


9. ArrayList 的初始化内容如下,下面可以删除 list 集合中所有的”b”的代码是()


20200906152417926.png


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 一般是逆序删除到0,但是吧这个出题人是知道0号索引不为"b"所以大于0.我都想选D...


10. 下列代码,输出结果是?


20200906152452221.png


A、李小璐


B、贾乃亮


C、高圆圆


D、赵又廷


[解析]:D   返回删除的字符串,索引位置也是从0开始


选B 我以为选项和上面添加顺序一样没细看


11. 在 Java 中,关于构造方法,下列说法错误的是:()


A、构造方法的名称必须与类名相同


B、构造方法可以是有参的


C、 构造方法不可以重载


D、构造方法没有返回值


[解析]:C 构造方法可以重载但是不能重写因为重写是将父类有的方法重新写,但是构造方法不能被继承.


12. 以下哪个是通过下标向 String 对象获取对应位置字符的方法( )


A、get()


B、char()


C、getChar()


D、charAt()


[解析]:D  


20200906194109577.png


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


20200906152558614.png


A、31


B、30


C、28


D、29


[解析]:A  ++x先运算变为11然后y--先用后算为20,相加31


14. 以下代码打印出的结果是


20200906152621161.png


A、itheima>>>1011;


B、info>>>1011;


C、info>>>21;


D、 itheima>>>21


[解析]D   这个题很容易迷惑,因为有个a++容易忽视,所以a=11>b=10走true,info为"itheima",+">>>"其实不是右移运算符就是个字符串,然后加起来后面的21即可.


15. 下面关于方法的参数说法不正确的是()


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


B、实际参数是方法调用时的参数;


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


D、方法调用时,实参的变量名必须和形参的变量名一致;


[解析]D 做过不解释


二、 多选题


16. 执行下列代码后,哪个结论是正确的 String[] s=new String[10];


A、s[9] 为 null;


B、s[10] 为 “”;


C、s[0] 为 未定义


D、 s.length 为 10


解析:AD


A_String[] s=new String[10];

 //定义一个字符串数组,10个元素,但是元素中没有赋值

 //对于数组中元素是String类型,如果没有赋值 元素的初始值都是null

B_ s[10] 下标越界

C_  s[0] 定义了,初始值为null

D_  s.length为10  正确  数组是调用属性 初始化多大就返回多大 和集合不一样 集合的话就要看里面存着多少


17. 下面语句会造成数组 new int[10]越界异常:ArrayIndexOutOfBoundsException 的是()


A、a[0]+=9;


B、a[9]=10;


C、for(int i=0;i<=10;i++){a[i]++;}


D、a[a.length]


解析:CD

A_  a[0]+=9; <___> a[0]=a[0]+9;

B_  a[9] =10;  将最后一个元素赋值为10

C_  i<=10 发生问题

    如果i的取值为10 ,出现 a[10]++; 报错

D_  a[a.length]

    a.length取值为10   a[10] 越界


18. 下列数据中,不能存入到 ArrayList 中的是?


A、int


B、String


C、char


D、double


18解析:ACD

ArrayList中存储数据的类型只能是引用类型

int char double都是属于基本类型


19. 以下是循环的语句是


A、for 语句


B、while 语句


C、do while 语句


D、switch 语句


解析:送分


20. 下面哪些函数是 public void aMethod(){...}的重载函数?()


A、void getSum(int a ){...}


B、public int aMethod(int a, float b){...}


C、public int aMethod (){...}


D、private float aMethod (int m){…}


解析:BD

重载方法的概念

  同一个类中,方法名一致,但是方法的参数的个数,类型或者顺序不一致


三、 代码题


21. 商场根据消费金额不同,折扣也不同,折扣的规则如下(P 代表消费的总金额):


P>=2000 7 折,1000<=P<2000 8 折,500<=P<1000 9.5 折,0<=P<500 不打折


需求:根据输入的消费金额,输出对应的折扣和折扣前后的金额.


输出格式如下:



20200906153040893.png

import java.util.Scanner;
public class Test1 {
    public static void main(String[] args) {
    //创建Scanner对象
    Scanner sc=new Scanner(System.in);
    // 输入提示信息 请输入消费金额
        System.out.println("请输入消费金额");
    int num=sc.nextInt();
    //定义一个变量,最终价格
    double m=0;
    //根据打折规则,计算最终价格,输出对应的提示消息
        if(num>=0&&num<500){
        System.out.println("不打折,金额是:"+num);
    }else if(num>500&&num<=1000){
        m=num*0.95;
        System.out.println("折扣95折,打折前金额:"+num+",打折后的金额是:"+m);
    }else if(num>1000&&num<=2000){
        m=num*0.8;
        System.out.println("折扣8折,打折前金额:"+num+",打折后的金额是:"+m);
    }else if(num>2000){
        m=num*0.7;
        System.out.println("折扣7折,打折前金额:"+num+",打折后的金额是:"+m);
    }else{
        System.out.println("录入金额错误");
    }
    }
}



22. 1.定义一个学生类 Student,在类中定义两个属性 name(姓名):String 类型,score(分数):


int 类型,并将其私有化,提供 get/set 方法


2.定义测试类,在测试类中创建三个 Student 对象,第一个对象的属性赋值为 小红,80;


第二个对象的属性赋值为 小明 ,90;第三个对象的属性赋值为 小花,95


3.在测试类中,定义集合,将创建的三个 Student 对象存储到集合中,遍历集合遍历集


合取出三个 Student 对象的分数,计算出三个学生分数的平均值,将结果输出到控制台上

public class Student {
    private String name;//姓名
    private int score;//分数
    // getter and setter
}
public class TestStudent {
    public static void main(String[] args) {
        Student s1=new Student();
        Student s2=new Student();
        Student s3=new Student();
        s1.setName("小红");
        s1.setScore(80);
        s2.setName("小明");
        s2.setScore(90);
        s3.setName("小花");
        s3.setScore(95);
        ArrayList<Student> list=new ArrayList<>();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        double avg=0;
        int sum=0;
        for(int i=0;i<list.size();i++){
            Student s=list.get(i);
            sum+=s.getScore();
        }
        avg=1.0*sum/list.size();
        System.out.println("三名学生的平均分是:"+avg);
    }
}

太简单了懒得写了.写完了,这份卷子比较简单.这种题就是记住,集合操作对象,对象操作方法,方法调用属性.


目录
相关文章
|
6月前
|
Java 数据库 数据安全/隐私保护
基于Java的公务员考试资料共享平台的设计与实现
基于Java的公务员考试资料共享平台的设计与实现
130 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初级
39 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
|
10天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
1天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
1天前
|
安全 Java 编译器
Java多线程编程的陷阱与最佳实践####
【10月更文挑战第29天】 本文深入探讨了Java多线程编程中的常见陷阱,如竞态条件、死锁、内存一致性错误等,并通过实例分析揭示了这些陷阱的成因。同时,文章也分享了一系列最佳实践,包括使用volatile关键字、原子类、线程安全集合以及并发框架(如java.util.concurrent包下的工具类),帮助开发者有效避免多线程编程中的问题,提升应用的稳定性和性能。 ####
15 1