南开21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《Java语言程序设计》在线作业【标准答案】
21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《Java语言程序设计》在线作业 试卷总分:100 得分:100 一、单选题 (共 25 道试题,共 50 分) 1.String与StringBuffer最大的区别在于( )。 A.它们
21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《Java语言程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 50 分)
1.String与StringBuffer最大的区别在于( )。
A.它们没有区别
B.String对原字符串的拷贝进行操作,而StringBuffer对原字符串本事操作
C.StringBuffer拥有更多相关函数
D.String更节省空间
2.下列代码中,将引起一个编译错误的行是()。 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.第3行
B.第5行
C.第6行
D.第10行
3.A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C(); 问以下哪个说法是正确的?
A.只有第1行能通过编译
B.第1、2行能通过编译,但第3行编译出错
C.第1、2、3行能通过编译,但第2、3行运行时出错
D.第1行、第2行和第3行的声明都是正确的?
4.下列哪个数代表八进制整数?
A.0XA6
B.-1E3
C.1840
D.0144
5.在 Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是()。
A.java.applet
B.java.awt
C.java.util
D.java.lang
6.下列哪项不是Java标准库中OutputStream类的子类( )。
A.ByteArrayOutputStream
B.DataOutputStream
C.PrintStream
D.LineNumberOutputStream
7.下面( )不是Java中的容器。
A.Canvas
B.ScrollPane
C..Applet
D.Dialog
8.构造方法被调用是当( )。
A.类定义时
B.使用对象的属性时
C.使用对象的方法时
D.对象被创建时
9.下列哪个数代表八进制整数?
A.0XA6
B.-1E3
C.1840
D.0144
10.当方法遇到异常又不知如何处理时,下列哪种做法是正确的?
A.捕获异常
B.抛出异常
C.声明异常
D.嵌套异常
11.给出下面代码段: public class Test1{ public static void main(String args[]){ int m; switch(m) { case 0:System.out.println("case 0"); case 1:System.out.println("case 1");break; case 2: default:System.out.println("default"); } } } 下列m 的哪个值将引起“default”的输出?
A.0
B.1
C.2
D.以上都不正确
12.定义一个名为key的类,使之不能被继承,应选( )。
A.class key{ }
B.native class key{ }
C.class key{ final; }
D.final class key{ }
13.给出下面代码,关于该程序以下哪个说法是正确的?( ) public class Person{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]); } }
A.编译时将产生错误
B.编译时正确,运行时将产生错误
C.输出零
D.输出空
14.对于FileInputStream类,下列哪一项是不正确的( )。
A.从InputStream类继承
B.不支持InputStream的有些方法
C.不适合读取字符文件,适合读取字节文件
D.能实现文件的倒序读取
15.在 Java 中,表示换行符的转义字符是()。
A.\n
B.\f
C.'n'
D.\dd
16.在 Java 中,能实现多重继承效果的方式是()。
A.内部类
B.适配器
C.接口
D.同步
17.按运算符操作数的数目划分,运算符 ? :的类型是
A.三元
B.二元
C.四元
D.一元
18.下列关于JAVA语言特性的描述中,错误的是( )。
A.支持多线程操作
B.JAVA程序与平台无关
C.JAVA程序可以直接访问Internet上的对象
D.支持单继承和多继承
19.下列关于构造方法的说法正确的是
A.因为构造方法名与类名必须相同,所以构造方法的首字母必须大写。
B.构造方法是给对象赋初值,所以没有返回值,要用void来声明。
C.构造方法不能被程序调用,也不可以重载。
D.一个类只允许有一个构造方法。
20.下面哪个不是Java标准库中Writer类的子类( )。
A.FilterWriter
B.PrintWriter
C.LineNumberWriter
D.FileWriter
21.下面哪一个循环会导致死循环?( )
A.for (int k = 0; k < 0; k++)
B.for (int k = 10; k > 0; k--)
C.for (int k = 0; k < 10; k--)
D.for (int k = 0; k > 0; k++)
22.下列程序的输出结果为 int j=2; switch(j){ case 2: System.out.println("Value is two."); case 2+1: System.out.println("Value is three."); break; default: System.out.println("Value is "+j); break;}
A.Value is two.
B.Value is two. Value is three.
C.Value is two. Value is three. Value is 2
D.编译错误
23.下列属于合法的Java标识符是()。
A._cat
B.5books
C.+static
D.-3.14159
24.若有定义如下 class A{int x,x1; int f(){int a;…} int g(){int y;…}} ,则不正确的赋值为( )。
A.在f()中a=x
B.在f()中x=a
C.在f()中x=x1
D.在g()中y=a
25.以下字符常量中不合法的是()。
A.'@'
B.'&'
C."k"
D.'整'
二、多选题 (共 10 道试题,共 20 分)
26.下列关于JAVA语言中要使用的一个变量,正确的是( )。
A.在JAVA程序中要使用一个变量,必须先对其进行声明
B.变量声明语句可以在程序的任何地方,只要在变量使用前就可以
C.变量不可以在其作用域之外使用
D.局部变量在使用之前可以不初始化,系统使用默认的初始值
27.关于流(Stream)相关的类,下列哪些是正确的( )。
A.InputStream和OutputStream类是用来处理字节(8位)流的
B.Reader和Writer类用来处理字符(16位)流
C.各个类之间相互独立,没有关联
D.File类则用来处理文件
28.在Java中,关于封装性的说法中,正确的是( )。
A.是一种信息隐蔽技术
B.使对象之间不可相互作用
C.是受保护的内部实现
D.与类有关,封装的基本单位是对象
29.关于Java的标准输入输出流,下列哪些是正确的( )。
A.System.out和System.in分别用来处理标准输出和输入
B.标准输入和输出均只针对计算机键盘和屏幕
C.Java对输入和输出编程均要求强制异常保护
D.只有一个标准输入流
30.下列关于循环语句的描述中,正确的是( )。
A.任何一种循环体内都可以含一种循环语句
B.循环体可以使空语句也可以是空
C.循环体内可以出现多个break语句
D.循环语句,循环体至少被执行一次
31.关于局部变量的作用域,下列说法正确的是( )。
A.主方法中定义的变量只能在主方法中使用,不能在其他方法中使用。
B.形参变量是属于被调方法的局部变量,而实参变量一般是属于主调方法的局部变量。
C.不允许在不同的方法中使用相同的变量名。
D.在复合语句中也可以定义变量,其作用域只在复合语句范围内。
32.一个对象创建包括的操作中,包含下面的( ) 。
A.释放内存
B.对象声明
C.分配内存
D.调用构造方法
33.关于File类,下列哪些是正确的( )。
A.可直接获取文件相关信息,如文件名和路径等
B.可读取和存储文件内容
C.可以用来表示文件和目录
D.可通过各种流类包装读写文件
34.若有定义 class A{int x,y; static float f(int a){…} float g(int x1,int x2){…}} 及A a1=new A();则下列用法中合法的是( )。
A.g(3,2)
B.f(3)
C.a1.f(4)
D.a1.g(2,5)
35.下列描述中不正确的一项是()。
A.标识符首字符的后面可以跟数字
B.标识符不区分大小写
C.复合数据类型变量包括布尔型、字符型、浮点型
D.数组属于基本数据类型
三、判断题 (共 15 道试题,共 30 分)
36.子类必须通过super()关键字调用父类的构造函数
37.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
38.在Java中%是取余运算符,要求两端操作数为整型。
39.Java的类不允许多重继承,但接口支持多重继承。
40.Java有两类程序:Java Application和Java Applet,其中Java Applet程序由嵌入到浏览器中的解释器解释运行。
41.如果用final修饰方法,则该方法不能在子类中被覆盖
42.无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B.class的字节码文件。
43.构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。
44.在Java中%是取余运算符,要求两端操作数为整型。
45.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。
46.Java的各种数据类型占用的内存长度固定,与具体软硬件环境无关。
47.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
48.Java源程序文件应以.java为后缀名保存,文件内包含几个类的定义就编译生成几个对应的字节码文件。
49.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。
50.File类可以作为FileInputStream类的构造方法的参数