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

 想学习架构师构建流程请跳转:Java架构师系统架构设计

笔者网上搜集的试题,自己做一下,然后出个解析.答案不一定对,但是有理有据,欢迎指出不同见解.

一、 单选题

1. 以下选项中哪个是表示进入目录的 DOS 命令

A、cmd   B、dir   C、cd   D、cls

[解析]:C   这没什么好说的,cmd是程序打开命令窗口,dir目录内容查看,cls清空屏幕

2. 不论循环条件判断的结果是什么()循环至少执行一次。

A、while B、do while C、for D、以上都不是

[解析]:B   最基础的东西,这个不必要细说

3. 请问数组 int[] num={2,14,-9,31,24};索引为 2 的元素是

A、14 B、-9 C、2 D、31

[解析]:B   索引是从0开始,num[0]就是访问第一个数组值,因为计算机是二进制补码最后运行从0开始.定义的话是几就是几个.

4. 以下 java 代码,当 x=2 时,运行结果是( )

A、没有输出任何结果 B、输出结果为 3 C、输出结果为 3 和 4 D、输出结果为 1、3 和 4

[解析]:C   因为没有break就会穿透,继续向下运行到2-3-4然后结束,如果有default还会向下穿透.

运行效果

5. 以下代码,打印结果正确的是( ):

A、30

B、20

C、16

D、2

[解析]:A   这个题主要就是考察取余运算,只有0 2 4 6 8 10可以让a的值叠起来,然后加起来为30.

6. 以下哪项不是基本数据类型()

A、int

B、char

C、Boolean

D、float

[解析]:C   Boolean大写字母包装类,细节不解释,详情找我博文即可.

7. 以下变量声明不正确的是

A、int _a = 10;

B、int 0x = 1996;

C、String string = "itheima";

D、String S1994 = "String";

[解析]:C   变量的命名规则数字不能开头,大小驼峰是江湖规矩,但是实际都能用.

8. 下面代码运行的结果是

A、编译失败

B、[123]

C、[123,abc]

D、[abc]

[解析]:A   Error: java: 不兼容的类型: int无法转换为java.lang.String因为泛型以限定数据类型为String,泛型只能存放引用数据类型.

9. 下面定义数组错误的是:

A、int[] arr=new int[]{1,2,3};

B、int[] arr={1,2,3};

C、int[] arr=new int[3];

D、int arr={1,2,3};

[解析]:D  D选项定义的就不是数组,但是强调的是动态静态不能一起初始化.

10. 下面的方法重载,正确的是()

A、int fun (int a , float b){...}    float fun (int a , float b){...}

B、float fun (float a){...}    float fun (float a , float b){...}

C、float fun (int a , float b){...}    float fun (int x , float y){...}

D、float fun1 (int a , float b){...}    float fun2 (int a , float b){...}

[解析]:B   方法重载也就是方法名相同,同一个名字做不同的事儿为了减少各种命名记忆,其中不同的参数值,不同类型的参数都是重载和返回值类型无关.

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

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

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

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

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

[解析]:D   变量名无所谓,我用你的方法只需知道你要什么数据类型要几个,我不管你起了什么形参变量名字,如果要知道命名一样方法也没那么便捷了,全是记忆的东西.

12. 在 java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同, 这种面向对象的特性称为

A、隐藏

B、重写

C、重载

D、不支持此特性

[解析]: B   面向对象特性明显是重载,重写就是对已有的方法进行继续添加的过程,字面意思但是实际是一般子类中把父类本身有的方法重新写一遍.

13. 下面关于 Java 中类与对象描述错误的是

A、对象是类的一个实例

B、类是所有事物的模板,用事物属性特征和行为来描述所有事物

C、类是对象的模板,对象是类的实体

D、对象是一类事物的具体体现,必然具备该类事物的属性和行为

[解析]: D   这个题有点绕,先选个D,ABC肯定没有错的,这个必然,就比如说我动物类,里面有行为是奔跑,但是有的动物也是动物类中但是他只能爬行,无法使用奔跑行为,也不是必然具备.

   类:是一个抽象的事务,是一个模板,创建类创建对象

   对象:是类的一个实例

   Student类代表是 学生这个群体模板

   Teacher类代表是 老师这个群体模板

    类仅仅是代表某一类事务模板,而不是所有事务

这样说也有道理.类确实不是所有事物的模板.

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

A、true 与 true

B、false 与 true

C、true 与 false

D、false 与 false

[解析]: B   因为a==b因为a变为了6,b给的是5,s==s2两个地址一样所以相同.

15. 下面哪条语句定义了 5 个元素的数组

A、int [] a={22,23,24,25,12};

B、int a []=new int(5);

C、int [5] array;

D、int [] arr;

[解析]:A  BCD错误离谱,知道定义就能做出来

二、 多选题

16. 定义及初始化变量的格式包括哪三个要素

A、数据类型

B、数据值

C、字符串

D、变量名

[解析]:ABD   字符串就是来搞笑的

17. 在 java 中,关于数组描述正确的是( )

A、数组中的索引从 1 开始

B、存储在数组当中的数据都属于同一数据类型

C、通过数组名.length()能获得数组的长度

D、数组的最大索引是数组的长度减 1

[解析]:BCD   A错误从0开始索引 

C错误当时没看清楚,数组只能调用属性长度

18. 下列关于成员变量和局部变量的区别哪些是描述正确的?

A、作用范围不一样:成员变量在类中,局部变量在方法中

B、初始化值的不同:成员变量和局部变量都没有默认值,必须先定义赋值然后使用

C、在类中的位置不同:成员变量在类中方法外,局部变量在方法中或方法声明上

D、生命周期不同:成员变量随着对象创建而存在,随着对象消失而消失,局部变量:随着方法的调用而存

在,随着方法的调用完毕而消失

[解析]:ACD   B变量从定义都有默认值.

19. 以下关于运算符说法正确的有( )

A、&& 短路与,符号左边是 false,右边不再运算

B、+ 可以用来做加法运算,也可以当连接符

C、% 表示取整,/ 表示取余

D、i++就是先变量参与操作,之后变量做自增 ,++i 先变量做自增 ,之后变量参与操作

[解析]:ABD   C%区域/除法

20. 下面程序的运行结果是()

A、60

B、30

C、0

D、null

E、运行时出错

F、 “”

G、编译时出错

[解析]:BC   程序长度的30,因为数组没有赋值默认值全为0

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

21.随机生成 8 1-10 之间的数(包括 1 10),将生成的数放到数组中,计算数组元素的平均值,并将结果打印到控制台上.

package com.test;
//随机生成 8 个 1-10 之间的数(包括 1 和 10)
//将生成的数放到数组中,计算数组元素的平均值,并将结果打印到控制台上.
//导包

import java.util.Random;

public class demo1 {
    public static void main(String[] args) {
        Random r=new Random();
        int[] arr=new int[8];
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = r.nextInt(10)+1;//索引千万别加int,纯属闲的没事儿干 定义加用就别加了
            sum+=arr[i];

        }
        System.out.println(sum/arr.length);
    }
}

22.按顺序完成以下要求:

a. 创建一个电车类(Tram),属性有:品牌(String 类型)、价格(int 类型)、已

行驶距离(int 类型)生成对应的 set/get 方法以及空参、满参构造;

b. 创建 Test 类,在 main 方法中创建出三个电车对象,品牌名和价格自拟,已行

驶距离属性值需要随机生成(随机数需生成 3 个,范围:

0-2000 之间的整数,包括 0 2000);

c. 将创建好的三个电车对象存入 ArrayList<Tram> 集合中

d. 查找集合中是否存在已行驶距离1000 以下的电车,存在,则将该电车的

品牌、价格和行驶距离打印到控制台上;否则:输出没有行驶距离在 1000 以下的电车

示例如下:

代码:

电车类:

package com.test;
/*a. 创建一个电车类(Tram),属性有:品牌(String 类型)、价格(int 类型)、已
行驶距离(int 类型)生成对应的 set/get 方法以及空参、满参构造;*/
public class Tram {
    private String brand;
    private int price;
    private int juli;

    public Tram() {
    }

    public Tram(String brand, int price, int juli) {
        this.brand = brand;
        this.price = price;
        this.juli = juli;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getJuli() {
        return juli;
    }

    public void setJuli(int juli) {
        this.juli = juli;
    }
}

测试类:

package com.test;

import java.util.ArrayList;
import java.util.Random;

/*a. 创建一个电车类(Tram),属性有:品牌(String 类型)、价格(int 类型)、已
行驶距离(int 类型)生成对应的 set/get 方法以及空参、满参构造;
b. 创建 Test 类,在 main 方法中创建出三个电车对象,品牌名和价格自拟,“已行
驶距离”属性值需要随机生成(随机数需生成 3 个,范围:0-2000 之间的整数,包括 0 和 2000);
c. 将创建好的三个电车对象存入 ArrayList<Tram> 集合中
d. 查找集合中是否存在“已行驶距离”在 1000 以下的电车,存在,则将该电车的
品牌、价格和行驶距离打印到控制台上;否则:输出“没有行驶距离在 1000 以下的电车”;
示例如下:*/
public class Test {
    public static void main(String[] args) {
        Tram t1 = new Tram();
        Tram t2 = new Tram();
        Tram t3 = new Tram();
        Random r=new Random();
        t1.setBrand("小刀");
        t1.setPrice(999);
        t1.setJuli(r.nextInt(2001));
        t2.setBrand("小力");
        t2.setPrice(666);
        t2.setJuli(r.nextInt(2001));
        t3.setBrand("小刘");
        t3.setPrice(888);
        t3.setJuli(r.nextInt(2001));
        ArrayList<Tram> arr=new ArrayList<>();
        arr.add(t1);
        arr.add(t2);
        arr.add(t3);
        boolean flag=false;
        for (int i = 0; i < arr.size(); i++) {
            if(arr.get(i).getJuli()<1000){
                System.out.println(arr.get(i).toString());
               /* System.out.println(arr.get(i).getBrand());*/
               /* System.out.println(arr.get(i).getPrice());
                System.out.println(arr.get(i).getJuli());*/
                flag = true;
            }
         
            }
           if(flag==false){
                System.out.println("无超过1000米的车子");

        }

    }
}

这里有一些问题,就是如果前三个都大于1000都会输出语句,但是大致功能没有问题.这套题较为简单没什么难度.如果有好的想法和答案质疑欢迎留言.

错误解决我将if结构嵌套到了for循环,拿出去就好了,答案应该没什么问题了,又检查了一次,欢迎私信.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵广陆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值