
使用班级:
| 总分 |
| 得分 |
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 答案 | cdef | abdfg | Adfgm | cdeh | acdbcdba | acdgijk | ace | c | bdf | abchij | a | ad | bce | ace | bcdgh |
1、下面叙述正确的有_____cdef______。
A.在一个java源文件中只能定义一个class
B.在一个java源文件中只能定义一个interface
C.在一个java源文件中可以定义多个class
D.在一个java源文件中可以定义多个interface
E.在一个java源文件中可以定义多个class和interface
F.在一个java源文件中只能定义一个public class
2、java程序中程序运行入口方法main的签名正确的有__abdfg__。
A.public static void main(String args[])
B.static public void main(String[] args)
C.public void static main(String[] args)
D.static public void main(String... args)
E.public void main(String args[])
F.public static void main(String... args)
G.public static void main(String[] test)
3、以下能作为class, interface, method或variable有效标识符__adfgm __。
A.For B.boolean C.23age
D._id E.my name F. $this_is_a_long_variable_name_very_very_long
G.NULL H.#Yes I.goto J.default K.native L.volatile M.帅锅
4、以下能作为char类型的字面值的有_____cdeha___。(字面值是单引号)
A. char c=“x” B. char c=‘\u12’ C.char c=’\u0012’
D.char c='帅' E.char c=250 F.char c=250250
G.int x=5;char c=x H.char c=0xf;
5、 byte、int、double、short、float、long、char、boolean的字节长度分别为__ acdbcdba__
A.1 B.2 C.4 D.8
6、以下正确的有__acdg______。
A. int i = 32; B.float f = 45.32; C. double d=3.2;
D.long l=99; E. byte=128;
F.Boolean=null;(Boolean是作为一个类来存在的,可以改成 Boolean b=null;)
G. long l=0xfffL; H.int i=11L; I.double d=5.2E12
J. int i,j,k=0 K int i=0;int j=i=5; L.long l=102420320; M.int i=102420320;
7、 以下返回true的表达式有________。
A. “george” == “george”
B.”george” = “george”
C. “george”.equals(new String(“george”))
D. “george” == new String(“george”)
E."google"==new String("google").intern();(返回字面值)
8、 根据以下程序选择正确答案________:
public class Test {
static int total = 10;
public static void main (String args []) {
new Test();
}
public Test () {
System.out.println("In test");
System.out.println(this);
int temp = this.total;
if (temp > 5) {
System.out.println(temp);
}
}
}
A. 编译出错 B.运行时有异常 C. 编译运行都正确
9、下面数组定义正确的有________。
A. String strs[] = { ‘a’ ‘b’ ‘c’};
B. String[] strs = {“a”, “b”, “c”,};
C. String[] strs = new String{“a” ”b” ”c”};
D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};
F. String[] strs = {“a”, “b”, “c”,};
G.String[] strs = {'a','b','c'};
10、 switch语句支持一下哪种类型________。
A.int B.short C.char D.float E.double F.boolean G.long H.enum I.byte J.String K.Object
11、class Base{
public Base(String s){
System.out.println("Base: "+s);
}
}
class SubA extends Base{
public SubA(String s){
System.out.println("SubA: "+s);
}
}
class SubB extends SubA{
public SubB(){
super("Hello World");
System.out.println("SubB : Hello World.");
}
public static void main(String[] args){
new SubA(null);
new SubB();
}
}
请问上述程序的是______________
A.编译不通过
B.编译通过,但是运行时报错
C.Base: null
SubA: null
Base: Hello World
SubA: Hello World
SubB : Hello World
D.SubA: null
SubB : Hello World
E.SubA: null
SubA: Hello World
SubB : Hello World
12、以下方法声明正确的有________________。
A.public static synchronized void writeLog(String msg)
B. synchronized public static writeLog(String msg)
C. public final abstract void writeLog(String msg)
D.final public void writeLog(String msg)
E.abstract synchronized void writeLog(String msg)
13、方法重载(overloading)必须满足________。
A. 在不同class中定义的方法 B.在同一类中定义的方法
C. 方法名必须相同 D.返回类型必须相同
E. 参数一定不同 F.参数可以相同
14、对于构造方法(constructor)描述正确的有________。
A. 构造方法没有返回类型 B.构造方法一定是public的方法
C.果我们没有显示定义构造方法,系统会提供一个缺省的
D.构造方法不能重载 E.构造方法可以相互调用
15、 以下对于方法覆盖(overriding)的说法正确的有________。
A.方法覆盖发生在同一类中 B.方法的覆盖发生在子类型中
C.方法名一定要一样 D.参数一定要一样
E.返回类型可以不一样 F.访问权限只能一样
G.如有异常,子类型中抛出的异常与父类型中的一致或是其子类型
H.静态方法可以被静态方法覆盖
| 得分 |
| 1 | |
| 2 | hashCode equals |
| 3 | |
| 4 | ArrayList Vector HashSet HashMap HashTable |
| 5 | Package import class |
| 6 | |
| 7 | Join yield |
| 8 |
2、如果自行构建的一个Java类想要自定义判断对象相等的规则,则需要重写其
_________方法,同时还需要重写他的______________方法。
3、事件处理方式采用了observer(观察者)设计模式,事件编程三要素是 、
和 。
4、如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用___________, 反之则会使用_____________;
如果你想存储一组无序但唯一的对象,你会使用_________;
如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用____________, 反之则会使用__________。
5、在一个java源文件中的三个顶级元素,按顺序分别是 , ,
。
6、Java方法的参数传递对于基本数据类型如int, byte等,参数传递是 ;
对自定义数据类型,参数传递是_____________。
7、并发控制是多线程编程的难点。一个线程要等待某个条件的满足,调用方法 ;通知某一个处于等待状态线程的方法是_______,通知多个的是__________;处于等待状态的线程当前调用的方法或程序块用关键字____________来。一段线程不安全的代码,使用__________关键字实现代码块单线程运行。运行中线程等待另一个线程结束调用线程的_________方法。暂时让出执行权调用_____________方法。
8、对原始数据的读写,采用流___________和___________,为了提高性能,采用流___________和____________。
| 得分 |
| 1 | |
| 2 | |
| 3 |
int m=0,n=0;
for (int i=0, j=1; i<10&&j<10;i++,j++){
if (i>5) m++;
else n--;
j++;
}
运行后,m的值为___0___ ,n的值为__-5____。
2、 请看以下程序:
class Vehicle {
public void drive() {
System.out.println("Vehicle: drive");
}
}
class Car extends Vehicle {
public void drive() {
System.out.println("Car: drive");
}
}
public class Test {
public static void main (String args []) {
Vehicle v;
Car c;
v = new Vehicle();
c = new Car();
v.drive();
c.drive();
v = c;
v.drive();
}
}
请问输出结果是什么?
3、阅读下面程序
public class ExceptionTest{
public double div(double a, double b){
try{
return a/b;
}catch(Exception e){
System.out.println(“Exception thrown”);
}catch(Throwable t){
System.out.println(“Throwable thrown”);
return 0.0;
}finally{
System.out.println(“Release resources.”);
}
}
public static void main(String[] args){
ExceptionTest et = new ExceptionTest();
et.div(1, 2);
et.div(3.4, 0);
}
}
可能产生的结果是什么?
编译错误(finally中少了一个return)
| 得分 |
1、在本地文件系统下有一个用GBK编码的文本文件conf.txt,编写一个静态方法能够正确输出该文件的文本内容在控制台:(6分)
public static String readFile(String url){
2、定义接口Student,该接口中有一个无参、无返回值的方法prtMsg;定义类College,包括的私有属性有id和name,包括一个接收学生学号和姓名的构造方法,并且实现Student接口。(5分)
interface Student{
(1)
}
(2) //College类的声明,实现Student接口
{
(3) //定义私有成员变量id和name,类型自定
(4)//构造方法声明和定义,接收二个参数
(5)//实现prtMsg方法的声明
{
//prtMsg的方法体
System.out.println(id + name);
}
}
3、写程序实现包括一个复选框的窗体,并处理用户选取事件。(5分)
import java.awt.*;
import java.awt.event.*;
(1) //类声明,类名为MyCheck,继承自Frame类
{ //类体
public MyCheck(){
(2) //创建Panel的一个实例,并设置其布局为FlowLayout
Checkbox cbx = new Checkbox(“isPassed”);
(3) //向面板中加入组件cbx,并为组件注册
add(p);
(4) //把窗体设为可见,并设置大小
}
public static void main(String[] args){
new MyCheck();
}
//定义内部类实现监听,相应的监听接口为ItemListener
(5) //内部类的声明
{
public void itemStateChanged(ItemEvent e){
System.out.println(e);
}
}
}
五、 程序设计题(本大题共2道小题,每小题6分,共12分)
1、请使用递归编写一个方法,功能为返回一个正数的阶乘。(6分)
package com.briup.test;
import java.util.Scanner;
public class Recursion {
public static long sum = 1;
public long Recurrence(int n){
if(n>0){
sum = n * Recurrence(n-1);
}
return sum;
}
public static void main(String[] args) {
int n = 0;
long sum = 0;
Scanner sc = new Scanner(System.in);
System.out.println("please input n: ");
n = Integer.parseInt(sc.next());
Recursion rs = new Recursion();
System.out.println("The sum is "+rs.Recurrence(n));
}
}
2、泛型与增强for循环(for-each)是jdk1.5(Java5)新增加的特性,用于简化程序员编程操作,提高代码可读性。
下面要求构建一个有序的集合,手工添加若干字符串“aaaa”,"bbb。然后按输入顺利遍历集合,并打印出字符串及其长度。
请使用传统没有泛型和传统的循环语句,以及泛型和增强for循环分别实现代码。(6分)
传统:
package com.briup.test;
import com.briup.hashmap.ArrayList;
import com.briup.hashmap.Iterator;
import com.briup.hashmap.List;
public class TradArrayList {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaaa");
list.add("bbb");
list.add("cc");
list.add("ddd");
Iterator it = list.iterator();
while(it.hasNext()){
String strs = (String) it.next();
System.out.println(strs);
char[] ch = strs.toCharArray();
System.out.println(ch.length);
}
}
}
增强for:
package com.briup.test;
import java.util.*;
public class ForArrayList {
public static void main(String[] args) {
List list.add("aaaa"); list.add("bbb"); list.add("cc"); list.add("ddd"); for(String str: list){ System.out.println(str); char[] ch = str.toCharArray(); System.out.println(ch.length); } } }
