Java面向对象程序设计 试题 下载本文

内容发布更新时间 : 2024/6/1 10:13:44星期一 下面是文章的全部内容请认真阅读。

一.选择题

1. 构造函数何时被调用?( )

A 类定义时;

B 使用对像属性时; C 使用对象方法时; D 对象被创建时。

2. 下列关于继承的说法哪个是正确的?( ) A 子类只继承父类的方法和属性; B 子类继承父类非私有属性和方法;

C 子类只继承父类的方法,而不继承父类的属于性; D 子类将继承父类的所有属性和方法。

3. 关于main方法下列说法哪个是正确的?( ) A 一个类中可以没有main 方法;

B 所有对象的创建都必须放在main方法中; C main 方法必须放在公共类中;

D main方法头的定义可以根据情况任意修改。 4. 下列语句中,属于多分支语句的是( ) A if语句 B switch语句 C do while语句 D for语句

5. 阅读下列代码,其运行结果是( ) public class Test{

public static void main(String args[]){ System.out.println(89>>1); } }

A 44 B 45 C 88 D 90 6. Java语言使用的字符码集是( ) A ASCII B BCD C DCB D Unicode

7. 试题内容:下面哪个代码段是正确的Java源程序( ) A package testpackage;

private class Test{//do something...} B import java.io.*; package testpackage;

public class Test{// do something...} C import java.io.*;

class Person{// do something...}

public class Test{// do something...} D import java.io.*;

Public class Test0{// do something...}

public class Test1{// do something...} 8. 下列哪些说法是正确的?( ) A Java 语言中,接口只允许单一继承 B Java 语言只允许实现一个接口

C Java 语言不允许同时继承一个类并实现一个接口 D Java 语言的单一继承使得代码更加可靠 9. 下列叙述中,正确的是( )

A 声明变量时必须指定一个类型 B Java认为变量number与Number相同 C Java中唯一的注释方式是\

D 源文件中public类可以有0或多个 10. 下面哪个赋值语句是错误的?( ) A float f = 11.1; B double d = 5.3E12; C char c = '\\r'; D byte bb = 127;

11. \运算符的操作数个数是 ( ) A 1个 B 2个 C 3个 D 4个

12. 已知:int[] a = new int[100];在下列给出的数组元素中,非法的是( ) A a[0] B a[1] C a[99] D a[100]

13. 以下语句有语法错的是( ) A int x=1;y=2;z=3

B for (int x=10,y=0;x>0;x++); C while (x>5); D for(; ;);

14. 以下有关类的构造函数继承的说明,正确的是( ) A 子类继承父类的构造函数,但不能自己定义

B 子类可定义自己的构造函数,但受父类定义的构造函数的限制 C 子类和父类均可独自定义自己的构造函数,但执行时的顺序有规定

D 如父类定义了构造函数,则子类只能继承父类的构造函数,不能自己定义 15. 整型数据类型中,需要内存空间最少的是( ) A short B long C int D byte 二.填空题

16. 设 int x=1,float y=2,则表达式 x / y的值是( )。

17. 执行下列语句后,sum的值为( )。 int sum=100;

for (int I=0; I<10;I++) {

sum-=I; }

18. 设i, j为整型变量且j=8,执行i= ++j后,i的值( )。 19. 基本语句包括三种基本结构:顺序结构、循环结构和( )。 20. 数组x定义如下:

int x[ ][ ]=new int[3][2] 则 x[2].length 的值为( )。

21. 在转向语句中,( )语句使得程序结束本次循环,回到循环的条件测试部

分继续执行。

22. 下列程序段的输出结果是( )。

c=?D?; switch(c) {

case ?C?:System.out.println(“CC”);

case ?D?:System.out.println(“DD”); }

23. 设x为float型变量, y为 double型变量, a为 int型变量,已知 x=2.5f, a=7 ,y=4.22 则表达式x-a%2*(int)x%(int)y的值为( )。 三. 程序分析题

24. 试题内容:下列程序段运行的结果是( ) Class AAA{

String str=new String(\ char[] ch={'a','b','c'};

public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch);

System.out.print(ex.str+\ Sytem.out.print(ex.ch); }

public void change(String str,char ch[]){ str=\ ch[0]='g'; } }

答案:good and gbc

25. 给出下面代码段,第9行和第10行哪行将引起一个编译的错误,为什么?( )

1) public class Test { 2) int m, n;

3) public Test() {}

4) public Test(int a) { m=a; }

5) public static void main(String arg[]) { 6) Test t1,t2; 7) int j,k; 8) j=0; k=0;

9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12) }

答案:第 10 行,生成的对象t2没有对应的构造函数

26. 已知类的定义如下,如果用下面三种不同的方法加载类,写出要求的结果:

执行语句 test_3 a1=new test_3() 后;a1.x的内容为( ) ;

执行语句

test_3 a1=new test_3(-2,5) 后;a1.y的内容为( )。 public class test_3{ int x ; int y ;

test_3(int a,int b){ x=a;

y=b; }

test_3(){ x=-1; y=-1; }

int get_x() {

return x++;

}

int get_y() {

return y--;

}

答案:-1 5 27. 下面的程序运行结果是 ( )。

public class Convert{

Convert( )

{ System.out.print(“Hello,”);}

public static void main(String[ ] args){ Convert v=new Convert( );

String str=”elcome.”;

v.prt(str);

}

void prt(String s) { String ch=”w”; ch+=s;

System.out.println(ch); }

}

答案:HelloWelcome

28. 下面程序有运行结果是( )。 public class TestStringBuffer{

public static void main (String[ ]args){ StringBuffer s1=new StringBuffer( );

StringBuffer s3=new StringBuffer(“How are you?”); s1.append(“do you come here?”); s3.setCharAt(1,’d’); System.out.println(s1); System.out.println(s3); } }

答案:do you come here? hdw are you? 四. 问答题

29. Java整形类型数据分为哪几种?

答案:字节型、短整型、整型、长整型 30. 什么是方法的重载?规则是什么?

答 案:

在同一类中定义了多个同名而不同内容的成员方法时,我们称这些方法是重载(overload)的方法。重载方法主要是通过形参列表中参数的个数、参数的数据类型和参数的顺序等方面的不同来区分。

31. 构造方法的特点是什么?

答案要点:构造方法的特点是:(1)构造方法名称必须与类名相同;(2)构造方

法不能有返回值;(3)用户不能直接调用构造方法,必须通过关键词new自动调用它。

五. 编程题

32. 编写输出1—20之间的奇数的程序。 参考答案:class Xxx{

public static void main(String[] args) { int s=0;

for(int i=1;i<=20;i=i+2) s=s+i; System.out.println(s);