Java 5班JAVA阶段型考试
一、选择题(20分)
1、int x = 1,y=2,z = 3,则表达式 y+=z--/++x运行之后y的值是( A )。//y=y+(z/(x+1));
A.3 B.3.5 C.4 D.5
2、不允许作为类及类成员的权限控制符的是( C )。
A.public B.private C.static D.protected
3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前
缀就可以调用它,该方法的形式为( A )。
A.static void method() B.public void method()
C. final void method() D.abstract void method()
4.下面的程序段的功能是( D )。
File file = newFile(”d:\\xxx\\yyy\\zzz”);
file.mkdirs();
A.在D盘下生成一个名为”\xxx\yyy\zzz”的子目录:
B.生成目录:e:\xxx\yyy\zzz
C.在D盘下生成一个名为xxx.yyy.zzz的文件
D.以上说法都不对
5.以下哪个不是Java的基础数据类型( B )。
A.int B.Boolean C.float D.char
6.给出下面代码,关于该程序以下哪个说法是正确的?( A )。
public classTest {
String x = "1";
int y;
public static void main(String[]args) {
int z = 2;
System.out.println(x+y+z);
}
}
A.程序编译时将产生错误 B.编译时正确,运行时产生错误
C.输出3 D.输出102
7.以下代码段执行后的输出结果为( A )。
int x = - 3;
int y = -10;
System.out.println(y%x);
A.-1 B.2 C.1 D.3
8.在一个接口中,只可以使用( C or D )修饰符修饰该接口中的成员。
A.private B.protected C.default D.public
9.下列程序段执行后的结果是( A )。
String s = “abcdefg”;
for(int i =0;i System.out.print(s.charAt(i)); } A.aceg B.ACEG C.abcdefg D.abcd 10.(多选)下面main()方法的定义哪些是正确的( ACD )。 A.public staticvoid main(String args[ ]) B. public staticvoid main(String [ ]) C. public staticvoid main(String [ ]args) D. public staticvoid main(String [ ]x) 11.(多选)线程对象的生命周期中,通常经历下面哪些状态( ABCD )。 A.新建 B.运行 C.就绪 D.死亡 12(多选)下面说法正确的是( ABD )。 A. final可修饰类、属性(变量)、方法。 B. 接口中的方法必定是抽象方法,但可以不写abstract关键字。 C. 抽象方法有方法头,有方法体 D. 关键字final和abstract不能同时使用 13.(多选)下面关于Java中输入、输出流的说法正确的是( ABC )。 A.FileInputStream与FileoutputStream类用读、写字节流 B.Reader与Writer类用来读、写字符流。 C.File类用来处理与文件相关的操作 D.无论输入还是输出流在程序最后都不关流 14.(多选)下面关于进程、线程的说法正确的是( ABCD )。 A.进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。 B.线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C.Java多线程的运行与平台相关 D.多个线程运行的先后顺序与优先级有关 15.关于BufferedReader类的readLine()方法,以下说法正确的是(ACD )。 A.方法readLine()每次读取一行数据。 B.方法readLine()每次读取一个字节。 C.该方法可能抛出IOException异常,调用该方法时通常应将它放到try快中,并通过catch快处理异常。 D.如果读到流得末尾,该方法返回的结果为null 16.如下代码段: int a=0; for (; ; ) { a++; System.out.println(111); if(a<=3&&a>0) continue; elseif(a>3) a--; else break; } 程序运行结果为( A ) A.死循环 B.打印3次111 C.编译报错 D.运行报错 17. 如下代码段: Scannersc=new Scanner(System.in); int a =sc.nextInt(); doubleb=sc.nextDouble(); int c=(int)(a>b?a:(b>3.5?b:a)); System.out.println(c); 现在分别输入5,3.3; 程序运行结果为( A ) A.5 B.3.3 C.3 D.8 18.(多选)在java中,关于数组描述正确的是:(BD ) A)数组中的索引下标从1 开始 B)存储在数组当中的数据都属于同一数据类型 C)通过数组名.length()能获得数组的长度 D)数组的最大索引下标是数组的长度减1 19、finally块的作用是( D ) A)出现异常,并且已被catch块捕获并处理之后,才会执行的内容。 B)异常情况下会执行的内容。 C)正常情况下会执行的内容。 D)无论是否出现异常,都会执行的内容。 20、下列有关线程的叙述中正确的一项是( B ) A.一旦一个线程被创建,它就立即开始运行 B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 C.当一个线程因为抢占CPU而停止运行时,它被放在可运行队列的前面 D.一个线程可能因为不同的原因而终止并进入阻塞状态 二、判断题(5分) 1、Java语言中的类可以继承,一个类通过关键字extends可以继承另一个类。( 对 ) 2、java中一个子类可以有多个直接父类,并可以为一个类定义多个子类。( 错 ) 3、子类的成员变量能与其父类的成员变量同名。( 对 ) 4、在编写JAVA程序时候,假如不为类的成员变量定义初始值,JAVA会给他默认值。( 对 ) 5、如果HashMap中,添加元素时,如果Value相同的话,HashMap将会出错。( 错 ) 6、一个线程在任何时刻都处于某种线程状态,例如运行状态、阻塞状态、就绪状态等。( 对 ) 7、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类。( 对 ) 8、接口是由常量和抽象方法组成的特殊类。( 对 ) 9、线程过多的同步可能会产生死锁。( 对 ) 10、一个构造方法中,this()和super()可以共存。( 错 ) 三、 填空题(15分) 1、多态存在的三个必要条件:___ 要有继承 ___ 、___ 要重写方法 _ 、___ 父类引用指向其子类 ___ 。 2、在另外的一个类的中___不可以 ___ (可以|不可以)创建局部内部类的实例,只能在__局部内部类所在的语句块_ ___ ___ 中来创建。 3、数组x定义如下 int x[ ][ ]=new int[3][2] 则 x.length 的值为___3 ___ _,x[0].length 的值为____ 2 ___ 。 4、整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是__2,7,8,12,35_ ___ ___ 5、构造函数___ 没有 ___ 返回值。 6、java的引用数据类型有:__数组___ _____、___类 、________接口 _____ 7、面向对象的特征有____封装__ __、______继承_ ___、____多态__ ___ 8、内部类主要3种是____成员内部类_ ___、______局部内部类 __、____匿名内部类_ ____ 9、方法的重载中____返回类型__ ___可以不同,但____参数列表_ __必须不同。 10、对于频繁修改字符串内容的地方,通常使用__StringBuffer___ __类来完成。 11、内部类的优势是__在方便控制外部访问权限的同时还能访问外部类的成员___ ___ ___。 12.Map的_____put___ _____和______get_ ______方法分别用来添加和取出元素的值。 13、一个线程并发执行时,各个线程中语句的执行顺序是____确定_ __的,但是线程之间的相对执行顺序是____不确定 __的。(确定/不确定) 14、Java 程序要构造一个缓冲流,需要先创建_____节点流 __对象,再利用这个对象创建____缓冲流__ ___对象。 15、若有一个方法不想被子类重写应该加____private__ ___ 或者__final_ 关键字。 四、阅读程序题(20分) 1、public class TestFile { public static void main(String args[]) throws Exception{ BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(newFileWriter("F:\\input.txt")); String s; while (true) { System.out.print("请输入一个字符串: "); s = br.readLine( ); if (s.length() == 0) break; bw.write(s); bw.newLine(); } bw.close( ); } } 程序的功能是:__从键盘录入数据,如果数据不为空则写入到F盘下的input.txt文件中,直到输入为空时结束_____ ___ 2、public class Text extends Father{ static { System.out.print("helloword"); } public static void main(String[]args) { Text text = new Text(); System.out.println("seeyou"); } } class Father { Father(){ System.out.println("everyone"); } } 输出结果是:_______hellowordeveryone see you ___ 3、 public classsdf{ publicstatic void main(String[] args) { Other o = newOther(); new sdf().addOne(o); } public voidaddOne(final Other o) { o.i++; System.out.println(o.i); } } class Other{ public int i=1; } 输出结果为:_____ 2 ___ ___ 4、 public classCeshi { public static void main(String[]args) { Son son=newSon("儿子"); son.wan(); } } class Father{ public String name; public Father(){ } publicFather(String name){ this.name=name; } } class Sonextends Father{ public Son(String name){ super(name); } public void wan(){ super.name="父亲"; System.out.println(name); } } 输出结果为:____________父亲__ _______________________________________ 5、 public classCeshi { public static void main(String[]args) { Father father=newFather(); father.wan(); } } class Father{ Map map = new HashMap void wan() { map.put("1","133"); map.put("2",new Son()); map.put("3",new ArrayList System.out.println(map); } } class Son { static int id; public String toString(){ returnString.valueOf(id++); } } 输出结果为 ___ {1=133,2=0, 3=true} ___ ___ ___ ___