说明:由于看pdf太难受了,重新编辑好放到博客上,方便自己复习,正确答案加粗标红

考试试卷
页码, 1/4
试卷名称:2021—2022学年度第二学期21级Java程序设计理论模拟考试(3、4、6班)期末考试考试课程:Java语言程序设计
考试总分:100分
试卷编号:270命题人:张文
审查人:教研室主任

目录

一、选择题(本题共30小题,共30.0分)

二、填空题(本题共5小题,共10.0分)

三、判断题(本题共10小题,共10.0分)

四、简答题(本题共4小题,共20.0分)

五、应用分析设计题(本题共3小题,共30.0分)


一、选择题(本题共30小题,共30.0分)

  1. (1.0分)在Java语言中,当定义一个变量为基本数据类型时,Java的JVM就为该变量分配内存,并给该变量赋初值,当定义一个复合数据类型变量时,该变量代表该类型对象的引用名,Java的JVM并不为对象创建内存空间,该变量引用的值为null,要创建对象实例,需要使用的关键字为()
    A. public; B. super; C. this;D. new;
  2. (1.0分)
    下列说法正确的是(
    A、 abstract可修饰类、属性、方法;
    B. final可修饰类、属性、方法;
    C、用final修饰的变量,在程序中可对这个变量的值进行更改;
    D、定义抽象方法需有方法的返回类型、名称、参数列表和方法体;
  3. (1.0分)String或StringBuffer类的对象在调用以下哪个方法时其自身会发生更改? ()
    A. String类的toUpperCase()方法;
    B. String类的replace(方法;
    C. StringBuffer类的length ()方法;
    D. String类的charAtO方法;
    E. StringBuffer类的reverse ()方法;
  4. (1.0分)Character流与Byte流的区别是()
    A.二者没有区别,可以互换使用;
    B、前者是块读写,后者是字节读写;
    C、前者带有缓冲,后者没有;
    D、每次读入的字节数不同;
  5. (1.0分)java中用来抛出异常的关键字是()
    A. catch;
    B、 try;
    C. throw;
    D. finally;
  6. (1.0分)流的传递方式是()
    A、并行的和串行的;
    B、无正确选项;
    C.并行的;
    D、串行的;
  7. (1.0分)下列说法中错误的一项是( )
    A.临界区必须使用syschronized标识;
    B.共享数据的访问不一定全部使用synchronized加锁;
    C、所有的对共享数据的访问都是临界区;
    D、共享数据的所有访问都必须使用synchronized加锁;
  8. (1.0分) InetAddress类中哪个方法可实现正向名称解析? ()
    A. getHostAddress();

    B. getByName();
    C. isReachable();
    D. getHosstName();
  9. (1.0分)下面不是创建数组的正确语句是()
    A. float f[][]=new float[][6];
    B. float f[][]=new float[6][];
    C. float f[][]=new float[6][6];
    D. float[] f=new float[6];
  10. (1.0分)关于数组作为方法的参数时,向方法传递的是()
    A、数组的引用;
    B..数组的栈地址;
    C、数组的元素;
    D、数组自身;
  11. (1.0分)在Java中,一般菜单格式包含下列对象()
    A. JMenuBar. JMenu, JMenultem;
    B. JMenultem;
    C. JMenuBar;
    D. JMenu;
  12. (1.0分) JFrame默认的布局管理器是()
    A. BorderLayout;
    B. GridLayout;
    C. CardLayout;
    D. FlowLayout;
  13. (1.0分) Integer类是基本数据int的封装类,下列不能返回Integer实例对象的是()。
    A. new Integer(“ 123”):;
    B. Integer.valueOf(“123”);
    C. Integer.valueOf(123");;
    D. Integer.parselnt("123");
  14. (1.0分)
    下列关于线程的说法中,错误的是()
    A.线程就是程序:;
    B、多线程用于实现线程并发程序;
    C、多线程是指一个程序的多个执行流;
    D.线程是一个程序的单个执行流;
  15. (1.0分)
    下列关于Socket类的描述中,错误的是()
    A. Socket类中定义的close()方法用于关闭输入输出流对象;
    B. Socket类中定义的getOutputStream(方法用于返回Socket的输出流对象:
    C. Socket类中定义的getlnputStream()方法用于返回Socket的输入流对象: ;
    D. Socket类中定义的getLocalAddress(方法用于获取Socket对象绑定的本地IP地址:
  16. (1.0分)
    下列不能获得Date对象的语句是()
    A. new Date(123345678L);;
    B. new SimpleDateFormatO.format();;
    C. new DateO;;
    D. Calendar.getlnstance(.getTime();;
  17. (1.0分)
    以下代码的输出结果为()
    public class Pass{
            static int j = 20;
            public void amethod(int x){
                    x = x*2;
                    j = j*2;
            }
            public static void main(String args[]){
                    int i = 10;
                    Pass p = new Pass();
                    p.amethod(i);
                   System.out.println(i+" and "+j);
           }
    }
    A. 10 and 20:
    B. 10 and 40;
    C、错误:方法参数与变量不匹配;
    D. 20 and 40;
  18. (1.0分)
    如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()
    A. FilelnputStream;
    B. DataOutputStream;
    C. FileWriter;
    D. FileOutputStream;
  19. (1.0分)下面对于构造方法的描述,不正确的是?()
    A、方法名前面没有返回类型的声明;
    B.在方法中不能使用return语句返回一个值;
    C、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在;
    D、方法名必须和类名相同;
  20. (1.0分)
    在switch (expression)语句中, expression的数据类型不能是()
    A. short;
    B. double;
    C. char;
    D. byte;
  21. (1.0分) java程序运行时,用于判定一个对象实例的类型运算符是()
    A. equal;
    B、以上都对;
    C. instanceof;
    D.=;
  22. (1.0分)下列属于能操作文件输入输出类的是()
    A. PipedlnputStream NIPipedOutputStream;
    B. FilelnputStream和FileOutputStream;
    C、全部都是;
    D. BufferlnputStream和BufferOutputStream;
  23. (1.0分)下列不属于FilelnputStream输入流的read()成员函数的是()
    A. int read(byte b[J.intoffset,int len);
    B. int read(int line);
    C. int read);
    D. int read(byte b[D);
  24. (1.0分)
    在Java中不存在的布局方式是(
    A.流布局(FlowLayout);
    B.中央布局(CenterLayout);
    C.边界布局(BorderLayout);
    D、网络布局(GridLayout);
  25. (1.0分) Thread类位于下列那个包中? ()
    A. java.io;
    B. java.lang:
    C. java.awt;
    D. java.util;
  26. (1.0分)定义一个二维数组int[][]a=new int[5][6]);通过数组引用变量a可以调用的数组对象个数为? ()
    A.5个;B. 11个,C、7个;D、6个;
  27. (1.0分) Java中,创建对象使用的关键字为(
    A. is;B. this;C. uper;D. new;
  28. (1.0分)
    下面关于Java的关键字this的描述,正确的是()
    A、同一个类的不同对象公用同一个this;
    B、this关键字是在对象内部指代对象自身的引用;
    C. this关键字和类关联,而不是和特定的对象关联;
    D. this关键字可以在类中的任何位置使用;
  29. (1.0分)下列选项中关于Java中super关键字的说法正确的是()。
    A. super关键字是在子类对象内部指代其父类对象的引用:;
    B、 super关键字不仅可以指代子类的直接父类,还可以指代父类的父类: ;
    C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性:
    D.子类通过super关键字只能调用父类的属性,而不能调用父类的方法; ;
  30. (1.0分)在Java中,关于final关键字的说法,正确的有()。
    A、如果修饰方法,则该方法不能在子类中被覆盖; ;
    B、如果修饰变量,则一旦赋了值,就等同一个常量: ;
    C.如果修饰类,则该类只能被一个子类继承: ;
    D.如果修饰方法,则该方法所在的类不能被继承: ;

二、填空题(本题共5小题,共10.0分)

  1. (2.0分)
    当一个对象被当成垃圾从内存中释放时,它的 finalize 方法会被自动调用。
  2. (2.0分)
    在Thread类中,提供了一个start()方法,该方法用于开启一个新线程,当新线程启动后,系统会自动调用, run() 方法。
  3. (2.0分)
    Java中的字符输出流都是抽象类 Writer 的子类
  4. (2.0分)
    Java中单列集合的顶层父接口是( Collection 
  5. (2.0分)
    javac.exeljava.exe两个可执行程序存放在JDK安装目录的 bin 目录下。

三、判断题(本题共10小题,共10.0分)

  1. (1.0分)如果方法的参数是基本数据类型,则直接将实参的值传递给方法体,方法内对形参的任何修改,不会改变实参的原来值。
    正确
  2. (1.0分)数组一旦创建,其大小不能再改变。
    正确
  3. (1.0分)
    Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的无参构造方法。()
    正确
  4. (1.0分)如果一个File对象表示的目录下有文件者有子目录,调用delete()方法也可以将其删除。
    错误
  5. (1.0分)
    Set接口的实现类可以添加相同的元素。()
    错误
  6. (1.0分)
    Map接口的集合,可以将同一个对象以不同主键加入。
    正确
  7. (1.0分)声明构造方法时,不能使用private关键字修饰。()
    正确
  8. (1.0分)同步代码块中的锁对象可以是任意类型的对象。()
    正确
  9. (1.0分)由于UDP是面向无连接的协议,可以保证数据的完整性,因此在传输重要数据时建议使用UDP协议。(.).
    错误
  10. (1.0分)Java二维数组是存数组的数组,如果定义int[][] a=((1,2),(3,4,5),(6,7,8,9),(1));那么该语句在内存种创建的数组对象个数为5个。()
    正确

四、简答题(本题共4小题,共20.0分)

  1. (5.0分)什么是方法重载?【原题号141】
    参考答案:方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。
  2. (5.0分)定义数组引用变量为int[][]a;变量a已经赋值了创建的数组对象,请回答数组a的长度是多少?数组a的最后一个元素的下标是什么?【原题号203】
    参考答案:
    (1)a数组的长度为a.length
    (2)a的最后一行数组为a.length-1,该数组的长度为a[a.length-1].length;因此,数组a的最后一个元素的引用变量为: a[a.length-1][a[a.length-1].length-1]。
  3. (5.0分)为了从标准输入中使用BufferedReader流读取数据,请你写出创建流的代码。【原题号205】
    参考答案:答:BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  4. (5.0分)给一个对象的成员变量赋值的方式有那几种?【原题号206】
    参考答案:
    答:一般有三种,
    (1)通过构造方法给成员变量赋值;
    (2〉通过seting成员方法给成员变量赋值;
    (3)  直接给可以访问对象成员变量赋值。

五、应用分析设计题(本题共3小题,共30.0分)

1. (10.0分)设计一个专门用于处理实际项目中提供的数据格式不正确问题的编译异常类型
(checkedException),要求在使用输入的内容时,必须对数据进行检查,如果数据不正确,利用异常处理机制进行消息传递。假设某个实际应用在一个类型定义中有一个成员方法需要接收文件名为java源文件,请你写出对于文件名进行判定的一段代码。你需要完成的设计如下:
(1)实际应用需要对提供的Java源文件进行编译和运行,请你设计一个命名为NOtJavaFileException的类型,异常消息内容为“非Java源文件”;
(2)完善下面FileTool类型中文件编译方法fileCompile的定义(异常所在的包不考虑);public class FileTool(
public static void fileCompile(Stimg filename)
/仅写出文件格式判定代码段,其他处理代码不需要完成
(3)设计一个程序FileCmpTest,完成对文件名为“HelloWorld.java”和“HelloWorld.class”的文件进行编译,要求使用try—catch方式处理异常。
(4)写出程序的运行结果。

参考答案:
(1)(30%分)异常类型设计如下:
public class NotJavaFileException extends Exception{
        public NotJavaFileException(){
                super("非Java源文件");

}
}
(2)(30%分)类型设计如下:

public class FileTool{
        public static void fileCompile(String filename)throws NotJavaFileException{

if(!filename.endsWith(".java")){
                        throw new NotJavaFileException();

}
        }

}
(3)(30%分)FileCmpTest设计如下:

public class FileCmpTest{
        public static void main(String[] args){

String file1="HelloWorld.java".
                String file2="HelloWorld.class".

try {
                        FileTool.fileCompile(file1);

FileTool.fileCompile(file2);
                }catch(NotJavaFileException e){

System.out.println(e.getMessage());

}

}

}
(4)(10%分)程序的运行结果:根据处理方法不同结果不一致,有异常输出即可。

2. (10.0分)在Java图形界面应用程序开发中,在窗体中定义了一个组件JButton,定义为JButton jbl=newJButton(“效果测试”);当用户点击该按钮时,需要在控制台标准输出该按钮的名称,请你根据要求完成下列问题:”
(1)设计一个满足要求的该按钮的监听器组件;(2)写出将该监听器安装到该组件的代码。

2. ( 10.0分) [原题号176]参考答案:
答: (1) (70%分) 监听器为:
public class MyActionListener implements ActionListener{
        public void actionPerformed(ActionEvent e) {
                JButton jb=(JButton)e .getSource();
                System.out.println(jb. getText));

}

}
(2) (30%分)安装监听器的代码为: jbl.addActionListener(new MyActionListener());

3. (10.0分)怀化学院在线考试系统需要提供学生的基本信息,在基本信息中包含学生的照片信息,在上传学生的基本信息(学号、姓名、性别、入学年份、班级)后,再上传学生的照片,上传学生照片的文件规定为文件名要符合“学号+姓名”的规则,如0906403048张三.jpg,而教务办提供的学生照片命名为"学号.jpg“文件,所有照片在文件夹“studentpicture21”中,学生基本信息在一个文本文件中,文件名为students21.txt文件,文件内容格式如下(学生全部信息在该文件,下面仅提供样例):
学号,班级代码,姓名,性别,入学时间
1800120438,2106406,刘小晴,男,2018
2100130601,2106406,李金媛,女,2021
2100130602,2106406,罗兰,女,2021
给你的问题是,根据提供的照片(在文件夹studentpicture21)和学生信息文件students21.txt,解决上传学生照片的文件要求,即照片的文件名必须是“学号+姓名.jpg”,请你根据学习的Java程序设计知识,编写一个简单的程序完成该实际问题。要求给出如下回答:
(1)写出你的解决问题的思路;(2)写出实现的代码。

3. ( 10.0分) [原题号177]参考答案:

答: (1) (30%分)解决问题的思路为:通过读学生信息文件提取学生的学号和姓名,然后创建一个File文件对象对应到照片文件夹中以学号命名的照片文件,判定文件是否存在,如果文件存在,将给文件更名为“学号+姓名.jpg”文件。
(2) ( 70%分)程序实现代码如下:
import java.io.*; 
public class ImputImage {
        public static void main(String[] args) {
                String namefile= =" students21.txt";
                String picdir="studentpicture21";
                BufferedReader bin=new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream(namefile)));
                while(bin.ready()) {

String line=bin.readLine();
                        String[] items=line .split(","),
                        File f=new File(picdir,tems[0]+"jpg");
                        if(f.exists()) {
                                String newname=items[0]+items[2]+".jpg";
                                System.out. println(f.renameTo( new File( picdir,newname));
                        } catch (FileNotFoundExceptione) {
                                e.printStack'Trace();
                        } catch (IOExceptione) {
                                e.printStackTrace();

}

}

}

}

2021-2022学年度第二学期21级Java程序设计理论模拟考试相关推荐

  1. 华南理工大学计算机专业课程表,华南理工大学2017.92018.7学年度第二学期课程表.DOC...

    华南理工大学2017.9-2018.7学年度第二学期课程表 系: 外国语学院 专业:日语 年级 :2017级 人数: 15 执行时间:2018年 2月 26日 课 程 时间 星期第1-2节第3--4节 ...

  2. 华南理工大学计算机学院课表,华南理工大学2017-2018学年度第二学期课程表.doc...

    华南理工大学 2017-2018 学年度第二学期课程表 学院:电子与信息学院 专业:电子信息科学 年级:2015级 (1) 人数:40 ①40 执行时间:2018年2月26日 节 次 星 期 第1-- ...

  3. 计算机系期中教学检查,2016-2017学年度第二学期期中教学检查实施方案

    计算机科学与技术学院 2016-2017学年度第二学期期中教学检查实施方案 为了加强教学管理,规范教学行为,为全面掌握本学期开学以来的教学状况,及时发现并解决教学过程中存在的问题,提高教学质量和教学水 ...

  4. 2017上半年计算机教学计划,2016—2017学年度第二学期信息技术教学计划

    2016-2017学年度第二学期信息教学计划 小学信息教学是一门极为重要的课程,顺应了时代需求,从小就要开始接触这门课程,才会适应社会的发展进步,开始肯定有点困难,但是希望大家能够保持学好的决心,能够 ...

  5. 计算机网络管理2018版,2018~2019学年度第二学期“计算机网络管理”专业技能竞赛火热进行中...

    原标题:2018~2019学年度第二学期"计算机网络管理"专业技能竞赛火热进行中 为进一步加强我校学生技能训练,提高技能水平,让学子们更好地发挥一技之长.我校于2019年6月11日 ...

  6. 2009―2010学年度第二学期南昌市期中高二语文参考答案

    2009―2010学年度第二学期南昌市期中高二语文参考答案 2010年04月25日 2009―2010学年度第二学期南昌市期中形成性测试卷 高二语文参考答案及评分意见 一. 1.B(都读jīng,A沮 ...

  7. 天地人大湖北版2004-2005学年度第二学期第一次版聚总结

    谨以此文献给为本次版聚操劳奔走与热心参与的老乡们 五一前的这个周末,总是让人感到有点人心浮动.漫天的杨絮还未消沉,不温不火的风沙已欲起.趁着老天爷喘口气儿放晴的档儿,天地人大湖北版举行了2004-20 ...

  8. 2019—2020学年度第二学期期中考试高一年级数学试卷质量分析

    本次期中考试试卷分选择题和非选择题两部分,满分150分.选择题一共12道,其中题号1-8为单选题,题号9-12为不定项选择题,一共占分值为60分:题号13-16为填空题,每题5分,一共20分:题号17 ...

  9. 动态改变_【学校动态】在坚守与改变中追求卓越——礼县二中召开2019—2020学年度秋季学期第二次全体教职工大会...

    点击上方"礼县第二中学"关注我们 礼县二中召开2019-2020学年度秋季学期第二次全体教职工大会 9月22日晚,礼县二中召开2019-2020学年度秋季学期第二次全体教职工大会. ...

最新文章

  1. Codeforces Round #312 (Div. 2)
  2. 9. 弹出键盘挡住input
  3. .NET与鲲鹏共展翅,昇腾九万里(一)
  4. MFC中开发ocx控件,html容器收不到ocx的事件Event
  5. 我是大道至简山寨版~
  6. idea导入一个工程后只显示pom文件_P1搭建第一个springboot应用
  7. 量子十问之二:“爱因斯坦幽灵”能用来实现超光速通信吗?
  8. 现控计控中基于留数法Z变换与Z反变换的MATLAB实现
  9. Qtum量子链发布QIP-6,通过预编译合约大幅降低开发成本
  10. 【springcloud问题】Could not locate PropertySource and the fail fast property is set, failing
  11. 第1107期AI100_机器学习日报(2017-09-29)
  12. 电脑桌面云便签怎么通过便签快捷键锁屏加密?
  13. 樊登36个问题建立亲密关系_拉近亲密关系的36个问题
  14. oracle+standard+cost,成本管理系统
  15. 工单预约表单plus多功能预约系统支持线上支付功能
  16. Happ Birthday
  17. c语言无符号数最大值和最小值,微机原理中设计一个程序,求10个无符号数的最大值...
  18. 彩虹代shua源码免授权已对接即时到账支付接口
  19. 如何在ABAP中实现账单详情查询功能
  20. ulock 密码忘记如何破解?

热门文章

  1. 二进制老鼠毒药c语言,趣味算法:老鼠试毒瓶问题
  2. android 好的开发工具,使Android开发方便快捷的8个好工具
  3. Jenkins + GitLab + SpringBoot 实现持续集成脚本
  4. pe里的计算机桌面,Windows无法启动:先用PE把桌面重要数据拷出来再说其他
  5. 中国省级GDP增长目标(2000-2018年)
  6. 乐视网2018年净亏损40.96亿元 净资产为-30.26亿元
  7. 树莓派3 基于Ubuntu mate 16.04的调用中文输入法
  8. html游戏导出存档,Savedatafiler使用教程 Savedatafiler导出cia存档
  9. 2022-2028全球丁二磺酸腺苷蛋氨酸(SAMe)行业调研及趋势分析报告
  10. 图论算法 有图有代码 万字总结 向前辈致敬