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

2023-10-30

说明:由于看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();

                        }

                }

        }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • bigquant量化平台笔记

    https bigquant com tutorial 宽客学院 https bigquant com community t topic 131694 AI量化策略快速理解 AI量化策略的目标 Label 默认使用股票收益率作为目标 第一
  • 关于antd的treeselect使用

    在表单中 我们可能会碰到这样的需求 比如我想将某一个物品或者资产 分配到某一个部门的员工下 那么我们需要在表单中做这样的配置 这样就会用到antd的treeselect组件 组件很好用 自带搜索框 可以大大的提高用户的可操作性 我们来看一下
  • 【CentOS安装配置Jupyter 】

    CentOS安装配置Jupyter 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 SmartyPants 创建一个自
  • 攻防世界之misc1

    攻防世界之misc1 首先这题非常的考研脚本实力 他题目没有下载文件 只有一个值 d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b
  • Nginx Upstream负责均衡的实现方案

    nginx中upstream实现负责均衡的几种方式 1 轮询 weight 1 默认选项 当weight不指定时 各服务器weight相同 每个请求按时间顺序逐一分配到不同的后端服务器 如果后端服务器down掉 能自动剔除 upstream
  • commons math用户手册翻译(一)

    翻译源址 http commons apache org proper commons math userguide index html 1 math包版本3 6 2 commons math包解决哪些问题 math包由一组数据和统计的包
  • jmavsim使用说明

    一 启动 在px4源码目录下输入 make px4 sitl jmavsim 二 基础操作 在操作界面上按F1键 会弹出操作说明 操作说明如下 按照说明可以控制飞机移动 视角控制 F 第一人称视角 S 地面固定视角 G 稳定云台视角 Z 切
  • jsp 页面选项卡

  • 使用阿里巴巴的EasyExcel操作Excel

    引入依赖
  • 使用TortoiseGit执行merge/rebase操作

    如果使用git 相信大家比较多的使用merge 对于rebase则少有陌生 相信刚使用git不久的同学会有一个困惑 经常使用merge会造成破窗效应 查阅log时会掺杂了大量无用的小提交 起初也对此习以为常 毕竟svn就是这样 使用reba
  • js中background-position 无效

    css中正确书写background position x y 坐标之间有空格 然而在写js的时候如果粗心会忘记第一个 px 后面加个空格 正确js书写应该是backgroundposi x px y px
  • Docker基本概念、linux

    Docker的基本概念 一 认识容器 1 1 容器是什么 1 2 对比容器和虚拟机 1 2 1 虚拟化的差异 1 2 2 资源利用总结 二 Docker基本概念 2 1 Docker是什么 2 2 Docker 的思想与核心 2 3 Doc
  • Qt-常用数据类型

    常用基本数据类型 类型名称 注释 备注 qint8 signed char 有符号8位数据类型 qint16 signed short 有符号16位数据类型 qint32 signed int 有符号32位数据类型 qint64 long
  • php7 发送邮件,使用PHP发送邮件的两种方法

    使用PHP发送邮件的两种方法 如何使用使用PHP发送邮件呢 想要知道的朋友 以下是为大家分享的使用PHP发送邮件的两种方法 供大家参考借鉴 欢迎浏览 一 使用PHP内置的mail 函数 看了一下手册 就直接开始写代码了 如下 to test
  • 超人气思维导图XMind新年新版本,这6个新功能你一定要看

    2018 年初 XMind公司推出了这款花了三年时间重写了每一行代码的新旗舰产品XMind ZEN 经过不断的优化和完善 终于成为了一款全平台 功能丰富的优秀思维导图软件 如今已然成为国内人气思维导图软件 噔噔噔 今年XMind ZEN正式
  • Java面向对象编程

    关于抽象类与最终类 下列说法错误的是 A 抽象类能被继承 最终类只能被实例化 B 抽象类和最终类都可以被声明使用 C 抽象类中可以没有抽象方法 最终类中可以没有最终方法 D 抽象类和最终类被继承时 方法可以被子类覆盖 答案 D 已知表达式i
  • 【wpf,C#】wpf访问连接Oracle数据库的详细过程及代码(第2种方法)

    注 之前写了一篇很详细的wpf连接Oracle的过程及代码 这一篇是另外一种方法 文件是我们自己写的 小伙伴们 亦可以完成此功能 1 添加引用文件 System Data OracleClient 如图 2 新建一个类 我这里命名为 MyO
  • 【JavaScript】(四)创建对象的7种模式

    面向对象的语言有一个标志 那就是他们都有类的概念 而通过类可以创建多个具有相同属性和方法的对象 ECMAScript的对象没有类的概念 因此它的对象也与基于类的语言对象有所不同 早期JavaScript开发人员创建类的方法是创建一个Obje
  • 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。

    题目信息 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素不能使用两遍 你可以按任意顺序返回答案
  • 2021-2022学年度第二学期21级Java程序设计理论模拟考试

    说明 由于看pdf太难受了 重新编辑好放到博客上 方便自己复习 正确答案加粗标红 考试试卷 页码 1 4 试卷名称 2021 2022学年度第二学期21级Java程序设计理论模拟考试 3 4 6班 期末考试考试课程 Java语言程序设计 考