java程序设计基础期末测试题1.docx
《java程序设计基础期末测试题1.docx》由会员分享,可在线阅读,更多相关《java程序设计基础期末测试题1.docx(15页珍藏版)》请在冰豆网上搜索。
java程序设计基础期末测试题1
JAVA程序设计基础期末测试题
(1)
一、选择题
1、下面哪个标识符在Java语言中是合法的?
A.instanceof
B.TwoUsers
C.5end-line
D.*point
2、下列关于Java语言的特点,描述错误的是
A.Java是面向对象的编程语言
B.Java是面向过程的编程语言
C.Java是跨平台的编程语言
D.Java支持多线程
3、在Java语言的下列哪个包是编译器自动导入的?
A.java.lang
B.java.util
C.java.awt
D.java.io
4、下面语句的功能是()。
RandomAccessFileraf2=newRandomAccessFile("1.txt","rw");
A.打开当前目录下的文件"1.txt",但只能向文件写入数据,不能从文件读取数据
B.打开当前目录下的文件"1.txt",既可以向文件写数据,也可以从文件读数据
C.打开当前目录下的文件"1.txt",但不能向文件写入数据,只能从文件读取数据
D.以上说法都不对
5、若定义有变量floatf1,f2=8.0F,则下列说法正确的是()。
A.变量f1,f2均未被初始化
B.变量f1,f2均被初始化为8.0
C.变量f1没有被初始化,f2被初始化为8.0
D.变量f2没有被初始化,f1被初始化为8.0
6、线程调用了sleep()方法后,该线程将进入()状态。
A.运行状态
B.终止状态
C.阻塞状态
D.可运行状态
7、Stringstr1="abc";
Stringstr2=newString("abc");
System.out.println(str1==str2);则程序运行后输出结果为:
()。
A.true
B.false
C.0
D.abc
8、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。
A.finalvoidmethod()
B.publicvoidmethod()
C.staticvoidmethod()
D.abstractvoidmethod()
9、以下程序片段运行结果为:
publicstaticvoidmain(Stringargs[])
{inti=1,x=3;
switch(x)
{
case2:
i--;
case3:
++i;
case4:
--i;break;
}
System.out.println("i="+i);
A.i=2
B.i=3
C.i=0
D.i=1
10、以下程序的输出结果为()。
publicstaticvoidmain(String[]args){
for(inti=1;i<5;i++)
{if(i%3==0)continue;
System.out.println(i+"");
A.124
B.234
C.123
D.012
11、以下程序的输出结果为()。
publicstaticvoidmain(String[]args)
{Strings1="hello";
Strings2=newString("hello");
if(s1.equals(s2))
{System.out.println("相等");}
else
{System.out.println("不相等");}
B.不相等
C.相等
D.hello
12、下列()是不能通过编译的语句。
A.chara1=“c”;
B.floatf1=45.0f;
C.doubled=545.0;
D.inti=321;
13、在下面的代码中,break语句的作用是:
for(inti=0;i<10;i++)
if(aData[i]==TargetData)
{FoundID=i;
break;
A.终止程序运行
B.退出所在的for循环
C.结束一次循环,执行i++后,继续for循环的执行
D.退出if程序块
14、以下关于异常捕获的原则中,正确的是()。
A.Exception类必须出现,而且必须作为catch块中第一个匹配的类
B.RuntimeException可以不被捕获,Java能自动处理运行时异常
C.非运行异常可以不被捕获,Java会自动处理
D.先列出通用的异常类,后列出具体的异常类
15、下列程序段执行后的结果是()。
Strings=newString("abcdefg");
for(inti=0;i{System.out.print(s.charAt(i));}A.acegB.abcdefgC.ACEGD.abcd16、下面说法错误的是()。A.关键字final和abstract不能同时使用B.abstract所修饰的类能够实例化C.private提供最高级别的保护D.abstract可修饰类、方法17、关键字super的作用是()。A.用来调用父类的构造方法B.用来访问父类被隐藏的成员变量C.用来调用父类中被重载的方法D.以上都是18、在Java中,Integer.MAX_VALUE表示()。A.整数类型最大值B.浮点类型最大值C.长整型最大值D.以上说法都不对19、下列关于抽象方法的描述,正确的是( )。A.是没有方法体的方法B.抽象方法可以出现在非抽象类中C.抽象类中包含的方法一定都是抽象方法D.抽象方法和普通方法一样20、在定义方法时,方法前使用void修饰,代表的含义是()。A.定义的方法没有返回值B.方法体为空C.定义的方法没有形参D.方法的返回值不能参加算术运算21、下列关于JFrame类的说法不正确的是()。A.JFrame对象显示的效果是一个窗口B.JFrame被默认初始化为可见C.JFrame类所创建的窗口可以没有标题D.JFrame的默认布局管理器为BorderLayout22、下面的代码段执行之后count的值是()。intcount=1;for(inti=1;i<=5;i++){count+=i;}System.out.println(count);A.16B.5C.1D.1523、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()。A.FileOutputStreamB.FileWriterC.FileInputStreamD.DataOutputStream24、关于数据类型的描述,以下错误的是()。A.接口、数组、类都是属于引用数据类型B.对引用数据类型的引用,也可以称为对象引用。C.String和char都是基本数据类型D.引用数据类型在内存中存放的是指向该数据的地址,不是数据值本身,它往往由多个基本数据组成25、如果需要向文件中写入数据,以下类中()不能实现写文件操作。A.FileOutputStreamB.RandomAccessFileC.FileReaderD.BufferedWriter26、线程操作中,调用sleep()方法,应捕获()异常。A.InterruptedExceptionB.NullPointerExceptionC.ArithmeticExceptionD.IOException27、用户自定义的异常类,一般应继承自()类。A.RuntimeExceptionB.MyExceptionC.ExceptionD.Error28、使用()可以创建文件选择对话框。A.JPaneB.JColorChooserC.JFileChooserD.JDialog29、关于包的描述,以下正确的是()。A.importjavax.swing.*指的是导入swing下所有的子包B.无名包可以有子包C.无名包没有名字,所以不能被其他包所引用D.importjava.awt.*;与importjava.awt.event.*;这两句的效果是完全等价的30、关于以下监听者和事件源的描述,错误的是()。A.一个事件源可以被多个监听者监听B.事件监听者是一个对事件源进行监视的对象。C.一个监听者可以监听多个事件源D.一个事件源只能被一个监听者监听31、以下关于构造方法的描述,错误的是()。A.构造方法是用new关键字调用B.构造方法没有返回值,使用void修饰C.构造方法可以用private修饰D.构造方法名和类名相同32、以下程序片段的执行结果为()。for(inti=10;i<50;i++){if(i%10==2)break;System.out.print(i+"");}A.1340B.1011C.1112D.203033、创建线程时可以实现()接口或继承Thread类。A.JAppletB.KeyAdapterC.KeyListenerD.Runnable34、将菜单栏对象menubar固定到窗口对象frm上的语句为()。A.frm.setJMenuBar();B.frm.add();C.frm.add(menubar);D.frm.setJMenuBar(menubar);35、假设x=20,y=6,则表达式a%b的值是()。A.3B.2C.10D.136、关于布尔类型的描述,错误的是()。A.使用关键字bool来定义B.只允许取值true或falseC.占8位,缺省为falseD.不允许以0或非0的整数替代true和false37、关于Java异常处理机制,以下描述错误的是()。A.能提供对一些无法预测的错误的捕获和处理B.运行异常可以由系统抛出C.异常处理机制要求每次调用一个方法都需要进行全面的检查,程序可维护性大大降低D.正常处理程序与异常处理程序的代码分开,程序可读性提高38、实现()接口可实现对键盘事件的响应。A.ChangeListenerB.MouseListenerC.ActionListenerD.KeyListener39、以下关于输入输出的描述,不正确的是()。A.一般使用Reader类和Writer类来处理字节流B.按传输内容,分为字符流和字节流C.按传输方向,分为输入流与输出流D.为了提高传输效率,可以使用缓冲流40、对于一个三位的正整数n=769,以下结果为6的()。A.n/10%2B.(n-n%10)/100C.n%10D.n%100/10二、多选题41、下列java标识符,正确的有()。A._sys_varlB.User_nameC.1_fileD.$change42、以下叙述,错误的是()。A.在Java中一个类不能同时继承一个适配器类和实现一个监听者接口B.在Java中接口只能有一个父接口C.在Java中,类之间允许多重继承D.在Java中一个类只能实现一个监听者接口43、关于BufferedReader类的readLine()方法,以下说法正确的是()。A.方法readLine()每次读取一行数据B.方法readLine()每次读取一个字节。C.如果读到流的末尾,该方法返回的结果为nullD.该方法可能抛出IOException异常,调用该方法时通常应处理异常44、下列关于java继承的说法中正确的是()。A.一个父类可以有若干个直接子类B.Object类是所有java类直接或者间接的父类C.一个子类可以有多个直接父类D.子类还可以继续派生出子类45、进行字符文件的读写,不适合使用的类是()。A.InputStream、OutputStreamB.FileReader,FileWriterC.FileInputStream、FileOutputStreamD.BufferedInputStream、BufferedOutputStream46、下列关于守护线程的描述,正确的是()。A.守护线程,一般也称为daemon线程B.守护线程一般是一个独立的线程,它的run()方法是一个无限循环C.守护线程为其它线程运行提供服务的后台线程D.如果守护线程是唯一运行着的线程,程序会自动退出47、以下关于资源关闭的描述,正确的是()。A.关闭资源的close()方法,一般可以放在finally子句中B.并非所有的资源都能自动关闭C.实现java.lang.AutoCloseable接口的资源才可以自动关闭D.自动关闭资源的try语句,相当于包含了隐式的finally语句块48、以下关于接口的描述,正确的是().A.接口中的默认方法,使用default进行修饰B.接口中的静态方法,可以通过接口名进行调用C.在接口中,可以定义静态方法和静态成员D.一个.java源程序中,只能定义一个接口49、以下描述,正确的是()。A.静态方法只能访问static成员变量或static方法B.成员变量和局部变量主要区别在于是否能被修饰符所修饰C.编程中,具有唯一性的变量,一般需要定义为静态的,意味着独立于任何具体的实例D.若某方法被声明为private,则无法在所在类外的地方被调用,但在该类内部可以被调用。50、以下关于foreach循环的描述,正确的是()。A.foreach并不是一个关键字,它是一种特殊的for语句格式,一般用于遍历数组、集合等B.任何foreach语句都可以改为for语句版本C.foreach不能完全取代for语句D.foreach不能改变数组元素的值,所以不要对foreach的循环变量赋值三、判断题51、在Java中,通过抽象类的定义实现多重继承关系。(错)52、Java语言要求二维数组中每行的元素个数必须相同。(错)53、Java语言中final类是所有类的父类。(错)54、线程的创建有两种方法:实现ActionListener接口和继承Thread类。(错)55、假设x=13,y=4,则表达式x%y!=0的值是1。(错)56、所有的异常均须由系统抛出。(错)57、若方法本身没有返回值,则必须在方法定义的前面加上关键字void,构造方法除外。(对)58、如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰符是private。(对)59、用protected所修饰的类不能被其他类继承。(错)60、对文件的随机访问使用File类。(错)61、使用数组时,下标表达式是整型表达式,下标的范围为0至数组长度减1。(对)62、如果要实现某个监听者接口,必须实现接口中的所有方法。(对)63、当有多个重载的构造方法时,可以在一个构造方法内,使用关键字this访问本类中的其他构造方法。(对)64、创建颜色选择窗格,可以使用类JFileChooser。(错)65、进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程,形成多条执行线路。(对)66、BufferedReader类的readLine()方法每次读取一个字节。(错)67、构造方法可以和类同名,也可以和类不同名。(错)68、在同一个类中,可以定义方法名相同、参数不同的方法,这种现象称为方法的覆盖。(错)69、进行异常处理时,只能在try块中抛出异常。(错)70、如果某个类被final修饰,则表示该类不可以被实例化。(错)71、使用布局管理器,可以对窗口菜单进行布局管理。(错)72、缺省访问控制符指的是类、类的成员(包括成员变量、成员方法等),不使用任何访问控制符。它的特征是能被同一个包中的类访问和引用,其他包不可以,又称为包访问性。(对)73、实例成员不保存在对象内存区间中,保存在类的内存区域,是公共存储单元。(错)74、方法的重载指多个方法带有不同的参数,使用相同的方法名。这里参数不同指参数个数不同。(错)75、方法的覆盖,指的是在子类中,定义名称、参数个数与类型均与父类完全相同的方法,用以重写父类里同名的方法。(对)76、使用final方法的好处:固定该方法所对应的具体操作,防止子类误对父类关键方法的重定义,保证程序安全性和正确性。(对)77、关键字final和abstract能同时使用。(错)78、父类中声明为final的成员在子类中可以被继承,但不能被覆盖。(对)79、this关键字可以用来访问父类中定义的成员变量和成员方法。(错)80、在不考虑可变参数的情况下,方法的形参与实参的个数、顺序、数据类型应保持一致。(对)81、成员变量和局部变量的区别是两者的数据类型不同。(错)82、定义类的成员变量时,可以同时赋初值;并且对成员变量的操作只能放在方法当中。(对)83、当一个.java源文件中,有多个类时,每个类都必须使用public进行修饰。(错)84、在值传递的方法调用中,系统不会为形参开辟新的内存区域。(错)85、在引用传递中,传递形参时,编译程序将把实际值在内存中的引用传递给方法。(对)86、对象是以类为模板创建的具体实例。(对)87、synchronized块或方法中的代码应尽可能少,否则会失去线程并发执行的优势。(对)88、一个线程即使没有执行完它所调用对象的synchronized块或方法时,也会自动释放互斥锁。(错)89、被多个线程共享的数据在同一时刻,只允许一个线程处于操作之中,这就是同步控制。(对)90、线程是比进程更小的执行单位,一般称为轻量级进程。(对)
{System.out.print(s.charAt(i));}
A.aceg
B.abcdefg
C.ACEG
D.abcd
16、下面说法错误的是()。
A.关键字final和abstract不能同时使用
B.abstract所修饰的类能够实例化
C.private提供最高级别的保护
D.abstract可修饰类、方法
17、关键字super的作用是()。
A.用来调用父类的构造方法
B.用来访问父类被隐藏的成员变量
C.用来调用父类中被重载的方法
D.以上都是
18、在Java中,Integer.MAX_VALUE表示()。
A.整数类型最大值
B.浮点类型最大值
C.长整型最大值
19、下列关于抽象方法的描述,正确的是( )。
A.是没有方法体的方法
B.抽象方法可以出现在非抽象类中
C.抽象类中包含的方法一定都是抽象方法
D.抽象方法和普通方法一样
20、在定义方法时,方法前使用void修饰,代表的含义是()。
A.定义的方法没有返回值
B.方法体为空
C.定义的方法没有形参
D.方法的返回值不能参加算术运算
21、下列关于JFrame类的说法不正确的是()。
A.JFrame对象显示的效果是一个窗口
B.JFrame被默认初始化为可见
C.JFrame类所创建的窗口可以没有标题
D.JFrame的默认布局管理器为BorderLayout
22、下面的代码段执行之后count的值是()。
intcount=1;
for(inti=1;i<=5;i++)
{count+=i;}
System.out.println(count);
A.16
B.5
C.1
D.15
23、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()。
A.FileOutputStream
B.FileWriter
C.FileInputStream
D.DataOutputStream
24、关于数据类型的描述,以下错误的是()。
A.接口、数组、类都是属于引用数据类型
B.对引用数据类型的引用,也可以称为对象引用。
C.String和char都是基本数据类型
D.引用数据类型在内存中存放的是指向该数据的地址,不是数据值本身,它往往由多个基本数据组成
25、如果需要向文件中写入数据,以下类中()不能实现写文件操作。
B.RandomAccessFile
C.FileReader
D.BufferedWriter
26、线程操作中,调用sleep()方法,应捕获()异常。
A.InterruptedException
B.NullPointerException
C.ArithmeticException
D.IOException
27、用户自定义的异常类,一般应继承自()类。
A.RuntimeException
B.MyException
C.Exception
D.Error
28、使用()可以创建文件选择对话框。
A.JPane
B.JColorChooser
C.JFileChooser
D.JDialog
29、关于包的描述,以下正确的是()。
A.importjavax.swing.*指的是导入swing下所有的子包
B.无名包可以有子包
C.无名包没有名字,所以不能被其他包所引用
D.importjava.awt.*;与importjava.awt.event.*;这两句的效果是完全等价的
30、关于以下监听者和事件源的描述,错误的是()。
A.一个事件源可以被多个监听者监听
B.事件监听者是一个对事件源进行监视的对象。
C.一个监听者可以监听多个事件源
D.一个事件源只能被一个监听者监听
31、以下关于构造方法的描述,错误的是()。
A.构造方法是用new关键字调用
B.构造方法没有返回值,使用void修饰
C.构造方法可以用private修饰
D.构造方法名和类名相同
32、以下程序片段的执行结果为()。
for(inti=10;i<50;i++)
if(i%10==2)break;
System.out.print(i+"");
A.1340
B.1011
C.1112
D.2030
33、创建线程时可以实现()接口或继承Thread类。
A.JApplet
B.KeyAdapter
C.KeyListener
D.Runnable
34、将菜单栏对象menubar固定到窗口对象frm上的语句为()。
A.frm.setJMenuBar();
B.frm.add();
C.frm.add(menubar);
D.frm.setJMenuBar(menubar);
35、假设x=20,y=6,则表达式a%b的值是()。
A.3
B.2
C.10
D.1
36、关于布尔类型的描述,错误的是()。
A.使用关键字bool来定义
B.只允许取值true或false
C.占8位,缺省为false
D.不允许以0或非0的整数替代true和false
37、关于Java异常处理机制,以下描述错误的是()。
A.能提供对一些无法预测的错误的捕获和处理
B.运行异常可以由系统抛出
C.异常处理机制要求每次调用一个方法都需要进行全面的检查,程序可维护性大大降低
D.正常处理程序与异常处理程序的代码分开,程序可读性提高
38、实现()接口可实现对键盘事件的响应。
A.ChangeListener
B.MouseListener
C.ActionListener
D.KeyListener
39、以下关于输入输出的描述,不正确的是()。
A.一般使用Reader类和Writer类来处理字节流
B.按传输内容,分为字符流和字节流
C.按传输方向,分为输入流与输出流
D.为了提高传输效率,可以使用缓冲流
40、对于一个三位的正整数n=769,以下结果为6的()。
A.n/10%2
B.(n-n%10)/100
C.n%10
D.n%100/10
二、多选题
41、下列java标识符,正确的有()。
A._sys_varl
B.User_name
C.1_file
D.$change
42、以下叙述,错误的是()。
A.在Java中一个类不能同时继承一个适配器类和实现一个监听者接口
B.在Java中接口只能有一个父接口
C.在Java中,类之间允许多重继承
D.在Java中一个类只能实现一个监听者接口
43、关于BufferedReader类的readLine()方法,以下说法正确的是()。
A.方法readLine()每次读取一行数据
B.方法readLine()每次读取一个字节。
C.如果读到流的末尾,该方法返回的结果为null
D.该方法可能抛出IOException异常,调用该方法时通常应处理异常
44、下列关于java继承的说法中正确的是()。
A.一个父类可以有若干个直接子类
B.Object类是所有java类直接或者间接的父类
C.一个子类可以有多个直接父类
D.子类还可以继续派生出子类
45、进行字符文件的读写,不适合使用的类是()。
A.InputStream、OutputStream
B.FileReader,FileWriter
C.FileInputStream、FileOutputStream
D.BufferedInputStream、BufferedOutputStream
46、下列关于守护线程的描述,正确的是()。
A.守护线程,一般也称为daemon线程
B.守护线程一般是一个独立的线程,它的run()方法是一个无限循环
C.守护线程为其它线程运行提供服务的后台线程
D.如果守护线程是唯一运行着的线程,程序会自动退出
47、以下关于资源关闭的描述,正确的是()。
A.关闭资源的close()方法,一般可以放在finally子句中
B.并非所有的资源都能自动关闭
C.实现java.lang.AutoCloseable接口的资源才可以自动关闭
D.自动关闭资源的try语句,相当于包含了隐式的finally语句块
48、以下关于接口的描述,正确的是().
A.接口中的默认方法,使用default进行修饰
B.接口中的静态方法,可以通过接口名进行调用
C.在接口中,可以定义静态方法和静态成员
D.一个.java源程序中,只能定义一个接口
49、以下描述,正确的是()。
A.静态方法只能访问static成员变量或static方法
B.成员变量和局部变量主要区别在于是否能被修饰符所修饰
C.编程中,具有唯一性的变量,一般需要定义为静态的,意味着独立于任何具体的实例
D.若某方法被声明为private,则无法在所在类外的地方被调用,但在该类内部可以被调用。
50、以下关于foreach循环的描述,正确的是()。
A.foreach并不是一个关键字,它是一种特殊的for语句格式,一般用于遍历数组、集合等
B.任何foreach语句都可以改为for语句版本
C.foreach不能完全取代for语句
D.foreach不能改变数组元素的值,所以不要对foreach的循环变量赋值
三、判断题
51、在Java中,通过抽象类的定义实现多重继承关系。
(错)
52、Java语言要求二维数组中每行的元素个数必须相同。
53、Java语言中final类是所有类的父类。
54、线程的创建有两种方法:
实现ActionListener接口和继承Thread类。
55、假设x=13,y=4,则表达式x%y!
=0的值是1。
56、所有的异常均须由系统抛出。
57、若方法本身没有返回值,则必须在方法定义的前面加上关键字void,构造方法除外。
(对)
58、如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰符是private。
59、用protected所修饰的类不能被其他类继承。
60、对文件的随机访问使用File类。
61、使用数组时,下标表达式是整型表达式,下标的范围为0至数组长度减1。
62、如果要实现某个监听者接口,必须实现接口中的所有方法。
63、当有多个重载的构造方法时,可以在一个构造方法内,使用关键字this访问本类中的其他构造方法。
64、创建颜色选择窗格,可以使用类JFileChooser。
65、进程是程序的一次动态执行过程。
一个进程在其执行过程中,可以产生多个线程,形成多条执行线路。
66、BufferedReader类的readLine()方法每次读取一个字节。
67、构造方法可以和类同名,也可以和类不同名。
68、在同一个类中,可以定义方法名相同、参数不同的方法,这种现象称为方法的覆盖。
69、进行异常处理时,只能在try块中抛出异常。
70、如果某个类被final修饰,则表示该类不可以被实例化。
71、使用布局管理器,可以对窗口菜单进行布局管理。
72、缺省访问控制符指的是类、类的成员(包括成员变量、成员方法等),不使用任何访问控制符。
它的特征是能被同一个包中的类访问和引用,其他包不可以,又称为包访问性。
73、实例成员不保存在对象内存区间中,保存在类的内存区域,是公共存储单元。
74、方法的重载指多个方法带有不同的参数,使用相同的方法名。
这里参数不同指参数个数不同。
75、方法的覆盖,指的是在子类中,定义名称、参数个数与类型均与父类完全相同的方法,用以重写父类里同名的方法。
76、使用final方法的好处:
固定该方法所对应的具体操作,防止子类误对父类关键方法的重定义,保证程序安全性和正确性。
77、关键字final和abstract能同时使用。
78、父类中声明为final的成员在子类中可以被继承,但不能被覆盖。
79、this关键字可以用来访问父类中定义的成员变量和成员方法。
80、在不考虑可变参数的情况下,方法的形参与实参的个数、顺序、数据类型应保持一致。
81、成员变量和局部变量的区别是两者的数据类型不同。
82、定义类的成员变量时,可以同时赋初值;并且对成员变量的操作只能放在方法当中。
83、当一个.java源文件中,有多个类时,每个类都必须使用public进行修饰。
84、在值传递的方法调用中,系统不会为形参开辟新的内存区域。
85、在引用传递中,传递形参时,编译程序将把实际值在内存中的引用传递给方法。
86、对象是以类为模板创建的具体实例。
87、synchronized块或方法中的代码应尽可能少,否则会失去线程并发执行的优势。
88、一个线程即使没有执行完它所调用对象的synchronized块或方法时,也会自动释放互斥锁。
89、被多个线程共享的数据在同一时刻,只允许一个线程处于操作之中,这就是同步控制。
90、线程是比进程更小的执行单位,一般称为轻量级进程。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1