资源描述
一、 判断题
1、 抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
2、 Final类中的属性和方法都必须被final修饰符修饰。
3、 最终类不能派生子类,最终方法不能被覆盖。
4、 子类要调用父类的方法,必须使用super关键字。
5、 一个Java类可以有多个父类。
6、 如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
7、 一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。
8、 接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
9、 子类的域和方法的数目一定大于等于父类的域和方法的数目。
10、 所谓静态初始化器就是在构造函数之前加上static修饰符
11、 在java中,一个类可同时定义许多同名的方法,这些方法,这些方法的形式参数的个数、类型或顺序各不相同,这种面向对象程序特性称为隐藏。
12、 一个类只能有一个父类,但一个接口可以有一个以上的父接口
13、 抽象类没有具体对象,所以抽象类没有构造函数
14、 接口是特殊的类,所以接口也可以继承,予接口将继承父借口的所有常量和抽象方法
15、 Java语言不支持类的多重继承
16、 一个类就相当于一种数据类型。
17、 类的定义是可以嵌套的
18、 方法重载要求方法名相同,参数列表也相同。
19、 方法覆盖要求子类的方法与被覆盖的方法的方法头完全一致,范围一致或变小。( )
多选题(每题两个正确答案)
1. 在Java中,下列哪两句是正确的: ( ) cd
A. 子类的构造方法与父类的构造方法同名
B. 子类可以继承父类的所有方法
C. 子类不一定能继承父类的所有方法
D. 子类可以继承父类protected和public的方法
E. 子类可以继承父类protected和private的方法
2. MyPoint方法,返回Point类型,其定义正确的是: ( )ac
A. public Point MyPoint (int x){…}
B. public int MyPoint (int x) {…}
C. static Point MyPoint ( int x, int y) {…}
D. static int MyPoint (Point p) {…}
3. 若有以下接口的定义:public interface IA extends IB ,IC, ID{…};则:( ) bd
A. 这个接口的声明是错误的
B. 接口IA继承了接口IB,IC和ID
C. 接口IA实现了接口IB,IC和ID
D. 关键字extends指明接口的继承关系
4. 下面哪几个函数是public void example(){...}的重载函数?( ) ad
A public void example( int m){...}
B public int example(){...}
C public void example2(){...}
D public int example ( int m, float f){...}
5. 已知如下定义:String s = "story";下面哪个表达式是合法的( ) ad
A s += "books"; B char c = s[1];
C int len = s.length; D String t = s.toLowerCase();
6.定义主类的类头时可以使用到的关键字是( ) ab
A. abstract B. final C.private D. super
(一) 单选题(共12题,每题2分,共24分)。
1. 程序设计语言的三种基本控制结构是: (B)
A. 输入、处理、输出 B. 顺序、选择、循环
C. 树形、网形、环形 D. 主程序、子程序、函数
2. 在Java中,下列哪句话是正确的: (A)
A. 几个类可以写在一个文件里 B. 一个类可以写在几个文件里
C. 类的名称是不区分大、小写的 D. 方法的名称是不区分大、小写的
3. 一个必须被继承的类要用哪个关键字来描述: (D)
A. static B. protected C. final D. abstract
4. 下面程序的输出结果是: (D)
class DemoClass{
public static void main(String args[]){
int i=1,s=5;
do{
s += i;
i++;
}while(i < 5);
System.out.println(“s=”+s); }}
A. s=0 B. s=5 C. s=10 D. s=15
5. 下列方法method的定义正确的是 (A)
A. private int method () {char ch=’a’; return (int) ch; }
B. public void method {int a=8; return a;}
C. int method (int i ) {return (double) (i+10) ;}
D. method (int a) {return a;}
6. 哪一组都是Java关键字: (C)
A. Student, float, main, public B. byte, boolean, box, float
C. long, extends, float, double D. classes, float, short, import
7. 下面哪种说法是正确的: (C)
A. String是用来处理字符串的类,而StringBuffer不是
B. StringBuffer是用来处理字符串的类,而String不是
C. String和StringBuffer都是用来处理字符串的类
D. String和StringBuffer都不是用来处理字符串的类
8. int x=1,a=0,b=0;
switch(x){
case 0: b++;
break;
case 1: a++;
break;
case 2: a++;b++;
break;
}
System.out.println("a="+a+",b="+b);
该程序的输出结果是 (A)
A. a=1,b=0 B. a=1,b=1 C. a=1,b=2 D. a=2,b=2
9. 下面哪个赋值语句是不合法的? (A)
A、float a = 2.0 B、double b = 2.0
C、int c = 2 D、long d = 2
10. 下面四组变量命名,符合JAVA变量命名规则的是 (D)
A. a@bc B. 6x C. void D. ye_78
11. 定义类A及类中的方法getVar(),定义类A的子类B,若要在类B中覆盖类A的同名方法,下面正确的定义是
(C)
class A
{
private float x = 1.0f;
protected float getVar()
{return x;}
}
class B extends A
{
private float x = 2.0f;
//覆盖类A中的同名方法的代码放在此处}
A. float getVar(){return x;}
B. protected float getVar(float y){return x_y;}
C. protected float getVar(){return x;}
D. public float getVar(){return x;}
12. 根据下面给出的代码,判断哪个叙述是正确的。 (B)
public class Person {
static int arr[]=new int[10];
public static void main ( String a[] ) {
System.out.println ( arr[12] );
}
}
A. 编译时将发生错误
B. 编译时正确但是运行时出错
C. 输出为0
D. 输出为null
二、 选择题
1、关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是( )
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是( )
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
3、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是( )
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
4、下列关于修饰符混用的说法,错误的是( )
A. abstract不能与final并列修饰同一个类
B. abstract类中不可以有private的成员
C. abstract方法必须在abstract类中
D. staic方法中能处理非static的属性
5、容器Panel和Applet缺省使用的布局编辑策略是( )
A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout
6、以下标识符中哪项是不合法的( )
A、 BigMeaninglessName B、$int
C、1 st D、$1
7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )
A、 public static void main() B、public static void main(String[ ] args)
C、 public static int main(String[ ] arg)D、public void main(String arg[ ])
8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( )
A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空
9、以下代码段执行后的输出结果为( )
int x=3; int y=10;
System.out.println(y%x);
A、0 B、1 C、2 D、3
10、以下哪个表达式是不合法的( )
A、String x=”Hello”; int y=9; x+=y;
B、String x=”Hello”; int y=9; if(x= =y) { }
C、String x=”Hello”; int y=9; x=x+y;
D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length : 0
11、编译运行以下程序后,关于输出结果的说明正确的是 ( )
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9 :9));
}
}
A、输出结果为:value is 99.99 B、输出结果为:value is 9
C、输出结果为:value is 9.0 D、编译错误
12、以下声明合法的是( )
A、default String s; B、public final static native int w( )
C、abstract double d; D、abstract final double hyperbolicCosine( )
13、关于以下application的说明,正确的是( )
1. class StaticStuff
2. {
3. static int x=10;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. System.out.println(“x=” + x);
8. }
9. static { x/=3;}
10. }
A、 4行与9行不能通过编译,因为缺少方法名和返回类型
B、 9行不能通过编译,因为只能有一个静态初始化器
C、 编译通过,执行结果为:x=5
D、 编译通过,执行结果为:x=3
14、关于以下程序代码的说明正确的是( )
1. class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic( );
9. hs1.x++;
10. HasStatic.x- -;
11. System.out.println(“x=”+x);
12. }
13. }
A、 5行不能通过编译,因为引用了私有静态变量
B、 10行不能通过编译,因为x是私有静态变量
C、 程序通过编译,输出结果为:x=103
D、 程序通过编译,输出结果为:x=102
15、以下选项中循环结构合法的是( )
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);
16、类Test1定义如下:
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
将以下哪种方法插入行3是不合法的。( )
A、 public float aMethod(float a, float b,float c){ }
B、 public float aMethod(float c,float d){ }
C、 public int aMethod(int a, int b){ }
D、 private float aMethod(int a,int b,int c){ }
17、类Test1、Test2定义如下:
1. public class Test1
2.{ public float aMethod(float a,float b) throws
3. IOException { }
4. }
5. public class Test2 extends Test1{
6.
7.}
将以下哪种方法插入行4是不合法的。( )
A、 float aMethod(float a,float b){ }
B、 public int aMethod(int a,int b)throws Exception{ }
C、 public float aMethod(float p,float q){ }
D、 public int aMethod(int a,int b)throws IOException{ }
18、关于以下程序段,正确的说法是( )
1. String s1=”abc”+”def”;
2. String s2=new String(s1);
3. if(s1= =s2)
4. System.out.println(“= = succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() succeeded”);
A、行4与行6都将执行 B、行4执行,行6不执行
C、行6执行,行4不执行 C、行4、行6都不执行
19、以下说法哪项是正确的( )
1.class MyListener
2.extends MouseAdapter implements MouseListener{
3. public void mouseEntered(MouseEvent mev)
4. { System.out.println("Mouse entered."); }
5. }
A、 以上代码可通过编译
B、 不能通过编译,因为没有实现MouseListener接口中的所有方法
C、 不能通过编译,因为类头定义不能分行
D、 能通过编译,若组件用该类作为Mouse的监听者并且接收了mouse-exited事件,则在执行过程中会抛出异常
20、关于以下程序段的说法,正确的是( )
1.class MyListener implements
2. ActionListener,ItemListener{
3. public void actionPerformed(ActionEvent ae){
4. System.out.println("Action");}
5. public void itemStateChanged(ItemEvent ie){
6. System.out.println("Item");
7. }
8.}
A、 可通过编译
B、 第2行产生编译错误
C、 第3行产生编译错误
D、 第5行产生编译错误
21、通过调用 new List(10,false)创建一个列表,关于该列表的几个说法哪项是错误的。( )
A、该列表不支持复选 B、该列表有10个选项
C、根据需要该列表可能有垂直滚动条 D、该列表支持10个可见选项
22、以下哪项可能包含菜单条( )
A、Panel B、Frame C、Applet D、Dialog
23、以下代码完成画线功能,指出所画线的颜色( )
1.g.setColor(Color.red.green.yello.cyan);
2.g.drawLine(0,0,100,100);
A、red B、green C、yello D、cyan
24、关于以下代码所画图形的说明,正确的是( )
1.g.setColor(Color.black);
2.g.drawLine(10,10,10,50);
3.g.setColor(Color.red);
4.g.drawRect(100,100,150,150);
A、 一条40像素长的垂直红线,一个边长为150像素的红色四方形
B、 一条40像素长的垂直黑线,一个边长为150像素的红色四方形
C、 一条50像素长的垂直黑线,一个边长为150像素的红色四方形
D、 一条50像素长的垂直红线,一个边长为150像素的红色四方形
三、 改错题
判断下面的程序片断是否正确。若有错,指出错在哪里并改正;若正确,打“√”。
1、class MyClass
{ int var=100;
static int getVar()
{
return var;
}
}
2、public class MyClass
{
int data;
void MyClass(int d)
{ data=d;}
}
3、public class MyMain
{
public static void main(String args[ ])
{ System.out.println(MyClass1.data);}
}
class MyClass1
{
int data=10;
}
4、class IamAbstract
{
final int f;
double d;
abstract void method();
}
5、class parent
{
private int mine;
}
class child extends parent
{
int getMine()
{ return mine; }
}
6、class parent
{
private int mine;
int getMine( )
{
return mine;
}
}
class child extends parent
{
int mine;
int getMine( )
{ return super.getMine; }
}
7、 class AmIWrong
{
int data1,data2;
AmIWrong()
{ data1=-1; }
AmIWrong(int d)
{ data2=d;
this();
}
}
8、interface MyInterface
{
void method1();
}
abstract class Parent implements MyInterface
{
}
class Child extends Parent
{
void method1()
{
System.out.println(“I am implemented now!”);
}
}
9、public static void main(String args[ ])
{
try{
char ch=(char)System.in.read();
. . .//其他语句
}
catch(Exception e)
{
return;
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
10、public class AmIWrong implements Runnable
{
Thread mt=Thread(this);
mt.start();
void run()
{
System.out.println(“I am alive now”);
}
}
四、程序阅读
1、阅读以下程序,输出结果为 。
class Q1{
public static void main(String args[ ]){
double d=1.23;
Dec dec=new Dec( );
dec.decrement(d);
System.out.println(d);
}
classs Dec{
public void decrement(double decMe){
decMe = decMe - 0.1;
}
}
2、以下程序的输出结果为 。
public class Short{
public static void main(String args[ ]) {
StringBuffer s = new StringBuffer(“Hello”);
if((s.length( )>5)&& (s.append(“there”) . equals(“False”)))
;
System.out.println(“value is ”+s);
}
}
3、以下程序段的输出结果为 。
int x=0,y=4, z=5;
if ( x>2){
if (y<5){
System.out.println(“Message one”);
}
else {
System.out.println(“Message two”);
}
}
else if(z>5){
System.out.println(“Message three”);
}
else {
System.out.println(“Message four”);
}
4、以下程序段的输出结果为 。
int j=2;
switch ( j ) {
case 2:
System.out.print(“Value is two.”);
case 2+1 :
System.out.println(“Value is three.”);
break;
default:
System.out.println(“value is “+j);
break;
}
5、 阅读以下程序段:
class Parent
{
void printMe()
{
System.out.println(“parent”);
}
}
class Child extends Parent
{
void printMe()
{
System.out.println(“child”);
}
void printAll()
{
super.printMe();
this.printMe();
printMe();
}
}
public class Test_this
{
public static void main(String args[ ])
{
Child myC=new Child();
myC.printAll();
}
}
输出结果为:
6、以下程序段的输出结果为 。
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1= =n2);
System.out.print(“,”);
System.out.println(n1! =n2);
}
}
7、已有Bird类的定义如下:
package abcde;
public class Bird {
protected static int referenceCount=0;
public Bird(){referenceCount++;}
protected void fly(){ }
static int getReCount(){return referenceCount;}
}
有类Nightingale的定义如下,请写出它的输出结果 。
package singers;
class Nightingale extends abcde.Bird {
Nightingale( ) { referenceCount++;}
public static void main( String args[ ]){
System.out.print(“Before:”+referenceCount);
Nightingale florence=new Nightingale( );
System.out.println(“ After:”+referenceCount);
florence.fly( );
}
}
8、以下程序段的输出结果为 。
class Cruncher{
void crunch( int i ){
System.out.println(“int version”);
}
void crunch(String s){
System.out.println(“String version”);
}
public static void main(String args[ ]){
Cruncher crun=new Cruncher ( );
char ch=’p’;
crun.crunch(ch);
}
}
第二页
( )1、所谓静态初始化器就是在构造函数之前加上static修饰符。
( )2、java application 是同独立解释器程序来运行的。
( )3、java的字符类型彩是Unicode编码,每个unicode码占8个比特。
( )4、子类的域和方法的数目一定天于等于父类的域和方法和数目。
( )5、构造函数是类的一种特殊函,它的方法名必须与类名相同,它的返回类型只能是void
( )6、Vector类中的对象不能是简单数据类型。
( )7、java中的String类的对象既可以是字符串常量,也可以是字符串变量。
( )8、在java中,一个类可同时定义许多同名的方法,这些方法,这些方法的形式参数的个数、类型或顺序各不相同,这种面向对象程序特性称为隐藏。
( )9、java中并非每个事件类都只对应一个事件。
( )10、一个类只能有一个父类,但一个接口可以有一个以上的父接口
( )11、抽象类没有具体对象,所以抽象类没有构造函数。
( )12、子类要调用父类的方法,必须使用super关键字
( )13、如果P是父类PARENT的对象而C是子类Child的对象,则语句c=p是正确的
( )14、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行
( )15、一个线种对象的具体操作是同run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Rnnnable接口并书定写其中run()方法的方法体
1、以下哪个代码段可以成功通过编译并在运行时打印出"yes"?()
A、 int x=100; Integer y=new Integer(100);
if(x==y){sysytem.out.println("yes");
B、 int x=100; float y=100.0f;
if(x==y){sysytem.out.println("yes");
C、integer x=new Integer(100)
integer y=new Integer(100)
int x=100; Integer y=new Integer(100);
if(x==y){sysytem.out.println("yes");
D、String x=new String("100");
String y=new String("100");
int x=100; Integer y=new Integer(100);
if(x==y){sysytem.out.println("yes");
2、在使用inter face声明一个接口时只可以用( )修饰符修饰该接口
A、private B、protected C、public D、private protected
3、设有下面两个赋值语句,以下说法正确的是
a=integer.parseInt("1024");
B=integer.va
展开阅读全文