版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国人民大学《Java》2023-2024学年第一学期期末试卷考试科目:Java程序设计考试时间:120分钟满分分值:100分适用专业:计算机科学与技术、软件工程、信息安全等相关专业注意事项:1.答题前请将姓名、学号、班级填写在答题纸指定位置,答案一律写在答题纸上,写在试卷上无效;2.答题时需字迹清晰、规范,编程题需写出完整代码(含包声明、类定义、主方法,可省略注释),运行结果需注明;3.禁止携带电子设备、参考资料,严禁抄袭、作弊,一经发现按学校考试纪律处理;4.考试结束后,将试卷、答题纸一并交回,不得私自留存。一、单项选择题(每题2分,共20分)1.下列关于Java语言特性的描述,错误的是()A.Java是跨平台语言,依托JVM实现“一次编写,处处运行”B.Java支持单继承,一个类只能有一个直接父类,但可以实现多个接口C.Java中的基本数据类型包括int、float、String、booleanD.Java是面向对象语言,核心特性包括封装、继承、多态2.下列关于Java源文件编译与执行的说法,正确的是()A.Java源文件的扩展名为.class,编译后生成.java文件B.编译命令为java,执行命令为javacC.源文件经javac编译器编译后生成符合JVM规范的字节码文件,再由JVM解析执行D.一个Java源文件中可以有多个public类,且类名可以与文件名不一致3.下列关于访问控制符的作用,说法错误的是()A.public修饰的类、方法、属性,可被所有包中的类访问B.private修饰的成员,仅能在本类内部访问,子类也无法访问C.protected修饰的成员,仅能在同一个包内的类访问D.默认访问权限(无修饰符),仅能被同一个包内的类访问4.下列关于static关键字的描述,正确的是()A.static修饰的成员变量,属于对象实例,每个对象都有独立的副本B.static修饰的方法,可直接通过类名调用,无需创建对象实例C.static修饰的方法中,可直接访问非static成员变量和非static方法D.static代码块在创建对象时执行,每次创建对象都会执行一次5.下列关于构造方法的说法,错误的是()A.构造方法的名称必须与类名完全一致,且无返回值类型(包括void)B.一个类可以有多个构造方法,构成方法重载C.若未手动定义构造方法,Java会自动生成一个无参构造方法D.构造方法可以被static修饰,方便通过类名直接调用6.下列关于数组的描述,错误的是()A.Java数组必须先声明、再初始化,才能使用B.数组的长度一旦确定,无法修改C.int[]arr=newint[5];初始化后,数组中每个元素的默认值为0D.可以通过arr.length()方法获取数组的长度7.下列关于异常处理的说法,正确的是()A.try块中代码发生异常,会直接终止程序运行,不会执行catch块B.一个try块可以搭配多个catch块,捕获不同类型的异常,子类异常需放在父类异常之前C.finally块中的代码,只有在try块中无异常时才会执行D.throw用于声明方法可能抛出的异常,throws用于手动抛出异常对象8.下列关于字符串的描述,正确的是()A.String类是可变字符串,可通过append()方法修改字符串内容B."java程序设计".length()返回值为8,因为Java中中文字符占1个charC.Strings1="abc";Strings2="abc";s1==s2的结果为falseD.String类的equals()方法与==作用相同,均用于比较字符串内容9.下列关于多态的实现,说法正确的是()A.多态的实现无需满足“继承”和“方法重写”条件B.向上转型是指子类对象赋值给父类引用,转型后可调用子类特有的方法C.方法重写要求子类方法与父类方法的方法名、参数列表、返回值类型完全一致(除协变返回值)D.多态仅能通过方法重写实现,无法通过接口实现10.下列关于JavaIO流的描述,正确的是()A.字节流用于处理文本文件,字符流用于处理二进制文件B.BufferedReader属于字符流,具有缓冲功能,可提高读取效率C.FileInputStream是字符输入流,用于读取字符数据D.流操作结束后,无需关闭,Java会自动释放资源二、填空题(每空1分,共10分)1.Java中,基本数据类型int的取值范围是__________,char类型的取值范围是__________。2.实现多线程的两种方式分别是__________和__________。3.封装的核心是将类的__________私有化,通过__________和__________对外提供访问接口。4.表达式intx=1,y=2,z=3;y+=z--/++x;执行后,y的值为__________。5.final关键字修饰类时,表示该类__________;修饰方法时,表示该方法__________。三、判断题(每题1分,共10分,对的打“√”,错的打“×”)1.Java语言中,类的继承关系具有传递性,若A继承B,B继承C,则A继承C。()2.抽象类可以实例化对象,抽象方法必须在抽象类中定义。()3.接口中所有方法默认是publicabstract修饰,所有成员变量默认是publicstaticfinal修饰。()4.局部变量必须先初始化,才能使用;成员变量无需初始化,有默认值。()5.方法重载要求方法名相同,参数列表(参数个数、类型、顺序)不同,与返回值类型无关。()6.Java中的异常分为Checked异常和Unchecked异常,RuntimeException属于Checked异常。()7.静态内部类不持有外部类的引用,可直接通过外部类名访问。()8.7/3在Java中结果为2,因为Java中整型除法会截断小数部分,不进行四舍五入。()9.使用ArrayList集合时,其长度可以动态变化,无需提前指定容量。()10.线程同步的核心是防止多个线程同时操作共享资源,可通过synchronized关键字实现。()四、简答题(每题5分,共20分)1.简述Java中JVM的核心组成部分及各部分的作用。2.简述面向对象三大特性(封装、继承、多态)的含义及作用。3.简述try-catch-finally语句的执行流程,若try块中发生异常、未发生异常、catch块中又发生异常,finally块是否执行?4.简述Java中String、StringBuffer、StringBuilder的区别,分别适用于什么场景?五、程序阅读题(每题5分,共10分)1.阅读下列Java代码,写出程序运行后的输出结果,并简要说明原因。java
classParent{
publicvoidshow(){
System.out.println("Parent类的show方法");
}
}
classChildextendsParent{
@Override
publicvoidshow(){
System.out.println("Child类的show方法");
}
publicvoidshow(intnum){
System.out.println("Child类的重载show方法,参数:"+num);
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Parentp=newChild();
p.show();
//p.show(10);//注释1:若取消注释,是否能编译通过?说明原因
Childc=newChild();
c.show();
c.show(10);
}
}2.阅读下列Java代码,写出程序运行后的输出结果,并简要说明异常处理的执行过程。java
publicclassExceptionTest{
publicstaticvoidmain(String[]args){
try{
int[]arr=newint[3];
System.out.println(arr[5]);//可能发生异常
System.out.println("try块中异常后的代码");
}catch(ArrayIndexOutOfBoundsExceptione){
System.out.println("捕获到数组越界异常:"+e.getMessage());
}catch(Exceptione){
System.out.println("捕获到通用异常");
}finally{
System.out.println("finally块代码,无论是否发生异常都会执行");
}
System.out.println("程序继续执行");
}
}六、编程题(每题10分,共20分)1.编写一个Java程序,实现以下功能:(1)定义一个Student类,包含私有成员变量:学号(id,int)、姓名(name,String)、成绩(score,double);(2)提供无参构造方法、有参构造方法,以及所有成员变量的getter和setter方法;(3)重写toString()方法,返回学生信息(格式:学号:XXX,姓名:XXX,成绩:XXX);(4)定义测试类TestStudent,在main方法中创建3个Student对象,存入ArrayList集合中,遍历集合并输出所有学生信息,同时计算3名学生的平均成绩并输出。2.编写一个Java程序,实现以下功能:(1)从键盘输入一个字符串(使用Scanner类);(2)统计该字符串中大写字母、小写字母、数字、其他字符的个数;(3)将该字符串中的小写字母转换为大写字母,大写字母转换为小写字母,数字和其他字符保持不变,输出转换后的字符串;(4)处理输入异常(若输入为空或非法字符,提示“输入无效,请重新输入”)。参考答案及评分标准(附页)一、单项选择题(每题2分,共20分)1.C2.C3.C4.B5.D6.D7.B8.B9.C10.B二、填空题(每空1分,共10分)1.-2³¹~2³¹-1;0~655352.继承Thread类;实现Runnable接口3.成员变量;getter方法;setter方法4.35.不可继承;不可重写三、判断题(每题1分,共10分)1.√2.×3.√4.√5.√6.×7.√8.√9.√10.√四、简答题(每题5分,共20分,答案合理即可酌情给分)1.JVM核心组成部分及作用:(1)类加载子系统:负责加载.class字节码文件到JVM中,完成类的初始化;(1分)(2)运行时数据区:包括方法区、堆、虚拟机栈、本地方法栈、程序计数器,用于存储程序运行时的数据和指令;(2分)(3)执行引擎:包括解释器和JIT即时编译器,负责解析和执行字节码指令;(1分)(4)垃圾回收器(GC):负责回收堆内存中不再使用的对象,释放内存资源。(1分)2.面向对象三大特性:(1)封装:将类的成员变量私有化,通过公共方法对外提供访问接口,隐藏内部实现细节,提高代码安全性和可维护性;(2分)(2)继承:子类继承父类的属性和方法,减少代码冗余,实现代码复用,同时可扩展父类功能;(2分)(3)多态:同一方法在不同对象上有不同的实现,提高代码的灵活性和扩展性,可通过方法重写和向上转型实现。(1分)3.try-catch-finally执行流程:(1)正常执行:执行try块中所有代码,不执行catch块,最后执行finally块;(1分)(2)try块发生异常:立即终止try块后续代码,匹配对应的catch块并执行,最后执行finally块;(1分)(3)catch块发生异常:终止当前catch块代码,若有上级catch块则匹配,否则程序终止,finally块仍会执行;(2分)结论:无论try块是否发生异常、catch块是否发生异常,finally块都会执行(除非程序调用System.exit(0)强制终止)。(1分)4.String、StringBuffer、StringBuilder区别及适用场景:(1)String:不可变字符串,每次修改都会创建新对象,效率低,适合字符串不频繁修改的场景(如常量定义);(2分)(2)StringBuffer:可变字符串,线程安全,效率较低,适合多线程环境下字符串频繁修改的场景;(2分)(3)StringBuilder:可变字符串,线程不安全,效率高,适合单线程环境下字符串频繁修改的场景(如普通字符串拼接)。(1分)五、程序阅读题(每题5分,共10分)1.输出结果:(3分)Child类的show方法Child类的show方法Child类的重载show方法,参数:10原因:(2分)Parentp=newChild();是向上转型,父类引用指向子类对象,调用show()方法时,执行子类重写的方法;注释1取消后无法编译通过,因为父类引用无法调用子类特有的重载方法(show(intnum));Childc=newChild();可直接调用子类的重写方法和重载方法。2.输出结果:(3分)捕获到数组越界异常:5finally块代码,无论是否发生异常都会执行程序继续执行执行过程:(2分)try块中执行arr[5],发生数组越界异常,终止try块后续代码;匹配第一个catch块(ArrayIndexOutOfBoundsException),执行catch块代码;无论是否发生异常,执行finally块代码;最后执行finally块后的程序代码。六、编程题(每题10分,共20分,代码正确、功能实现即可酌情给分,语法错误酌情扣分)1.参考代码:java
importjava.util.ArrayList;
importjava.util.Iterator;
classStudent{
//私有成员变量
privateintid;
privateStringname;
privatedoublescore;
//无参构造
publicStudent(){}
//有参构造
publicStudent(intid,Stringname,doublescore){
this.id=id;
=name;
this.score=score;
}
//getter和setter方法
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
publicdoublegetScore(){
returnscore;
}
publicvoidsetScore(doublescore){
this.score=score;
}
//重写toString方法
@Override
publicStringtoString(){
return"学号:"+id+",姓名:"+name+",成绩:"+score;
}
}
publicclassTestStudent{
publicstaticvoidmain(String[]args){
//创建3个Student对象
Students1=newStudent(101,"张三",90.5);
Students2=newStudent(102,"李四",88.0);
Students3=newStudent(103,"王五",95.5);
//存入ArrayList集合
ArrayList<Student>list=newArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
//遍历集合,输出学生信息
System.out.println("学生信息如下:");
doublesum=0;
for(Students:list){
System.out.println(s);
sum+=s.getScore();
}
//计算平均成绩并输出
doubleavg=sum/list.size();
System.out.println("3名学生的平均成绩:"+avg);
}
}评分标准:Student类定义正确(成员变量、构造方法、getter/setter)4分;重写toString()方法1分;测试类中创建对象、存入集合2分;遍历集合、计算平均成绩3分。2.参考代码:java
importjava.util.Scanner;
publicclassStringTest{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
while(true){
try{
System.out.print("请输入一个字符串:");
Stringstr=scanner.nextLine();
//判断输入是否为空
if(str==null||str.trim().isEmpty()){
thrownewException("输入为空");
}
//统计各类字符个数
intupper=0,lower=0,digit=0,other=0;
for(inti=0;i<str.length();i++){
charc=str.charAt(i);
if(Character.isUpperCase(c)){
upper++;
}elseif(Character.isLowerCase(c)){
lower++;
}elseif(Character.isDigit(c)){
digit++;
}else{
other++;
}
}
//字符大小写转换
StringBuildersb=newStrin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐山市迁安市2025-2026学年第二学期三年级语文期末考试卷(部编版含答案)
- 开封市鼓楼区2025-2026学年第二学期二年级语文期末考试卷部编版含答案
- 呼伦贝尔市海拉尔市2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 白城市大安市2025-2026学年第二学期二年级语文第八单元测试卷部编版含答案
- 稀土材料生产工安全文化评优考核试卷含答案
- 液晶显示器件阵列制造工成果转化知识考核试卷含答案
- 乳品评鉴师岗前跨领域知识考核试卷含答案
- 苯乙烯装置操作工复测评优考核试卷含答案
- 昌吉回族自治州吉木萨尔县2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 赣州市信丰县2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 2026年北京市房山区高三一模英语试卷(含答案)
- 贵金属现货内部管理制度
- 会计事务所保密制度
- 2026年冀人版三年级科学下册(全册)教学设计(附教材目录)
- 2026海南国资运营招聘9人备考题库及一套参考答案详解
- 钢板桩支护施工安全措施
- 陕西省XX煤矿有限公司2煤大巷煤柱回收设计
- 无课件日教学课件
- 2026届高考化学冲刺复习+回归课本+化学基础实验
- 《重金属环境安全隐患排查评估整治技术指南(试行)》
- 房屋安全性鉴定培训课件
评论
0/150
提交评论