20145209刘一阳《JAVA程序设计》第十五周补充测试
第十五周补充测试
1、实验楼Linux中可以通过(ABC)查看用户登录情况。
A .who
B .who am i
C .who mom likes
D .who are you
2、在 Linux 里面如何知道自己属于哪些用户组呢?(A)
A .使用 groups 命令
B .addgroups
C .查看 /etc/group 文件
D .lsgroups
3、表达式15&240的值为(B)
A .FF
B .0
C .255
D .1
4、下列关于课本P29示例程序的说法,正确的是(ABCD)
A .如果注释掉第一行“import java.util.*;”,则“System.out.println(Arrays. toString(a));”和“Scanner scanner = new Scanner(System.in);”两句会报错。
B .折半查找时,必须保证数组是有序的。
C .该程序所示的排序方法为冒泡排序法。
D .count>N/2说明查找结束,没有找到该数字。
5、关于课本P23示例程序的说法,正确的是(BCD)
A .程序等待用户在命令行输入数据时,是在Scanner reader = new Scanner(System.in);一句发生阻塞。
B .在命令行运行该程序时,使用ctrl+c可以结束阻塞。
C .输入0.00也可以结束程序的执行,输出sum的值。
D .当用户输入0.3并回车后,程序再次阻塞,该阻塞是由于执行了x = reader.nextDouble();一句。
6、下列错误的初始化语句是(ABD)
A .char str[]="hello";
B .char str[100]="hello";
C .char str[]={'h','e','l','l','o'};
D .char str[]={'hello'};
7、定义float x = 0.5f; double y = 0.5,则x==y结果为false。(B)
A .true
B .false
8、下列关于创建对象的说法,错误的是(CD)
A .创建一个对象包括对象的声明和为对象分配变量两个步骤。
B .使用Student stu;声明对象变量后,stu的内存中还没有任何数据。
C .引用型成员变量的默认初值为0。
D .对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中。
E .String a="ab"+"cd";创建了3个对象。
9、下列说法正确的是(AD)
A .println()方法属于java.lang.,但由于其非常常用,编译器自动添加了java.lang.,因此使用println()方法时不需要import。
B .如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。
C .可以使用import java.*;将类库中的所有的类都包含进去。
D .java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
10、下列说法正确的是(C)
A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。
B .double类型的成员变量的默认值为0,局部变量没有默认值。
C .对成员变量的赋值操作只能放在方法中。
D .面向对象语言中的“类”相当于C语言中的“函数”。
11、下列关于UML类图的说法,正确的是(AC)
A .抽象类和抽象方法一般用斜体表示。
B .一般情况下,方法的属性用+表示private,用-表示public。
C .在UML 里,一个类的属性能显示它的名字,类型,初始化值。
D .继承用一个带三角的直线表示,由父类指向子类。
12、将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误?(B)
interface Com {
int M = 200;
int f();
}
class ImpCom implements Com {
【代码】
}
A .public int f(){return 100+M;}
B .int f(){return 100;}
C .public double f(){return 2.6;}
D .public abstract int f();
13、下列关于abstract关键字的说法,正确的是(BCDF)
A .可以使用static修饰abstract方法。
B .非abstract类中不可以有abstract方法。
C .不能使用new创建abstract类的对象。
D .不允许使用final和abstract同时修饰一个方法.
E .可以使用public abstract void eat(){};来声明抽象方法eat()。
F .抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。
14、下列关于Override的说法,正确的是(ABC)
A .子类所声明的成员变量的名字和从父类继承来的成员变量名字相同但类型不同时,子类会隐藏所继承的成员变量。
B .除了继承的方法之外,子类新定义的方法可以操作子类继承的成员变量。
C .子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。
D .重写方法可以操作被子类隐藏的成员变量和方法。
15、以下是File类构造方法的是(ABCD)
A .File(File parent, String child)
B .File(String pathname)
C .File(String parent, String child)
D .File(URI uri)
16、下列关于内部类的说法,正确的是(ABD)
A .其他类不可以用某个类的内部类声明对象。
B .内部类字节码文件的名字格式是“外嵌类名$内部类名”。
C .内部类的类体可以声明类变量和类方法。
D .内部类在成员位置上,因此可以被private修饰。
17、以下关于File类常用方法的叙述,错误的是(B)
A .public long length():获取文件长度
B .public int hashCode():计算此文件的哈希码
C .public String toString():返回此抽象路径名的路径名字符串
D .public Boolean isFile():判断一个文件是否是普通文件,而不是目录
18、下列哪个叙述是正确的?(C)
A .创建File对象可能发生异常。
B .BufferedRead流可以指向FileInputStream流。
C .BufferedWrite流可以指向FileWrite流。
D .RandomAccessFile流一旦指向文件,就会刷新该文件。
19、InputStream类继承自FileInputStream,可以以字节为单位读取文件。(B)
A .true
B .false
20、下列关于正则表达式的说法,正确的是(ABDE)
A .\ba\w*\b匹配以字母a开头的单词
B .\d+匹配1个或更多连续的数字。
C .\b\w{6}\b 匹配6个及以上字符的单词。
D .[0-9]代表的含意与\d就是完全一致的:一位数字
E .\S+匹配不包含空白符的字符串。
F .(\d{1,3}.){3}\d{1,3}用来匹配 IP地址。
21、下列说法正确的是(D)
A .Java 8之前,对日期进行运算,使用DateFormat类。
B .需要人类能理解的时间,建议使用Date类的toString()。
C .现在国际上通用的标准时间是GMT。
D .new Date(System.currentTimeMillis())等价于new Date()
22、下列哪个表达式是正确的(无编译错误)?(C)
A .int m =Float.parseFloat("567");
B .int m =Short.parseShort("567")
C .byte m =Integer.parseInt("2");
D .float m =Float.parseDouble("2.9")
23、下列关于TreeSet
A .public boolean contains(Object o) 如果此 set 包含指定的元素,则返回 true。如果指定对象无法与该 set 中的当前元素进行比较,或不包含,则返回false。
B .public boolean add(E e)将指定的元素添加到此 set。如果此 set 已经包含这样的元素,则该调用不改变此 set 并返回 false。
C .public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。
D .public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
24、对于如下代码,下列哪个叙述是正确的?(D)
public class E {
public static void main (String args[]) {
String s1 = args[1];
String s2 = args[2];
String s3 = args[3];
System.out.println(s3);
}
}
A .程序出现编译错误。
B .无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。
C .无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。
D .无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。
25、已知list是一个合法的集合引用,getCollection()返回一个合法集合的引用,下列合法的是?(BE)
A .for(Object o : list)
B .for(Object o : getCollection())
C .for(Object o : list.iterator())
D .for(lterator i ; list.iterator() ; i.hasNext() )
E .for(lterator i=list.iterator(); i.hasNext(); )
26、What is the output of the following code?(下面代码的运行结果是?)(F)
LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
System.out.println(date.getYear() + " " + date.getMonth()
+ " "+ date.getDayOfMonth());
A .2018 APRIL 4
B .2018 APRIL 30
C .2018 MAY 10
D .Another date
E .The code does not compile.
F .A runtime exception is thrown.
27、接口RowSet继承了接口__,可以调用RowSet中的方法__来填充其数据区。(C)
①Statement ②ResultSet ③update ④populate
A .①③
B .①④
C .②③
D .②④
28、假定源文件名为HelloWorld.java.代码如下,(B)
public class HelloWorld {
public static void main(String[] args) {
String hw = "Hello World";
System.out.printf("%s\n", hw);
System.out.printf("%s\n", 1/0);
}
}
A .将会产生编译时错误,javac Hello.java无法执行
B .将会产生运行时错误,java Hello无法执行
C .将会产生逻辑错误,1/0 不符合数学逻辑
D .程序可以正常编译运行
29、有关Java密码学算法,下面说法正确的是(CDF)
A .对称密码和非对称密码的秘钥都是使用KeyGenerator产生
B .cp.init(Cipher.ENCRYPT_MODE, k);指定秘钥K进行解密,使用的是对称算法
C .byte text2[]=cp.doFinal(text1);完成对数据的加密或者解密
D .Java中,RSA算法的加密,解密都是调用modPow()实现的。
E .MessageDigest m=MessageDigest.getInstance("MD5");
//...
m.update(x.getBytes("UTF8" ));完成x的摘要计算
F .MessageDigest m=MessageDigest.getInstance("MD5");
//...
byte s[ ]=m.digest( );完成摘要计算
30、实验中客户端对传给服务器的后缀表达式进行对称加密使用的加密算法的选用,下面说法正确的是(BCDF)
A .选用公钥算法比如RSA算法更安全
B .应该选用对称算法如DES,AES等,可以用Cipher cp=Cipher.getInstance(...)指定算法类型
C .非对称算法常用来进行密钥分发,签名/验签
D .Java中,对称算法进行加密还是解密由Cipher 的init()方法指定
E .Java中,对称算法进行加密还是解密由Cipher 的nal()方法指定
F .传输中要使用混合密码系统
31、结对编程时,协作使用到的git命令与个人不同的有(D)
A .git add
B .git clone
C .git commit
D .git pull
E .git push
32、Activity的前台的生命周期是(C)。
A .从onCreate(Bundle)开始到onDestroy()结束
B .从onStart()开始到onStop()结束
C .从onResume()开始到onPause()结束
D .从onStart()开始到onRestart()结束
33、Activity 的生命周期存在于(A)
A .从onCreate(Bundle)开始到onDestroy()结束
B .从onStart()开始到onStop()结束
C .从onResume()开始到onPause()结束
D .从onStart()开始到onRestart()结束
34、有关TDD(Test Driven Devlopment, 测试驱动开发),下面说法正确的是(AE)
A .实验中实现Java单元测试的工具是JUnit
B .TDD的目标是"Keep the bar green, to Keep the code clean"
C .实验中assertEquals("不及格", MyUtil.percentage2fivegrade(55));是对边界情况进行测试
D .实验中assertEquals("不及格", MyUtil.percentage2fivegrade(55));是对异常情况进行测试
E .实验中assertEquals("不及格", MyUtil.percentage2fivegrade(55));是对正常情况进行测试
35、针对以下代码的的调试,下面说法正确的是(AEG)
1 package ljp;
2 public class HelloJDB {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}
A .IDEA中可以设置条件断点 i==50,这样循环执行到i等于50时停下
B .IDEA中可以设置条件断点 i=50,这样循环执行到i等于50时停下
C .JDB中可以设置条件断点 i=50,这样循环执行到i等于50时停下
D .JDB中可以设置条件断点 i==50,这样循环执行到i等于50时停下
E .IDEA中和JDB中都可以单步运行到i等于50
F .JDB中要想调试程序,用javac编译时一定带上-d参数
G .JDB中要想调试程序,用javac编译时一定带上-g参数
36、如果有以下的程序代码:
Int x=100;
Int y=100;
Integer wx=x;
Integer wy=y;
System.out.println(x==y);
System.out.println(wx==wy);
在JDK5以上的环境编译与执行,则显示的结果是(A)
A .true、true
B .true、false
C .false、true
D .编译失败
37、如果有以下的程序代码:
int x = 200;
int y = 200;
Integer wx = x;
Integer wy = y;
System.out.println(x == wx);
System.out.println(y == wy);
在 JDK5 以上的环境编译与执行,请问显示结果为何?(A)
A .true、true
B .true、false
C .false、true
D .编译失败
38、如果有以下的程序代码:
int[] arr1 = {1, 2, 3};
int[] arr2 = new int[arr1.length]
arr2 = arr1;
for(int value : arr2) {
System.out.printf("%d", value);
}
以下描述何者正确?(A)
A .执行时显示123
B .执行时显示12300
C .执行时出现 ArrayIndexOutOfBoundException 错误
D .编译失败
39、如果有以下程序代码:
String[] strs=new String[5];
以下描述正确的是(C)
A .产生5个String 实例
B .产生1个String 实例
C .产生0个String 实例
D .编译失败
40、如果有以下程序片段:
public class Some{
public int x;
public Some(int x){
x=x;
}
}
以下描述正确的是(BC)
A .new Some(10)创建对象后,对象成员x值为10
B .new Some(10)创建对象后,对象成员x值为0
C .Some s = new Some(10)后,可使用s.x取得
D .编译失败
41、如果有以下程序片段:
public class Some{
private final int x;
public some(){}
public Some(int x){
this.x=x;
}
}
以下描述正确的是(D)
A .new Some(10)创建对象后,对象成员x值为10
B .new Some(10)创建对象后,对象成员x值为0
C .Some s = new Some(10)后,可使用s.x取值
D .编译失败
42、如果有以下程序片段:
class Some{
void doService(){
System.out.println("some service");
}
}
class Other extends Some{
@Override
void doService(){
System.out.println("others srrvice");
}
}
public class Main{
public static void main(String[] args){
Other other = new Other();
other.doService();
}
}
以下描述正确的是(C)
A .编译失败
B .显示some service
C .显示other service
D .先显示some service后显示other service
43、如果有以下程序片段:
class Some{
String ToString(){
return "Some instance";
}
}
public class Main{
public static void main(String[] args){
Some some = new Some();
System.out.println(some);
}
}
以下描述正确的是(B)
A .显示Some Instance
B .显示Some@XXXX,XXXX为十六进制的数字
C .发生ClassCastException
D .编译失败
44、如果有以下程序片段:
public class Main {
public static void main(String[] args) {
try {
int number = Integer.parseInt(args[0]);
System.out.println(number++);
} catch(NumberFormatException ex) {
System.out.println("必须输入数字");
}
}
}
执行时若没有指定命令行自变量,以下描述何者正确?(C)
A .编译错误
B .显示"必须输入数字"
C .显示 ArrayIndexOutOfBoundException 堆栈追踪
D .不显示任何讯息
45、如果有以下程序片段:
public class Main {
public static void main(String[] args) {
Object[] objs = {"Java", "7"};
Integer number = (Integer) objs[1];
System.out.println(number);
}
}
根据图 8.2,以下描述何者正确?(C)
A .编译错误
B .显示 7
C .显示 ClassCastException 堆栈追踪
D .不显示任何讯息
46、FileInputStream的建构式使用throws宣告了FileNotFoundException,如果有以下程序片段:
public class FileUtil {
public static String readFile(String name) {
FileInputStream input = null;39
try {
input = new FileInputStream(name);
...
} catch(_____________________ ex) {
...
}
}
}
请问空格处填入以下哪些选项可以通过编译?(ACD)
A .Throwable
B .Error
C .IOException
D .FileNotFoundException
47、如果有以下程序片段:
import java.util.*;
public class Main {
public static void main(String[] args) {
foreach(new HashSet());
foreach(new ArrayList());
}
private static void foreach(___________ elements) {
for(Object o : elements) {
...
}
}
}
空白部份指定哪些型态可以通过编译?(CD)
A .HashSet
B .ArrayList
C .Collection
D .Iterable
48、如果有以下程序片段:
import java.util.*;
class Student {
String number;
String name;
int score;
Student(String number, String name, int score) {
this.number = number;
this.name = name;
this.score = score;
}
}
public class Main {
public static void main(String[] args) {
Set<Student> students = new TreeSet<>();
students.add(new Student("B1234", "Justin", 90));
students.add(new Student("B5678", "Monica", 100));
...
foreach(students);
}
private static void foreach(Collection<Student> students) {
for(Student student : students) {
System.out.println(student.score);
}
}
}
以下描述何者正确?(D)
A .依 score 从小至大显示结果
B .依 toString()自然排序由小至大显示结果
C .依 hashCode()自然排序由小至大显示结果
D .抛出 ClassCastException
49、输入输出串流的父类别是哪两个?(AC)
A .InputStream
B .Reader
C .OutputStream
D .Writer
50、以下哪两个类别为 Reader、Writer 提供缓冲区作用?(BD)
A .BufferedInputStream
B .BufferedReader
C .BufferedOutputStream
D .BufferedWriter
51、以下哪两个类别分别拥有 readObject()、writeObject()方法?(BC)
A .BufferedInputStream
B .ObjectInputStream
C .ObjectOutputStream
D .BufferedOutputStream
52、如果有以下程序片段:
BufferedReader reader = new BufferedReader(new ________________);
空白部份指定哪些型态可以通过编译?(BC)
A .FileInputStream("Account.data")
B .FileReader("Main.java")
C .InputStreamReader(new FileInputStream("Main.java"))
D .ObjectReader("Account.data")
53、哪些 JDBC 驱动程序可以有跨平台的特性?(CD)
A .TYPE 1
B .TYPE 2
C .TYPE 3
D .TYPE 4
54、JDBC 相关接口或类别,是放在哪个套件之下加以管理?(C)
A .java.lang
B .javax.sql
C .java.sql
D .java.util
55、使用 JDBC 时,通常会需要处理哪个受检异常( Checked Exception)?(B)
A .RuntimeException
B .SQLException
C .DBException
D .DataException
56、关于 Connection 的描述,何者正确?(AB)
A .可以从 DriverManager 上取得 Connection
B .可以从 DataSource 上取得 Connection
C .在方法结束之后 Connection 会自动关闭
D .Connection 是线程安全( Thread-safe)
57、取得 Connection 之后,如何取得 Statement 对象?(A)
A .conn.createStatement()
B .conn.buildStatement()
C .conn.getStatement()
D .conn.createSQLStatement()
58、使用 Statement 的 executeQuery()方法,会传回哪个型态?(C)
A .int
B .boolean
C .ResultSet
D .Table
59、如果有以下的程序代码:
System.out.println(10/3);
以下描述正确的是(A)
A .执行时显示3
B .执行时显示3.3333.....
C .执行时出现错误
D .编译失败
60、如果有以下的程序代码:
float radius = 88.2;
double area = 2 * 3.14 * radius * radius;
System.out.println(area);
以下描述何者正确?(D)
A .执行时显示 48853.6272
B .执行时显示 48853
C .执行时出现错误
D .编译失败