Java程序设计课后习题(答案版) 期末复习

news2024/9/20 5:46:28

第一章 Java语言概述

一、选择题

  1. 下面哪种类型的文件可以在Java虚拟机中运行?( A )

    A. class

    B. Java

    C. jre

    D. exe

  2. 如果JDK 的安装路径为“d:\jdk”,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?( B )

    A. d: \jdk

    B. d: \jdk\bin

    C. d: \jre\bin

    D. d:\jre

  3. 在JDK 目录中,Java 程序运行环境的根目录是( C )。

    A. bin

    B. demo

    C. jre

    D. lib

  4. JDK 安装后,在安装路径下有若干子目录,其中包含Java 开发包中开发工具的是( A )目录。

    A. \bin

    B. \demo

    C. \include

    D. \jre

  5. 对于可以独立运行的Java 应用程序,下列( D )说法是正确的。

    A.无须main方法

    B.必须有两个main方法

    C.可以有多个或零个main方法

    D. 必须有一个main方法

  6. Java源文件和编译后的文件扩展名分别是( B )。

    A. class和java

    B. java和class

    C. class和class

    D.java和java

  7. 作为Java应用程序入口的main()方法,其声明格式可以是( C )。

    A. public static int main( String[ ] args)

    B. public void main( String[ ] args)

    C. public static void main( String[ ] args )

    D. public int main( String[ ] args)

  8. 在Eclipse中,( A )视图显示输出的结果。

    A.控制台

    B.导航器

    C.包资源管理器

    D. 大纲

  9. 下面说法正确的是( D )。
    A. Java程序的main( )方法写在类的外部
    B.一个Java程序里可以有一到多个 main( )方法
    C.如果Java程序中的main( )方法中只有一条语句,则不需要用{ }括起来
    D. Java程序中,如果类名由public修饰,则类名必须与文件名保持一致

  10. 在控制台运行一个名为Test的Java程序,使用的正确命令是( B )。

    A. java Test. Java

    B. java Test

    C. javac Test. Java

    D. javac Test

二、填空题

  1. 建立Java开发环境,安装JDK, 一般需要设置环境变量 pathclasspath
  2. 开发和运行Java程序需要经过的三个主要步骤为 编辑编译运行
  3. 编写一个Java 源程序,编译该源程序的命令为 javac ,运行该程序的命令为 java
  4. Java应用程序中有一个main( )方法,它前面有三个修饰符是 publicstaticvoid
  5. 缩写的JDK代表 Java开发工具 ,JRE 代表 Java运行环境

第二章 数据类型

一、 选择题

  1. 下面哪一项在Java中是非法的标识符?( C )

    A. $ user

    B. point

    C. You&me

    D. _endline

  2. 下列不属于Java保留字的是( A ) 。

    A. sizeof

    B. super

    C. abstract

    D. break

  3. 下列整型数据类型中,需要内存空间最少的是( D ) 。

    A. short

    B. long

    C. int

    D. byte

  4. 哪个是将一个十六进制值赋值给一个long型变量? ( D )

    A. long number = 345L;

    B. long number = 0345;

    C. long number = 0345L;

    D. long number = 0x345L;

  5. char类型的取值范围是( B )。

    A.2-7~27

    B.0~216-1

    C.-215~215

    D.0~28-1

  6. 在Java中, 表示换页符的转义字符是( B )

    A. \ n

    B. \ f

    C. ‘f’

    D. \ dd

  7. 若定义有变量float a, b=6.5F,则下列说法正确的是( B )。

    A.变量a, b均被初始化为6.5

    B.变量a没有被初始化,b被初始化为6.5

    C.变量a, b均未被初始化

    D.变量b没有被初始化,a被初始化为6.5

  8. 下列关于boolean类型的叙述中,正确的是( D )

    A.可以将boolean类型的数值转换为int 类型的数值

    B.可以将boolean类型的数值转换为字符串

    C.可以将boolean类型的数值转换为char类型的数值

    D.不能将boolean类型的数值转换为其他基本数据类型

  9. 下列选项中属于字符串常量的是( B )。

    A. ‘abc’

    B. “abc”

    C. abc

    D. (abc)

  10. 创建了Scanner对象scan, 以下能正确获取输人数据的是( C )。

    A. int s= scan. nextFloat( ) ;

    B. float s= scan. nextDouble( ) ;

    C. float s= scan. nextInt( ) ;

    D. String s=scan. nextInt( );

  11. 以下( A )是合法的变量名。

    A. de2 $_

    B. df-5

    C. long

    D.3x

  12. 以下能够实现正确输出的是( C )。

    A. System. out. println( Hello world!);

    B. System. Out. println(“Hello world!");

    C. System. out. println(“Hello world!");

    D. system. out. println( “Hello world!");

二、填空题

  1. Java中的分隔符有 注释符空白符普通分隔符 三种。

  2. 布尔型常量只有两个值: truefalse ,表示“真”和“假”。

  3. 单行注释以 // 开始,表示注释一行。多行注释以 / 开始,到 / 结束,中间可写一到多行。

  4. Java中的数据类型分为两种,分别是 基本数据类型引用数据类型

  5. 在Java中,byte类型数据占 1 字节,short 类型数据占 2 字节,int类型数据

4 字节,long 类型数据占 8 字节。

  1. 要输出" \ “,输出语句为 System. out. println(“\”);

三、操作题

  1. 输出会员管理菜单。菜单项有: 1. 显示会员信息; 2. 添加会员信息; 3. 修改会员信息; 4. 查询会员信息。
public class P41_1 {  
  
    public static void main(String[] args) {  
        Menu();  
    }  
  
    public static void Menu() {  
        System.out.println("会员管理菜单:");  
        System.out.println("1. 显示会员信息");  
        System.out.println("2. 添加会员信息");  
        System.out.println("3. 修改会员信息");  
        System.out.println("4. 查询会员信息");  
        System.out.print("请选择操作(输入数字1-4):");  
    }  
}
  1. 编写一个Java程序,要求从键盘输入个人信息,并显示出来。个人信息包括:姓名、年龄、性别、身高、体重、住址、电话。
import java.util.Scanner;  
  
public class P41_2 {  
  
    public static void main(String[] args) {  
        Scanner scanner = new Scanner(System.in);  
  
        System.out.print("请输入您的姓名:");  
        String name = scanner.nextLine();  
  
        System.out.print("请输入您的年龄:");  
        int age = scanner.nextInt();  
        scanner.nextLine(); // 消耗掉输入年龄后的换行符  
  
        System.out.print("请输入您的性别(男/女):");  
        String gender = scanner.nextLine();  
  
        System.out.print("请输入您的身高(厘米):");  
        double height = scanner.nextDouble();  
        scanner.nextLine(); // 消耗掉输入身高后的换行符  
  
        System.out.print("请输入您的体重(千克):");  
        double weight = scanner.nextDouble();  
        scanner.nextLine(); // 消耗掉输入体重后的换行符  
  
        System.out.print("请输入您的住址:");  
        String address = scanner.nextLine();  
  
        System.out.print("请输入您的电话:");  
        String phone = scanner.nextLine();  
  
        System.out.println("您输入的信息如下:");  
        System.out.println("姓名:" + name + "  年龄:" + age + "  性别:" + gender + "  身高:" + height + "厘米" + "   体重:" + weight + "千克" + "  住址:" + address + "   电话:" + phone);  
    }  
}

第三章 运算符

一、选择

  1. 若有定义int a=1, b=2;那么表达式(a++)+(++b)的值是( B )。

    A.3

    B.4

    C.5

    D.6

  2. 假定有变量定义: int k=7, x=12;那么能使值为3的表达式是( D )。

    A. x%=(k%=5)

    B. x%=(k-k%5)

    C. x%=k-k%5

    D. (x%=k)-(k%=5)

  3. 设x=1,y=2,z= 3,则表达式y+=z–/++x的值是( A )。

    A. 3

    B. 3.5

    C. 4

    D. 5

  4. 下列哪个赋值语句是正确的? ( D )

    A. char a= ‘12’;

    B. int a= 12.0;

    C. int a=12. 0f;

    D. int a=(int)12.0;

  5. 下列选项中,Java 语句错误的是( A )。

    A. float a=3. 0;

    B. double a=3.5;

    C. char a= 20;

    D. byte= 15;

  6. 下列代码的执行结果是( D )。

Public class Test{ 
   Public static void main (String args[ ]){
       System. out. println(5/2);
   }
}

​ A.2.5

​ B.2.0

​ C.2.50

D.2

  1. 执行下列程序段后,b,x,y的值正确的是( A )。

    int x=6,y=8;
    boolean b;
    b=x<y ||++x==--y;
    

    A. true,6,8;

    B. false,7,7

    C. true,7, 7

    D. false,6,8

  2. 下面表达式的值分别是( C )

    (1)8/3 (2)8%3 (3)8.0/3

    A. 2.666667 2 2.666667

    B. 2 2 2

    C. 2 2 2.666667

    D. 2.6666672 2 2

  3. 定义整型变量int n=456,表达式的值为5的是( B )。

    A. n/10/10

    B. (n-n/100 * 100)/10

    C. n%10

    D. n/10

  4. 下列语句中,( D )正确完成了整型变量的声明和赋值。

    A.int a, a=0

    B. a=0;

    C. int a=5. 6

    D. int a1=0, a2=1

  5. 以下为boolean类型变量赋值的正确方式是( B )

    A. boolean a=”true”

    B. boolean a=(9>10)

    C. boolean a=1

    D. boolean a="真”

  6. 分析下面代码,正确的选项是( A )

    double a=9;
    a++;
    int b=a/2;
    

    A. 编译错误

    B. 4.5

    C. 4

    D. 5

二、填空题

  1. 设x=2,则表达式(x++)/3的值是 0

  2. 如果要得到表达式20/3的浮点结果,表达式应改为 20.0/3.0

  3. Java中的显式类型转换是 强制类型转换 ,隐式类型转换是 低类型转换向高类型

  4. 设a为double 类型变量,b为char类型变量,c为long类型变量,则表达式b+a/c的值为 double 类型。

  5. 设int x=16, y=5,则x/y的值为 3 ,x%y的值为 1

  6. 表达式(10+2*6)/4%3的值是 2

三、操作题

  1. 将给定小写字母转换成大写字母。

    public class P53_1 {  
        public static void main(String[] args) {  
            String str = "hello, world!";  
            String changStr = chang(str);  
            System.out.println(changStr); // 输出: HELLO, WORLD!  
        }  
      
        public static String chang(String input) {  
            char[] chars = input.toCharArray();  
            for (int i = 0; i < chars.length; i++) {  
                char c = chars[i];  
                // 如果字符是小写字母(ASCII码在97-122之间)  
                if (c >= 'a' && c <= 'z') {  
                    // 转换为大写字母(ASCII码减去32)  
                    chars[i] = (char) (c - ('a' - 'A'));  
                }  
            }        return new String(chars);  
        }  
    }
    
  2. 将给定的华氏温度转换成摄氏温度。转换公式为:摄氏度=5*(华氏度-32)/9。

    public class P53_2 {  
        public static void main(String[] args) {  
            double fahrenheit = 98.6; // 给定的华氏温度  
            double celsius = fahrenheitToCelsius(fahrenheit); // 转换为摄氏温度  
      
            // 打印结果  
            System.out.println(fahrenheit + "°F 对应的摄氏温度是 " + celsius + "°C");  
        }  
      
        // 转换函数:将华氏温度转换为摄氏温度  
        public static double fahrenheitToCelsius(double fahrenheit) {  
            return 5 * (fahrenheit - 32) / 9;  
        }  
    }
    
  3. 任意给定一个三位数,请输出该数的个位、十位和百位数。

    public class P53_3 {  
        public static void main(String[] args) {  
            int number = 123;  
            int hundreds = number / 100;  
            int tens = (number % 100) / 10;  
            int ones = number % 10;  
            System.out.println("百位数: " + hundreds);  
            System.out.println("十位数: " + tens);  
            System.out.println("个位数: " + ones);  
        }  
    }
    

第四章 控制语句

一、 选择题

  1. Java中关于if选择结构描述错误的是( C )。

A. if选择结构是根据条件判断之后再做处理的一种语法结构

B.关键字if后小括号里必须是一个条件表达式,表达式的值必须为布尔类型

C. if后小括号里表达式的值为false时,程序需要执行大括号里的语句

D. if语句可以和else 一起使用

  1. 下面哪些Java语句会导致无限循环? ( B )

(1)while (true) i = 0;

(2)while (false) i = 1;

(3)while (! false) i = 0;

​ A.仅仅(3)

B. (1)和(3)

​ C.仅仅(1)

​ D.(1)、(2)和(3)

  1. 下列关于多重if选择结构的说法正确的是( B )。

    A.多个else if块之间的顺序可以改变,改变之后对程序的执行结果没有影响

    B.多个else if块之间的顺序可以改变,改变之后可能对程序的执行结果有影响

    C.多个else if块之间的顺序不可以改变,改变后程序编译不通过

    D.多个else if块之间的顺序不可以改变,改变后程序编译可以通过

  2. 下列语句序列执行后,k的值是( D)。

    int x=3,y=5,k=0;
    switch(x%y+3) {
     case 0 : k=x*y; break;
     case 6 : k=x/y; break;
     case 12 : k=x-y; break;
     default : k=x*y-x; break;
    }
    

    A.12

    B.-2

    C.15

    D.0

  3. 下列语句序列执行后,i的值是( A )

    int i=0;
    
    do {i+=3;}
    
    while(i<10);
    

    A.12

    B.9

    C.6

    D.3

  4. 一个循环一般应包括哪几部分内容(A)?

    A.以下答案都包括

    B.循环体部分

    C.初始化部分

    D.迭代部分和终止部分

  5. 若a的值为3,下列程序段被执行后,c的值是©。

    int c=1;
    if (a>0)
     if(a>3)
      c=2;
     else c=3;
    else c=4;
    

    A.1

    B.2

    C.3

    D.4

  6. 以下程序段的输出结果为©

    int j=2;
    switch(j){
     case 2 : System. out. print ("two. ");
     case 2+1 : System. out. println ("three. "); break;
    default : System. out. println ("value is "+j); break; }
    

    A. two.

    B. three.

    C. two. three.

    D. value is 2

  7. 和语句“for(int x=0; x<15; x+= 2) sum+=x+5;”作用一样的语句是(A )。

    A. for (int x=5; x=20; x+=2) sum+=x;

    B. for (int x=5; x<20; x+=x-2) x+=2;

    C. for (int x=0; x<15; x+=2) sum+=x+3; x+=2;

    D. 上述全对

  8. 阅读以下代码,当m为多少时,“THREE"会出现在输出的结果中( C)。

    switch (m) {
        case 0:
            System. out. println ("ONE");
        case 1 :
            System. out. println ("TWO");
        case 2 :
            System. out. println ("THREE") ;
        case 3:
            System. out. println("FOUR") ;
            break;
        default:
            System. out. println ("OTHER") ;
    }
    

    A.仅2

    B.只有0和1

    C.0、1、2

    D.0、1、2、3

  9. 阅读以下代码,选择正确的输出结果( C )。

    public class TestDemo1 {
     public static void main (String[ ] args) {
         int m = 3, n = 6,k = 0;
         while ((m++) <= (--n))
         ++k;
         System. out. println(k);
     }
    }
    

    A.0

    B.1

    C.2

    D.3

  10. 下面程序输出的结果是( A )。

    public class TestDemo2 {
        public static void main(String[ ] args) {
            int a, b;
            for (a=1, b=1; a<=100; a++) {
                if (b>= 10)
                    break;
                if(b%3==1) {
                    b+=3;
                    continue;
                }
            }
            System. out. println(a);
        }
    }
    

    A.4

    B.5

    C.6

    D.101

二、填空题

  1. case子句中的常量的类型必须与switch表达式的类型相容,并且各个case子句的常量的值不能 相同

  2. 顺序结构 是按照程序语句行的自然顺序依次执行。

  3. 循环 结构,即算法中有一组操作要求反复被执行。

  4. 在一个for循环的循环体中包含另一个for 循环,实现for循环的 嵌套

  5. do-while循环首先 执行判断 ,而while循环首先 判断执行

  6. 通过使用一个“标签化中断”的语句,break语句就可以退出 多重嵌套 循环。

  7. 下面程序是计算5的阶乘,请在横线处填空,使程序功能完整

public class Factorial {
public static void main(String[ ] args) {
int n=10;
long result=1;
do { return *=n;
n–;
} while(n>=1);
System. out. println("5的阶乘为: "+result) ;
}
}

  1. if语句合法的条件值是 boolean 类型。

三、操作题

  1. 任意输入三个整数,请按大小顺序输出它们。

    import java.util.Arrays;  
    import java.util.Scanner;  
      
    public class P94_1 {  
        public static void main(String[] args) {  
            Scanner scanner = new Scanner(System.in);  
      
            // 接收三个整数输入  
            System.out.print("请输入第一个整数: ");  
            int a = scanner.nextInt();  
            System.out.print("请输入第二个整数: ");  
            int b = scanner.nextInt();  
            System.out.print("请输入第三个整数: ");  
            int c = scanner.nextInt();  
      
            // 使用数组存储这三个数  
            int[] numbers = {a, b, c};  
      
            // 使用Arrays.sort()方法进行排序  
            Arrays.sort(numbers);  
      
            // 输出排序后的整数  
            System.out.println("排序后的整数为: " + numbers[0] + ", " + numbers[1] + ", " + numbers[2]);  
      
            scanner.close();  
        }  
    }
    
  2. 编程实现加、减、乘、除简单计算器。

    import java.util.Scanner;  
      
    public class P94_2 {  
        public static void main(String[] args) {  
            Scanner scanner = new Scanner(System.in);  
      
            System.out.print("请输入一个算术表达式 (例如: 1 + 2 或 3 * 4): ");  
            String expression = scanner.nextLine();  
      
            // 使用一个或多个空白字符来分割字符串  
            String[] parts = expression.split("\\s+");  
      
            if (parts.length < 3) {  
                System.out.println("无效的表达式,请确保输入格式正确!!");  
                return;  
            }  
      
      
            try {  
                double num1 = Double.parseDouble(parts[0]);  
                char operator = parts[1].charAt(0); // 假设操作符只有一个字符  
                double num2 = Double.parseDouble(parts[2]);  
      
                double result = 0;  
      
                switch (operator) {  
                        //JDK新特性使用方法!!
                    case '+'-> result = num1 + num2;  
                    case '-'-> result = num1 - num2;  
                    case '*'-> result = num1 * num2;  
                    case '/'-> {if (num2 != 0) {result = num1 / num2;} else {System.out.println("除数不能为0");return;}}  
                    default-> {System.out.println("无效的操作符");return;}  
                }            System.out.println("结果是: " + result);  
            } catch (NumberFormatException e) {  
                System.out.println("输入中包含非数字字符");  
            }  
        }
    }
    
  3. 《孙子算经》中记载了这样一道题目,今有鸡、兔同笼,上有三十五个头,下有九十足,问鸡、兔各几只?试编写程序解决这个问题。

    public class P94_3 {  
        public static void main(String[] args) {  
            // 定义总头数和总足数  
            int totalHeads = 35;  
            int totalFeet = 94; // 注意题目中的九十足可能是个错误,因为35只动物如果是鸡兔混合,足数应该是偶数  
      
            // 计算兔子数量  
            // 因为每只兔子有4只足,每只鸡有2只足  
            // 所以兔子数量 = (总足数 - 2 * 总头数) / (4 - 2)  
            int rabbitCount = (totalFeet - 2 * totalHeads) / 2;  
      
            // 计算鸡的数量  
            // 因为总头数 = 鸡的数量 + 兔子的数量  
            // 所以鸡的数量 = 总头数 - 兔子的数量  
            int chickenCount = totalHeads - rabbitCount;  
      
            // 输出结果  
            System.out.println("鸡的数量为:" + chickenCount + "只");  
            System.out.println("兔子的数量为:" + rabbitCount + "只");  
        }  
    }
    
  4. 求3~ 100中的所有的素数。

    public class P94_4 {  
        public static void main(String[] args) {  
            // 循环遍历3到100之间的所有整数  
            for (int num = 3; num <= 100; num++) {  
                // 定义一个布尔变量isPrime,初始值为true  
                boolean isPrime = true;  
                // 循环遍历2到sqrt(num)之间的所有整数  
                for (int i = 2; i <= Math.sqrt(num); i++) {  
                    // 如果num能被i整除,则将isPrime置为false并跳出循环  
                    if (num % i == 0) {  
                        isPrime = false;
                        break;  
                    }  
                }            // 如果isPrime为true,则输出num  
                if (isPrime) {  
                    System.out.print(num + " ");  
                }  
            }    
        }
    }
    

第五章 数组

一、选择题

  1. 下面程序输出的结果是( C )。

    public class Test {
        public static void main(String[ ] args) {
            int[ ]a = new int[11];
            int[ ]p= new int[4];
            int k=5;
            for (int i =1; i <= 10; i++)
            a[i] = i;
            for(int i=1; i<=3; i++)
            p[i] = a[ i* i];
            for(int i=1; i<=3; i++)
            k = k+ p[i]* 2;
            System. out. println(k) ;
        }
    }
    

    A.37

    B.31

    C.33

    D.35

  2. 给出下列的程序,其叙述正确的是( A )。

    public class Test {
        public static void main (String[ ] args) {
            int [ ] a = new int[10];
            System. out. println(a[1]) ;
        }
    }
    

    A.输出0

    B.输出null

    C.编译时将发生错误

    D.编译正确但是运行时出错

  3. 已知int[ ] a=new int[ 10];在下列给出的数组元素中非法的是( D )。

    A. a[0]

    B. a[1]

    C. a[9]

    D. a[10]

  4. 设有定义语句int k[ ]=new int[3],则下列对此语句的叙述中错误的是( C )。

    A.定义了一个名为k的一维数组

    B. k数组有3个元素

    C. k数据元素的下标为1~3

    D.数组k中的每一个元素都是整型

  5. 若有定义byte[ ] x={1, 2, 3, 4},k>=0且k<=3,则数组元素错误引用的是( B )。

    A. x[5-3]

    B. x[k+5]

    C. x[k]

    D. x[0]

  6. 下面程序输出的结果是( C )。

    public class Test1{
        public static void main (String[ ] args){
            int m[ ][ ]= { {1,4,7}, {2,5,8}, {3,6,9} };
            int i,j,k=2;
            for(i=0; i<3; i++)
            System. out. print (m[i][i]);
        }
    }
    

    A.456

    B. 258

    C.159

    D.789

  7. 为使下列代码正常运行,应该在下划线处填入的选项是( B )。

    int[ ] num=new int[5];
    for(int i=0;i<num.    ; i++) {
     num[i]=i;
    }
    

    A. size

    B. length

    C. dlmension

    D. measurement

  8. 定义一个数组String[ ] cities=“北京",“上海",“天津”,“重庆”,“武汉",“广州”,数组元素cities[5]的值是( C )。

    A.北京

    B.武汉

    C.广州

    D. 数字越界

  9. 下列数组的初始化正确的是( A )。

    A. int[ ] score=new int[ ] {1, 2, 3, 4, 5};

    B.int score={1, 2, 3, 4, 5, 6};

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

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

  10. 下面代码的运行结果是©

    public class Test{
        public static void main(String[ ] args){
            int[ ] a ={10,20,30};
            int[ ]b ={1,2,3,4,5};
            a=b;
            for (int i=0;i<a. length; i++){
                System. out. print(a[i]+” ");
            }
         }
    }
    

    A.程序报错

    B.10 20 30

    C.1 2 3 4 5

    D.1 2 3

二、填空题

  1. 数组元素具有相同的 数据类型 ,下标标明了元素在数组中的位置,从 0 开始。

  2. 写出定义一个整型数组a,且含有100个元素的语句: int [ ]a=new int[100];

  3. 定义一个二维数组并初始化语句为:

int[ ][ ] a={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} };

那么,数组的元素a[3][2]的值是 15

  1. Arras 类提供了排序的方法 sort() ,能对数组进行 升序 排序。

  2. 二维数组每行中列元素的个数可以 不相同

三、操作题

  1. 输入10个会员的积分,并采用冒泡排序法进行排序。

    import java.util.Scanner;  
      
    public class p108_1 {  
      
        public static void main(String[] args) {  
            Scanner scanner = new Scanner(System.in);  
      
            // 读取一行输入,包含10个会员的积分,用空格分隔    
    System.out.print("请输入10个会员的积分(用空格分隔): ");  
            String input = scanner.nextLine();  
            String[] parts = input.trim().split("\\s+"); // 使用正则表达式分割字符串,允许一个或多个空格    
            // 检查输入是否包含10个积分    
    if (parts.length != 10) {  
                System.out.println("输入错误!请输入10个会员的积分。");  
                return;  
            }  
      
            // 将字符串数组转换为整数数组    
    int[] scores = new int[10];  
            for (int i = 0; i < parts.length; i++) {  
                scores[i] = Integer.parseInt(parts[i]);  
            }  
      
            // 使用冒泡排序法对会员的积分进行排序    
    bubbleSort(scores);  
      
            // 打印排序后的会员积分    
    System.out.println("排序后的会员积分:");  
            for (int score : scores) {  
                System.out.print(score + " ");  
            }  
      
            scanner.close();  
        }  
      
        // 冒泡排序法    
    public static void bubbleSort(int[] array) {  
            int n = array.length;  
            for (int i = 0; i < n - 1; i++) {  
                for (int j = 0; j < n - i - 1; j++) {  
                    if (array[j] > array[j + 1]) {  
                        // 交换array[j]和array[j + 1]    
    int temp = array[j];  
                        array[j] = array[j + 1];  
                        array[j + 1] = temp;  
                    }  
                }        
            }    
    	}
    }
    
  2. 删除一维数组中重复的数据。

    import java.util.ArrayList;  
    import java.util.Arrays;  
      
    public class P108_2 {  
      
        public static int[] removeDuplicates(int[] array) {  
            if (array == null || array.length == 0) {  
                return array; // 或者返回一个新空数组    
    }  
      
            // 使用ArrayList来存储不重复的元素    
    ArrayList<Integer> list = new ArrayList<>();  
            for (int num : array) {  
                if (!list.contains(num)) {  
                    list.add(num);  
                }  
            }  
            // 将ArrayList转换为数组    
    int[] result = new int[list.size()];  
            for (int i = 0; i < list.size(); i++) {  
                result[i] = list.get(i);  
            }  
      
            return result;  
        }  
      
        public static void main(String[] args) {  
            int[] nums = {1, 2, 3, 2, 4, 4, 5, 5, 5, 6};  
            int[] uniqueNums = removeDuplicates(nums);  
      
            // 打印结果    
    System.out.println(Arrays.toString(uniqueNums));  
        }  
    }
    
  3. 编写程序实现两个矩阵相加。

    public class P108_3 {  
      
        // 矩阵相加的方法  
        public static int[][] addMatrices(int[][] matrix1, int[][] matrix2) {  
            // 确保两个矩阵的行数和列数相同  
            if (matrix1.length != matrix2.length || matrix1[0].length != matrix2[0].length) {  
                throw new IllegalArgumentException("矩阵必须具有相同的维度");  
            }  
      
            // 获取矩阵的行数和列数  
            int rows = matrix1.length;  
            int cols = matrix1[0].length;  
      
            // 创建结果矩阵  
            int[][] result = new int[rows][cols];  
      
            // 遍历矩阵的每个元素,并将它们相加  
            for (int i = 0; i < rows; i++) {  
                for (int j = 0; j < cols; j++) {  
                    result[i][j] = matrix1[i][j] + matrix2[i][j];  
                }  
            }  
            // 返回结果矩阵  
            return result;  
        }  
      
        // 主方法,用于测试矩阵相加功能  
        public static void main(String[] args) {  
            // 创建两个3x3的矩阵  
            int[][] matrix1 = {  
                    {1, 2, 3},  
                    {4, 5, 6},  
                    {7, 8, 9}  
            };  
      
            int[][] matrix2 = {  
                    {9, 8, 7},  
                    {6, 5, 4},  
                    {3, 2, 1}  
            };  
      
            // 调用矩阵相加方法  
            int[][] result = addMatrices(matrix1, matrix2);  
      
            // 打印结果矩阵  
            for (int[] row : result) {  
                for (int num : row) {  
                    System.out.print(num + " ");  
                }  
                System.out.println();  
            }  
        }}
    

第六章 面向对象

一、 选择题

  1. 设A为已定义的类名,以下创建A的对象a的正确语句是( B )。

    A. int A a;

    B. A a=new A( );

    C. A a=new int( )

    D. public A a=A( );

  2. 用来导入类或包的语句是( C )。

    A. main

    B. package

    C. import

    D. include

  3. 下面关于类和对象的说法中错误的是( D )。

    A.类是对象的类型,它封闭了数据和操作

    B.类是对象的集合,对象是类的实例

    C.一个对象必属于某个类

    D.一个类的对象只有一个

  4. 方法内定义的变量( A ) 。

    A. 一定在方法内所有位置可见

    B.可能在方法的局部位置可见

    C.在方法外可以使用

    D.在方法外可见

  5. 方法的形参( A ) 。

    A.可以没有

    B.至少有一个

    C.必须定义多个形参

    D.只能是简单变量

  6. 下列不属于面向对象程序设计的基本特征的是( D )。

    A.多态

    B.封装

    C.继承

    D.静态

  7. 构造方法在( D )时被调用。

    A.类定义时

    B.创建对象时

    C.使用对象的变量时

    D.调用对象方法时

  8. 下列方法的声明中不合法的是( C )。

    A. float area( ){…}

    B. void area( ){…}

    C. double area{…}

    D. int area(int r) {…}

  9. 有一个手机类Phone,现在要创建Phone类的对象,设置属性品牌(brand)的值,以下正确的代码是(B )。

    A. Phone p=new Phone ;

    ​ p brand="苹果”;

    B. Phone p= new Phone( );

    p. brand=”华为”;

    C. Phone p;

​ p. brand=”三星”;

​ D. Phone p= new Phone( );

​ brank="小米”;

  1. 设有double型变量x,int 型变量y,有方法myMethod的定义如下:
returnType myMethod{
return x/y* 3+1;

}

则返回值returnType的类型为(A )。

A. double

B. int

C. void

D. float

  1. 在Java语言中,下列关于类的继承的描述,正确的是( B )。

    A.一个类可以继承多个父类

    B.一个类可以具有多个子类

    C.子类可以使用父类的所有方法

    D.子类一定比父类有更多的成员方法

  2. 下列选项中,关于Java中super关键字的说法错误的是( B )。

    A. super关键字是在子类对象内部指代其父类对象的引用

    B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类

    C.子类可以通过super关键字调用父类的方法

    D.子类可以通过super关键字调用父类的属性

  3. 下面关于Java接口的说法错误的是( C )。

    A.一个Java接口是一些方法特征的集合,但没有方法的实现

    B. Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为

    C. Java接口中可以声明私有成员

    D. Java接口不能被实例化

  4. 在Java中,实现多态的步骤包括以下几个方面除了( B )。

    A.子类重写父类的方法

    B.子类方法设置为final类型

    C.定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法

    D. 运行时,根据实际创建的对象类型动态决定使用哪个方法

  5. Java中,如果类C是类B的子类,类B是类A的子类,那么下面的描述正确的是( A )。

    A. C不仅继承了B中的公有成员,同样也继承了A中的公有成员

    B. C只继承了B中的成员

    C.C只继承了A中的成员

    D.C不能继承A或B中的成员

二、 填空题

  1. 面向对象程序设计中, 是描述具有相同的属性和操作的一组对象。

  2. return 语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该调用语

句的 下一条 继续执行。

  1. 如果一个方法不返回任何值,则该方法的返回值类型为 void

  2. 一般Java程序的类主体由两部份组成:一部分是 属性 ,另一部分是 方法

  3. JavaDoc注释的写法是 /**…*/

  4. 在Java语言中,用 abstract 修饰符定义的类为抽象类。

  5. 面向对象的三大特征是 封装继承多态

  6. 如果想声明一个类继承另一个类, 需要在类的声明中使用 extends 关键字,并指定要继承的类的名称。

三、操作题

  1. 编写一个商品类,并显示商品的信息,其中设定如下。
  • 商品类

  • 属性:商品类型、商品名称、价格、数量

  • 方法:显示商品信息

public class P173_1_Product {  
    private String Type;  
    private String Name;  
    private double price;  
    private int quantity;  
  
    public P173_1_Product() {  
    }    public P173_1_Product(String type, String name, double price, int quantity) {  
        Type = type;  
        Name = name;  
        this.price = price;  
        this.quantity = quantity;  
    }  
    public String getType() {  
        return Type;  
    }  
  
    public void setType(String type) {  
        Type = type;  
    }  
  
    public String getName() {  
        return Name;  
    }  
  
    public void setName(String name) {  
        Name = name;  
    }  
  
    public double getPrice() {  
        return price;  
    }  
  
    public void setPrice(double price) {  
        this.price = price;  
    }  
  
    public int getQuantity() {  
        return quantity;  
    }  
  
    public void setQuantity(int quantity) {  
        this.quantity = quantity;  
    }  
  
  
    //显示商品信息  
    public void showProductInformation(){  
        System.out.println("商品类型:"+Type);  
        System.out.println("商品名称:"+Name);  
        System.out.println("商品价格:"+price);  
        System.out.println("商品数量:"+quantity);  
    }  
  
    public static void main(String[] args) {  
        P173_1_Product apple = new P173_1_Product("水果", "红富士苹果", 10.99, 10);  
        apple.showProductInformation();  
    }  
}
  1. 使用面向对象的思想编写一个计算机类( Calculator),可以实现两个整数的加、减、乘、除运算。
public class P173_2_Calculator {  
  
    // 加法运算  
    public int add(int num1, int num2) {  
        return num1 + num2;  
    }  
  
    // 减法运算  
    public int subtract(int num1, int num2) {  
        return num1 - num2;  
    }  
  
    // 乘法运算  
    public int multiply(int num1, int num2) {  
        return num1 * num2;  
    }  
  
    // 除法运算,注意这里处理除以0的情况  
    public double divide(int num1, int num2) {  
        if (num2 == 0) {  
            throw new ArithmeticException("除数不能为0");  
        }  
        return (double) num1 / num2;  
    }  
  
    // 主方法,用于测试Calculator类  
    public static void main(String[] args) {  
        P173_2_Calculator calculator = new P173_2_Calculator();  
  
        // 加法测试  
        int sum = calculator.add(5, 3);  
        System.out.println("5 + 3 = " + sum);  
  
        // 减法测试  
        int difference = calculator.subtract(5, 3);  
        System.out.println("5 - 3 = " + difference);  
  
        // 乘法测试  
        int product = calculator.multiply(5, 3);  
        System.out.println("5 * 3 = " + product);  
  
        // 除法测试  
        double quotient = calculator.divide(10, 2);  
        System.out.println("10 / 2 = " + quotient);  
  
        // 尝试除以0,会抛出异常  
        // 注意:实际使用中应该使用try-catch块来处理可能出现的异常  
        // double divideByZero = calculator.divide(10, 0);  
    }  
}
  1. 定义一个形状抽象类,包含求周长和面积的方法。再定义圆类和正方形类继承形状类,实现求周长和面积的方法。
// 抽象类 Shapeabstract class Shape {  
    // 抽象方法:计算周长  
    public abstract double calculatePerimeter();  
  
    // 抽象方法:计算面积  
    public abstract double calculateArea();  
}  
  
// Round 类继承 Shape 类  
class Round extends Shape {  
    private double radius;  
  
    public Round(double radius) {  
        this.radius = radius;  
    }  
  
    // 实现 Shape 中的 calculatePerimeter 方法  
    @Override  
    public double calculatePerimeter() {  
        return 2 * Math.PI * radius;  
    }  
  
    // 实现 Shape 中的 calculateArea 方法  
    @Override  
    public double calculateArea() {  
        return Math.PI * Math.pow(radius, 2);  
    }  
}  
  
// Square 类继承 Shape 类  
class Square extends Shape {  
    private double side;  
  
    public Square(double side) {  
        this.side = side;  
    }  
  
    // 实现 Shape 中的 calculatePerimeter 方法  
    @Override  
    public double calculatePerimeter() {  
        return 4 * side;  
    }  
  
    // 实现 Shape 中的 calculateArea 方法  
    @Override  
    public double calculateArea() {  
        return side * side;  
    }  
}  
  
// 测试类  
public class P173_3 {  
    public static void main(String[] args) {  
        // 创建一个圆  
        Round circle = new Round(5);  
        System.out.println("圆的周长: " + circle.calculatePerimeter());  
        System.out.println("圆的面积: " + circle.calculateArea());  
  
        // 创建一个正方形  
        Square square = new Square(4);  
        System.out.println("正方形的周长: " + square.calculatePerimeter());  
        System.out.println("正方形的面积: " + square.calculateArea());  
    }  
}

第七章 Java异常处理

一、选择题

  1. ( B )类是所有异常类的父类。

    A. Throwable

    B. Exception

    C. Error

    D. AWTError

  2. 抛出异常应该使用的关键字是( C )。

    A. try

    B. catch

    C. throw

    D. throws

  3. finally语句中的代码( A ) 。

    A.总是被执行

    B.当try语句块后面没有catch 时,finally中的代码才会执行

    C.异常发生时才执行

    D.异常没有发生时才被执行

  4. 对于try{…} catch子句的排列方式,下列正确的一项是(B )。

    A.父类异常在前,子类异常在后

    B.子类异常在前,父类异常在后

    C.只能有子类异常

    D.父类异常与子类异常不能同时出现

  5. 自定义异常类时,可以继承的类是( D )。

    A. Error

    B. Applet

    C. AssertionError

    D. Exception及其子

  6. 在异常处理中,将可能抛出异常的方法放在( C )语句块中。

    A. throws

    B. catch

    C. try

    D. finally

  7. 使用catch( Exception e)的好处是( B )。

    A.只会捕获个别类型的异常

    B.捕获try语句块中产生的所有类型的异常

    C.忽略一些异常

    D.执行一些程序

  8. 当方法遇到异常又不知如何处理时,下列哪种说法是正确的( B )。

    A.捕获异常

    B.抛出异常

    C.嵌套异常

    D.声明异常

二、填空题

  1. Java程序错误包括 ErrorException 两种。

  2. Throwable 类是Java语言中所有错误(Error)或异常(Exception)的超类。

  3. 声明异常使用 throws 关键字,抛出异常使用 throw 关键字。

  4. 无论是否发生异常, finally 代码块中的代码总会被执行。

  5. 如果要自定义一个检查性异常类,需要继承 Exception 类。

第八章 Java常用实用类

一、选择题

  1. 下面程序的输出结果可能是( A )。

    public class Test1 {
        public static void main (String[ ] args) {
            int x, y;
            x = (int) Math. sqrt(5)/2 + (int) (Math. random()* 5)/2;
            y = (int) Math. sqrt(3)/2 + (int) (Math. random()* 3)/2;
            System. out. println(x+" "+y);
            if (x> y)
            System. out. println("x>y");
            else if (х == y)
            System. out. println("x=y") ;
            else
            System. out. println("x<y") ;
        }
    }
    

    A. x>y或x=y

    B. x=y或x<y

    C. 只能是x>y

    D.三种情况都可能

  2. 下面程序输出的结果是( D )

    public class Test2{
        public static void main(String[ ] args){
            double x = 2.2, y;
            y=Math. round (Math. pow(x, 2));
            System. out. println(y);
        }
    }
    

    A.4

    B.4.0

    C.5

    D.5.0

  3. 下列程序正确的输出结果是( A )。

    public class Test{
        public static void main(String[ ] args){
            String s1="abcd";
            String s2="abcd";
            String s3=new String (s1);
            if(s1==s2) {
            System. out. println("s1==s2");}
            if(s2==s3){
            System. out. println("s2==s3");}
            if(s1==s3) {
            System. out. println("s1==s3");}
        }
    }
    

    A.s1==s2

    B.s1==s2

    ​ s2==s3

    C.s1==s2

    s1==s3

    D.s1==s2

    ​ s2==s3

    ​ s1==s3

  4. 阅读下列代码段,正确的输出结果是( D )。

    String s1=new String(“abc");
    String s2=new String(“abc");
    System. out. println(s1==s2)
    

    A.s1==s2

    B.1

    C. true

    D. false

  5. 运行下面的程序段,输出结果是( B )。

    string s1=new String("abc");
    stringBuffer s2 =new stringBuffer ("abc");
    s2. append(s1);
    s1=s2. tostring( );
    s1. concat ("abc");
    System. out. println(s1);
    

    A. abc

    B. bcabe

    C.编译错误

    D. abcabcabc

  6. 以下程序段,正确的结果是( A )。

    int[ ] srcArray= {1,2,3,4,5,6};
    int[ ] destArray= new int[3];
    System.arraycopy(srcArray, 2, destArray, 1, 2);
    for (int i =0; i< destArray. length; i++) {
    System. out. print (destArray[i]+" ");
    }
    

    A.0 3 4

    B.0 2 3

    C.2 3 4

    D.编译错误

  7. Runtime类的( A )方法的作用是返回虚拟机的空闲内存量。

    A. freeMemory( )

    B. totalMemory( )

    C. maxMemory( )

    D. availableProcessors

  8. 要计算img,以下哪个方法能正确算出( D )。

    A. Math. pow(27,3)

    B. sqrt(27)

    C. exp(27)

    D. cbrt(27)

  9. 已知String sb =“youareastudent",则sb. substring(2, 7)截取的字符串为( C )。

    A. area

    B. ouarea

    C. uarea

    D. uareas

  10. 以下代码段,对其叙述正确的是( D )。

    Calendar cd=Calendar. getInstance( );
    cd. set (2018,3,2);
    int dayOfWeek=cd. get (Calendar. DAY_OF_WEEK);(结果为2)
    

    A.设置的年月日的值为2018年3月2日

    B.设置的年月日的值为2018年2月2日

    C. dayOfWeek值为2表示星期二

    D. dayOfWeek值为2表示星期一

二、填空题

  1. 下列程序的运行结果是 HELLO

    public class StrTest{
        public static void main(String[ ] args) {
            String str="hello!";
            System. out. println (str. toUpperCase( )) ;
      }
    }
    
  2. 已知StringBuffer sb = new StringBuffer( ”abcde”),则sb. delete(1, 2)后sb的值为 acde

  3. 已知String s=" abed\ n",s. length( )的值为 5

  4. 已知String s=“aaa | bbb I ccc”, 如果想正确拆分出aaa、bbb 和ccc,拆分字符串应该为 String t[]=s.split(“\|”);

  5. 要运用Random类获取1-100之间的随机数,代码为: Random r=new Radom(); int n=r.nextInt(100)+1;

  6. 调用Math类的sin( )、cos( )方法求正弦、余弦值时,给定的度数参数是 弧度 。

  7. System类中包含了三个成员变量,分别代表 errinout

  8. 方法exit( int status)的作用是终止正在运行的Java虚拟机,statues 的值为 0 代表正常退出。

三、操作题

  1. 统计一段英文中包含单词的个数。

    public class P222_1 {  
        public static void main(String[] args) {  
            String text = "Hello, this is a simple program to count words in a text.";  
      
            // 使用空格作为分隔符来分割文本  
            // 注意:这不会处理标点符号后跟随的空格作为单词分隔符的情况  
            String[] words = text.split("\\s+"); // "\\s+" 匹配一个或多个空白字符  
      
            // 单词数量即为数组的长度  
            int wordCount = words.length;  
      
            System.out.println("文中包含了" + wordCount + " 个单词。");  
        }  
    }
    
  2. 给出两个日期,计算它们之间相隔的天数。

    import java.util.Calendar;  
    import java.util.Date;  
      
    public class P222_2 {  
      
        public static void main(String[] args) {  
            // 设定两个固定日期    
    Date date1 = setDate(2023, 3, 15); // 2023年3月15日    
    Date date2 = setDate(2024, 3, 15);  // 2023年4月5日  
      
            // 计算天数差    
    long daysBetween = getDaysBetween(date1, date2);  
      
            // 输出结果    
    System.out.println("两个日期之间相隔的天数: " + daysBetween);  
        }  
      
        // 设定日期的辅助方法    
    private static Date setDate(int year, int month, int day) {  
            Calendar calendar = Calendar.getInstance();  
            calendar.set(year, month - 1, day); // 注意月份是从0开始的    
    return calendar.getTime();  
        }  
      
        // 计算两个日期之间的天数差    
    private static long getDaysBetween(Date date1, Date date2) {  
            long diff = date2.getTime() - date1.getTime();  
            return diff / (1000 * 60 * 60 * 24); // 一天中的毫秒数    
    }  
    }
    

第九章 集合框架

一、 选择题

  1. 下列叙述中正确的是( C )。

    A. List的特点是元素无序,可重复

    B. List的特点是元素无序,不可重复

    C. List的特点是元素有序,可重复

    D. List的特点是元素有序,不可重复

  2. 下列叙述中正确的是( A )。

    A. Set接口的特点是元素无序,且不可重复

    B. Set接口的特点是元素无序,可以重复

    C. Set接口的特点是元素有序,且不可重复

    D. Set接口的特点是元素有序,可以重复

  3. 下列叙述中正确的是( D )。

    A.使用ArrayList和LinkedList集合查找元素都很便捷,只是存储结构不同

    B.使用ArrayList集合在增删元素和查找元素时速度都很快

    C.使用LinkedList集合在增删元素和查找元素时速度都很快

    D. ArrayList集合在查询元素时速度很快,LinkedList集合对增删元素操作效率高

  4. 下面关于集合的说法正确的是( B )。

    A. List接口继承了Collection 接口以定义一个不允许重复项的有序集合

    B. ArrayList和LinkedList 是List接口的实现类

    C.要支持随机访问,选择LinkedList类较好;而顺序访问列表元素使用ArrayList类更好

    D. Set接口继承Collection接口,而且它允许集合中存在重复项

  5. 以下关于ArrayList集合的说明,不正确的是( D )。

    A. ArrayList是List 集合的实现类,是程序中较为常见的一种集合

    B. ArrayList内部封装了一个长度可变的数组对象

    C. ArrayList集合使用add( )和get( )方法实现元素的存取

    D. ArrayList可以增加或者删除指定位置的元素,效率较高,适合做大量的增删操作

  6. 以下说法中,正确的是( A )。

    A.相较ArrayList集合,LinkedList集合增删元素的时候效率更高

    B. 需要遍历集合中的元素时,可以使用Iterator 进行遍历,用Iterator 的get( )方法对元素进行遍历

    C.使用foreach对集合中的元素进行遍历的时候,需要知道集合的大小

    D. Set接口和List接口类似,两者中的元素都是有序的

  7. 关于TreeSet集合的说法,不正确的是( C )。

    A. TreeSet是Set接口的一个实现类

    B. TreeSet内部采用自平衡的二叉树存储元素

    C. TreeSet集合中的元素可以重复,但只能重复一次

    D. TreeSet集合中没有重复的元素,且可以对元素进行排序

二、填空题

  1. Map接口的特点是元素是 键值对 ,其中 可以重复, 不可以重复。

  2. ArrayList底层使用 数组 来保存元素,LinkedList 采用 链表 存储方式。

  3. Java集合类和数组不同,数组元素既可以是 基本数据 类型,也可以是对象类型;而集合中的元素只能是 对象类型

  4. Java集合类主要由两个接口派生,一个是 Collection ,另一个是 Map

  5. Java集合可分成 类,其中Set集合中的元素不能 重复 ;List集合非常像 数组 ;Map 集合的元素由两个值组成,一个是 ,一个是

  6. Iterator接口是Java集合框架中的成员,和Collection、Map集合不一样,Iterator接口主要用于 遍历 Collection集合中的元素。Iterator又称 迭代器

  7. HashSet扩展自AbstractSet 并实现了Set接口, 它创建了一个类集,该类集使用 散列 表进行存储,里面的数据不允许重复,并且没有顺序。

  8. Properties是Hashtable的一个子类,能够操作的数据全部是String, 的类型全部是字符串。

  9. Java中,标准类型的数组是定长的,一旦数组被创建,就不能被加长或缩短,但 ArrayList 类解决了这个问题,它支持可随需要而增长的动态数组。

三、操作题

  1. 在程序中声明一个HashSet集合类的对象,向集合对象中添加字符串元素,并使用Iterator迭代输出集合中的元素。

    import java.util.HashSet;  
    import java.util.Iterator;  
      
    public class P261_1  {  
        public static void main(String[] args) {  
            // 声明一个HashSet集合类的对象    
    HashSet<String> set = new HashSet<>();  
      
            // 向集合中添加字符串元素    
    set.add("apple");  
            set.add("banana");  
            set.add("cherry");  
            set.add("date");  
      
            // 使用Iterator迭代输出集合中的元素    
    Iterator<String> iterator = set.iterator();  
            while (iterator.hasNext()) {  
                String element = iterator.next();  
                System.out.println(element);  
            }  
        }}
    
  2. 使用Map, 以姓名为键,电话号码为值,实现以下电话通信录的功能:

    (1)增加新联系人的电话号码;

    (2)修改某个联系人的电话号码;

    (3)显示所有联系人的信息。

    import java.util.HashMap;  
    import java.util.Map;  
      
    public class P261_2 {  
        private Map<String, String> contacts;  
      
        public P261_2() {  
            contacts = new HashMap<>();  
        }  
      
        // (1)增加新联系人的电话号码    
    public void addContact(String name, String phoneNumber) {  
            contacts.put(name, phoneNumber);  
            System.out.println("已添加联系人: " + name + ", 电话号码: " + phoneNumber);  
        }  
      
        // (2)修改某个联系人的电话号码    
    public void updateContact(String name, String newPhoneNumber) {  
            if (contacts.containsKey(name)) {  
                contacts.put(name, newPhoneNumber);  
                System.out.println("已更新联系人 " + name + " 的电话号码为: " + newPhoneNumber);  
            } else {  
                System.out.println("联系人 " + name + " 不存在,无法更新电话号码。");  
            }  
        }  
        // (3)显示所有联系人的信息    
    public void displayContacts() {  
            for (Map.Entry<String, String> entry : contacts.entrySet()) {  
                System.out.println("姓名: " + entry.getKey() + ", 电话号码: " + entry.getValue());  
            }  
        }  
        public static void main(String[] args) {  
            P261_2 phoneBook = new P261_2();  
      
            // 增加新联系人    
    phoneBook.addContact("张三", "1234567890");  
            phoneBook.addContact("李四", "0987654321");  
      
            // 显示所有联系人信息    
    System.out.println("当前通信录中的联系人:");  
            phoneBook.displayContacts();  
      
            // 修改联系人电话号码    
    phoneBook.updateContact("张三", "1111111111");  
      
            // 再次显示所有联系人信息    
    System.out.println("更新后通信录中的联系人:");  
            phoneBook.displayContacts();  
        }  
    }
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue实现搜索文章关键字,滑到指定位置并且高亮

1、输入搜索条件&#xff0c;点击搜索按钮 2、滑到定位到指定的搜索条件。 <template><div><div class"search_form"><el-inputv-model"searchVal"placeholder"请输入关键字查询"clearablesize"small"style&quo…

LaySNS模板仿RiPro日主题素材源码资源下载响应式CMS模板

LaySNS模板仿RiPro日主题素材源码资源下载响应式CMS模板&#xff0c;该主题是网上泛滥的RiPro主题仿制而成的laysns模板&#xff0c;原主题是很强大的。 全站功能是通过ajax响应实现的&#xff0c;另外就是网上流传得比较多的是美化版。 主要说明&#xff1a;付费/回复下载功…

三爱法国高中留学:开启全球视野的黄金之路

综合素质培养 : 全面发展的教育体系 法国高中课程以其全面而严谨的教育体系闻名全球。学生不仅学习到丰富的学科知识,如法语及文学、外语、科学、历史地理、哲学和体育等,还通过独特的教学方法培养独立思考和批判性思维能力。法国是全球唯一将哲学纳入中学必修课程的国家,这种…

物流行业:智能物流跟踪

在现代物流中&#xff0c;RFID技术的应用已经成为提高运输效率和安全性的重要手段。RFID标签可以被轻松地附加到货物上&#xff0c;并能够实时记录物品的位置和状态。通过这些标签&#xff0c;物流公司可以实时追踪货物的运输路径&#xff0c;监控货物的运输状况&#xff0c;确…

Android MQTT 反复重连故障

一、检查是否断开&#xff0c;在不用mqtt地方调用disconnect. /*** 断开Mqtt连接*/public static void disconnect() {try {if (mqttAndroidClient ! null) {String topic PUBLISH_TOPIC devicesId;if (mqttAndroidClient.isConnected()){mqttAndroidClient.unsubscribe(topi…

深圳AI绘画模型训练外包服务公司

&#x1f680; 最强AI绘画、图片生成技术服务公司出炉 —— 触站AI&#xff0c;智能图像的革新工坊 &#x1f3a8; 在AI技术的浪潮中&#xff0c;触站AI以其专业和创新&#xff0c;成为企业AI图像领域的技术解决方案服务先锋。 &#x1f6e0;️ 第一&#xff1a;触站AI&#x…

前端进阶:Vue.js

目录 框架&#xff1a; 助解&#xff1a; 框架&#xff1a; VUE 什么是Vue.js? Vue.js优点 Vue安装 方式一&#xff1a;直接用<script>引入 方式二&#xff1a;命令行工具 第一个Vue程序 代码 代码解释&#xff1a; 运行 Vue指令 v-text v-html v-tex…

电脑版微信自动发送微信消息给好友或者群聊

一.软件下载 点击微信自动发送消息下载 二.相关使用方法 1.打开软件&#xff0c;输入想自动发送的内容 2.确保登录了微信电脑版【PC端】&#xff0c;然后切换到想要自动发送的好友或群聊的窗口。 3.点击开始&#xff0c;现在自动发送即可&#xff0c;稍等三秒程序自动运行。 …

# Sharding-JDBC从入门到精通(6)-- Sharding-JDBC 水平分库 和 垂直分库。

Sharding-JDBC从入门到精通&#xff08;6&#xff09;-- Sharding-JDBC 水平分库 和 垂直分库。 一、Sharding-JDBC 水平分库-分片策略配置 1、分库策略定义方式如下 # 分库策略&#xff0c;如何将一个逻辑表映射到多个数据源 spring.shardingsphere.sharding.tables.<逻…

法制史学习笔记(个人向) Part.3

5. 三国两晋南北朝法律制度 以下为三国魏晋南北朝直到唐代的历史发展脉络图&#xff1a; #mermaid-svg-6AVVMjllKTBaBbRO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6AVVMjllKTBaBbRO .error-icon{fill:#55222…

Meta 3D Gen:文生 3D 模型

是由 Meta 公布的一个利用 Meta AssetGen&#xff08;模型生成&#xff09;和 TextureGen&#xff08;贴图材质生成&#xff09;的组合 AI 系统&#xff0c;可以在分分钟内生成高质量 3D 模型和高分辨率贴图纹理。 视频演示的效果非常好&#xff0c;目前只有论文&#xff0c;期…

2.(vue3.x+vite)调用iframe的方法(vue编码)

1、效果预览 2.编写代码 (1)主页面 <template><div><button @click="sendMessage">调用iframe,并发送信息

记录前端发现问题之 mock接口无返回数据导致所有后续接口调用报错:网络异常

1. 背景 就更新了代码&#xff0c;发现新涉及的页面&#xff0c;切换tab 之后会报错网络异常&#xff0c;再次切换其他没涉及的功能页面&#xff0c;继续报错网络异常 测试环境&#xff1a;纯前端代码&#xff0c;后端是前端mock的数据&#xff0c;仅供demo 2. 问题报错 手动…

华为 eNSP 模拟器 配置RIP实例 动态路由协议

1 实验拓扑 2 配置路由器 #R1 Huawei>sys [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0]qu [R1]rip [R1-rip-1]network 192.168.1.0 [R1-rip-1]version 2 [R1-rip-…

05 docker 镜像

目录 1. 镜像 2. 联合文件系统 3. docker镜像加载原理 4. 镜像分层 镜像分层的优势 5. 容器层 1. 镜像 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好行程一个可交付的运行环境&#xf…

深入浅出:npm常用命令详解与实践【保姆级教程】

大家好,我是CodeQi! 在我刚开始学习前端开发的时候,有一件事情让我特别头疼:管理和安装各种各样的依赖包。 那时候,我还不知道 npm 的存在,手动下载和管理这些库简直是噩梦。 后来,我终于接触到了 npm(Node Package Manager),它不仅帮我解决了依赖管理问题,还让我…

Apache Ranger 2.4.0 安装部署

1、安装ranger admin 2、源码编译Ranger wget https://www.apache.org/dist/ranger/2.4.0/apache-ranger-2.4.0.tar.gz tar zxvf apache-ranger-2.4.0.tar.gz cd apache-ranger-2.4.0 mvn -Pall clean mvn clean package -DskipTests maven settting可以设置阿里云进行资源下载…

北斗/GPS模块输出的NMEA语句详解

NMEA协议采用 ASCII 码来传递 GPS 定位信息&#xff0c;我们称之为帧。 帧格式形如&#xff1a;$aaccc,ddd,ddd,…,ddd*hh(CR)(LF) 1、“$”&#xff1a;帧命令起始位 2、aaccc&#xff1a;地址域&#xff0c;前两位为识别符&#xff08;aa&#xff09;&#xff0c;后三位为…

Email OTP验证认证接口和API发送邮件平台?

Email OTP验证认证接口如何设计&#xff1f;邮件发送平台怎么选&#xff1f; Email OTP验证认证接口和API发送邮件平台为实现这一目标提供了有效的解决方案。AokSend将深入探讨Email OTP验证认证接口及API发送邮件平台的关键功能和优势。 Email OTP&#xff1a;工作原理 用户…

vue3 在el-input的光标处插入文本

点击文本框下方的按钮&#xff0c;将相应的文本插入光标处的实现&#xff1a; <el-input type"textarea" rows"4" v-model"formula" blur"handleBlur" clearable></el-input><el-button-group class"short_btn&q…