10);}publicstaticvoidmain(Stringarg[]){inti=10;Testt=newTe" />

一、选择题(30分)
1.下列程序段执行后的输出结果为( )
int x=3; int y=10;
System.out.println(y%x);
A.0
B.1
C.2
D.3
2.下列程序的输出结果是 ( )
public class Test
{
void printValue(int m)
{
do {
System.out.println("The value is"+m);
}while( --m > 10 );
}
public static void main(String arg[])
{
int i=10;
Test t= new Test();
t.printValue(i);
}
}
A.8
B.9
C.10
D.113
3.执行完语句int [ ]x = new int[25];后,则下列哪项说法是正确的( )
A.x[24]值为0
B.x[24]值未定义
C.x[25]值为0
D.x[0]值为空
4.下列哪个选项是合法的标识符 ( )
A)123
B)_name
C)class
D)1first
5.下列的哪个赋值语句是不正确的 ( )
A)float f = 11.1;
B)double d = 5.312;
C)float d = 3.14f ;
D)double f=11.110f;
6.下列关于继承的哪项叙述是正确的?( )
A)在java中允许多重继承
B)在java中一个类只能实现一个接口
C)在java中一个类不能同时继承一个类和实现一个接口
D)java的单一继承使代码更可靠
7.有一个类A,对于其构造函数的声明正确的是( )。
A)void A(int x){...} B)A(int x){...}
C)A A(int x){...} D)int A(int x){...}
8.一个可以运行的Java应用程序( )
A、可以有一个或多个main方法
B、最多只能有两个main方法
C、可以有一个或零个main方法
D、只能有一个main方法
9.以下对Java中对数组的声明正确的是()
A int [] sample;
B int sample[];
C int () sample;
D int sample();
10.设int x = 3 , y = 2 , z = 5;
则表达式 y+=z--/++x 的值是( )。
A. 3
B. 4. 5
C. 3.5
D. 4
11.类Test1定义如下:
(1) public class Test1{
(2) public void aMethod(float a,float b){ };
(3)
(4) }
将以下哪种方法插入第3行是不合理的? ( )
A. public void aMethod(int a,int b){ };
B. public void aMethod(float a,float b,float c){ };
C. public void aMethod(float c,float d){ };
D. private void aMethod(int a,int b,int c){ };
12. JDK中运行Java小程序的命令是( )。
A. javadoc B. appletviewer
C. javac D. Java
13.下列叙述中,正确的是:( )
A声明变量时必须指定一个类型 B、Java认为变量number和Number相同
C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个
14.在switch(expression)语句中,expression的数据类型不能是:
A、double B、char C、byte D、short
15.已知int[] a =new int[100];,在下列给出的数组元素中,非法的是:
A、a[0] B、a[1] C、a[99] D、a[100]
16.设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。
A、 public x x1= new y( ); B、 x x1=x( );
C、 x x1=new x( ); D、 int x x1;
17.Java语言的类间的继承关系是( )。
A、 多重的 B、 单继承 C、 线程的 D、不能继承
18.下面关于java中类的说法哪个是不正确的( )
A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造函数是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。
19.给出一段程序,选择运行结果( )
public class sss {
public static void main(String args[])
{
String s1=args[1]; String s2=args[2];
String s3=args[3]; String s4=args[4];
System.out.println(“args[2]=”+s2);
}
}
命令行执行: java sss 1 2 3 4 结果是下面哪一个?
A、args[2]=2 B、args[2]=null C、args[2]=3 D、运行出现异常
20.public class T1 {
public static void main (String[] args){
T1 a=new T1();
a.method(8);
a.method(1.2f);
}
void method(float i) {
System.out.println("float: "+i);
}
void method(long i) {
System.out.println("long: "+i);
}
}
A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。
B、程序可以编译运行,输出结果为:
long: 8
float: 1.2
C、程序可以编译运行,输出结果为:
float: 1.2
long: 8
D、 程序中定义的两个参数不同的method方法称为方法重载。
21.编译并运行下面的程序,运行结果为( ).
public class A {
public static void main (String[] args) {
A a=new B( );
a.test();
}
void test() {
System.out.print ("A");
}
}
class B extends A {
void test() {
super.test();
System.out.println("B");
}
}
A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。
B、代码可以编译运行,并输出结果:AB
C、代码可以编译运行,并输出结果:A。
D、子类B定义了与父类A中同名的方法test,java中称为方法的重载
22.面向对象的特征有哪些( )
A、封装。
B、抽象。
C、继承。
D、多态
E、跨平台
23.类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?
A、 public
B、no modifier
C、 protected(权限仅次于public)
D、 private
24.类Teacher和Student都是类Person的子类
Person p;
Teacher t;
Student s;
p, t and s are all non-null.
if(t instanceof Person) { s = (Student)t; }
这个语句导致的结果是什么?
A、将构造一个Student对象。
B、表达式合法。
C、编译时非法。
D、编译时合法而在运行时可能非法。
25.给出下面的代码:
class Person {
String name,department;
public void printValue(){
System.out.println("name is "+name);
System.out.println("department is "+department);
}
}
public class Teacher extends Person {
int salary;
public void printValue(){
// doing the same as in the parent method printValue()
// including print the value of name and department.
System.out.println("salary is "+salary);
}
}
下面的哪些表达式可以加入printValue()方法的"doing the same as..."部分?
A、 printValue();
B、this.printValue();
C、 person.printValue();
D、super.printValue().
26.以下是接口的定义的是:
A, 接口中定义的变量都是公共的静态变量
B, 没有构造函数,而且定义的方法都是公共的抽象方法
C, 接口间采用单继承机制
D, 接口可以实例变量和常量,实例常量语法是;public static 标示符名称
27.包含抽象方法的类:
A, 一定是抽象类
B,可以是抽象类也可以不是抽象类
C,肯定不是抽象类
28.那些父类成员不能被继承:
A,private成员
B,构造方法
C,public成员
D,getter和setter成员
29.方法重写规则:
A,在继承关系的子类中
B,重写的方法名,返回值类型,参数与父类不相同
C,私有属性,成员可以被重写
30.关于构造方法,下列说法错误的是()
A,构造方法可以进行方法重写
B,构造方法用来初始化该类的一个新对象
C,构造方法具有和类名相同的名称
D,构造方法不返回任何数据类型
2、程序分析题(16分)
1.设有数组定义:
int a[ ] = { 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 };
则执行下列几个语句后的输出结果是
for ( int i = 0 ; i < a.length ; i ++ )
if( a[i]%3==0 )
System.out.println(a[i]+" ");
2. 执行下列几个语句后的输出结果是
class FatherClass{
public FatherClass(){
System.out.println("FatherClass Create");
}
}
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("ChildClass Create");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
3.应用程序由以下语句组成,写出执行该程序后输出的结果
public class x{
public static void main(String args[ ]){
int i , sum = 0 ;
int a[ ] = { 1 , 2 , 3 , 4 , 5 , 6 };
for ( i = 0 ; i < a.length ; i ++ )
if ( a[i]%2 = = 0 )
sum += a[i] ;
System.out.println("sum="+sum);
}
}
4. 应用程序由以下语句组成,写出执行该程序后输出的结果
import java.io.* ;
public class A
{
public static void main(String args[ ])
{ int i ;
int a [ ] = { 10,20,30,40,50,60,70,80,90 };
for ( i = 0 ; i <= a.length / 2 ; i ++ )
System.out.print( a[i]+a[a.length-i-1] +" " );
}
}
5.应用程序由以下语句组成,写出执行该程序后输出的结果
public class x
{
public static void main(String args[])
{
int num=0;
for(int i=10;i<=50;i++)
if(i%10==5 && i%3 ==0)
num++;
System.out.println("共有"+num+"个");
}
}
6.应用程序由以下语句组成,写出执行该程序后输出的结果
public class Jtest
{
int m=1;
int i=3;
void Jtest()
{
m=2;
i=4;
}
public static void main(String[] args)
{
Jtest app=new Jtest();
System.out.println(app.m+
}
}
7.应用程序由以下语句组成,写出执行该程序后输出的结果
public class Jtest
{
int m=1;
int i=3;
Jtest()
{
m=2;
i=4;
}
public static void main(String[] args)
{
Jtest app=new Jtest();
System.out.println(app.m+
}
}
8.请写出程序的运行结果
class Tester {
int var;
Tester(double var) {
this.var = (int)var;
}
Tester(int var) {
this("hello");
}
Tester(String s) {
this();
System.out.print (s);
}
Tester() {
System.out.print("goodbye");
}
public static void main(String[] args) {
Tester t = new Tester(5);
}
}
3、填空题(4分)
1.在Java程序中,通过类的定义只能实现单继承,但通过 的定义可以实现多继承关系。
2.数组x定义如下 int x[ ][ ]=new int[3][2]
则 x.length 的值为____________, x[0].length 的值为____________。
4、改错题(8分)
1.abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
2.public class Something {
void do () {
private String s = "";
int i = s.length();
}
}
3.public class x{
public int add (final int i) {
return ++i;
}
}
4.此处,Something类的文件名叫Other.java
public class Something {
private static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
5、简答题(12分)
1.简答方法的OverLoad和Override区别。
2.简答Java实现多态的手段。
3.简答this和super的用法。
4.简答类成员和实例成员的区别
5.一个".java"源文件中是否可以包括多个类?有什么?
6、局部变量和成员变量的区别
6、判断题(10分)
1.Java程序里,创建新的类对象用关键字new。
2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4.类及其属性、方法可以同时有一个以上的修饰符来修饰。
5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
6.Final类中的属性和方法都必须被final修饰符修。
7.最终类不能派生子类,最终方法不能被覆盖。
8.子类要调用父类的方法,必须使用super关键字。
9.一个Java类可以有多个父类。
10.方法覆盖必须要方法原型相同,可以不需要继承
七、编程题(4+5+6+5=20分)
1.求1!+2!+3!+…+10!
2.数组题:键盘随机输入十个数,以降序形式排列,打印排列后的数字。
3.编写一个java程序,设计一个汽车类Vechile,包含的属性有车轮数和车重,小汽车Car是它的子类,其中的属性包含载人数,卡车Truck是Car的子类,其属性包含载重量payload。每个类都有构造方法和输出相关信息的方法。
4.编写简易的计算器,实现加减乘除,要求声明Operation类(或接口) ,AddOperation加法类 SubOperation减法类 MulOperation乘法类 DivOperation除法类,编写测试类Test实现加减乘除运算。
