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

目录

​第一章:java基础语法测试题

第二章:java运算符测试题

第三章:java数据输入测试题

第四章:java选择结构测试题

第五章:java循环结构测试题


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

​第一章:java基础语法测试题


1 选择题
题目1(单选):

下面有关Java语言跨平台性说法正确的是( D )

选项 :

解析:JDK JRE都是个软件,不能说跨平台,源代码只有在jvm实现跨平台才可以到处使用。

A.Java的源代码是跨平台的。

B.JDK是跨平台的。

C.JVM是跨平台的。

D.跨平台中的平台指的是操作系统,Java语言的跨平台性是指Java程序可以在不同的操作系统上运行,前提是相应的操作系统安装了对应的JVM。

题目2(单选):

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

选项 :

解析:空格也是一个字符,单引号括住的一个字符为字符常量,双引号括住的0个或多个字符为字符串常量。

A.‘   ’(里面是一个空格),这是一个字符常量。 “ ”(里面是一个空格),这是一个字符串常量。

B.‘’(里面没有空格),这是一个字符常量。 ​ “”(里面没有空格),这是一个字符串常量。

C.'ab',这是一个字符常量。 “ab”,这是一个字符串常量。

D.1,2,3,3.0这4个都是整数常量。 ​ 1.0,2.1,3.1这3个都是小数常量。

题目3(单选):

下列选项中关于Java中的注释描述错误的是( B )

解析:多行注释不可以嵌套

选项 :

A.单行注释的格式是,例子如下://被注释的内容

B.多行注释可以嵌套多行注释,例子如下:/*hello/*java*/world*/

C.单行注释可以嵌套单行注释,例子如下://hello//world//java

D.多行注释的格式,例子如下:/*被注释的内容*/

题目4(单选):

以下选项中,哪一项符合标识符的命名规则( A )

解析:命名规则由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字也不能有空格除前面以外的字符。不能使用java中的关键字作为标识符。

标识符对大小写敏感(区分大小写)。

选项 :

A.HelloWorld

B.123

C.class

D.$1 2 3 4

题目5(单选):

有一个HelloWorld.java文件代码如下,下列说法正确的是( B )

public class HelloWorld {
   public static void main(String[] args) {
       System.out.println("helloworld");
   }
}

选项 :

解析:java源代码.java文件通过javac HelloWorld.java生成.class文件之后java直接运行类名即可不需要加后缀.class。java虚拟机正真执行的是.class文件。

A.Java源代码不用编译,可以直接运行。

B.编译使用命令javac HelloWorld.java

C.运行使用命令 java HelloWorld.class

D.Java虚拟机真正执行的是.java文件。

题目6(单选):

HelloWorld.java文件代码如下,使用javac HelloWorld.java编译时报错,下面说法错误的是( A )

public class HelloWorld {                    //第1行
   public static viod main(String[] args) { //第2行
       system.out.println(helloworld);      //第3行
   }
}

选项 :

解析:类名必须和文件名相同,默认的类名首字母大写

A.第1行有错误,HelloWorld应该都小写,写成public class helloworld {

B.第2行有错误,viod应写成void.

C.第3行有错误,system应该是System.

D.第3行有错误,helloworld应该用""引起来.

题目7(单选):

关于JDK、JRE、JVM下列哪些选项的描述是错误的( D )

解析:只需安装JDK即可,它包含了java的运行环境和虚拟机。

选项 :

A.JRE全称Java Runtime Environment是Java的运行环境。

B.JDK全称Java Development Kit是Java的开发工具包。

C.JVM全称Java Virtual Machine是Java程序运行的载体,可以安装在不同的操作系统上,来运行Java程序。

D.一台计算机要能够执行java程序,必须同时安装JDK、JRE、JVM。

题目8(单选):

关于Java环境变量的配置说法错误的是( A )

解析:JAVA_HOME是自己写的知识为了配置JDK方便修改,如果路径变动只需改JAVA_HOME路径即可

选项 :

A.JAVA_HOME环境变量是Windows系统规定要配置的,不然Windows运行会不正常。

B.JAVA_HOME写的应该是JDK安装的目录。

C.安装了JDK后,通常会配置JAVA_HOME环境变量,它的作用是让操作系统上的程序能够知道JDK安装的目录。

D.配置了JAVA_HOME后,需要把%JAVA_HOME%\bin配置到path路径下,并用"分号"和其他配置隔开。

2 代码题
题目9

解析:较为简单基本不考,但是这是测试你环境是否搭建成功的必经之路!

请编写程序,将如下语句输出到屏幕上:

Java是一门跨平台的计算机语言,被称为一次编写,处处运行。

思路分析:

1.创建java文件。

2.编写类,用于完成该程序。

3.程序的运行需要主方法,编写主方法。

4.该使用什么语句将题目中的文本输出?

5.该怎样编译和运行java文件?

参考步骤:

1.新建文本文件,将名称修改为Test01.java。注意显示文件的后缀名,防止出现Test01.java.txt的文件名。

2.打开文件,编写代码,先定义一个类Test01,类名需要与文件名一致。注意大小写。

3.在类中定义主方法,在主方法中编写输出语句,将题目中的文本用双引号包裹。

4.保存文件内容。打开cmd窗口,将命令目录切换至文件所在目录。使用javac命令编译java文件,使用java命令运行class文件,查看结果。注意:编译java文件,需要带后缀名;运行class文件,不需后缀名。

参考答案:

作业:

1.创建类和main方法

2.使用打印语句输出

public class Test01{
public static void main(String[] args) {
    System.out.println("Java是一门跨平台的计算机语言,被称为一次编写,处处运行。");
   }
}


3.运行效果

题目10

解析:较为简单基本不考,但是需要记忆。

常量是指在程序运行过程中,其值不可以发生改变的量,请编写Java程序,分别将下列常量数据打印到屏幕上。

字符串常量:用双引号括起来的内容。"HelloWorld","你好程序员"
整数常量:不带小数的数字。666, -88
小数常量:带小数的数字。13.14, -5.21
字符常量:用单引号括起来的内容。'A','0','我'
布尔常量:布尔值,表示真假。只有两个值:true,false
空常量:一个特殊的值,空值,null(null值可以直接在输出语句打印吗)

思路分析:

1.创建java文件。

2.编写类,用于完成该程序。

3.程序的运行需要主方法,编写主方法。

4.该使用什么语句将题目中的常量输出?

5.程序编写完成,该怎样编译和运行java文件?

参考步骤:

1.新建文本文件,将名称修改为ConstantDemo.java。

2.打开文件,编写代码,先定义一个类ConstantDemo,类名需要与文件名一致。注意大小写。

3.在类中定义主方法,在主方法中编写多个输出语句,在输出语句中直接输出常量即可。

4.保存文件内容。打开cmd窗口,将命令目录切换至文件所在目录。使用javac命令编译java文件,使用java命令运行class文件,查看结果。注意:编译java文件,需要带后缀名;运行class文件,不需后缀名。

参考答案:

作业:

1.创建java类和main方法

2.使用变量存储数据类型

3.使用输出语句打印输出

/*
字符串常量:用双引号括起来的内容。"HelloWorld","程序员"
整数常量:不带小数的数字。666, -88
小数常量:带小数的数字。13.14, -5.21
字符常量:用单引号括起来的内容。'A','0','我'
布尔常量:布尔值,表示真假。只有两个值:true,false
空常量:一个特殊的值,空值,null(null值可以直接在输出语句打印吗)
*/


public class Test02 {
    public static void main(String[] args) {
        int a = 666, b = -88;
        double c = 13.14, d = -5.21;
        char ch1 = 'A', ch2 = '0', ch3 = '我';

        //1.打印字符串常量"HelloWorld","程序员"
        System.out.print("hello,");
        System.out.println("你好程序员");
        System.out.println(""); // 字符串中内容可以为空, 空字符串

        //2.打印整数常量666, -88
        System.out.println(a);
        System.out.println(b);

        //3.打印小数常量13.14, -5.21
        System.out.println(c); // CTRL + d 复制一行
        System.out.println(d);

        //4.打印字符
        System.out.println(ch1);
        System.out.println(ch2);
        System.out.println(ch3);

        //5.打印布尔常量
        System.out.println(true);
        System.out.println(false);



    /*线程“main”java.lang中的异常。
    错误:未解决的编译问题:println(char[])方法对于类型PrintStream是不明确的*/
        // System.out.println(null);
    }
}


4.运行效果

第二章:java运算符测试题


1 选择题
题目1(单选):

下列选项中定义变量哪一项是正确的( D )

解析:byte的长度为-128~127,long长整型,float后要加f,浮点数默认是double型不能直接赋值到float上!

选项:

A.byte b=128;

B.long c=3.14L;

C.float f=3.14; 

D.double e=4.88;

题目2(单选):

关于变量的定义,下列写法正确的是( A )

解析:布尔类型只有false和true两种结果,不能将引用类型字符串赋值给它

选项:

A.byte b = 10;

B.int i = 10.0;

C.boolean b = "true";

D.float f = 10.2

题目3(单选):

请观察以下代码,为横线处选取正确答案( B )

public static void main(String[] args){
   byte b1 = 10;
   byte b2 = 20;
   byte result = __________;
   System.out.println("求和的结果是:"+result);
}

选项:

解析:ACD选项加起来有默认的数据提升变为int类型不能再往低精确度类型存储

A.(byte)b1 + b2

B.(byte)(b1 + b2)

C.b1 + b2

D.b1 + (byte)b2

题目4(单选):

下面关于++运算得到的结果正确的是( B )

public class Test {
   public static void main(String[] args) {
       int x = 10;
       int result = x++;
       ++x;
       System.out.println("x的值为:"+x);
       System.out.println("result的结果为:"+result);
   }
}

选项:

解析:因为不论++在前在后值都是加的,但是如果单独用的话不管你加不加直接就是原数值

参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。简单的说:先用后加

参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。简单的说:先加后用

A.x的值为:11 result的结果为:10

B.x的值为:12 result的结果为:10

C.x的值为:11 result的结果为:11

D.x的值为:12 result的结果为:12

题目5(单选):

下列代码的运行结果是(B)

public static void main(String[] args) {
   int i = 5;
   int j = 2;
   System.out.println(i/j);
   System.out.println(i%j);
}
​

选项:

解析:int类型做除法有小数直接取整2.9和2.1一样没有四舍五入都是2,%为取余数,就是除法除不尽的余数

A.2.5 1.0

B.2 1

C.2 2

D.1 1

题目6(单选):

下列代码的运行结果是( B )

public static void main(String[] args){
   int x = 3;
   float y = x;
   System.out.println(y);
}

选项:

A.3

B.3.0

C.3.0F

D.3F

题目7(单选):

以下选项中,+符号在字符串中的使用描述正确的是( D )

选项:

解析:字符串粘性最强可以将任何类型粘过来变为字符串

A.使用+符号可以连接两个字符串,并且获取两个字符串中字符的个数。

B.使用+符号可以让两个字符串进行求和运算。

C.使用+符号可以让一个字符串和一个整数进行求和运算。

D.使用+符号可以连接两个字符串,得到一个新的字符串。

题目8(单选):

以下代码运行之后的结果输出到控制台是 5+5=10,则横线处应该填写的正确代码是(C )

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

选项:

解析:a放入就是a变量的值,如果粘到了字符串也就变成字符串类型

A.a+"+"+b+"="+a+b

B.a+b"="(a+b)

C.a+"+"+b+"="+(a+b)

D.a+b+"="+(a+b)

2 代码题
题目9:

练习字符串的“+”操作,请分别输出下列表达式的运算结果:

"it" + "oldlu"
"itoldlu" + 666
666 + "itoldlu"
"程序员" + 6 + 66
1 + 99 + "程序员"

思路分析

课堂案例 - 使用输出语句直接输出题目中的表达式

参考步骤

1.新建OperatorDemo.java文件,定义OperatorDemo类,定义main方法。

2.使用输出语句分别输出题目中的表达式

3.编译运行查看结果

参考答案:

作业:

1.测试字符串和基本数据类型连接结果

2.测试算符优先级

/*"it" + "hellow"
"ithellow" + 666
666 + "ithellow"
"程序员" + 6 + 66
1 + 99 + "年程序员"*/
//基本数据类型都能拼接到字符串里,所以基本数据类型与字符串相加结果还是字符串。

public class Test03 {
    public static void main(String[] args) {
        //"it" + "hello"
        System.out.println("it" + "hello");
        //"itoldlu" + 666
        System.out.println("ithello" + 666);
        //666 + "itoldlu"
        System.out.println(666 + "ithello");
        //"" + 6 + 66 从左到右过程为 1."程序员6"+6 2."程序员666"
        System.out.println("程序员" + 6 + 66);
        //1 + 99 + "年程序员" 从左到右运算先加再放入字符串
        System.out.println(1 + 99 + "年程序员");
    }
}


3.运行效果

题目10:

练习赋值运算符,请依次完成如下操作:

(1)定义int类型的变量,为其赋值为10,并打印输出。

(2)将该变量的值增加10,再次打印输出。

(3)定义short类型的变量,为其赋值为10,将变量的值增加20,并输出结果。

思路分析:

课堂案例 - 赋值运算符

参考步骤:

新建java文件,定义类和主方法。

定义int类型的变量I,初始化值10

使用扩展的赋值运算符+= 往变量i上进行累加变量20, 输出变量变量i

定义short类型变量s,使用扩展的赋值运算符+= 往变量s上累加20,打印变量s

参考答案:

作业:

1.自动类型转换和强制类型转换的使用

public class Test04 {
    public static void main(String[] args) {
        int a = 10;
        System.out.println("a的值为:" + a);
        int b = a + 10;
        System.out.println("b的值为:" + b);
        short s1 = 10;
        //因为变量会强转成int所以高精度不会向低精度再转换故报错
        //short s2=s1+10;
        //解决方法1 接收结果为int
        //int s2=s1+10;
        //解决方法2 通过自增解决
        //s1+=10;
        //解决方法3 强制转换为short
        short s2 = (short) (s1 + 10);
        System.out.println("s2的结果为:" + s2);
    }
}

2.运行效果

第三章:java数据输入测试题


1 选择题
题目1(单选):

下面关于逻辑运算符的代码执行结果是( B )

解析:短路与&&全都要真,短路或||一个即可,短路就是判断一边即可,谐音记法,与想象为美与,"美女"房车钱帅全都要一样都不能少!

public class Test {
   public static void main(String[] args) {
       boolean flag1 = (3 < 5) && (5 > 7);
       boolean flag2 = (3 < 5) || (5 > 7);
       boolean flag3 = !(7 != 7);
       System.out.println("flag1的值是:" + flag1);
       System.out.println("flag2的值是:" + flag2);
       System.out.println("flag3的值是:" + flag3);
   }
}

选项:

A.flag1的值是:true ​ flag2的值是:false ​ flag3的值是:false

B.flag1的值是:false ​ flag2的值是:true ​ flag3的值是:true

C.flag1的值是:false ​ flag2的值是:false ​ flag3的值是:true

D.flag1的值是:true ​ flag2的值是:true ​ flag3的值是:false

题目2(单选):

以下选项中,三元运算符的使用正确的是( D )

选项:

解析:三元?判断真假 前真:后假,然后匹配

A.

public static void main(String[] args){
   int a = 10;
    int b = 20;
    (a > b) ? a : b;
}

B.

public static void main(String[] args){
   int a = 10;
    int b = 20;
    int c = (a > b) ? "正确" : b;
}

C.

public static void main(String[] args){
   int a = 10;
    int b = 20;
    int c = (a > b) : a ? b;
}

D.

public static void main(String[] args){
    int a = 10;
    int b = 20;
   System.out.println((a > b) ? a : b);
}

题目3(单选):

请观察以下代码,在横线处填写的正确代码是( B )

public static void main(String[] args) {
   int a = 10;
   int b = 20;
   int min = _________;                // 第五行
   System.out.println("最小值:"+ min);  // 第六行
}

选项:

A. a < b ? 20 : 10

B. a < b ? a : b

C. a > b ? a : b

D. a < b ? "a是最小值" : "b是最小值"

题目4(单选):

代码如下,执行后描述正确的是( C )

解析:next就是啥也可以接收,nextInt就是接受整型,输入的格式要记住!

Scanner sc = new Scanner(System.in);
String s = sc.next();
int i = sc.nextInt();
System.out.println(s + i);  

选项:

A.语法错误,键盘录入的数据不能直接参与运算。

B.如果第一次键盘录入a,第二次键盘录入1。那么通过+进行计算,结果输出98。

C.如果第一次键盘录入10,第二次键盘录入10。那么通过+进行计算,结果输出1010。

D.如果第一次键盘录入10,第二次键盘录入10。那么通过+进行计算,结果输出20。

题目5(单选):

以下代码片段执行后,控制台的输出结果为( D )

 public static void main(String[] args) {
       int a = 30;
       int b = 50;
       System.out.println( a>b && a<b );
       System.out.println( a==b || a<b  );
       System.out.println( !(a==b) );
}

选项:

A.true false true

B.false false true

C. false true false

D. false true true

题目6(单选):

下面关于比较运算符的代码的运行结果是( C )

public class Test {
   public static void main(String[] args) {
       int num1 = 5;
       int num2 = 6;
       System.out.println(num1 <= num1);
       System.out.println(num1 == num2);
       System.out.println(num2 != num2);
   }
}

选项 :

A.true ​ false ​ true

B.false ​ false ​ false

C.true ​ false ​ false

D.false ​ false ​ true

项目7(单选):

下列Scanner类所提供的方法中,用于通过键盘录入整数的方法是( B )

选项:

A.nextLine()

B.nextInt()

C.nextDouble()

D.next()

题目8(单选):

关于java.util.Scanner类,下列哪些选项的描述是错误的( D )

选项:

A.如果在自己的测试类中要使用Scanner类,需要导包。

B.nextInt()方法用来从键盘获取一个整数。

C.nextLine()方法用来从键盘获取一个字符串。

D.Scanner对象的创建方式为:Scanner sc = new Scanner();。

2 代码题
题目9:

某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。

订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用,那么这个小伙要点这三样东西,最 少要花多少钱?请编写程序计算。

思路分析:

有两种购买方式,一种是不使用优惠价,另一种是使用优惠价。分别计算花费后,对两种方式的花费作对比。

参考步骤:

使用算术运算符求出不使用优惠时的总价.

使用三元运算符判断总价是否满足打折条件,并求出折后总价.

使用算术运算符求出使用优惠价时的总价.

使用三元运算符判断最终更合算的购买方式和花费.

参考答案:

作业:

1.三元运算符的使用

public class Test07 {
    public static void main(String[] args) {
        //求不使用优惠时的总价35元
        double sum = 24 + 8 + 3;
        //折后总价28元
        sum = (sum >= 30 ? sum : sum * 0.8);
        //使用优惠时的总价27元
        double money2 = 16 + 8 + 3;
        //判断两种花费哪个更少
        double money = sum < money2 ? sum : money2;
        //打印最终花费

        System.out.println("最优惠的方案为:" + money + "元");
    }
}


2.运行效果:

题目10:

小李同学在学习了Scanner之后想要使用Java完成一个简易的加法计算器,在控制台输出两个整数之后输出两个整数的和,应该如何实现呢?

思路分析

如何保存小李录入的两个整数?

参考步骤

1.创建Scanner对象.

2.提示输入数字并且使用变量保存.

3.打印出两个变量相加的结果.

参考答案

作业:

1.输入输出的简单应用

import java.util.Scanner;

public class Test08 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个加数:");
        int nextInt1 = sc.nextInt();
        System.out.println("请输入另一个加数:");
        int nextInt2 = sc.nextInt();
        System.out.println("请输入另一个加数:");
        int sum = nextInt1 + nextInt2;
        System.out.println("结果为:" + sum);
    }
}


2.运行效果:

第四章:java选择结构测试题


1 选择题
题目1(单选):

下列代码的运行结果是( B )

public class Test {
   public static void main(String[] args){
       int age = 18;
       System.out.println("程序员");
       if(age >= 18){
           System.out.println("咨询Java课程");
           System.out.println("开始学习Java课程");
       }
       System.out.println("学业有成,拿高薪!");
   }
}

选项:

A.程序员 ​ 学业有成,拿高薪!

B.程序员 ​ 咨询Java课程 ​ 开始学习Java课程 ​ 学业有成,拿高薪!

C.咨询Java课程 ​ 开始学习Java课程

D.代码编译报错

题目2(单选):

代码如下,运行完成之后的结果是:10是偶数,则横线处填写的正确代码是( B )

public class Test{
   public static void main(String[] args){
       int a=10;
       if(____________){
           System.out.println(a+"是偶数");
       }
   }
}

选项:

A. a/2==0

B. a%2==0

C. a%=2

D. a/=2

题目3(单选):

下列代码的运行结果是( D )

public static void main(String[] args) {
   boolean flag = false;
   int num = 10;
   if (flag){
      num++;
   }
   num++;
   if(num < 11){
       System.out.println("天生我材必有用");
       if (num > 5){
           System.out.println("千金散尽还复来");
       }
   }
   System.out.println("饿了么?");
}

选项:

A.没有任何输出

B.天生我材必有用

C.天生我材必有用 ​ 千金散尽还复来 ​ 饿了么?

D.饿了么?

题目4(单选):

下列代码的运行结果是( C )

public class Test {
   public static void main(String[] args) {
       int age = 8;
       if(age > 15){
           System.out.println("高中欢迎你");
       }else if(age > 12){
           System.out.println("初中班欢迎你");
       }else if(age > 7){
           System.out.println("小学欢迎你");
       }else{
           System.out.println("幼儿园欢迎你");
       }
   }
}

选项:

A. 高中欢迎你

B. 初中班欢迎你

C. 小学欢迎你

D. 幼儿园欢迎你

题目5(单选):

以下代码片段执行后,控制台的输出结果为 ( C )

public static void main(String[] args) {
   int num = 12;
   if (num == 12) {
       System.out.print("白日依山尽 ");
       if (num >= 11) {
           System.out.print("黄河入海流 ");
       }
   } else {
       System.out.print("欲穷千里目 ");
   }
   System.out.print("更上一层楼 ");
}

选项:

A. 更上一层楼

B. 白日依山尽 欲穷千里目 更上一层楼

C. 白日依山尽 黄河入海流 更上一层楼

D. 白日依山尽 黄河入海流 欲穷千里目 更上一层楼

题目6:

下列代码的运行结果是( C )

public static void main(String[] args) {
   int a = 3;
   int b = 5;
   int c = 8;
   if (a > b ) {
       if (a > c) {
           System.out.println(a);
       }else {
           System.out.println(c);
       }
   }else {
       if (b > c) {
           System.out.println(b);
       } else {
           System.out.println(c);
       }
   }
}

选项:

A.3

B.5

C.8

D.没有任何输出

题目7(单选):

下列代码的运行结果是( B )

public static void main(String[] args){
   int number = 1;
   if(number==0){
     System.out.println("石头");
   }else if(number==1){
     System.out.println("剪刀");
   } else if(number==2){
     System.out.println("布");
   }else{
     System.out.println("错误");
   }
}

选项:

A.石头

B.剪刀

C.布

D.错误

题目8(单选):

下列代码的运行结果是 ( B )

public static void main(String[] args) {
public class Test {
   public static void main(String[] args) {
       char c = 'c';
       switch (c){
           case 'a':
               System.out.println("张三");
           case 'b':
               System.out.println("李四");
               break;
           case 'c':
               System.out.println("王五");
           case 'd':
               System.out.println("程序员");
               break;
           default:
               System.out.println("程序结束!");
               break;
       }
   }
}

选项:

A.张三 ​ 李四

B.王五 ​ 程序员

C.程序结束!

D.李四 ​ 王五

2 代码题
题目9:

李雷想买一个价值7988元的新手机,她的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新的优惠,把 她的旧手机交给店家,新手机就能够打8折优惠。

为了更省钱,李雷要不要以旧换新?请在控制台输出。

思路分析:

怎样计算不同方式的花费?

用什么语句能够对不同购买方式的价格做出判断?

参考步骤:

计算不使用以旧换新时的花费。

计算使用以旧换新时的花费。

使用if..else语句判断哪种方式更省钱,并输出结果。

参考答案:

作业:

1.if..else语句判断

class Test09 {
public static void main(String[] args) {
      //计算不使用以旧换新的花费
      int secondHand = 7988 - 1500;
      //计算以旧换新的花费
      double discount = 7988 * 0.8;
      //判断两种方式
      if(secondHand > discount){
        System.out.println("使用以旧换新更省钱");
      }else{
        System.out.println("不使用以旧换新更省钱");
      }
    }
}


运行效果:

题目10:

键盘录入一个月份数字,使用switch输出这个月份对应的季节.

参考步骤:

键盘录入月份并使用switch进行判断,可以使用case穿透来完成.

实现步骤:

创建键盘录入对象

录入数据

switch语句进行判断实现(最好使用case穿透)

参考答案:

1.switch语句进行判断(使用穿透)

import java.util.Scanner;

public class Test10 {
    public static void main(String[] args) {
        System.out.println("请输入你想查询的月份:(之后将给出你季节)");
        Scanner sc = new Scanner(System.in);
        int month = sc.nextInt();
        switch (month) {
            case 1:
            case 2:
            case 3:
                System.out.println("你输入的月份为:" + month + "月此刻为春季!");
                break;
            case 4:
            case 5:
            case 6:
                System.out.println("你输入的月份为:" + month + "月此刻为夏季!");
                break;
            case 7:
            case 8:
            case 9:
                System.out.println("你输入的月份为:" + month + "月此刻为秋季!");
            case 10:
            case 11:
            case 12:
                System.out.println("你输入的月份为:" + month + "月此刻为冬季!");
                break;
            default:
                System.out.println("你输入的月份为:" + month + "月,你输入有误请重新输入!");
                break;
        }
    }
}


运行效果:

第五章:java循环结构测试题


1 选择题
题目1(单选):

下列代码的运行结果是( A )

public class test {
       public static void main(String[] args) {
           int sum = 0;
           int i=0;
           while (i<=5){
               if(i % 2 != 0){     第一次:i=0,0除任何数都是无余数 i++;i=1
                                   第二次:i=1 不等于0 sum=0+1=1; i=2
                   sum += i;       第三次:i=2 取余等于0 i=3
               }                   第四次:i=3 取余不等于0 sum=1+3=4 i=4
               i++;                第四次 i=4 取余为0 i=5
           }                       第五次 i=5 取余不为0 sum=4+5=9 i=6 运行结束
           System.out.println("sum = " + sum);
       }
}

选项:

A. sum = 9

B. sum = 6

C. sum = 15

D. sum = 0

题目2(单选):

以下代码片段执行后,控制台的输出结果为( A )

public static void main(String[] args) {
   int sum=0;
   int i=1;
   while(i<3){
       sum+=i;
       i++;
   }
   System.out.print("sum="+sum);
}

选项:

A. sum=3

B. sum=0

C. sum=6

D. sum=1

题目3(单选):

下列代码的运行结果是( B )

public class Test {
   public static void main(String[] args) {
       int sum = 0;
       for(int i = 0; i < 10; i++){
          if (i % 3 != 0){
              sum += i;
          }
       }
       System.out.println("sum = " + sum);
   }
}

选项:

A. sum = 45

B. sum = 27

C. sum = 18

D. sum = 55

题目4(单选):

阅读代码,下面那些代码片段能够求1~10(包含1也包含10)之间偶数的和( A )

选项:

A.

int sum=0;
for(int i=1;i<=10;i++){
   if(i%2==0){
       sum+=i;
   }
}

B.

int sum=0;
for(int i=1;i<10;i+=2){
   sum+=i;
}

C.

int sum=0;
for(int i=1;i<10;i++){
   if(i%2!=0){
       sum+=i;
   }
}

D.

int sum=0;
for(int i=0;i<=10;i+=2){
   sum+=i;
}

题目5(单选):

关于for循环语句说法错误的是( A )

for (初始化语句; 循环判断表达式; 步进语句) {
   ①int a = 10;
   ②循环体;
}

选项:

A. 因为初始化语句在循环中只执行一次,所以循环过程中, 无法使用初始化语句中定义的变量.

B. 循环判断表达式的执行次数,会比循环体的执行次数多一次.

C. ①处定义的变量a,每一次进入循环,都会重新定义一个新的变量.

D. 循环体是否执行,需要根据[循环判断表达式]返回的true或false而定.

题目6(单选):

下列代码的运行结果是( D )

public static void main(String [] args){
    int i = 1;
    while(i == 10){
        ++i;
        System.out.println("执行循环啦");
    }
}

选项:

A.语法错误.

B.打印9次执行循环啦.

C.打印10次执行循环啦.

D.没有输出结果.

题目7(单选) :

下列代码的运行结果是( A )

public static void main(String[] args) {
   int count = 0;
   int i = 2;
   while( i < 7){
       if (i % 2 == 1){
           count++;
       }
           
       i++;
   }
   System.out.println(count);
}

选项:

A.2

B.3

C.4

D.5

题目8(单选):

下面有关do...while循环的执行流程,那些描述是正确的( B )

选项:

A.do...while循环在循环条件成立的情况下,循环语句体才能被执行.

B.do...while循环的循环条件即使不成立,循环语句体也能被执行1次.

C.do...while循环的循环语句体只能被执行一次.

D.do...while是先判断循环条件是否成立,再执行循环语句体.

2 代码题
题目9:

在中国历法中有十二生肖年份,2019年是己亥猪年,请在控制台输出从1949年(包含)到2019年(包含)中所有是猪年的年份。

参考步骤:

定义for循环,1949到2019的年份是循环次数.

对每个年份逐个判断,如果年份和2019的差值是12的倍数,说明这年是猪年.

打印符合条件的年份.

参考答案:

作业:

1.for循环的使用

public class Test11 {
    public static void main(String[] args) {
        System.out.println("以下年份都是猪年:(1949年-2019年)");
      for (int i = 2019; i >= 1949; i=i-12) {
          
          System.out.print(i);
          System.out.print("年");
          System.out.print(" ");
    }
    }
}
运行效果:

题目10:

中国使用的公历有闰年的说法,闰年的规则是:四年一闰,百年不闰,四百年再闰。(年份能够被4整除但不能被100整除算是闰年,年份能被400整除也是闰年).请打印出1988年到2019年的所有闰年年份。

参考步骤:

定义for循环,循环变量开始是1988,结束是2019.

在循环中对年份进行判断,判读条件为:可以被4整除,并且不可以被100整除,或者可以被400整除.

如果符合条件,输出该年份.

参考答案:

作业:

1.for循环嵌套if的使用

2.整除取余

public class Test12 {
    public static void main(String[] args) {
        System.out.println("以下年份都是闰年:");
        for (int i = 2019; i >= 1988; i--) {
            //可以被4整除,并且不可以被100整除,或者可以被400整除.
            //解读:被4整除和不可被4整除要同时满足,或者就是或运算
            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {


                System.out.print(i);
                System.out.print("年");
                System.out.print(" ");

            } else {

            }

        }
    }

}
运行效果:

第六章:java循环选择随机综合测试题
1 选择题
题目1(单选):

下列代码的运行结果是( C )

public static void main(String[] args) {
   int sum=0;
   for (int i = 1; i < 3; i++) {
       for (int j = 1; j < 3; j++) {
           sum+=i*j;
       }
   }
   System.out.println("sum="+sum);
}

选项:

A.sum=3

B.sum=4

C.sum=9

D.sum=5

题目2(单选):

下列代码的运行结果是( B )

public static void main(String [] args){
    for (int i = 0; i < 1; i++) {
       System.out.println("执行语句1");
       for (int j = 0; j < 2; j++) {
           System.out.println("执行语句2");
       }
       System.out.println("执行语句3");
   }
}

选项:

A.

没有输出结果

B.

执行语句1

执行语句2

执行语句2

执行语句3

C.

执行语句1

执行语句2

执行语句3

D.

执行语句1

执行语句2

执行语句2

执行语句3

执行语句1

执行语句2

执行语句2

执行语句3

题目3(单选):

分析以下代码片段,并按照下列两个问题在横线处补全代码,下列选项正确的是( C )

public class Test01 {
   public static void main(String[] args) {
       for(int x=1; x<=10; x++) {
           if(x % 3==0) {
             // 补全代码
              __________
           }
           System.out.println("我爱Java!");
       }
   }
}
问题:
① 在控制台输出2次:"我爱Java!" 横线处应该填写什么?
② 在控制台输出7次:"我爱Java!" 横线处应该填写什么?

选项:

A.

①continue ​ ②break

B.

①continue ​ ②continue

C.

①break ​ ②continue

D.

①break ​ ②break

题目4(单选):

下列代码的运行结果是( C )

public static void main(String[] args){
   for(int i=1;i<=10;i++){
       if(i%5==0){
           System.out.println("hello");
           break;
       }
   }
}

选项:

A.输出5个hello

B.输出4个hello

C.输出1个hello

D.输出9个hello

题目5(单选):

下列关于break和continue说法正确的是( C )

选项:

A.break是跳出本次循环,执行break之后,循环还可以继续执行.

B.continue是跳出整个循环,一定会让这个循环终止.

C.break除了用于循环还可以用于swtich语句,在switch语句中表示跳出switch语句,在循环中表示终止当前循环.

D.continue除了用于循环还可以用于switch语句,都表示继续匹配的意思.

题目6(单选):

下列代码的运行结果是( B )

public static void main(String[] args) {
    int count = 0;
    for(int i = 1;i <= 10;i++) {
       if(i % 5 == 0) {
           break;
       }
       if (i == 3 || i == 7 || i == 9){
           continue;
       }
       count++;
   }
   System.out.println(count);
}

选项:

A.4

B.3

C.2

D.1

题目7(单选):

下列代码能够获取1到100(包含1和100)之间随机数的是( C )

选项:

A.

Random r = new Random();
int num = r.nextInt();

B.

Random r = new Random();
int num = r.nextInt(100);

C.

Random r = new Random();
int num = r.nextInt(100)+1;

D.

Random r = new Random(System.in);
int num = r.nextInt(100+1);

题目8(单选):

下列代码能够用于随机产生[1,99]包含1,包含99之间整数的是( B )

选项:

A.

public static void main(String[] args) {
   Random r = new Random();
   int num = r.nextInt(40)+59;
   System.out.println(num);
}   

B.

public static void main(String[] args) {
   Random r = new Random();
   int num = r.nextInt(99) + 1;
   System.out.println(num);
}

C.

public static void main(String[] args) {
   Random r = new Random();
   int num = r.nextInt(99);
   System.out.println(num);
}

D.

public static void main(String[] args) {
   Random r = new Random();
   int num = r.nextInt(100)-1;
   System.out.println(num);
}

2 代码题
题目9:

有一个输出语句System.out.print("@"),表示输出一个"@",并且不换行,使用这个语句,在控制台打印出一个四行五列的长方形,效果如下:

@@@@@
@@@@@
@@@@@
@@@@@

参考步骤:

定义循环执行4次,代表一共4行.

在循环内部再次定义循环执行5次,代表每行输出5个符号.

在内层循环中输出符号,并且不换行.

每行符号打印结束之后,添加一个换行操作.

参考答案:.

作业:

1.for循环的嵌套使用

/**
* @Author 赵广陆
* @Date 2020/2/26 0026 15:35
* @Version 1.0
*/
/*
@@@@@
@@@@@
@@@@@
@@@@@
有一个输出语句有一个输出语句System.out.print("@"),表示输出一个"@",并且不换行,使用这个语句,在控制台打印出一个四行五列的长方形,
* */
 

public class Test {
    public static void main(String[] args) {
        for (int i = 0; i < 4; i++) {
            for (int j = 1; j <= 5; j++) {

                System.out.print("@");

            }
            System.out.println("");
        }

    }
}
运行效果:

题目10:

有一个输出语句System.out.print("@"),使用这个语句,在控制台打印出一个五行的三角形,效果如下

@
@@
@@@
@@@@
@@@@@

参考步骤:

定义循环执行5次,循环变量从1到5,代表一共5行.

定义内层循环执行i次,代表每行打印的个数是i,这个i即为外层循环的循环变量.

在内层循环中输出符号,并且不换行.

每行符号打印结束之后,添加换行操作.

参考答案:

作业:

1.循环嵌套的应用

/**
* @Author 赵广陆
* @Date 2020/2/26 0026 15:35
* @Version 1.0
*/
/*
@
@@
@@@
@@@@
@@@@@
有一个输出语句System.out.print("@"),使用这个语句,在控制台打印出一个五行的三角形,效果如下
* */

public class Test {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j <= i; j++) {

                System.out.print("@");

            }
            System.out.println("");
        }
​​
    }
}
运行效果:

第七章:java数组测试题
1 选择题
题目1(单选):

下列数组创建并初始化格式错误的是( C )

选项:

解析:数组不能即给定长度有付裕初值,画蛇添足!

A.int[] arr = new int[] {33,22,11};

B.int[] arr = new int[4];

C.double[] arr = new double[3]{5.2, 3.14, 6.18};

D.int[] arr = {11,22,33};

题目2(单选):

下列操作中能够正常编译运行的是( C )

选项:

A.

public static void main(String[] args){
   int[] arr = {1,2,3};
   int num = arr;
}

B.

public static void main(String[] args){
   int[] arr = {1,2,3};
   int num = arr0;
}

C.

public static void main(String[] args){
   int[] arr = {1,2,3};
   arr[1] = 5;
}

D.

public static void main(String[] args){
   int[] arr = {1,2,3};
   arr.[0] = 2;
}

题目3(单选):

代码如下,运行结果是7,则横线处应该填写的内容是( B )

public static void main(String[] args){
   int[] arr = { 3,6,7,2,5,8 };
   System.out.println(____________);
}

选项:

A.arr[6]

B.arr[2]

C.arr[1]

D.arr[0]

题目4(单选):

下列代码的运行结果是( D )

public static void main(String[] args) {
   int arr[] = {1, 3, 5, 7, 9};
   System.out.println("结果是:"+arr[1]);
   System.out.println("结果是:"+arr[arr.length-1]);//数组长度是5-1是4 然后索引是从0开始
}

选项:

解析:数组长度是从1~n,数组索引是从0~n-1长度,也就是索引指向0就是数组第一个元素!

A.结果是:1 ​ 结果是:9

B.结果是:1 ​ 结果是:7

C.结果是:3 ​ 结果是:7

D.结果是:3 ​ 结果是:9

题目5(单选):

下列代码中,有关数组的定义格式错误的是( C )

选项:

A.int[] arr = {1,2,3,4,5,6};

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

C.int[] arr = new int[6]{1,2,3,4,5,6};

D.int[] arr = new int[]{1,2,3,4,5,6};

题目6(单选):

下列代码能够正常运行的是( B )

选项

A.

public class Demo{
   public static void main(String[] args){
       int[] arr = {1,2,3,4,5,6,7};
       for (int i = 0; i <= arr.length; i++) {
           System.out.println(arr[i]);
       }
   }
}

B.

public class Demo{
   public static void main(String[] args){
       int[] arr = {1,2,3,4,5,6,7};
       for (int i = 0; i < arr.length; i++) {
           System.out.println(arr[i]);
       }
   }
}

C.

public class Demo{
   public static void main(String[] args){
       int[] arr = {1,2,3,4,5,6,7};
       int i = 0;
       while(i < arr.length){
           System.out.println(arr[i]);
       }
   }
}

D.

public class Demo{
   public static void main(String[] args){
       int[] arr = {1,2,3,4,5,6,7};
       for (int i = 0; ; i++) {
           System.out.println(arr[i]);
       }
   }
}

题目7(单选):

下列代码能够获取任意数组中元素最大值的是( C )

选项:

A.

public class Demo{
   public static void main(String[] args){
       int[] arr = {23,544,56,1,23,45,21,1,78};
       for (int i = 1; i < arr.length; i++) {
           int max = arr[0];
           if(max < arr[i]){
               max = arr[i];
           }
           System.out.println(max);
       }
   }
}

B.

public class Demo{  
   public static void main(String[] args){
       int[] arr = {23,544,56,1,23,45,21,1,78};
       int max = arr[0];
       for (int i = 1; i < arr.length; i++) {
           if(max > arr[i]){
               max = arr[i];
           }
       }
       System.out.println(max);
   }
}

C.

public class Demo{
   public static void main(String[] args){
       int[] arr = {23,544,56,1,23,45,21,1,78};
       int max = arr[0];
       for (int i = 1; i < arr.length; i++) {
           if(max < arr[i]){
               max = arr[i];
           }
       }
       System.out.println(max);
   }
}

D.

public class Demo{
   public static void main(String[] args){
       int[] arr = {-23,-544,-56,-1,-23,-45,-21,-1,-78};
       int max = 0;
       for (int i = 0; i < arr.length; i++) {
           if(max < arr[i]){
               max = arr[i];
           }
       }
       System.out.println(max);
   }
}

题目8(单选):

下面代码用于获取数组的最大值,画横线区域处应填写代码正确的是( C )

public static void main(String[] args){
   int[] arr = { 2,7,-1,6,3 };
   _____(1)______
   for(int i=1;i<arr.length;i++){
       if(___(2)____){
          ___(3)____
       }
   }
   System.out.println("最大值是:" + max);
}

选项:

A.

(1)int max = 0; ​ (2)arr[i]<max; ​ (3)arr[i] = max;

B.

(1)int max = 0; ​ (2)arr[i] > max; ​ (3)max = arr[i];

C.

(1)int max = arr[0]; ​ (2)arr[i] > max; ​ (3)max = arr[i];

2 代码题
题目9:

创建一个长度为6的整数数组,请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。

参考步骤:

定义长度为6的int数组。

创建随机数Random类对象。

遍历数组,在循环中生成随机数并给数组元素赋值。

定义求和变量,初始化值为0。

遍历数组,获取每一个元素,累加。

遍历结束,打印结果。

参考答案:

作业:

1.随机数的使用

2.数组的遍历

import java.util.Random;

/**
* @Author 赵广陆
* @Date 2020/2/28 0026 17:35
* @Version 1.0
*/
/*
创建一个长度为6的整数数组,请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。
* */

public class Test03 {
   public static void main(String[] args) {
       Random ran = new Random();
       int[] arr = new int[6];
       System.out.print("随机数:");
       for (int i = 0; i < arr.length; i++) {
           int x = ran.nextInt(100);
           System.out.print(" " + x);
           arr[i] = x;
       }
       int a = 0;
       for (int i = 0; i < arr.length; i++) {
           a += arr[i];
       }
       System.out.println("和为" + a);
   }
}
运行效果:

题目10:

请使用静态初始化的方式,创建一个长度为5的整数数组,并为数组中的元素赋值,遍历数组,在同一行打印所有元素,元素之间用空格隔开,比如:如果数组为{1,2,3,4,5}打印结果:1 2 3 4 5

参考步骤:

定义int数组,使用静态初始化方式为元素赋值。

使用for循环对数组进行遍历,循环索引从0开始,到数组的长度-1结束。

逐个打印数组元素,打印元素不换行,在输出元素的后面拼接空格。

参考答案:

作业:

1.静态数组的使用与遍历

/**
* @Author 赵广陆
* @Date 2020/2/28 0026 17:50
* @Version 1.0
*/
/*
请使用静态初始化的方式,创建一个长度为5的整数数组,并为数组中的元素赋值,遍历数组,在同一行打印所有元素,元素之间用空格隔开,比如:如果数组为{1,2,3,4,5}打印结果:1 2 3 4 5
* */
 

public class Test04 {
   public static void main(String[] args) {
       int[] arr = {1, 2, 3, 4, 5};
       for (int i = 0; i < arr.length; i++) {
           System.out.print(arr[i] + " ");
       }
   }
}
运行效果:

第八章:java方法入门测试题
1 选择题
题目1(多选):

下面关于方法的概述描述,正确的是(A B D )

选项 :

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

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

C:  方法可以让程序的执行效率更高 //我感觉执行效率由数据和数据结构与算法有关

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

题目2(多选):

以下选项中,关于方法定义的参数或返回值描述正确的是(A B D)

选项 :

A:  方法的参数可以有,可以没有,也可以有多个

B:  方法的参数就是定义一些变量,当方法被调用的时候,用来接收数据使用的

C:  一个方法执行完成之后可以有一个返回值 ,也可以有多个返回值

D:  方法的返回值是方法执行完成之后得到的结果

题目3(多选):

关于对方法的调用,正确的是(A D)

选项 :

A:  有具体返回值的方法, 可以直接调用, 赋值调用以及输出调用

B:  无具体返回值的方法, 可以直接调用和输出调用//如果这个对,viod能输出什么?

C:  有具体返回值的方法, 只能赋值调用和输出调用

D:  无具体返回值的方法, 只能直接调用

题目4(单选):

代码如下:

public static void main(String[] args){
  ________________________________
}

public static void method(){
   System.out.println("我是程序员");
}

运行结果是:

我是程序员

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

选项 :

A:  method;

B:  void v = method();

C:  method();

D:  method("我是程序员");

题目5(单选):

请观察以下代码,分别为第三行和第六行选出正确选项,保证可以在控制台上输出

public class Test08 {
   public static void main(String[] args){
        _____①_____
   }

   public _____②_____ print() {   
       System.out.println("wo ai java");
   }
}

运行结果是:

wo ai java

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

选项 :

A:  ① void v = print(); ② static void

B:  ① print(); ② static void

C:  ① int v = print(); ② static int

D:  ① print(); ② static

题目6(单选):

下列方法定义格式正确的是(B )

A:
public static void method1(){//方法嵌套
   public static void method2(){
   }
}

B:
public static void method1(){
}

C:
public static void method1(){//空方法不需要返回值
  return 10;
}

D:
public static boolean method1(int n){//无返回值
   if(n < 10){
       return false;
   }else if(n > 10){
        return true;
    }
}

选项 :

A: 选择A

B:  选择B

C:  选择C

D: 选择D

题目7(单选):

观察以下代码,请选出方法调用过程的正确顺序( D )

public static void main(String[] args) {
   System.out.println("开始执行");    //1
   int a = print(10); //调用方法跳转至方法               //2
   System.out.println(a);           //3
}
public static int print(int n){      //4
   n += 10;                         //5
   return n;                       //6
}

选项 :

A:  1,2,3,4,5,6

B:  1,2,4,6,5,3

C:  1,4,5,6,2,3

D:  1,2,4,5,6,3

题目8:

以下选项中,关于方法的调用过程描述正确的是 (A C D )

public class Demo{
 public static void main(String[] args) {
    int a = 10;
    int b = 20;
    int sum = getSum(a,b);
    System.out.println(sum);
    isEquals(a, b);
  }

 public static int getSum(int a,int b){
    int sum = a + b;
    return sum;
  }
 
 public static void isEquals(int a,int b){
   boolean c = a == b;
   System.out.println(c);
  }
}

选项 :

A:  由java虚拟机调用main方法,main方法先执行

B:  在main方法执行中,会定义a和b变量,并分别赋值10和20,然后先调用isEquals方法,再调用getSum方 法并输出结果

C:  调用getSum方法时,要先传入两个整数,否则编译失败。然后执行getSum方法内的代码,执行完成之后,将结果返回赋值给int类型的变量sum

D: 调用isEquals方法时,要先传入两个整数,否则编译失败。然后执行isEquals方法内的代码,执行完成之后,没有结果返回

2 代码题
题目9:

数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试

训练提示

根据方法的功能描述,方法的参数应该接收一个double类型数据。

小数的绝对值也是double,所以返回值类型也是double类型。

操作步骤

定义一个小数变量num。

定义获取绝对值的方法,方法的参数是一个double类型,返回值类型是double。

在方法内部使用if..else..判断。

3.1. 如果是负数则对负数取反并返回。

3.2. 如果不是负数则直接返回数字本身。

在主方法中调用绝对值方法,传入参数num,并接受返回值。

打印返回的结果。

参考代码

作业

1.方法的使用

import java.sql.SQLOutput;
import java.util.Scanner;

/**
* @Author 赵广陆
* @Date 2020/2/29 0029 15:45
* @Version 1.0
*/
/*
* 数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。
* 请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试
* */
public class Test05 {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       double num = sc.nextDouble();

       System.out.println(abs(num));
   }

   public static double abs(double num) {
       if (num > 0) {
           num = num;
       } else {

           num = -num;
       }
       return num;
   }
}
运行效果:

题目10:

定义一个方法,该方法能够找出三个整数中的最大值并返回。在主方法中调用方法测试执行。

训练提示

根据题意,方法中需要使用三个整数,所以方法参数应该是三个整数类型。

方法需要有返回值,返回值的类型也是整数类型。

解题方案

操作步骤

定义方法getMax(),方法的参数是三个int类型变量a,b,c,方法的返回值是int类型。

在方法中使用多分支if...else...判断出最大值并返回。

在主方法中调用getMax()方法并接受返回值。

在主方法中打印结果。

参考代码

作业:

1.方法调用

import java.util.Scanner;

/**
* @Author 赵广陆
* @Date 2020/2/29 0029 16:37
* @Version 1.0
*/
public class Test06 {
   public static void main(String[] args) {
       System.out.println("请依次输入三个数字,空格隔开或回车依次输入:");
       Scanner sc = new Scanner(System.in);
       int a = sc.nextInt();
       int b = sc.nextInt();
       int c = sc.nextInt();
       int max = getMax(a, b, c);
       System.out.println("最大值是" + max);


   }

   //得到最大值的方法
   public static int getMax(int a, int b, int c) {
       if (a > b && a > c) {
           return a;
       } else if (b > a && b > c) {
           return b;
       } else {
           return c;
       }
   }
}
运行效果:

第九章:java方法重载测试题
1 选择题
题目1(单选):

有关方法重载下列描述正确的是( C )

选项 :

A:  在多个类中,两个或者两个以上方法的名称一样,参数列表不一样,返回值必须一样,这些方法称之为重载

B: 在同一个类中,两个或者两个以上方法的名称一样,参数列表不一样,返回值必须相同,这些方法称之为重载

C:  在同一个类中,两个或者两个以上方法的名称一样,参数列表不一样,和返回值无关,这些方法称之为重载

D:  在多个类中,两个或者两个以上方法的名称一样,参数列表必须一样,和返回值无关,这些方法称之为重载

题目2(单选):

下面关于方法的重载,描述错误的是( A )

选项 :

A:    方法重载,是指方法的名称相同,参数列表也相同的多个方法

B:   方法重载,可以减少对方法名称的命名次数

C:   方法重载,只能在同一个java类当中

D:   方法重载,返回值类型可以不相同

题目3(单选):

下面关于方法的参数传递正确的是( C )

选项 :

A:  方法的参数是基本数据类型, 形参的改变直接影响实参的值

B:  方法的参数是引用数据类型, 形参的改变不影响实参的值

C:  方法的参数是基本数据类型, 形参的改变不影响实参的值

D:  方法的参数是基本数据类型,传递的是地址值.方法的参数是引用数据类型, 传递的是数据值

题目4(单选):

以下选项中,不属于方法重载的是(B )

A:
public class Demo{
 public int getSum(int a,byte b){
   return a + b;
  }
 
 public int getSum(int a,int b){
   return a + b;
  }
}

B:
public class Demo{
 public int getSum(int b,int a){
   return a + b;
  }
 
 public void getSum(int a,int b){
   System.out.println(a + b);
  }
}

C:
public class Demo{
 public long getSum(long a,int b){
   return a + b;
  }
 
 public long getSum(int a,long b){
   return a + b;
  }
}

D:
public class Demo{
 public void getSum(int a,int b){
   System.out.println(a + b);
  }
 
 public int getSum(int a,int b,int c){
   return a + b + c;
  }
}

题目5(单选):

观察下面代码,最终在控制台显示 33 正确的方法调用格式是( C )

public static void main(String[] args){
   //此处需要调用下面的某个方法,在控制台当中显示33
}

public static void printData(int a,int b){
   System.out.println(11);
}

public static void printData(int a){
   System.out.println(22);
}

public static void printData(boolean b){
   System.out.println(33);
}

public static void printData(){
   System.out.println(44);
}

选项 :

A:  printData(10,20);

B: printData(333);

C:  printData(true)

D:  printData();

题目6(单选):

下面代码执行之后,控制台显示的结果是( B )

public static void main(String[] args){
 
   int[] arr = { 11,22,33,44,55 };
   method(arr);
   for(int i = 0 ; i < arr.length ; i++){
       System.out.print(arr[i] + " ");
   }
}

public static void method(int[] arr){
   for(int i = 0 ; i < arr.length ; i++){
       if( i % 2 == 0 ){
           arr[i] += 100;
       }
   }
}

选项 :

A: 11    122   33   144  55

B:  111    22   133   44   155

C:  11    22    33    44    55

D: 111   122    133   144   155

题目7(单选):

下列代码的运行结果是(B )

public static void main(String[] args) {
   int arr[] = {1, 3, 5, 7, 9};
   int num = 10;
   showArray(arr, num);
   System.out.println("arr[2]的结果是:"+arr[2]);
   System.out.println("num的结果是:"+num);
}
private static void showArray(int[] arr, int num) {
   arr[2] = 6;
   num = 1;
}

选项 :

A: arr[2]的结果是:6

num的结果是:1

B:   arr[2]的结果是:6

num的结果是:10

C:   arr[2]的结果是:5

num的结果是:1

D: arr[2]的结果是:5

num的结果是:10

题目8(单选):

下列代码的运行结果是( C )

public static void main(String[] args) {
   int[] arr = {1,2,3,4,5};
   changeArr(arr);
   for (int i = 0; i < arr.length; i++) {
       System.out.print(arr[i]+",");
   }
}

public static void changeArr(int[] arr) {
   for (int i = 0; i < arr.length; i++) {
       if(arr[i]%2==1) {
           arr[i] = 10;
       }
   }
}

选项 :

A:  1,2,3,4,5,

B:   1,10,3,10,5,

C:   10,2,10,4,10,

D: 10,10,10,10,10,

2 代码题
题目9:

请定义一个方法,该方法可以实现对int类型的数组进行遍历,在控制台打印所有元素。实现方法后,请在主方法中调用方法,查看结果。例如,数组为{11, 22, 33},打印格式为:[11, 22, 33]

训练提示

1、首先明确方法的返回值和参数列表,该方法只需要在控制台输出,f返回值类型为void.要实现打印数组元素的功能,需要方法的调用者把想打印的数组传递过来,所以参数列表是int[] arr

2、方法实现之后,不调用的话会执行吗?该怎样调用?

操作步骤

1、定义方法,返回值类型为void,参数列表为int[] arr

2、在方法中,遍历数组,判断是否是最后一个元素,并且根据不同的情况输出不同的格式。

3、在主方法中定义一个数组,调用方法,将数组作为参数传递,查看运行结果。

参考代码

作业:

1.方法的使用

import java.util.Arrays;

/**
 * @Author 赵广陆
 * @Date 2020/3/1 0001 15:34
 * @Version 1.0
 */
/*
 *请定义一个方法,该方法可以实现对int类型的数组进行遍历,在控制台打印所有元素。
 * 实现方法后,请在主方法中调用方法,查看结果。例如,数组为{11, 22, 33},打印格式为:[11, 22, 33]
 *
 * */
public class Test07 {
    public static void main(String[] args) {
        int[] arr = {11, 22, 33};
        tra(arr);
    }

    // 1、定义方法,返回值类型为void,参数列表为int[] arr
    private static void tra(int[] arr) {
        //2、在方法中,遍历数组,判断是否是最后一个元素,并且根据不同的情况输出不同的格式。
        System.out.println("arr = " + Arrays.toString(arr));
    }
    // 3、在主方法中定义一个数组,调用方法,将数组作为参数传递,查看运行结果。

}
运行效果:

题目10:

请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。

例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,结果为{11, 66, 33, 44, 55, 22}

训练提示

1、首先明确方法的返回值和参数列表,交换元素, 不需要具体返回值.我们要操作哪个数组,要交换哪两个索引上的元素,所以参数列表应该接收一个数组,和两个变量(代表的要交换的索引)

2、在方法中,如果交换两个数组中的元素, 需要根据索引进行交换

3、在主方法中,用void修饰的方法,如何调用?

操作步骤

1、定义方法,返回值void,参数列表 int[] arr, int index1, int index2。

2、在方法中,定义临时变量,交换两个索引上的元素值。

3、在主方法中,创建一个int数组,调用方法,将数组作为参数传递。然后遍历数组查看结果

参考代码

作业:

1.索引数据类型形式参数可以改变

import java.util.Arrays;

/**
* @Author 赵广陆
* @Date 2020/3/1 0001 16:01
* @Version 1.0
*/
/*
* 请定义一个方法,实现交换整数数组中两个索引上的元素值。并调用方法,查看运行效果。
例如,数组为{11, 22, 33, 44, 55, 66},交换索引1和索引5位置上的元素,结果为{11, 66, 33, 44, 55, 22}
* */
public class Test08 {
   public static void main(String[] args) {
       int index1 = 1;
       int index2 = 5;
       int arr[] = {11, 22, 33, 44, 55, 66};
       tra(arr, index1, index2);
   }


   // 1、定义方法,返回值void,参数列表 int[] arr, int index1, int index2。
   private static void tra(int[] arr, int index1, int index2) {
       int a = arr[index1];
       arr[index1] = arr[index2];
       //2、在方法中,定义临时变量,交换两个索引上的元素值。
       arr[index2] = a;
       //3、在主方法中,创建一个int数组,调用方法,将数组作为参数传递。然后遍历数组查看结果
       System.out.println("arr = " + Arrays.toString(arr) + ", index1 = " + index1 + ", index2 = " + index2);
   }
}

运行效果:

第十章:java综合代码题
1 代码题
题目1:减肥活动
输入星期数,显示今天的减肥活动 ​ 周一:跑步 ​ 周二:游泳 ​ 周三:慢走 ​ 周四:动感单车 ​ 周五:拳击 ​ 周六:爬山 ​ 周日:好好吃一顿

操作步骤

键盘录入一个星期数,用一个变量接收

对星期数进行判断,这里用 switch 语句实现

在对应的语句控制中输出对应的减肥活动

参考代码

import java.util.Scanner;

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 14:18
 * @Version 1.0
 */
public class Test09 {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入一个星期数:");
  int week = sc.nextInt();
  switch (week) {
   case 1:
    System.out.println("跑步");
    break;
   case 2:
    System.out.println("游泳");
    break;
   case 3:
    System.out.println("慢走");
    break;
   case 4:
    System.out.println("动感单车");
    break;
   case 5:
    System.out.println("拳击");
    break;
   case 6:
    System.out.println("爬山");
    break;
   case 7:
    System.out.println("好好吃一顿");
    break;
   default:
    System.out.println("你输入的星期数有误");
  }
 }
}

题目2:逢七过
朋友聚会的时候可能会玩一个游戏:逢七过。 ​ 规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过。 ​ 为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过规则的数据。 ​ 这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。

操作步骤

数据在1-100之间,用for循环实现数据的获取

根据规则,用if语句实现数据的判断:要么个位是7,要么十位是7,要么能够被7整除

在控制台输出满足规则的数据

参考代码

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 14:29
 * @Version 1.0
 */

public class Test10 {
    public static void main(String[] args) {
        for (int x = 1; x <= 100; x++) {
            //根据规则,用if语句实现数据的判断:要么个位是7,要么十位是7,要么能够被7整除
            if (x % 10 == 7 || x / 10 % 10 == 7 || x % 7 == 0) {
                System.out.println(x);
            }
        }
    }
}
题目3:不死神兔
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, ​ 假如兔子都不死,问第二十个月的兔子对数为多少?

操作步骤

为了存储多个月的兔子对数,定义一个数组,用动态初始化完成数组元素的初始化,长度为20

因为第1个月,第2个月兔子的对数是已知的,都是1,所以数组的第1个元素,第2个元素值也都是1

用循环实现计算每个月的兔子对数

输出数组中最后一个元素的值,就是第20个月的兔子对数

参考代码

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 15:19
 * @Version 1.0
 */
/*    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
​        假如兔子都不死,问第二十个月的兔子对数为多少?*/
public class Test11 {
    public static void main(String[] args) {
       //在数组中不断叠加,有20个月叠加20次
        int[] arr = new int[20];
        //第一个月1只
        arr[0] = 1;
        //第二个月2两只
        arr[1] = 1;
        for (int x = 2; x < arr.length; x++) {
           //第三个月多一只,三个月之后每个月再多一只
            arr[x] = arr[x - 2] + arr[x - 1];
        }
        System.out.println("第二十个月兔子的对数是:" + arr[19]);
    }
}
题目4:百钱买百鸡
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 ​ 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

操作步骤

第1层循环,用于表示鸡翁的范围,初始化表达式的变量定义为 x=0,判断条件是x<=20

第2层循环,用于表示鸡母的范围,初始化表达式的变量定义为 y=0,判断条件是y<=33

这个时候,用于表示鸡雏的变量 z = 100 – x – y . 判断表达式 z%3==0 和表达式 5x + 3y + z/3 = 100 是否同时成立,如果成立,输出对应的 x,y,z 的值, 就是对应的鸡翁,鸡母,鸡雏的值

参考代码

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 15:42
 * @Version 1.0
 */
/*
* 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
* 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?*/
public class Test12 {
    public static void main(String[] args) {
        //第1层循环,用于表示鸡翁的范围也就是全买鸡翁和一只不买的范围
        for (int x = 0; x <= 20; x++) {
            //第2层循环,用于表示鸡母的范围
            for (int y = 0; y <= 33; y++) {
                //这个时候,用于表示鸡雏的变量
                //意思就是剩下的全买小鸡仔,小鸡仔最便宜
                int z = 100 - x - y;
                if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
                    System.out.println(x + "," + y + "," + z);
                }
            }
        }
    }
}
题目5:数组偶数求和
有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和, ​ 要求是:求和的元素个位和十位都不能是7,并且只能是偶数

操作步骤

定义一个数组,用静态初始化完成数组元素的初始化

定义一个求和变量,初始值是0

遍历数组,获取到数组中的每一个元素

判断该元素是否满足条件,如果满足条件就累加

输出求和变量的值

参考代码

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 16:13
 * @Version 1.0
 */
/*
*有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,
​        要求是:求和的元素个位和十位都不能是7,并且只能是偶数
* */
public class Test13 {
    public static void main(String[] args) {
        int[] arr = {68, 27, 95, 88, 171, 996, 51, 210};
        //也就是68+88+996+210=1362
        int sum = 0;
        for (int x = 0; x < arr.length; x++) {
           // 求和的元素个位和十位都不能是7,并且只能是偶数
            if (arr[x] % 10 != 7 && arr[x] / 10 % 10 != 7 && arr[x] % 2 == 0) {
                sum += arr[x];
            }
        }
        System.out.println("sum:" + sum);
    }
}
题目6:数组交换
已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换, ​ 交换后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出交换后的数组元素。

操作步骤

定义一个数组,用静态初始化完成数组元素的初始化

循环遍历数组,这一次初始化语句定义两个索引变量,判断条件是开始索引小于等于结束索引

变量交换

遍历数组

参考代码

import java.util.Scanner;

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 16:45
 * @Version 1.0
 */
public class Test14 {
    public static void main(String[] args) {
        int[] arr = {19, 28, 37, 46, 50};
        reverse(arr);
        printArray(arr);
    }

    public static void reverse(int[] arr) {
        for (int start = 0, end = arr.length - 1; start <= end; start++, end--) {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }

    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ", ");
            }
        }
        System.out.println("]");
    }
}
题目7:评委打分
在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 ​ 选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

操作步骤

1:定义一个数组,用动态初始化完成数组元素的初始化,长度为6

键盘录入评委分数

由于是6个评委打分,所以,接收评委分数的操作,用循环改进

定义方法实现获取数组中的最高分(数组最大值),调用方法

定义方法实现获取数组中的最低分(数组最小值) ,调用方法

定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法

按照计算规则进行计算得到平均分

输出平均分

参考代码

import java.util.Scanner;

/**
 * @Author 赵广陆
 * @Date 2020/3/3 0003 16:55
 * @Version 1.0
 */
public class Test15 {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);
        for (int x = 0; x < arr.length; x++) {
            System.out.println("请输入第" + (x + 1) + "个评委的打分:");
            arr[x] = sc.nextInt();
        }//printArray(arr);
        int max = getMax(arr);
        int min = getMin(arr);
        int sum = getSum(arr);
        int avg = (sum - max - min) / (arr.length - 2);
        System.out.println("选手的最终得分是:" + avg);
    }

    public static int getSum(int[] arr) {
        int sum = 0;
        for (int x = 0; x < arr.length; x++) {
            sum += arr[x];
        }
        return sum;
    }

    public static int getMin(int[] arr) {
        int min = arr[0];
        for (int x = 1; x < arr.length; x++) {
            if (arr[x] < min) {
                min = arr[x];
            }
        }
        return min;
    }

    public static int getMax(int[] arr) {
        int max = arr[0];
        for (int x = 1; x < arr.length; x++) {
            if (arr[x] > max) {
                max = arr[x];
            }
        }
        return max;
    }

    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ", ");
            }
        }
        System.out.println("]");
    }
}

第十一章:java类和对象测试题
1 选择题
题目1(单选):

下列关于面向对象描述错误的是 ( C )

选项 :

A:  面向对象是一种基于面向过程的编程思想。

B: 使用面向对象思想完成一个功能,强调找一个具有该功能的对象,使用这个对象完成功能。

C:  面向对象与面向过程,两种思想相互独立,二者没有任何关联.

D:  毛毛想吃棉花糖,她有2种方案,一是出去小吃街上找个卖棉花糖的商贩,让商贩给做一个大棉花糖.二是 自己上网搜索制作棉花糖的步骤,然后学着一步步自己做。自己做,就是面向过程思想,关注步骤;找商贩做就是面向对象思想,关注具备功能的对象.

题目2(单选):

下列关于类和对象描述正确的是( D )

选项 :

A:  类是描述事物的属性和行为的特征而对象是一类事物的模板

B:  类是事物的具体体现而对象是一组相关属性和行为的集合

C:  类和对象可以看成是一类事物的模板

D:   类是对一类事物的描述,是抽象的,可以看做成模板, 而对象是一类事物的实例,是具体的

题目3(单选):

下列信息中包含的内容不是类与对象关系的是( C )

选项 :

A:   学生和小明同学

B:   电脑和联想Y430电脑

C:   猫和狗

D:   手机和华为P30手机

题目4(单选):

为Person类定义姓名(name)、年龄(age)属性,为Person类定义吃饭(eat)行为,横线处应该填写的代码是( D )

public class Person {
   // 属性:姓名
   // 属性:年龄
   // 行为:吃饭
}

选项 :

A
String name;
String age;
public static void eat(){}

B
int name;
String age;
public void eat(){}

C
int name;
int age;
public static void eat(){}

D
String name;
int age;
public void eat(){}

题目5(多选):

代码如下:

public class Hero{
   String name;
   int age;
   String gender;
   public void skillQ(){
       System.out.println("Q技能");
   }
   public void skillW(){
       System.out.println("W技能");
   }
   public void skillE(){
       System.out.println("E技能");
   }
   public void skillR(){
       System.out.println("R技能");
   }
}

下列说法正确的是(BD )

选项 :

A: 英雄类中,变量name,age,gender没有赋值所以语法错误。

B: skillQ,skillW,skillE,skillR四个方法代表了这个英雄的四个行为。

C:  这个类中方法没有加static,所以语法错误。

D:  这个类是一个正确的定义格式,表示描述英雄这个事物,用属性和行为来进行描述的。

题目6(单选):

下列代码的运行结果是( A )

class Student {
   String name;
   int age;
   public void show() {
       System.out.println(name + "," + age);
   }
}
public class Test {
   public static void main(String[] args) {
       Student s = new Student();
       s.show();
       s.name = "张三丰";
       s.age = 108;
       s.show();
   }
}

选项 :

A: null,0

张三丰,108

B:   "",0

"张三丰",108 

C:   null,null

"张三丰",108

D: null,null

张三丰,108

题目7(单选):

下列关于局部变量和成员变量描述错误的是( B)

选项 :

A: 成员变量定义在类中,方法外;局部变量定义在方法内。

B:   成员变量和局部变量在整个类中都可以使用

C:  成员变量有默认值;局部变量没有默认值,必须先赋值,后使用.

D: 成员变量随对象一起在堆内存中存储,局部变量随方法的调用而存在于栈内存。

题目8(单选):

代码如下:

public class Student{
    String name;
    int age;
    public void study(){
        System.out.println("学习");
    }
}
public class Demo{
    public static void main(String [] args){
        Student s = new Student();      ①
       s.name = "小丽";                ②
       s.age = 16;                    ③
       s.study();                     ④
       s = new Student();              ⑤
       s.name = "小丽";
       s.age = 16;
       s.study();
   }
}

下列说法错误的是(D )

选项 :

A:  关于①这一行代码,表示在堆里面开辟一个空间。等号左边的局部变量在栈,右边new出来的空间在堆,把右边的地址值赋值给左边的变量。

B:   ②这里表示把"小丽"这个值赋值给s记录的对象中name属性 ,

C:   ④这个代码表示调用成员方法,所以此时study这个方法会被加载进栈执行。

D: ⑤这里的对象跟①处的对象,属性都是小丽,16。所以表示同一个对象。

2 代码题
题目9:

请定义教师类(Teacher),属性包括姓名和工号。。定义教课(teach)方法,输出“工号为xxx的xxx老师正在讲课”。

训练提示

1、教师类,属性有两个,姓名和工号,定义为成员变量,都可以定义为字符串类型

2、教师类,有一个教课行为,定义成员方法,输出相应的信息

4、教师类定义完,在测试类中创建对象进行测试。

操作步骤

1、定义Teacher类,定义两个成员变量String name, String id,都使用private修饰

2、编写成员方法teach(),按照要求的格式将属性信息进行输出。

4、编写测试类TeacherTest,在主方法中创建教师对象,直接调用对象的属性,进行赋值

5、调用teach方法。

参考代码

Teacher类:

/**
 * @Author 赵广陆
 * @Date 2020/3/4 0004 16:59
 * @Version 1.0
 */
/*
* 1、教师类,属性有两个,姓名和工号,定义为成员变量,都可以定义为字符串类型
2、教师类,有一个教课行为,定义成员方法,输出相应的信息
4、教师类定义完,在测试类中创建对象进行测试。
* */
public class Teacher {
    private String name;
    private String id;
    public void teach(){
        System.out.print("老师正在讲课");
    }

    public String getName(String name) {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId(String s) {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "工号为:" + id +  name +"老师";

    }
}
测试类:

/**
 * @Author 赵广陆
 * @Date 2020/3/4 0004 15:52
 * @Version 1.0
 */
public class Test16 {

    public static class Demo{
        public static void main(String [] args){
            Teacher teach=new Teacher();
            teach.setId("007");
            teach.setName("王");
            System.out.print(teach.toString());
            teach.teach();
        }
    }
    }

运行效果

题目10:

定义手机类,手机有品牌(brand),价格(price)和颜色(color)三个属性,有打电话call()和sendMessage()两个功能。

定义测试类,在主方法中创建对象,直接给对象的属性赋值。

调用对象的两个功能,打印效果如下:

正在使用价格为3998元黑色的小米手机打电话....
正在使用价格为3998元黑色的小米手机发短信....

训练提示

类中的属性就是成员变量,类中的行为功能就是成员方法。

操作步骤

定义手机类,手机类中定义String类型的品牌,int类型的价格,String类型的颜色,

编写打电话的成员方法,方法中对成员变量进行使用。

编写发短信的成员方法,方法中对成员变量进行使用。

在测试类中创建手机对象,直接给对象的属性赋值,分别调用各个方法。

参考代码

手机类:

public class Phone {
    String brand;
    int price;
    String color;
    public void call(){
        System.out.println("打电话....");
    }

    public void sendMessage(){

        System.out.println("发短信....");
    }

    @Override
    public String toString() {
        return "正在使用" + "价格为"+price+"元"+ color+brand+"手机";


    }
}
测试类:

/**
 * @Author 赵广陆
 * @Date 2020/3/4 0004 17:23
 * @Version 1.0
 */
public class Test17{


    public static void main(String[] args) {
        Phone ph1=new Phone();
        ph1.brand="小米";
        ph1.color="黑色的";
        ph1.price=3998;
        System.out.print(ph1.toString());
        ph1.call();
        Phone ph2=new Phone();
        ph2.brand="小米";
        ph2.color="黑色的";
        ph2.price=3998;
        System.out.print(ph2.toString());
        ph2.sendMessage();

    }


}
运行效果:

第十二章:java封装构造测试题
1 选择题
题目1(单选):

下列关于private描述错误的是 ( D )

选项 :

A: 被private修饰的成员变量和成员方法,只能在本类中使用,不能在其他类中直接访问

B: private是一个权限修饰符,可以完成类对成员变量的封装,防止外部非法访问.

C:  类的成员变量被private修饰,如果想让成员变量被其他类使用,可以为成员变量提供对应public的setXxx和getXxx方法.

D:   private仅用来修饰成员变量.

题目2(单选):

下列关于this描述错误的是( B )

选项 :

A:  当成员变量和局部变量重名时,可以使用this来区分。

B:  this可以调用本类的成员变量和成员方法 ,调用不了构造方法

C:   this表示本类对象的引用。

D:  在方法中访问本类成员变量(非重名),可以省略this不写。

题目3(多选):

下列关于构造方法说法正确的是(BD )

选项 :

A:   我们可以用对象直接调用构造方法。

B:   构造方法在创建对象的时候被调用,用来进行对成员变量的初始化

C:   构造方法的方法名可以随便定义,只要符合Java的基本命名规范即可。

D:   构造方法不能有返回值,连void都不能有。

题目4(单选):

代码如下:

public class Person{
    private String name;
    __________________
}

横线处填写Person类的构造方法的正确语法格式是(C )

选项 :

A

public void Person(String name){
     name = name;
}

B

public person(){
}

C

public Person(String name){
     this.name = name;
}

D

public Person(String name){
    return name;
}

题目5(单选):

代码如下:

public class Student {
    private String name;
    private int age;

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

    public void setName(String name) {
        this.name = name;
    }
 
    public String getName(){
       return name;
    }

    public void setAge(int age) {
        this.age = age;
    }
 
    public int getAge(){
       return age;
    }
 
    public void show(){
        System.out.println(name + "---" + age);
    }
}

下列描述正确的是(C )

选项 :

A: 此时空参构造可以省略不写,因为虚拟机会默认给出。 X

B:  根据面向对象的要求,get和set方法不写,只要把定义变量前面的private删掉也可以。 //不满足封装效果感觉不对

C:  全参构造用来给成员变量初始化值,set方法用来给成员变量赋值

D: 构造方法的名字大小写都可以 X

题目6(单选):

下列代码的运行结果是(C )

class Student {
    private String name;
    private int age;
   public String getName() {
       return name;
   }

   public void setName(String name) {
       name = name;
   }

   public int getAge() {
       return age;
   }

   public void setAge(int age) {
       this.age = age;
   }
}
public class Demo{
    public static void main(String [] args){
       Student s = new Student();
       s.setName("小丽");
       s.setAge(16);
       System.out.println(s.getName() + "---" + s.getAge());
   }
}

选项 :

A:  语法错误,编译报错。

B: 小丽 --- 16

C:  null --- 16

D:  小丽 --- 0

题目7(单选):

下列代码的运行结果是(D )

public class Person{
    private String name;
    private int age;
    public void setAge(int age){
        this.age = age;     //请重点关注
    }
   public int getAge(){
        return age;         //请重点关注
    }
    public void setName(String name){
        name = name;        //请重点关注
    }
   public String getName(){
        return name;        //请重点关注
    }
    public void show(){
        System.out.println(age + "::"+ name);
    }
}
public class Test{
    public static void main(String[] args){
        Person p = new Person();
        p.age = 10;
        p.setName("播仔");
        p.show();
    }
}

选项 :

A: 10::播仔

B:  0::播仔

C: 10::null

D: 语法错误,编译报错。

题目8单选):

下列代码的运行结果是(B )

public class Person{
   private String name="张三";
   public Person(){
       name="李四";
   }
   public Person(String name){
       this.name=name;
   }
   public void setName(String name){
       this.name = name;
   }
   public String getName(){
       return name;
   }
   public void show(){
       System.out.println(name);
   }
}
public class Test{
   public static void main(String[] args){
       Person p1=new Person();
       p1.show();
       Person p2=new Person("王五");
       p2.show();
   }
}

选项 :

A: 张三

李四

B:  李四

王五

C:  张三

王五

D: 李四

张三

2 代码题
题目9:

定义标准学生类,属性包括姓名和年龄,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。

训练提示

1、学生类,属性有两个,姓名和年龄,定义为成员变量,姓名是字符串类型,年龄是整数

2、提供空参构造、带参构造,提供两个成员变量的get和set方法

3、学生类,有一个show方法,定义成员方法,输出相应的信息

4、学生类定义完,在测试类中创建对象进行测试。

操作步骤

1、定义Student类,定义两个成员变量String name, int age,都使用private修饰

2、提供空参构造方法和有参构造方法,提供get和set方法

3、编写成员方法show(),按照要求的格式将属性信息进行输出。

4、编写测试类StudentTest,在主方法中创建学生对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值。

5、调用show方法。

参考代码

Student类:

/**
 * @Author 赵广陆
 * @Date 2020/3/5 0005 15:55
 * @Version 1.0
 */
/*
*     定义标准学生类,属性包括姓名和年龄,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值
* 有参创建的对象直接赋值,并通过show方法展示数据。
 * */
/*
* ### 操作步骤

1、定义Student类,定义两个成员变量String name, int age,都使用private修饰

2、提供空参构造方法和有参构造方法,提供get和set方法

3、编写成员方法show(),按照要求的格式将属性信息进行输出。

4、编写测试类StudentTest,在主方法中创建学生对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值。

5、调用show方法。
* */
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    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 void show(){
        System.out.print("name = " + name);
        System.out.println("age = " + age);

    };
}
 测试类:

/**
 * @Author 赵广陆
 * @Date 2020/3/5 0005 16:14
 * @Version 1.0
 */
public class StudentTest {
    public static void main(String[] args) {
        Student stu=new Student();
        stu.setAge(18);
        stu.setName("张三");
        stu.show();
    }
}
 运行效果

题目10:

请定义教师类(Teacher),属性包括姓名和工号。要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值。定义教课(teach)方法,输出“工号为xxx的xxx老师正在讲课”。

训练提示

1、教师类,属性有两个,姓名和工号,定义为成员变量,都可以定义为字符串类型

2、提供空参构造、带参构造,提供两个成员变量的get和set方法

3、教师类,有一个教课行为,定义成员方法,输出相应的信息

4、教师类定义完,在测试类中创建对象进行测试。

操作步骤

1、定义Teacher类,定义两个成员变量String name, String id,都使用private修饰

2、提供空参构造方法和有参构造方法,提供get和set方法

3、编写成员方法teach(),按照要求的格式将属性信息进行输出。

4、编写测试类TeacherTest,在主方法中创建教师对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值。

5、调用teach方法。

参考代码

Teacher类:

/**
 * @Author 赵广陆
 * @Date 2020/3/5 0005 16:17
 * @Version 1.0
 */
/*
 *     定义标准学生类,属性包括姓名和年龄,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值
 * 有参创建的对象直接赋值,并通过show方法展示数据。
 * */
//4、编写测试类TeacherTest,在主方法中创建教师对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值。
public class Teacher {
    String name;
    private String id;

    public Teacher() {
        this.name = "王";
        this.id = "007";
    }


    public void teach() {
        System.out.println("工号为" + id + name + "老师正在讲课");
    }


    public String getId(String s) {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public String getName(String name) {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Teacher(String name, String id) {
        this.name = name;
        this.id = id;
        System.out.println("工号为" + id + name + "老师正在讲课");

    }

    @Override
    public String toString() {
        return "工号为" + id + name + "老师"+"正在讲课";

    }
}
测试类:

/**
 * @Author 赵广陆
 * @Date 2020/3/5 0005 16:32
 * @Version 1.0
 */
public class TeacherTest {
    public static void main(String[] args) {
        Teacher th=new Teacher();
        //无惨构造直接赋初值
        th.teach();
        //有参构造直接赋值
        Teacher th1=new Teacher("李","008");
        //空参set get赋值
        Teacher teach=new Teacher();
        teach.setId("009");
        teach.name="东哥";
        System.out.print(teach.toString());

    }
}
运行效果:

第十三章:java字符串String和StringBuilder测试题
1 选择题
题目1(单选):

下面是关于String类 API 当中与判断相关的方法,如果用于忽略大小写验证码的判断,最佳的方法是(B )

选项 :

A:区分大小写比较

public boolean equals(Object anObject){  ... }

B:

public boolean equalsIgnoreCase(String anotherString){ ... }

C:测试此字符串是否以指定的后缀结尾。

public boolean endsWith(String suffix){ ... }

D:测试此字符串是否以指定的前缀开头。

public boolean startsWith(String prefix){ ... }

题目2(单选):

下列代码的运行结果是( C )

public static void main(String[] args) {
   String s1 = "abc";
   String s2 = "abc";
   String s3 = "ABC";
   String s4 = "a";
   String s5 = s4 + "bc";
   System.out.println(s1.equals(s2));
   System.out.println(s1.equalsIgnoreCase(s3));
   System.out.println(s2.equals(s5));
   System.out.println(s3.equalsIgnoreCase(s5));
}

选项 :

A:  true false true true

B:  true true false true

C:  true true true true

D:  true true true false

题目3(单选):

以下哪个选项可以获取字符串对象的长度(B )

选项 :

A:

public int length

B:

public int length(){ ... }

C:

public int size(){ ... }

D:返回指定索引处的 char值。

public char charAt(int index){ ... }

题目4(多选):

下列关于String和StringBuilder的区别( BC )

选项 :

A:  String是可变的字符序列

B: String是不可变的字符序列

C:  StringBuilder是可变的字符序列

D: StringBuilder是不可变的字符序列

题目5(单选):

下列选项中,关于StringBuilder的说法正确的是( D )

选项 :

A:  StringBuilder类只有一个空参构造

B: StringBuilder的length()方法可以得到该对象的字符容量 //返回长度(字符数)。

C:  public StringBuilder()的作用是构造一个不带任何字符的字符串容器返回长度(字符数)。 ,其初始容量为 0 个字符

D: public StringBuilder()的作用是构造一个不带任何字符的字符串容器,其初始容量为 16 个字符

题目6(单选):

下列选项中,关于StringBuilder的说法正确的是 ( C )

选项 :

A:  StringBuilder和String都是字符串类,所以它们所有方法都是相同的

B: StringBuilder和String都是字符串类,它们所有的构造方法都是相同的

C:  可以通过构造方法public StringBuilder(String str)把一个String对象转为StringBuilder对象

D:  StringBuilder的对象可以使用字符串赋值,如:StringBuilder sb = "abc";

// StringBuilder sb1 = new StringBuilder("字符串"); //以String对象作为参数构建字符串

题目7(单选):

阅读如下代码, 选择出正确的运行结果( B )

public class Test {
   public static void main(String[]args) {
      StringBuilder sb = newStringBuilder("a");

      sb.append("b");

      sb.append("c");

      sb.append("ddd");

      sb.append("e");

      System.out.println(sb.length());

   }

}

选项 :

A:  5

B: 7

C: 4

D:  0

题目8单选):

请查看以下代码,正确的结果是( A )

StringBuilder sb = new StringBuilder();
sb.append("a");
sb.append("b").append("c").reverse();
System.out.println(sb.toString()); 

选项 :

A: cba

B:  ABC

C:  abc

D: cba

2 代码题
题目9:

键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)

训练提示

定义统计变量

遍历字符串,筛选出指定的字符, 让对应记录的变量累加

操作步骤

键盘录入一个字符串,用 Scanner 实现

要统计三种类型的字符个数,需定义三个统计变量,初始值都为0

遍历字符串,得到每一个字符

判断该字符属于哪种类型,然后对应类型的统计变量+1   

假如ch是一个字符,我要判断它属于大写字母,小写字母,还是数字,直接判断该字符是否在对应的范围即可   

大写字母:ch>='A' && ch<='Z'   

小写字母: ch>='a' && ch<='z'   

数字: ch>='0' && ch<='9' 5:

输出三种类型的字符个数

参考代码

import com.sun.org.apache.xerces.internal.impl.io.ASCIIReader;

import java.util.Scanner;

/**
 * @Author 赵广陆
 * @Date 2020/3/7 0007 16:30
 * @Version 1.0
 */
/*
*     键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)
*
* 1. 键盘录入一个字符串,用 Scanner 实现

2. 要统计三种类型的字符个数,需定义三个统计变量,初始值都为0

3. 遍历字符串,得到每一个字符

4. 判断该字符属于哪种类型,然后对应类型的统计变量+1   

   ​    假如ch是一个字符,我要判断它属于大写字母,小写字母,还是数字,直接判断该字符是否在对应的范围即可   

   ​    大写字母:ch>='A' && ch<='Z'   

   ​    小写字母: ch>='a' && ch<='z'   

   ​    数字: ch>='0' && ch<='9' 5:

5. 输出三种类型的字符个数
 * */

public class Test20 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        char ch1 = 0;//大写字母:ch>='A' && ch<='Z'   
        char ch2 = 0;//小写字母: ch>='a' && ch<='z'   
        char ch3 = 0;//数字: ch>='0' && ch<='9' 5:
        //ASCII A-Z 65-90  a-z 97-122  0-9 48-57
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);//返回指定索引处的 char值。
            if (ch >= 65 && ch <= 90) {
                ch1++;

            } else if (ch >= 97 && ch <= 122) {
                ch2++;
            } else {
                ch3++;

            }

        }
        System.out.println("大写字母为:" + (int) ch1 + "小写字母" + (int) ch2 + "数字:" + (int) ch3);
    }

}
 运行效果

题目10:

请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:"abcba"、"上海自来水来自海上"均为对称字符串。

训练提示

1、判断是否对称,方法的返回值是什么类型boolean.参数列表需要接收一个S

2、怎样判断对称呢?如果可以将字符串反转,反转后发现跟原来的字符串完全一样,不就可以判断出来了吗,那么哪个类有字符串的反转功能呢?

操作步骤

1、定义方法,返回值类型为boolean,参数列表为String类型的一个参数。

2、将字符串转换为StringBuilder类型,调用StringBuilder的reverse()方法将字符串反转。

3、将反转后的字符串再转回String类型,并与原字符串比较,如果相等,返回true,否则返回false

4、在主方法中,定义一个字符串,调用方法测试结果。

参考代码

/**
 * @Author 赵广陆
 * @Date 2020/3/7 0007 17:10
 * @Version 1.0
 */
/*    请定义一个方法用于判断一个字符串是否是对称的字符串,
并在主方法中测试方法。例如:"abcba"、"上海自来水来自海上"均为对称字符串。
 *1、定义方法,返回值类型为boolean,参数列表为String类型的一个参数。

2、将字符串转换为StringBuilder类型,调用StringBuilder的reverse()方法将字符串反转。

3、将反转后的字符串再转回String类型,并与原字符串比较,如果相等,返回true,否则返回false

4、在主方法中,定义一个字符串,调用方法测试结果。
构造方法用来构造对象,声明对象之后可以调用API方法!
  */
public class Test21 {

    public static void main(String[] args) {
        String s="abcba";
        StringBuilder sb=new StringBuilder(s);
        StringBuilder sb1 = sb.reverse();
        String s1=sb1.toString();
        Boolean aBoolean = StrCompare(s, sb1);
        System.out.println("aBoolean = " + aBoolean);

    }

    public static Boolean StrCompare(String s, StringBuilder sb){
        String s1 = sb.toString();
        if ( s ==  s1) {
            return true;
        }else{
            return false;
        }

     }
}
运行效果

第十四章:ArrayList集合
1 选择题
题目1(单选):

下列有关数组和集合说法,错误的选项为 ( A )

选项 :

A:数组和集合的长度都是可变的

B:数组的长度固定, 集合的长度可变

C:数组可以存储基本类型和引用类型数据

D: 集合中存储的是引用数据类型

题目2(单选):

下列关于集合说法,错误的选项是( A )

选项 :

A: ArrayList可以存储任意数据类型的数据

//ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 <int> 不能写,但是存储基本数据类型对应的包装类型是可以的。

B: ArrayList集合容器存储数据,其长度可以发生改变

C:  ArrayList集合容器可以通过add方法存储数据

D: ArrayList 集合容器存储数据,存储的是地址值

题目3(单选):

下列代码可以正常编译运行的是( C)

选项 :

A:

ArrayList<String> list = new ArrayList<String>();
list[0] = "程序员";

B:

ArrayList<int> list = new ArrayList<>();
list.add(1024);

C:

ArrayList<String> list = new ArrayList<>();
list.add("程序员");

D:

ArrayList<String> list = new ArrayList<>();
list.append("程序员");

题目4(单选):

下面代码中用于打印输出集合中的数据元素总量,横线处应该填写的正确代码是( D )

public static void main(String[] args){
   ArrayList<String> list = new ArrayList<>();
   list.add("itoldlu");
   list.add("love");
   list.add("life");
   list.add("love");
   list.add("java");
   System.out.println("集合当中的元素个数有:" +  ___________________);
}

选项 :

A:  list.length

B: list.length()

C:  list.size

D: list.size()

题目5(单选):

public static void main(String[] args){
   ArrayList<String> list = new ArrayList<>();
   list.add("php");
   list.add("oldlu");
   list.add("oldlu");
   list.add("baima");
   list.add("java");
   System.out.println("集合当中的元素个数有:" +  _________);
   System.out.println("获取集合中的元素oldlu:" +  _________);
   System.out.println("删除集合中的元素php:" +  _________);
}

横线处根据输出要求应该填写的代码是( C )

选项 :

A:  ①list.size(5) ②list.get(1) ③list.remove(0)

B: ①list.length() ②list.get(2) ③list.remove(0)

C:  ①list.size() ②list.get(2) ③list.remove(0)

D: ①list.size() ②list.get(3) ③list.remove(1)

题目6(单选):

代码如下:

public static void main(String[] args) {
   ArrayList<String> list = new ArrayList<>();
   list.add("apple");
   list.add("banana");
   list.add("orange");
   list.add("pear");
   for (int i = 0; i <______________ i++) {
       System.out.println(______________);
   }
}

完成集合数据的遍历并将数据显示出来,横线处应该填写的代码是( C )

选项 :

A: ①list.length(); ②list[i]

B: ①list.length(); ②list.get(i)

C: ①list.size(); ②list.get(i)

D: ①list.size(); ②list[i]

题目7(单选):

下面代码是 ArrayList集合存储 Student的对象之后,遍历输出到控制台的操作,横线处代码填写正确的是 ( D )

学生类 :

public Student{
   private String name;
   private int age;
   public Student(){
       
   }
   public Student(String name,int age){
       this.name = name;
       this.age = age;
   }
   public void setName(String name){
       this.name = name;
   }
   public String getName(){
       return name;
   }
   public void setAge(int age){
       this.age = age;
   }
   public int getAge(){
       return age;
   }
}

测试类 :

public class Test{
    public static void main(String[] args){
       ArrayList<Student> list = new ArrayList<>();
       Student stu01 = new Student("喜洋洋",18);
       Student stu02 = new Student("令狐冲",19);
       Student stu03 = new Student("石破天",16);
       list.add(stu01);
       list.add(stu02);
       list.add(stu03);
       //循环遍历集合,打印输出集合当中的每一个元素数据,显示在控制台当中。
       for(int i=0; ____(1)____ ; i++){
           __(2)__ = list.get(i);
           System.out.println("姓名:" + stu.getName() + ",年龄:" + stu.getAge());
       }
   }  
}

选项 :

A:  ① i<list.length() ②Student stu

B: ① i<list.length() ②String stu

C: ① i<list.size() ②String stu

D: ① i<list.size() ②Student stu

题目8单选):

下列代码的运行结果是(B )

public static void main(String[] args){
   ArrayList<String> list = new ArrayList<>();
   list.add("PHP");
   list.add("Android");
   list.add("iOS");
   list.add("Java");
   ArrayList<String> newList = method(list);
   System.out.println(newList);
}
public static ArrayList<String> method(ArrayList<String> list){
   ArrayList<String> array = new ArrayList<>();
   for(int i=0;i<list.size();i++){
       String str = list.get(i);
       if(str.equals("Java")){
           array.add("得Java者,得天下~");
       }
   }
   return array;
}

选项 :

A: [PHP,Android,iOS,Java]

B:  [得Java者,得天下~]

C:  [PHP,Android,iOS,Java,得Java者,得天下~]

D: [PHP,Android,iOS,得Java者,得天下~]

2 代码题
题目9

现有如下字符串元素:["aaa", "bbb", "aaa", "aaa", "ccc", "bbb"],请将所有的元素按顺序存入ArrayList集合中,并遍历集合查看存储结果。

训练提示

1、创建ArrayList集合,泛型如何定义?

2、怎样将数据添加到集合中?

3、怎样遍历集合?

操作步骤

1、创建ArrayList集合对象,泛型声明为String类型

2、调用集合的add方法,将元素依次存入集合

3、遍历集合

3.1、定义循环,索引从0到集合的size-1

3.2、通过ArrayList集合的get方法,依次获取索引上的元素

参考代码

import java.util.ArrayList;

/**
 * @Author 赵广陆
 * @Date 2020/3/8 0008 16:36
 * @Version 1.0
 */
/*
*     现有如下字符串元素:["aaa", "bbb", "aaa", "aaa", "ccc", "bbb"],
* 请将所有的元素按顺序存入ArrayList集合中,并遍历集合查看存储结果。  */
public class Test22 {
    public static void main(String[] args) {
        ArrayList<String> al=new ArrayList<>();
        al.add("aaa");
        al.add("bbb");
        al.add("aaa");
        al.add("aaa");
        al.add("ccc");
        al.add("bbb");
        for (int i = 0; i <al.size() ; i++) {
            System.out.println(al.get(i));

        }
        System.out.println(al);
    }

}
 运行效果

题目10:

请定义教师(Teacher)类,属性包含姓名和专业名称。将若干教师对象存入ArrayList集合中,并遍历集合打印教师信息,格式如下:

姓名:果果老师, 专业:javase
姓名:张1老师, 专业:javaee
姓名:张2老师, 专业:php
姓名:张3老师, 专业:python

训练提示

1、怎样定义一个描述教师信息的类?

2、需要将教师对象存入集合,创建集合对象,泛型该怎样定义?

3、怎样将数据添加到集合中?

4、怎样遍历ArrayList集合?输出信息时,直接打印对象名称可以吗?怎样才能按照题目要求格式输出信息?

操作步骤

1、新建Teacher类,成员变量为String类型的name和course,私有修饰,提供构造方法,提供get和set方法。

2、创建ArrayList集合对象,泛型声明为Teacher类型

3、创建若干Teacher对象,可以使用构造方法为成员变量赋值,调用集合的add方法,将元素依次存入集合。

4、遍历集合

4.1、定义循环,索引从0到集合的size-1。

4.2、通过ArrayList集合的get方法,依次获取索引上的元素。

4.3、通过Teacher对象的get方法,获取属性值,拼接成要求的格式输出。

参考代码

老师类:

/**
 * @Author 赵广陆
 * @Date 2020/3/8 0008 17:08
 * @Version 1.0
 */
public class Teacher {
    private String name;
    private String course;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCourse() {
        return course;
    }

    public void setCourse(String job) {
        this.course = job;
    }

    public Teacher() {
    }

    public Teacher(String name, String job) {
        this.name = name;
        this.course = job;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "name='" + name + '\'' +
                ", job='" + course + '\'' +
                '}';
    }
}
测试类:

import jdk.internal.dynalink.beans.StaticClass;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @Author 赵广陆
 * @Date 2020/3/8 0008 17:06
 * @Version 1.0
 */
/*
*     请定义教师(Teacher)类,属性包含姓名和专业名称。
* 将若干教师对象存入ArrayList集合中,并遍历集合打印教师信息,格式如下:
*
*
姓名:果果老师, 专业:javase
姓名:张1老师, 专业:javaee
姓名:张2老师, 专业:php
姓名:张3老师, 专业:python
* 1、新建Teacher类,成员变量为String类型的name和course,私有修饰,提供构造方法,提供get和set方法。

2、创建ArrayList集合对象,泛型声明为Teacher类型

3、创建若干Teacher对象,可以使用构造方法为成员变量赋值,调用集合的add方法,将元素依次存入集合。

4、遍历集合

     4.1、定义循环,索引从0到集合的size-1。

     4.2、通过ArrayList集合的get方法,依次获取索引上的元素。

     4.3、通过Teacher对象的get方法,获取属性值,拼接成要求的格式输出。*/
public class Test23 {
    public static void main(String[] args) {

        ArrayList<Teacher> al=new ArrayList<>();
        addTeacher(al);
        addTeacher(al);
        addTeacher(al);
        addTeacher(al);

        for (int i = 0; i <al.size() ; i++) {
            Teacher te=al.get(i);
            System.out.println("姓名:"+te.getName() + "," +"专业"+ te.getCourse());

        }
    }


    public static  void addTeacher(ArrayList<Teacher> al){

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入老师姓名:");
        String name = sc.nextLine();
        System.out.println("请输入老师职业:");
        String course = sc.nextLine();
        Teacher te=new Teacher();
        te.setName(name);
        te.setCourse(course);
        al.add(te);
    }
}
运行效果

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赵广陆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值