20春学期(1709、1803、1809、1903、1909、2003)《Java语言程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.定义一个类,必须使用的关键字是( )。
A.static
B.public
C.interface
D.class
2.设有整型数组的定义int a[]=new int[8]; 则a.length的值为下列哪项( )?
A.9
B.8
C.7
D.6
3.下列是Java语言中可用的注释符,其中错误的是( )。
A.//
B./**…*/
C./**…**//*…*/
4.以下程序的功能是:求n!。请在下列程序中填入正确的语句 class FactorialTest{ static long Factorial(int n){ if(n==1) return 1; else _______________} public static void main(String a[]){ int n=8; System.out.println(n+”!=”+Factorial(n));} }
A.return n*Factorial(n-1);
B.return n*Factorial(n);
C.return (n-1)*Factorial(n-1);
D.return (n-1)*Factorial(n);
5.下列代码中,将引起一个编译错误的行是()。 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12) }
A.第6行
B.第5行
C.第3行
D.第10行
6.请问以下哪个类不能被子类继承?( )
A.native class A{ }
B.final class A{ }
C.class A{ }
D.abstract final class A{ }
7.下列语句执行后下列语句执行后下列语句执行后下列语句执行后i的值是的值是的值是的值是( ) int i=2; do{i*=i;} while(i<16);
A.8
B.4
C.3
D.16
8.下列语句中执行跳转功能的语句是( )。
A.while语句
B.switch语句
C.for 语句
D.continue语句
9.下面哪个不是Java标准库中Writer类的子类( )。
A.PrintWriter
B.LineNumberWriter
C.FilterWriter
D.FileWriter
10.编译并且执行以下代码,会出现什么情况? public class Q{ public static void main(String argv[]){ int anar[]=new int[]{1,2,3}; System.out.println(anar[1]); } }
A.有错误,数组的大小没有定义。
B.有错误,数组anar在初始化以前不能正常输出。
C.2
D.1
11.设有下面的两个类定义: class aa{ void Show(){System.out.println(“我喜欢Java!”); } class BB extends aa{ void Show(){System.out.println(“我喜欢C++!”); } } 则顺序执行如下语句后输出结果为: aa a=new aa(); BB b=new BB(); a.Show(); b.Show();
A.我喜欢Java! 我喜欢Java!
B.我喜欢Java! 我喜欢C++!
C.我喜欢C++! 我喜欢Java!
D.我喜欢C++! 我喜欢C++!
12.下列代码中,将引起一个编译错误的行是()。 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12) }
A.第6行
B.第5行
C.第3行
D.第10行
13.顺序执行下列程序语句后,则b的值是 String a=”Hello”; String b=a.substring(0,2);
A.null
B.hello
C.Hello
D.He
14.定义一个表示20个值为null的字符串数组,下面选项正确的是( )。
A.char a[20][]
B.String[] a
C.String a[]=new String[20]
D.String a[]
15.在java语句中,运算符||实现()
A.逻辑非
B.逻辑相等
C.逻辑或
D.逻辑与
16.下列修饰符中与访问控制无关的是( )。
A.public
B.protected
C.private
D.final
17.在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是()。
A.与文件类型相同
B.与文件目录的层次相同
C.与文件的结构相同
D.与文件大小相同
18.给出下面程序段: if(x>0){System.out.println(“Hello.”);} else if(x>-3){System.out.println(“Nice to meet you!”);} else {System.out.println(“How are you?”);} 若打印字符串“How are you?”,则x的取值范围是
A.x>0
B.x>-3
C.x<=0&x>-3
D.x<=-3
19.A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C(); 问以下哪个说法是正确的?
A.第1行、第2行和第3行的声明都是正确的?
B.第1、2行能通过编译,但第3行编译出错
C.第1、2、3行能通过编译,但第2、3行运行时出错
D.只有第1行能通过编译
20.下列程序段的输出结果是 public class operatorsandExpressions{ void stringPlus(){ int x=3,y=4,z=5; System.out.println(x+y+z); } }
A.以上均不正确
B.xyz
C.x+y+z
D.12
21.有语句String s=”hello world”; ,以下操作哪个是不合法的?
A.s>>>=3;
B.int i=s.length();
C.String ts=s.trim()
D.String t=s+”!”;
22.以下代码段执行后的输出结果为( ) int x=-3; int y=-10; System.out.println(y%x);
A.3
B.2
C.1
D.-1
23.关于main方法中的arg[],下列哪个表述是正确且全面的( )。
A.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素是在程序运行时从命令行输入的。
B.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素是在程序编译时直接写入txt文件的。
C.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素是在程序编译时从命令行输入的。
D.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素可以在任何需要的时刻内输入。
24.Java的平台无关性的实现主要依靠( )。
A.JVM
B.JRE
C.JDK
D.JAR
25.Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是( )。
A.C只继承了B中的成员
B.C只继承了A中的成员
C.C不能继承A或B中的成
D.C不仅继承了B中的成员,同样也继承了A中的成员
26.下列对继承的说法,哪个是正确的?
A.子类能继承父类的非私有方法和状态
B.子类能继承父类的所有方法和状态
C.子类只能继承父类的方法,而不继承状态
D.子类只能继承父类public方法和状态
27.下列代码段int i= 1, j= 10 ; do { if (i++> –j) continue; } while(i<5);执行完毕后,i和j的值分别是( )。
A.i = 6 j= 5
B.i = 6 j= 4
C.i = 5 j= 6
D.i = 5 j= 5
28.在java语句中,运算符&&实现()
A.逻辑非
B.逻辑相等
C.逻辑或
D.逻辑与
29.Java中,使用哪个关键字来定义一个接口( )。
A.interface
B.implements
C.extends
D.class
30.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( )。
A.隐藏
B.重载
C.覆盖
D.Java不支持此特性
二、判断题 (共 20 道试题,共 40 分)
31.重写的方法和被重写的方法必须具有相同的方法名 参数列表和返回类型
32.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。
33.在创建对象是必须先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
34.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。
35.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。
36.构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void型。
37.类是变量和方法的集合体
38.只能对一个类的方法进行封装,不能对属性进行封装
39.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。
40.如果用final修饰方法,则该方法不能在子类中被覆盖
41.创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数
42.循环体内可以出现多个break语句
43.Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。
44.Java语言中,字符串分为字符串常量和字符串变量2种
45.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。
46.静态方法可以直接访问非静态变量和非静态方法
47.在一个java源文件中只能定义public class
48.抽象类可以实例化
49.构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。
50.封装的意义不大,因此在编码时尽量不要使用