Java面向对象编程练习题 下载本文

内容发布更新时间 : 2024/5/2 7:33:35星期一 下面是文章的全部内容请认真阅读。

c=a;

A.a=10 b=50 c=10 B.a=10 b=30 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=30 11.以下程序段输出是( ) int x=1,y=0,a=0,b=0; i=(--a==b++)? - -a : ++b; j=a++; k=b; 2 -1 2

A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=2,j=-1,k=2 12.以下程序的输出是( ) int x=1,y=0,a=0,b=0; switch(x){ case 1: switch(y){

case 0: a++;break; case 1: b++;break; } case 2: a++;break; case 3: a++;b++; }

2 0

A.a=1, b=0 B.a=2,b=0 C.a=1, b=1 D.a=2, b=2 13.以下程序段输出是( ) int i=0,j=0,a=6;

if ((++i>0) || (++j>0 )) a++ :

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 14、下列程序运行的结果是 。 public class A{

public static void main(String args[]){ char c = 'd'; for (int i = 1; i <= 4; i++) { switch (i){ case 1: c = 'a'; break; case 2:

}

}

}

c = 'b'; break; case 3: c = 'c'; default: }

A.!

三、编程题

B.dbc! C.abc! D.abc!!

1.输入4个数,将这4个数按从小到大输出。

2.输入一个年份值,判断是否是闰年,输出相应的信息。

3.输入一元二次方程系数,若有实数根,求根并输出,否则输出“不是二次方程或没有实数根”的信息。 4.编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之

间,按1%收取汇费,如果金额大于500元,汇费为50元。 5.求某年某月的天数.

6.求从1到100之间所有奇数的平方和(用for、while和do……while编写程序)。 7.求S=1+2+3+…+n之和,S<1000的最大n的值。

8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

9.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将

剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个,到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少? 10.输出九九乘法表。

11.输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完

数。

12.输出100以内的全部素数。 13.求1!+2!+3!+……+10! 14.求2+22+222+2222+22222。 专题4 数组 一、填空题

1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:( )。

2.设有整型数组的定义:“int x[][]={{12,34},{-5},{3,2,6}};”则x.length的值为() 3.求取二维数组a[][]的第i行元素个数的表达式是( )。 4、一个一维数组有10个元素,则该数组可用的下标范围是 。 5、String S[]={“安徽”, “江苏”, “山东”};则S[1]的值是: 。

6、当声明一个数据组int arr[]=new int[5];时,这代表这个数组所保存的变量类型是 ,数组元素下标的使用范围是 。

二.选择题

1.设有定义语句“int a[]={66,88,99};”,则以下对此语句的叙述错误的是( )

A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组的元素的下标为1~3 D.数组中的每个元素是整数 2.设有定义“int[] a=new int[4];”则数组a的所有元素是( ) A.a0、a1、a2、a3 B.a[0]、a[1]、a[2]、a[3] C.a[1]、a[2]、a[3]、a[4] D.a[0]、a[1]、a[2]、a[3]、a[4] 3.下面哪个选项正确地声明了一个字符串数组 ( )

A.char[] str B.char[][] str C.String[] str D.String[10] str 4、假设有这样的数组创建:int a[]={1,2,3,4,5,6,7};则该数组长度为 。 A.4 B.5

C.6

D.7

5、下列二维数组的创建中错误的是 。 A.int a[][]=new int[3][] ; B.int[][] a=new int[3][4] ; C.int a[][]={{1,2},{3,4}} ; D.int [][] a=new int[][];

三、编程题

1.编写一个程序,计算一维数组中的最大值、最小值及其差值。 2.将一个数组中的数逆序重新存放。

3.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。

4.输出杨辉三角形。如:

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ……

5.求一个二维数组的每行最大数。 **专题5 面向对象 一、填空题

1. 如果一个方法不返回任何值,则该方法的返回值类型为 。

2. 如果子类中的某个方法名、返回值类型和_传递参数_______与父类中的某个方法完全一

致,则称子类中的这个方法覆盖了父类的同名方法。 3. 接口中所有的属性均为_公有__、__静态_____和_常量_____的

4. ?方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在

类之中定义。

5. 在Java程序中,通过类的定义只能实现 重继承,但通过 的定义可以实现多重继承关系。

6. 一般Java程序的类主体由两部分组成:一部分是 ,另一部分是 。 7. 分别用 关键字来定义类,用 关键字来分配实例存储空间。 8. 当一个类的修饰符为 时,说明该类不能被继承,即不能有子类。 9. 在Java中,能实现多重继承效果的方式是 。

二、选择题

1. 方法内定义的变量( )。

A.一定在方法内所有位置可见 B.可能在方法的局部位置可见 C.在方法外可以使用 D.在方法外可见

2. 方法的形参( )。

A.可以没有

C.必须定义多个形参

3. return语句()。

B.至少有一个 D.只能是简单变量 B.只可以返回数值 D.一个方法中可以有多个 B.int D.static

A.不能用来返回对象 C.方法都必须含有

4. main()方法的返回值类型是(。

A.boolean C.void

5. 编译并运行下面的程序,运行结果是( )。

public class A{

public static void main(String args[]){ A a=new A(); a.method(8); }

void method(int i){ “int: ”+i); }

void method(long i){ “long: ”+i); }

A.程序可以编译运行,输出结果为:“int: 8” B.程序可以编译运行,输出结果为:“long: 8” D.程序可以编译运行,但是没有输出

6. 能作为类及其成员的修饰符是( )。

C.程序有编译错误,因为两个method()方法必须定义为静态(static)的

A.interface C.protected

B.class D.public

7. 下列方法定义中,方法头不正确的是( )。

A.public static x(double a){…} C.void x(double d){…}

8. 构造方法在( )时被调用。

B.public static int x(double y){…} D.public int x(){…} B.使用对象的变量时 D.创建对象时

B.abstract private move(){…} D.abstract final class H1{…} B.封装 D.多态

A.类定义时

C.调用对象方法时

9. 下列哪个类声明是正确的( )。

A.public abstract class Car{…} C.protected private number; A.抽象 C.继承

11. 请看下面的程序段 class Person{

String name,department; int age;

public Person(String n){name=n;}

public Person(String n,int a){name=n; age=a;} public Person(String n, String d, int a ){

10. 下列不属于面向对象程序设计的基本特征的是( )。

//doing the same as two arguments version if constructer }

下面那个选项可以添加到// doing the same……处( )

A.Person(n,a) C.this(n,a)

12. 请看下面的程序段 class Test{ private int m;

public static void fun(){ //some code } }

方法fun()如何来访问变量m( )

B.this(Person(n,a)) D.this(name.age)

A.将private int m 改成protected int m B.将private int m 改成public int m C.将private int m 改成static int m A.void A(int x){…} C.A A(int x){…}

14. 请看下面的程序段 public class Test{ long a[]=new long[10];

pubic static void main(String args[]){ }

D.将private int m 改成int m B.public A(int x){…} D.int A(int x){…}

13. 有一个类A,对于其构造函数的声明正确的是( )。