当前位置:文档之家› Java基础试题及答案

Java基础试题及答案

《Java面向对象程序设计》
姓名:
一、判断题(15’)
1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。

错 finalize()方法
2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。

错方法赋值采用相应的方法
3.有的类定义时可以不定义构造函数,所以构造函数不是必需要写的。

对4.类及其属性、方法可以同时有一个以上的修饰符来修饰。


5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点错6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。

错7.Final类中的属性和方法都必须被final修饰符修饰。


8.最终类不能派生子类,最终方法不能被覆盖。


9.子类要调用父类的方法,必须使用super关键字。


10.一个Java类可以有多个父类。


二、选择题(30’)
1、关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是(C)
A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
3、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(D)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
4、下列关于修饰符混用的说法,错误的是(D)
A.abstract不能与final并列修饰同一个类
B. abstract类中不可以有private的成员
C.abstract方法必须在abstract类中
D. static方法中能处理非static的属性
5、容器Panel和Applet缺省使用的布局编辑策略是(B)
A、BorderLayout
B、FlowLayout
C、GridLayout
D、CardLayout
6、以下标识符中哪项是不合法的(C)
A、 BigMeaninglessName
B、$int
C、1 s
D、$1
7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的(B)
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)
A、x[24]为0
B、x[24]未定义
C、x[25]为0
D、x[0]为空
9、以下代码段执行后的输出结果为(B)
int x=3; int y=10;
System.out.println(y%x); %为取余
A、0
B、1
C、2
D、3
10、以下哪个表达式是不合法的(D)
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
三、改错题(20’)
判断下面的程序片断是否正确。

若有错,指出错在哪里并改正;若正确,打“√”。

1、class MyClass
{ int var=100;
static int getVar()
{
return var;
}
}
错static int var=100;
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;
}
错 data改为静态的
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; }
}

四、程序阅读(20’)
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;
}
}
结果为:1.23
2、以下程序的输出结果为。

public class Short{
public static void main(String args[ ]) { StringBuffer s = new StringBuffer(“Hello”);
;
System.out.println(“value is ”+s);
}
}
输出Value is Hello
3、以下程序段的输出结果为。

int x=0,y=4, z=5;
if ( x>2){
if (y<5){
Sy stem.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”);
}
结果为: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;
}
结果为Value is two
Value is three
While 如果不写break 将继续运行下一个直到找到break才跳出循环
五.编程(15’)
1.用冒泡排序法对一维数组a中的元素按值从小到大进行排序。

其中:Int a[]={20,3,-2,60,15};
2.编程创建一个Student类,在其中包括属性(学号,班号,姓名,性别,年龄)和方法(获得学号,班号,姓名,性别,修改年龄)并创建对象s。

添加构造方法初始化所有的属性,并增加一个toString()方法,把该类中的所有属性信息组合成一个字符串。

创建两个Student 类的对象,比较二者年龄,输出其中年龄大的学生的姓名。

相关主题