zoukankan      html  css  js  c++  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();
    }
    }

    运行效果:

     卷2:

    一:单选题

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

    A: private//关键字

    B: 3a_b=10

    C: $zb

    D: a+b

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

     

     

    A:

     

    B:

     

    C:

     

    D:

     

    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 的初始化内容如下:

    下面可以删除 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";
             } 
    } 
    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!”);

    代码图片如下:

     

    修改如下:

    /*
    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);
        }
    }

    运行效果:

     

    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);
            }

        }
    }

    运行结果:

     卷3:

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

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

    A:  JDK包含JVMJVM包含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);
    }

    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;
      }
    }

     运行效果:

     

    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");
      }
    }
    运行效果:

     

  • 相关阅读:
    安装MySQL时出现黄色感叹号,提示3306已被占用
    python使用xlrd读取excel数据时,整数变小数的解决办法
    Xenu Link Sleuth 简单好用的链接测试工具 使用说明
    python的with用法(参考)
    关于Selenium HTMLTestRunner 无法生成测试报告
    关于python-生成HTMLTestRunner测试报告
    如何出(改编)一道ACM算法题?
    近期思考(2019.07.20)
    爱,死亡和机器人 第十四集 齐马蓝 中文字幕(Python处理utf8文件获取想要的内容)
    LeetCode 75. Sort Colors (python一次遍历,模拟三路快排的分割操作)
  • 原文地址:https://www.cnblogs.com/859630097com/p/14110085.html
Copyright © 2011-2022 走看看