open 发表于 2021-7-14 09:06:51

21秋西电《JAVA程序设计》模拟试题4百分

学习中心                                                            姓名                              学 号                           

西安电子科技大学网络教育学院
200    学年第    学期《Java程序设计》模拟试题3
( 90 分钟)题号
一   
 二
 三
 总分

题分
30
35
20
100

得分





一、选择题(3分/题,共10个,共30分)
1.      下列关于面向对象程序设计方式的描述,错误的是()
(A) 万物皆为对象            (B) 继承的目的是为了降低类和类之间的耦合
(C) 每个对象都有类型          (D) 子类可以接受和父类收到的消息
答案:B。
解析:继承是为了增加程序设计中的代码复用,加强了类和类之间的耦合。其他三项均正确。A正确;C也正确,一个对象起码是Object类型;D是多态的表现之一。2.      以下符合继承关系的是()
(A) 铅笔和钢笔
(B) 中文和英文
(C) 电脑和显示器
(D) 动物和老虎
答案:D。
解析:A中铅笔盒钢笔并没有直接关系;B中和A同理;C中电脑和显示器是组合关系;D中动物和老虎是继承关系,动物的所有行为都可以被老虎实现。3.      以下对封装的描述正确的是()
(A) 只能对一个类中的方法进行封装,不能对属性性进行封装 (B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用 (C) 封装的意义不大,因此在编码时尽量不要使用 (D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
答案:D。
解析:A错,封装可以对属性;B错,非private的方法才可以;C错。4.      Java的基本类型中,char类型在Java虚拟机中占据()个字节。
(A) 1      (B) 2       (C) 4       (D) 8
答案:B。
解析:和gcc等其他编译器不一样,Java规范规定char采用Unicode编码,所以一个char字符占两个字节。5.      下列属于Java的控制执行流程的语句是()
(A) if-else       (B) break label      (C) for       (D) goto
答案:D。
解析:Java保留了goto的关键字,但不提供goto的功能。goto语句相应功能的可以用break label语句实现。其他选项正确。6.      关于Java的访问控制权限,下列说法正确的是()
(A) 子类可以访问父类的private方法
(B) 子类只能访问父类的public方法
(C) 子类可以访问父类的protected方法
(D) 以上选项都错误
答案:C。
解析:子类可以访问父类的public,protected,friendly方法,所以ABD都错;7.      在Java中,下面对于构造函数的描述正确的是()。
(A) 类必须显示定义构造函数 (B) 构造函数的返回类型是void (C) 构造函数和类有相同的名称,并且不能带任何参数 (D) 一个类可以定义多个构造函数
答案:D。
解析:构造函数可以被重载。如果类没有显示定义构造子,编译器会帮助定义一个构造器,故A错;构造函数可以返回void类型,但是也可以不是,故B错。构造函数可以带参数,C错。8 .      Java的集合类中,以键值对的方式存储对象的是()。 (A)java.util.Collection (B)java.util.Map (C)java.util.List (D)java.util.Queue
答案:B。
解释:Collection是所有集合类都实现的接口,子类可以使键值对方式,也可以不是,不选A;List,Queue都是线性的序列,故不选。9?.      下列情况中,不会使线程返回所持有的对象锁的是()。
(A) 当synchronized()语句块执行完毕?????
(B) 当调用了线程的suspend()方法? (C) 当在synchronized()语句块中出现异常(exception)??????
(D) 当持有锁的线程调用该对象的wait()方法
答案:B。
解析:suspend()方法会让线程持有锁睡眠,不释放锁。synchronized会锁住临界区,执行结束就会释放锁,不选A;线程抛出异常后,会释放锁,C不选;wait()方法会释放锁,D不选。10.         Java语句:Connection con = DriverManager.getConnection(“jdbc:odbc:news”);其中“news”表示的是()。 (A) 数据库中表的名称 (B) 数据库服务器的机器名 (C) 数据源的名称 (D) 用户名
答案C。
解析:考察JDBC的参数约定。
二、简答题(第一小题7分,第二小题8分,共15分)
1,请简述Java中的static和final关键字的作用。(7分)
解析:static修饰静态变量,描述多个对象之间公用的部分。Final描述
2,请简述抽象类和接口的区别。(8分)
解析:语法上,抽象类可以有非静态并且final的成员变量。可以有方法的实现;等。接口在设计上更偏向与设计一个类的行为。
三、读程题(3分/题,共10个,共30分)
1.请写出以下代码输出的结果。 public class Person{     protected String name=”Person”;     int age=0; } public class Child extends Person{     public String grade;     public static void main(String[] args){       Person p = new Child();       System.out.println(p.name);     } }
答案:Person
2.请写出以下代码输出的结果。
public class Demo{ public int add(int a,int b) {     try{       return a+b;     }catch(Exception e){       System.out.println(“catch”);     }finally{       System.out.println(“finally”);     }     return 0; } public static void main(String[] args){     Demo demo = new Demo();     System.out.println(“main”+demo.add(9,34)); }
}
答案:
Finally
main433,请写出以下程序的输出结果。
public class Demo{
                public static void main(String[] args) {
                        Integer a = new Integer(1);
                        Integer b = new Integer(2);
                if(a==b)
                  System.out.println(“true”);
                else
                  System.out.println(“false”);
                }
}
答案:false4,请写出以下程序的输出结果。
class Test extends Thread{
          public void run(){
             System.out.println("1");
             yield();
             System.out.println("2");
             suspend();
             System.out.println("3");
             resume();
             System.out.println("4");
          }
          public static void main(String []args){
             Test t = new Test();
             t.start();
}
}
   答案: 1
            2 5,请找出以下程序中的一处错误。
interface IDemo{
public static final String name; void print(); public void getInfo();
}
答案:变量name需要初始化。接口中的变量必须赋值。6,找出以下程序中的一处错误。
public class Demo{
          final int i=0;
          Demo(){
             i=1;
          }
}
解析:i为final类型,不可以修改。7,找出以下程序中的一个错误。
abstract class Demo {
private String name;
public abstract boolean isStupidName(){
    System.out.println(“name”);
}
}
解释:抽象类里面不能有方法体的实现。应该把isStupidName的方法实现去掉。
四、编程题(20分)
   题目:1,给定整数n,求出从1到n之间有多少个素数。(12分)
         2,尽可能地改进你的程序,降低时间复杂度。(8分)
解析:1,

2,没有统一答案,只要是时间复杂度有降低的设计都可以。
页: [1]
查看完整版本: 21秋西电《JAVA程序设计》模拟试题4百分