中软国际JAVASE月考题-笔试
姓名____ ____ 学校____________ 专业____________________ 联系电话_____________________
电子邮件__________________________________________
注意事项:笔试时间120分钟,笔试题满分80分,机试题20分。
请使用钢笔或者圆珠笔填写试题答案。
请在规定处填写您的答案,选择题在试卷前部答题卡中填写答案,程序题答案请写在答题纸上。
请不要在试卷上涂写与试题无关的的标记。
选择题部分答题卡:
(一)单项选择题(每题2分,共30分)
1)请问"abcd" instanceof Object返回的值是?
A.abcd
B.null
C.true
D.String
2)一个Java程序运行从上到下的环境次序是( )
A.操作系统、Java程序、JRE/JVM、硬件
B.JRE/JVM、Java程序、硬件、操作系统
C.Java程序、JRE/JVM、操作系统、硬件
D. Java程序、操作系统、JRE/JVM、硬件
3)表达式(short)10/10.2*2运算后结果是什么类型?
A.short
B. int
C. double
D. float
4)给出以下代码,假设arr数组中只包含正整数值,请问下列代码段实现了什么功能?
public int guessWhat(int arr[]) {
int x = 0;
for (int i = 0; i < arr.length; i++) {
x = x < arr[i] ? arr[i] : x;
}
return x;
}
A获取数组的最大索引值 B 判断数组中是否存在重复元素
C 获取数组中元素个数
D 获取数组中的最大元素
5)下面选项中哪个关键字可以用来修饰接口中的变量、方法?
A static
B private
C synchronized
D protected
6)给出以下代码,请问以下哪个描述是正确的?Public XXXX extends something1,something2
A 如果XXXX是一个接口,something1和something2取消掉,则代码段合法
B 如果XXXX是一个类,something1和something2均是接口,则代码段合法
C 如果XXXX、something1和something2均是接口,则代码段合法
D 因为Java语言不支持多继承机制,所以代码段不合法
7)设有程序如下
public class Delta
{
static boolean foo(char c)
{
System.out.print(c);
return true;
}
public static void main(String[] argv)
{
int i = 0;
for (foo('A'); foo('B') && (i < 2); foo('C'))
{
i++;
foo('D');
}
}
}
则程序运行结果是?
A. ABDCBDCB
B.ABCDABCD
C.程序编译时出错
D. 程序运行时产生运行时异常
8)指出下列程序运行的结果
public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
for(int i=0;i System.out.print(ex.ch[i]); } } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } } A.good and abc B. good and gbc C. test ok and abc D.test ok and gbc 9)关于类继承的说法,正确的是() A. Java 类允许多继承 B. Java接口允许多继承 C. 接口和类都允许多继承 D. 接口和类都不允许多继承 10)以下代码的执行结果是: class Example { static int x = 10; static { x += 5; } public static void main(String args[]) { System.out.println("x=" + x); } static { x /= 3; } } A.不能通过编译,因为缺少方法名和返回类型 B.不能通过编译,因为只能有一个静态初始化器 C.编译通过,执行结果为:x=5 D.编译通过,执行结果为:x=3 11)ArrayList实现了List接口,下列哪个方法是正确的 A、ArrayList myList=new Object() B、List myList=new ArrayList() C、ArrayList myList=new List() D、List myList=new List() 12)以下选项中循环结构合法的是?( ) A、while (int i<7) { i++; System.out.println(“i is “+i); } B、int j=3; while(j) { System.out.println(“ j is “+j); } C、int j=0; for(int k=0; j + k !=10; j++,k++) { System.out.println(“ j is “+ j + “k is”+ k); } D、int j=0; do{ System.out.println( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10); 13)有以下方法的定义,请选择该方法的返回类型( ) ReturnType method(byte x, double y) { return (short)x/y*2; } A、 byte B、int C、short D、double 14)编译并运行以下程序,以下描述哪个选项是正确的( ) 1. class A{ 2. protected boolean equals(){ 3. return super.equals(); 4.} 5. } A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错 15)下列代码的执行结果是? public class Example{ public static void main(String args[]) { String s; System.out.println("s=" + s); } } A、代码得到编译,并输出“s=” B、代码得到编译,并输出“s=null” C、由于String s没有初始化,代码不能编译通过 D、代码得到编译,但捕获到NullPointException异常 (二)多项选择题(每题3分,共15分) 1)不能用来修饰interface的有 A private B public C protected D static 2)以下代码错误在何处? public class Example { public static void main(String[] args) { for(int i=0;j=0,i<10;++i,j+=i){ j+=i*i+j*j; } } } A在语句块中应超过一条以上语句 B在i=0和j=0之间应使用逗号 C使用了两个循环变量 D在j=0和i<10之间应使用分号 3)现有一下代码:protected void method(int x){...},以下哪些有关覆盖该方法的描述是正确的? A 覆盖的方法必须采用int型作为唯一个一个参数 B 覆盖的方法必须返回类型为void C 覆盖的方法可以被private修饰符修饰 D 覆盖的方法可以返回任何类型的值 4)给出下面的代码段: public class Base{ int w, x, y ,z; public Base(int a,int b) { x=a; y=b; } public Base(int a, int b, int c, int d) // assignment x=a, y=b w=d; z=c; } } 在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的?() A、 Base(a,b); B、x=a, y=b; C、x=a; y=b; D、this(a,b); 5)以下哪些关于构造器的描述是正确的?() A、子类可以继承父类的构造器 B、如果没有编写构造器,编译器会自动为类提供一个无参的默认构造器 C、构造器都没有返回值 D、构造器可以抛出异常 (三)程序结果题(每题2分,共10分) 1)有如下代码: public static int fun() { int result = 5; try { result = result / 0; return result; } catch (Exception e) { System.out.println("Exception"); result = -1; return result; } finally { result = 10; System.out.println("i am in finally"); } } public static void main(String[] args) { int x=fun(); System.out.println(x); } 请写出打印结果: 2)public class Test{ public static void main(String s[]){ String str=”123”; String str_=new String(“123”); String _str=”123”; System.out.println(str==_str); System.out.println(str==str_); } 3) 下列给出代码的运行结果是? public class Example { public static void main(String args[]) { int src = 17; int result = 0; for (int i = 1; (src -= i) >= 0; result++, i += 2) ; System.out.println(result); } } 4) 下列代码的执行结果是什么? public class Example { public static void main(String[] args) { int x = 0; boolean b1, b2, b3, b4; b1 = b2 = b3 = b4 = true; x = (b1 | b2 & b3 ^ b4) ? x++ : -x; System.out.println(x); } } 5) 下列代码执行后的输出是? public class Example { public static int num = 0; String name; static { System.out.println(num + ":code A"); } { System.out.println(num + ":code B"); num++; } public Example(String name) { System.out.println(num + ":构造器:" + name); http://www.wendangku.net/doc/0a9a5ddb6edb6f1afe001f74.html = name; num++; } public static void main(String[] args) { Example people = new Example("Tom"); Example people2 = new Example("Jim"); } } (四)判断说明题,判断命题是否正确,并说明原因(每题2分,共16分) 1)在一个原文件中,如果存在一个顶层的public类定义,则该源文件名必须与顶层的public类名一致,如果 源文件中没有一个顶层的public类,则该源文件名可以随意命名,不需要与原文件中定义的任何类名一致,只要符合Java语言标示符规范即可() 2)Java中的方法参数,基本数据类型和字符串是值传递,其他对象是引用传递() 3)如果p是父类Parent的引用,而c是子类Child的对象,则语句c=p是正确的。() 4)Java中接口不能被private或Protected修饰符修饰() 5)Java中Object类提供的equals方法则用于判定两个对象是否为同一对象。() 6)try…catch…finally结构中,必须有try语句块,catch语句块和finally语句块不是必须的,但至少要两者 取其一() 7)尽管现行的Java语言版本不允许类的多继承,但是我们仍然可以在extends关键字后面放置一个列表() 8)List允许重复元素,而Set不允许() (五)填空题(每题1分,共5分) 1)构造一个____________实例,将InputStream对象作为构造器的参数传入,可以从InputStream对象中如 何创建一个Reader对象 2)Java中,用_______修饰的类则表示该类不能被继承。 3)在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有 父类子类关系,此时应该将_____放在后面,_____放在前面。。 4)希望类的实例对象能够被序列化,该类需要实现___________ 接口 5)对象的__________________方法在对象被垃圾回收器回收之前获得调用 (六)问答题 1)String、StringBuffer、StringBuilder有什么区别?(4分)