一、单项选择题(每空2分,共40分。)
1、如下哪个是Java中的标识符( )。
A、public B、super
C、3number D、width
2、已知如下定义:String s = "story"; 下面哪个语句不是合法的( )。
A、s += "books"; B、s = s + 100;
C、int len = s.length; D、String t = s + “abc”;
3、下面的代码段执行之后count的值是什么( )。
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System.out.println(count);
A、5 B、1
C、15 D、16
4、定义一个类,必须使用的关键字是( )。
A、public B、class
C、interface D、static
5、不允许作为类及类成员的访问控制符的是( )。
A、public B、private
C、static D、protected
6、void的含义:( )。
A、方法没有返回值 B、方法体为空
C、没有意义 D、定义方法时必须使用
7、下列说法哪个正确。( )
A、不需要定义类,就能创建对象
B、对象中必须有属性和方法
C、属性可以是简单变量,也可以是一个对象
D、属性必须是简单变量
A、创建对象时
B、类定义时
C、使用对象的方法时
D、使用对象的属性时
9、关于super的说法正确的是:( )。
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以用在main()方法中
10、异常包含下列哪些内容。( )
A、程序执行过程中遇到的事先没有预料到的情况
B、程序中的语法错误
C、程序的编译错误
D、以上都是
11、关于下面的程序Test.java说法正确的是( )。
public class Test {
Stringx="1";
int y;
publicstatic void main(String args[]) {
intz=2;
System.out.println(x+y+z);
}
}
A、3 B、102
C、12 D、程序有编译错误
12、创建并显示框架的步骤中,错误的是( )。
A、将框架对象与入口类相连接
B、在框架中加如组件
C、创建一个框架对象
D、调用框架对象的setVisible函数显示框架
13、Java不支持多重继承,但我们可以通过哪种方式实现。( )
A、多态 B、接口
C、覆盖 D、抽象类
14、以下哪个方法用于定义线程的执行体。( )
A、start(); B、init();
C、run(); D、main();
15、Java中哪个类提供了随机访问文件的功能。( )
A、RandomAccessFile类 B、RandomFile类
C、File类 D、AccessFile类
16、下列关于Java语言的特点,描述错误的是( )。
A、Java是跨平台的编程语言
B、Java支持分布式计算
C、Java是面向过程的编程语言
D、Java支持多线程
17、有程序如下,关于程序的描述哪个是正确的。( )
public class Person{
static int arr[] = new int[10];
public static void main(String a[]){
System.out.println(arr[1]);
}
}
A、编译将产生错误
B、编译时正确,但运行时将产生错误
C、正确,输出0
D、正确,输出 null
18、在使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口。( )
A、private B、protected
C、default D、public
19、下列哪一个import命令可以使我们在程序中创建输入/输出流对象( )。
A、import java.sql.*;
B、import java.util.*;
C、import java.io.*;
D、import java.net.*;
20、下列哪些语句关于Java内存回收的说明是正确的。( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
二、名词解释(每题5分,共10分。)
1、什么是继承?
2、什么是重载?什么是覆盖?有什么区别和共同点?
三、程序结果题(每题5分,共10分。)
1、请给出下面程序的输出结果。
public class Test{
public static void main(String args[ ]) {
int i, s = 0 ;
int a[ ] = { 10 , 20 , 30 , 40 ,50 , 60 , 70 , 80 , 90 };
for ( i = 0 ; i < a.length ; i ++)
if ( a[i]%3 = = 0 ) s += a[i] ;
System.out.println("s="+s);
}
}
2、请给出下面程序的输出结果。
public class Course {
private String cNumber;
private String cName;
private int cUnit;
public Course(String number, String name, int unit) {
cNumber = number;
cName = name;
cUnit = unit;
}
public void printCourseInfo() {
System.out.println("课程号:" + cNumber + " 课程名:" + cName + " 学分:" + cUnit);
}
}
class CourseTest {
public static void main(String[] args) {
Course c;
c = new Course("101", "ASP", 3);
c.printCourseInfo();
}
}
四、编程题(共40分。)
1、编写一个程序,计算 1/1+1/2+1/3+...+1/100 的值。(10分)
2、编写一种从小到大排序程序。例如:a数组中有10个数。分别是{3,2,5,21,9,10,7,16,8,20},经过排序算法后,a数组变为{2,3,5,7,8,9,10,16,20,21,}。(10分)
3、按以下要求编写程序(20分)
(1) 创建一个Rectangle类,添加width和height两个成员变量
(2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
(3) 编程利用Rectangle输出一个矩形的周长和面积