java基础模拟考试试卷,选择题,多选题,代码题,java基础常考题,附带错误原因解析


卷1:

一、单选题(15道,共30分)

1.下列关于JDK、JRE、JVM关系描述正确的是 (A)

A:JDK是开发工具,包含了JRE。JRE是运行环境,包含了JVM。JVM是虚拟机,可以保证跨平台

B:JRE是虚拟机,保证了跨平台。JVM是运行环境,包含了JRE。JDK是开发工具,包含了JVM

C:JDK是运行环境,包含了JRE。JRE是开发工具,包含了JVM。JVM是虚拟机,保证了跨平台

D:JDK是开发工具,JRE是运行环境,JVM是虚拟机。三者没有关联

2.Java中的数据类型分为 ( C)

A:int和double

B:int和long

C:基本数据类型和引用数据类型

D:数组和集合

3.下列代码能正常通过编译的是 (D )

A:byte b = 230;//超出byte范围

B:int num = 10.3;

C:float f = 5.5;//5.5F

D:String s = "Hello" + "World" + "Java";

4.下列代码运行后结果分别为 (B )

public class Demo01 {

public static void main(String[] args) {

int num = 10;

System.out.println("num:" + num);//10


change(num);

System.out.println("num:" + num);//10

}


public static void change(int num) {

num = 20;

}

}

A:num:20 num:10

B:num:10 num:10

C:num:20 num:20

D:num:10 num:20

5.下列代码运行后结果分别为 ( C)

public class Demo02 {

public static void main(String[] args) {

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

System.out.println(arr[1]);//2

change(arr);

System.out.println(arr[1]);//20

}

public static void change(int[] arr) {

arr[1] = 20;

}

}

A:20 20

B:20 2

C:2 20

D:2 2

6.下列代码运行后,输出的结果为 (A )

public class Demo03 {

public static void main(String[] args) {

System.out.println(660 + 6 + "heima");//先做+运算在拼接

}

}

A:666heima

B:6606heima

C:heima666

D:heima6606

7.下列Scanner方法中,可以键盘录入整数类型的方法是 (D )

A:nextLine()//字符串结束标记为空格

B:next()//字符串结束标记为回车

C:nextDouble()//小数

D:nextInt()

8.以下定义数组格式正确的是 (B )

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

B:int arr[] = new int[3];

C:int[] arr = {"a","b","c"};

D:String arr[] = new String(3);

9.查看以下代码,x和y输出的结果为:( A )

public class Test02 {

public static void main(String[] args) {

int x = 4;

int y = (--x)+(x--)+(x*10);//3+3+2*10=26

System.out.println("y = " + y);//26

System.out.println("x = " + x);//2

}

}

A:y=26 x=2

B:y=46 x=3

C:y=25 x=4

D:y=66 x=5

10.查看以下代码,输出的结果为:( D )

int[] arr = new int[10];//0-9

arr[0] = 1;

arr[1] = 2;

System.out.println(arr[10]);


A:0

B:1

C:2

D:运行报错,数组索引越界异常

11.关于下列代码描述正确的是:(C )

//第一行

public class A {

//第二行

public static void main(String[] args) {

//第三行

String s = "HelloWorld";

//第四行

int length = s.length();//l=10

//第五行

boolean b = s.equals("hello");//f

//第六行

s += "Java";

//第七行

s++;//s为字符串类型,不能自曾;

}

}

A:第三行有错误

B:第五行有错误

C:第七行有错误

D:编译正常、没有错误

12.关于局部变量和成员变量的区别描述正确的是:( A )

A:成员变量有默认初始化值。局部变量没有默认初始化值,使用之前必须赋值、否则就报错

B:成员变量在栈内存中。局部变量在堆内存中//变量,基本数据类型,引用数据类型

C:成员变量定义在方法内部。局部变量定义在类中方法外//颠倒即可

D:局部变量和成员变量没有区别

13.以下关于数组描述错误的是:( B )

A:数组是一个容器

B:数组只能保存基本数据类型的数据//引用也可,例如String二维数组

C:定义数组可以采用静态初始化

D:定义数组可以采用动态初始化

14.下列代码运行后,输出的结果为 ( B)

public class Demo04 {

public static void main(String[] args) {

int sum = 0;

for(int i = 1; i <= 10; i++) {

if(i % 2 == 0) {

sum += i;//1-10的偶数和:2+4+6+8+10;

}

}

System.out.println(sum);

}

}

A:35

B:30

C:20

D:10

15.下列代码运行后的结果是:(C )

public class Test01 {

public static void main(String[] args) {

int num = 2;

switch (num) {

case 1:

num += 3;

case 2:

num += 2;

case 3:

num += 5;//穿透到此处,因为2没有break;

break;

default:

num += 4;

break;

}

System.out.println("num:" + num);

}

}

A:num:13

B:num:18

C:num:9

D:num:2

二、多选题(5道 共20分)

1.下列关于方法重载描述正确的是:(ABC)//同一类中,方法名相同,参数不同,个数不同,类型不同,顺序不同,没有返回值重载

A:方法名相同

B:参数的数据类型不同

C:参数的个数不同

D:方法的返回值类型不同

2.下列定义数组正确的是:( B CD)

A:String[] arr = new String[3]{"abc","bcd","def"};//冲突

B:int arr[] = new int[5];//标准动态初始化

C:int[] arr = new int[]{1,2,3,4,5};//标准静态初始化

D:int[] arr = {10,20,30};//简化静态初始化

3.下列属于正确的构造方法注意事项的是:(A B )//写在类中,跟类名一样,没有返回值,没有void

A:构造方法要和类名保持一致

B:构造方法没有返回值类型,连void都不能写

C:构造方法的返回值类型是void

D:构造方法不能重载//有参构造,无参构造方法;

4.下列属于正常赋值的是:(AC )//

A:byte b = 3; b += 5;//

B:int num1 = 10; byte sum = num1 + 5;//需要强转,高转低

C:String s = 5 + "abc";

D:int num = "abc" + 5;

//5.下列对于数组描述不正确的是:( AD )

A:数组是一个基本数据类型

B:数组是一个引用数据类型

C:数组的索引从0开始

D:获取数组的长度应该调用size()方法//length-


三、编程题(2道 1道20分 2道30分)

一、根据以下需求,用代码实现

1.程序运行后通过键盘录入一个字符串。要求字符串中必须包含:大写字母

2.如果录入的字符串中没有大写字母、要进行给出提示。然后程序可以继续录入字符串

3.如果录入的字符串中有大写字母。那么统计这个字符串中小写字母、大写字母、数字、其他字符出现的个数。程序结束

例如:

请输入一个字符串:

123456abc

您输入的字符串中没有大写字母。请重新输入:

ABC456ghi$%^&D

大写字母有:4个

小写字母有:3个

数字有:3个

其他字符有:4个

代码如下:

package M1;

import java.util.Scanner;

public class M1 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while (true) {

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

String s = sc.next();

int countnum = 0;

int countA = 0;

int counta = 0;

int Qita = 0;

//char[] arr = s.toCharArray();//字符串变成字符数组

StringBuilder sb=new StringBuilder(s);//将键盘录入的值存入sb

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

char c = sb.charAt(i);//遍历拿到每个字符

if (c >= '0' && c <= '9') {//判断

countnum++;

} else if (c >= 'a' && c <= 'z') {

counta++;

} else if (c >= 'A' && c <= 'Z') {

countA++;

} else {

Qita++;

}

}

/*for (int i = 0; i < arr.length; i++) {

if (arr[i] >= '0' && arr[i] <= '9') {

countnum++;

} else if (arr[i] >= 'a' && arr[i] <= 'z') {

counta++;

} else if (arr[i] >= 'A' && arr[i] <= 'Z') {

countA++;

} else {

Qita++;

}

}

if (Qita == arr.length) {

System.out.println("全是字符,重新输入!");

continue;

}

*/

if (countA==0){//没有大写跳过后续代码,继续循环

System.out.println("没有大写,请重新输入!");

continue;

}

System.out.println("数字" + countnum);

System.out.println("大写" + countA);

System.out.println("小写" + counta);

System.out.println("其他" + Qita);

return;

}

}

}

运行效果:

计算机期末考试高频考试题目,附带题目解析_数组

二、根据以下需求,用代码实现

1.定义一个水果类:Fruit

成员变量:名称name 单价price 计价单位unit

提供构造方法、get和set方法

成员方法:show() 用于显示成员变量的信息

2.定义一个测试类:Test02

3.在测试类中创建4个Fruit对象。并调用show()方法显示数据

输出效果:

水果名称:苹果,价格为:3元,计价单位为:斤

水果名称:橘子,价格为:5元,计价单位为:斤

水果名称:香蕉,价格为:2元,计价单位为:斤

水果名称:榴莲,价格为:200元,计价单位为:个

代码如下:

类:

package M2;

public class Fruit {

private String name;

private String price;

private String unit;

public Fruit() {

}

public Fruit(String name, String price, String unit) {

this.name = name;

this.price = price;

this.unit = unit;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPrice() {

return price;

}

public void setPrice(String price) {

this.price = price;

}

public String getUnit() {

return unit;

}

public void setUnit(String unit) {

this.unit = unit;

}

public void show(){

System.out.println("水果名称: "+getName()+", 价格为:"+getPrice()+"元"+", 计价单位:"+getUnit());

}

}

测试文件:

package M2;

public class TestFruit {

public static void main(String[] args) {

Fruit f=new Fruit("苹果","3","斤");

Fruit f2=new Fruit();

f2.setName("榴莲");

f2.setPrice("200");

f2.setUnit("个");

f.show();

f2.show();

}

}

运行效果:

计算机期末考试高频考试题目,附带题目解析_数组_02

 卷2:

一:单选题

1:下面对变量名定义符合规范的是 (c)

A: private//关键字

B: 3a_b=10

C: $zb

D: a+b


2:用 switch 改写下面的代码片段,正确的是(A)


 计算机期末考试高频考试题目,附带题目解析_字符串_03




A:

 计算机期末考试高频考试题目,附带题目解析_java_04




B:

 计算机期末考试高频考试题目,附带题目解析_数组_05




C:

计算机期末考试高频考试题目,附带题目解析_java_06





D:

计算机期末考试高频考试题目,附带题目解析_java_07





3:以下选项中,关于变量的定义格式和使用方式正确的是(C )

A:

int a;//没有赋值
System.out.println(a);

B:

char c = 'ab';//char只能有一个字符
System.out.println(c);

C:

boolean b = true;
System.out.println(b);

D:

float f = 12.3;//12.3F
System.out.println(f);


4:代码如下:

public static void main(String[] args) {
int a = 5;
int b = 5;
System.out.println(_________);
}

运行结果是

5+5=10

横线处应该填写的正确代码是( C)

A.

a+"+"+b+"="+a+b//5+5=55

B.

a+b"="(a+b)//报错

C.

a+"+"+b+"="+(a+b)

D.

a+b+"="+(a+b)//10=10

5:如果有 int n=9527;那么下面获取千位数正确的是(D) 

A: n % 10//个位

B: (n % 100)/10//百位

C: (n % 1000)/100//百位

D: n /1000


6:下列选项中可以正确定义一个无参方法的是(A )

A.

public static   void  sum(){

                                      System.out.println("这是一个无参方法");

}

B.

public   static  void  sum(int  a){

                                      System.out.println("这是一个无参方法");

}

C.

public  static  int     sum(){

                                      System.out.println("这是一个无参方法");

                                      return     ;

}

D.

public   static   void  sum(){

                                      System.out.println("这是一个无参方法");

                                      return     0;

}

7:以下选项中随机数范围为 20 到 80(包含 20 和 80)的是(B)
A.
Random random=new  Random();
int  num=random.nextInt(21)+60;//60-80
B.
Random   random=new   Random();
int  num=random.nextInt(61)+20;
C.
Random random=new  Random();
int  num=random.nextInt(60)+20;//20-79
D.
Random  random=new Random();
int   num=random.nextInt(20)+61;//61-80
8:
int  a =  8;
do {
a++;
}while (a  < 9);
System.out.println(a);
执行以上代码块,打印结果是(C)//do{}while() 必会执行一次{}中内容
A: 7
B: 8
C: 9
D: -2147483648
9:下列关于方法定义说法错误的(C)
A: 定义在类中方法外面
B: 返回值类型,必须要和 return  语句返回的类型相同,否则编译失败 。
C: 必须是 public 类型的
D: 不能在 return  后面写代码, return 意味着方法结束,所有后面的代码永远不会执行,属于无效代码;

10:ArrayList 的初始化内容如下:

计算机期末考试高频考试题目,附带题目解析_数组_08




下面可以删除 list 集合中所有的”b”的代码是(B)
A: for (int i=0; i<list.size(); i++){     //删除不干净,应加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");//只能删除一次,应该while(list.remove ("b")){};
D: 以上的代码都不能成功删除 list 集合中所有的”b”;

二:多选题

11:以下关于运算符说法正确的有(ABD )

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

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

C: % 表示取整,/ 表示取余//颠倒即可

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

操作

12:以下方法在 main 方法中调用正确的有:ACD
public class Test  {
public static void main(String[] args) {
}
public static void fun1(){
System.out.println("this is fun1");
}
public static String fun2(){
return "this is fun2";
}
}
public  static  void  main(String[] args)  {
}
A: fun1();
B: System.out.println(fun1());//没有返回值,只能调用
C: String  str  =  fun2();
D: System.out.println(fun2());


13:当 a=1,b=3,c=5,d=4 时,关于下面代码说法正确的是(AB)

public class test {

     public static void main(String[] args) {

         int a = 1, b = 3, c = 5, d = 4, x;

         if (a < b) {

             if (c < d) {

                 x = 1;

             } else if (a < c) {

                 if (b < d) {

                     x = 2;

                 } else x = 3;

             } else x = 6;

         } else x = 7;

         System.out.println(x);

     }

}

A: 因 a<b 为 true,所以会执行 if(c<d)  。

B: 代码执行后的结果为 x=2。

C: 但 c<d 为 true,故执行 if(a<c)。//c<d false

D: 代码执行后的结果为 x=6。


14:下面关于 Scanner 的方法中说法正确的是(ACD)。

A: Scanner 的 nextDouble()方法可以录入一个 double 类型的数字。

B: Scanner 的 nextInt()方法可以录入数字和字符。

C: Scanner 的 nextLine()方法会把整行字符串全部录入。

D: Scanner 的 nextLine()方法可以录入数字和字符。


15:下面关于 String 的?述不正确的是(BD)

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

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

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

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


16:代码如下,下列关于数组的反转描述正确的是(ABCD ) 


public static void main(String[] args) {

    int[] array = { 10, 20, 30, 40, 50 };

    for (int min = 0, max = array.length - 1; min < max; min++, max--) {

        int temp = array[min];

        array[min] = array[max];

        array[max] = temp;

    }

}



A:  数组反转就是将数组中元素的顺序颠倒,要先找到数组中的最小索引和最大索引。最小索引:0,最大索引就是:array.length - 1,分别保存在两个int类型的变量中  

B:  如果数组中元素的个数是未知的,通过for循环拿到每个元素,但是要限制循环的次数,只要保证min记录的索引小于max记录的索引即可

C:  每循环一次,就会对数组中元素进行一次交换。

D:  每次交换数据之后,就会对min和max记录的值修改,小索引min需要加1,大索引max需要减1


17:下列描述正确的是(ABCD )


A:  构造方法也是方法,可以重载.  

B:  构造方法没有返回值类型,连void也没有.

C:  构造方法名与类名一致

D:  如果一个类没有编写构造方法,那么编译器会默认生成一个空参的构造方法.


三:代码题

18.【代码题】

本题本质为代码分析题,分析代码图片,代码图片中共有 5 处错误,

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

答案交方式:新建一个 java 文件,按照下面要求在 java 文件中以注释的形式填写答案,

之后上传这个答案文档。

答案格式要求如下:

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

例如:

15,System.out.println("hello         word!”);


代码图片如下:

 计算机期末考试高频考试题目,附带题目解析_数组_09






修改如下:

/*
9.int []arr=new int[5];
14.arr[i]=r.nextInt(99)+1;
18.comp(arr);
28.max=arr[i]
31.else if(min>arr[i]){
 */



19.【代码题】

本题本质为代码编程题,需求如下:

1:定义学生类Student,提供成员变量姓名(字符串类型)和分数(整数类型),满参数构造方法,getter和setter方法;

2:编写学生测试类Test,利用满参数构造方法,创建3个学生对象,并将3个对象保存到ArrayList集合中;

         三个对象分别是:"小黑",88   "小马",92    "小智",75

3:遍历集合中的三个学生对象,然后求出三个学生对象的平均成绩并输出到控制台;

答案提交方式:在试题做完后,将本题所有的 java 文件打包压缩上传

代码如下:

类文件:

package Moni_2;


import java.util.ArrayList;


public class Student {

    String name ;

    int cj;


    public Student() {

    }


    public Student(String name, int cj) {

        this.name = name;

        this.cj = cj;

    }


    public String getName() {

        return name;

    }


    public void setName(String name) {

        this.name = name;

    }


    public int getCj() {

        return cj;

    }


    public void setCj(int cj) {

        this.cj = cj;

    }

    public void show(ArrayList<Student>list){


        double sum=0;

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

            Student stu = list.get(i);

            System.out.println("姓名: "+stu.getName()+", 成绩: "+stu.getCj());

            sum+=stu.getCj();

        }

        double avg=sum/list.size();

        System.out.println("平均分:"+avg);

    }

}

测试文件:

package Moni_2;


import java.util.ArrayList;


public class TestStudent {

    public static void main(String[] args) {

        ArrayList<Student>list=new ArrayList<>();

        Student s1=new Student("张三",80);

        Student s2=new Student("李四",90);

        Student s3=new Student("王五",30);

        list.add(s1);

        list.add(s2);

        list.add(s3);

       s1.show(list);

    }

}


运行效果:

 计算机期末考试高频考试题目,附带题目解析_数组_10


20.【代码题】

遍历下列字符串,筛选出其中的数字和字母并按照数字在前字母在后的规则

组成一个新的字符串,把组成的新字符串打印在控制台。

字符串如下:


运行结果如下:


代码如下:

import java.util.Scanner;


public class Moni_3 {

    public static void main(String[] args) {

       /* 遍历下列字符串,筛选出其中的数字和字母并按照数字在前字母在后的规则
        组成一个新的字符串,把组成的新字符串打印在控制台。
*/
       
Scanner sc=new Scanner(System.in);

        System.out.println("请输入:");

       String s=sc.next();

        StringBuilder sb=new StringBuilder();

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

            char c = s.charAt(i);

            if (c>='a'&&c<='z'){

                sb.append(c);

            }

        }

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

            char c = s.charAt(i);

            if (c<='9'&&c>='0'){

                sb.append(c);

            }

        }


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

            char c = sb.charAt(i);

            System.out.print(c);

        }


    }

}

运行结果:

计算机期末考试高频考试题目,附带题目解析_数组_11

 卷3:

一、 单选题(每题 2分,共计 30分;得分____)

1. 下面有关JDK、JRE、JVM的说法错误的是( A )

A:  JDK包含JVM、JVM包含JRE
B:  JDK是Java开发工具包,开发Java程序必须先在电脑上安装JDK
C:  JRE是Java程序的运行环境、如果只想运行Java程序,只安装JRE即可
D:  JVM是Java虚拟机的简称,用来运行Java程序

A

2. 以下选项中,关于常量说法正确的是(A )

A:  ' '(里面是一个空格)。这是一个字符常量
" "(里面是一个空格)。这是一个字符串常量
B:  ''(里面什么都没有)。这是一个字符常量
""(里面什么都没有)。这是一个字符串常量
C:  'ab'。这是一个字符常量
“ab”。这是一个字符串常量
D:  1 , 2 , 3 , 3.0 这4个都是整数常量
1.0 , 2.1 , -3.1 这3个都是小数常量


3. 下面对变量名定义符合规范的是 (C)

A. class B. 3a_b=10 C. $zb D. a+b


4. 下列描述正确的是( B )

A: 方法可以提升Java程序的执行效率,优化Java程序的运行过程。

B: 方法可以提高java代码的复用性,方法定义后,可以重复使用。

C: 程序员定义的方法,只能在main方法当中进行调用。

D: 在保证方法格式书写正确的情况下,方法当中也可以定义方法。//方法不可以嵌套


5. 下列哪个代码会报错 (c)

A. String s= "join"+ 2+ true;

B. String s= "join"+"true";

C. int f=5+5L;

D. short s= 3;


6. 下列代码中具有重载关系的是( A )//同一类中,方法名相同,参数不同,个数不同,类型不同,顺序不同,没有返回值重载

A:

public class Test{
public void method(double d, int i) {...}
public void method(int i, double b) {...}
}

B:

public class Test{
public void add(int i, int j) {...}
public int add(int i, int j) {...}
}

C:

public class Test{
public void sum(int i, int j){}
public void sum2(int i, int j){}
}

D:

public class Test{
public void show(int a, int b) {}
public void show(int i, int j){}
}


7. 下列程序运行的结果是 (C )

int[] arr={9,5,2,7};
System.out.println(arr[4]);

A. 4

B. 7

C. 运行报错,会出现ArrayIndexOutOfBoundsException异常

D. arr[4]


8. 下面代码执行结果是 ( C )

int a = 8;
do {
a++;
}while (a < 9);
System.out.println(a);

A. 7 B. 8 C. 9 D. -2147483648


9. 如果有int n=5623;那么下面获取千位数正确的是( D )

A. n % 10//个位 B. (n % 100)/10//百位  C. (n % 1000)/100 //百位 D. n /1000


10. 下列表达式正确的是 ( D )

A. byte b =129;//超范围

B. boolean b = "hello";//只能赋值true,false

C. long l=2342352356112323;//没有标识

D. double d = 0.9239d;//标准方式赋值


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

A. a[0]

B. a[1]

C. a[99]

D. a[100]//0-99,索引越界


12. 以下代码,取值结果正确的是: (C)

public static void main(String args[]){
int [] a={1,2,3,4,5};0 1 2 3 4
System.out.println(a[3]);
}

A. 3

B. 2

C. 4

D. 1


13. 下列哪个是进入目录的DOS命令 ( C )

A. exit//退出

B. dir//查看

C. cd

D. cls//清屏


14. 下列创建数组错误的是 (D )

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};//int[]arr


15. 下列代码的输出结果是( A )

int x = 2;
switch(x) {
case 1:
System.out.println(1);
case 2:
break;//没有输出语句,直接break
case 3:
System.out.println(3);
case 4:
System.out.println(4);
}
switch(x) {
}

A. 没有任何输出结果

B. 输出结果为3

C. 输出结果为3和4

D. 输出结果为1、3和4


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

16. 下列定义数组正确的是(AD )

A. int arr[] = new int[3]; B. int arr[] = new int[3]{1,2,3}; C. int arr[3] ={1,2,3}; D. int arr[] = {1,2,3};


17. 下列哪个是合法的Java标识符?( CD )

A、Glasses&

B、2i

C、$2

D、$_


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

public class Test {
public static void main(String[] args) {
float i = 3.0f;
int n = 10;
System.out.print (i++);
System.out.print(n * i++);//10*4.0
}
}

A: 4.0

B: 3.0

C: 40.0

D: 50.0


19. 下列描述正确的是(ABD )

A: 方法定义的先后顺序无所谓。

B: 方法的定义不能产生嵌套包含关系。

C: 方法可以让程序的执行效率更高。

D: 方法定义好了之后,不会执行的,如果要想执行,一定要进行方法的调用。


20. 以下选项中,关于方法重载的描述正确的是( ABD )

A: 方法重载指在同一个类中,允许存在同名方法,只要它们的参数列表不同即可

B: 方法重载的参数列表不同指的是:参数的个数不同,或者参数的数据类型不同,或者参数的数据类型的顺序不同即可

C: 方法重载与方法的修饰符有关系

D: 方法重载与返回值类型无关


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

21. 定义一个方法,该方法用来获取三个整数中的最大值。并在main方法中键盘录入三个整数,然后调用方法,求出录入的三个整数中的最大值。

代码实现:

package Mn1;

import java.util.Scanner;

public class Mn1 {
public static void main(String[] args) {
// 定义一个方法,该方法用来获取三个整数中的最大值。
// 并在main方法中键盘录入三个整数,然后调用方法,求出录入的三个整数中的最大值。
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个整数");
int num_1=sc.nextInt();
System.out.println("请输入第二个整数");
int num_2=sc.nextInt();
System.out.println("请输入第三个整数");
int num_3=sc.nextInt();
int[]arr={num_1,num_2,num_3};
int max = Max(arr);
System.out.println("最大值为:"+max);
}
public static int Max(int[]arr){
int max=arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i]>max){
max=arr[i];
}
}return max;
}
}

 运行效果:

计算机期末考试高频考试题目,附带题目解析_字符串_12


22. 定义方法exist,该方法用来判断指定元素在数组中是否存在。 在main方法中定义数组,数组中的元素为{3,5,2,6,1},调用exist方法,判断该数组中是否包含2,并输出结果。

package Mn2;

public class Mn2 {
/*定义方法exist,该方法用来判断指定元素在数组中是否存在。
在main方法中定义数组,数组中的元素为{3,5,2,6,1},
调用exist方法,判断该数组中是否包含2,并输出结果。*/
public static void main(String[] args) {
int[] arr = {3, 5, 2, 6, 1};
exist(arr);
}

/*
//方法1
public static void exist(int[] arr) {
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 2) {
index++;
}
}
if (index != -1) {
System.out.println("包含2");
} else {
System.out.println("不包含2");
}
}

}*/
//方法2:
public static void exist(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 2) {
System.out.println("包含2");
return;
}
}
System.out.println("没有2");
}
}


计算机期末考试高频考试题目,附带题目解析_java_13