admin 管理员组

文章数量: 887033


2024年2月18日发(作者:c语言len用法)

一、选择题

1、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )

A) static void method() B) public void method()

C) final void method() D) abstract void method()

2、Java中main()函数的返回值是什么类型( D )

A) String B) int C) char D) void

3、以下说法正确的是( A)

A)

Java中所有的方法都必须在类内定义

B) Java中主方法可以不在类内定义,其他方法都必须定义在类内

C) Java中主方法必须定义在类内,其他方法可以不必定义在类内

D) Java中所有方法都不必在类内定义

4、Java不支持多重继承,但我们可以通过( B )实现

A)

多态 B) 接口 C) 覆盖 D) 抽象类

5、已知表达式int[] m = {0, 1, 2, 3, 4, 5, 6 };下面哪个表达式的值与数组元素个数相等(B )

A) () B) C) ()+1 D) +1

6、所有的异常类皆继承哪一个类( C )

A)

ion B) ble

C) ion D)

7、关于布尔类型说法正确的是( A )

A)

boolean表示布尔类型,它的取值只有true和false

B) bool表示布尔类型,它的取值只有true和false

C) boolean表示布尔类型,它的取值只有1和0

D) bool表示布尔类型,它的取值只有1和0

8、在异常处理中,如释放资源、关闭文件等善后操作由( C )来完成

A)

try子句 B) catch子句 C) finally子句 D) throw子句

9、要开发Java程序,需要安装的开发包是( A )

A)

jdk B) eclipse C) notepad

1

D) 记事本

10、给出下面的代码段:

public class Test

{

static int arr[] = new int[10]; 初始化了10个整形的数组

public static void main(String a[])

{

n(arr[1]);

}

}

哪个语句是正确的( C )

A)

编译时将产生错误 B) 编译时正确,运行时将产生错误

C) 输出零 D) 输出空

(没赋值,默认系统全部赋值为0)

11、如下哪个字符串是Java中的标识符( A )

A)

fieldname B) super C) 3number

12、以下哪项是接口的正确定义( D )

A) interface B { void print(){ }; }

D) #number

B) abstract class B { void print(); }

C) abstract interface B extends A1,A2 //A1、A2为已定义的接口

{ abstract void print(){ }; }

D) interface B { void print(); }

13、以下代码段执行后的输出结果为( B )

int x=3; int y=10;

n(y%x);

A)

0 B) 1 C) 2 D) 3

14、不允许作为类及类成员的访问控制符的是(C )

A)

public B) private C) static D) protected

15、执行完代码int[ ] x = new int[25]; 后,以下哪项说明是正确的(A )

A)

x[24]为0 B) x[24]未定义 C) x[25]为0 D) x[0]为空

16、类Text定义如下:

public class Test

{

public float aMethod(float a, float b){}

2

// ***

}

将以下哪种方法插入行"//***"是不合法的。( b )

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) public float aMethod(int a, int b, int c) {}

17、在Java语言中,下列哪个包是编译器自动导入的(A )

A)

B) C) D)

18、关于类和对象的叙述正确的是(A )

A)

Java的类分为两大部分:系统定义的类和用户自定义的类

B) 类的静态属性和全局变量的概念完全一样,只是表达形式不同

C) 类的成员至少有一个属性和一个方法

D) 类是对象的实例化

19、以下语句中,没有创建出字符串对象的是(A )

A)

String str; B) String str = "hello";

C) String str = new String( ); D) new String("hello");

20、A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明

① A a0 = new A();

② A a1 = new B();

③ A a2 = new C();

请问以下哪个说法是正确的(D )

A)

只有第1行能通过编译

B) 第1、2行能通过编译,但第3行编译出错

C) 第1、2、3行能通过编译,但第2、3行运行时出错

D) 第1行、第2行和第3行的声明都是正确的

21、判断两个字符串s1,s2值是否相等,需要使用( d )

A)

if(s1=s2) B) if(s1==s2)

C) if(equals(s1,s2)) D) if((s2))

22、以下哪个表达式是不合法的( B )

3

A)

String x = "Sky"; int y = 5; x += y;

B) String x = "Sky"; int y = 5; if(x==y){}

C) String x = "Sky"; int y = 5; x=x+y;

D) String x = null; int y=(x!=null) && (()>0)?():0;

23、在子类的构造函数中要调用父类的构造函数,需要用哪个关键字( D )

A)

final B) extends C) implements D) super

24、有以下方法的定义,请选择该方法的返回类型( C )

int method(byte x, double y)

{ return (short)x/y*2; }

A)

byte B) short C) int D) double

25、在Java中,一个源文件可以存放几个公有类(即被public修饰的类)(A )

A)

1个 B) 2个 C) 3个 D) 无数个

26、编译之后,得到了三个字节码文件: , MyClasslittle$.class,MyClass$。这表明(C )

A) MyClass类中的两个方法:little和1

B) 中有三个类:MyClass、little和1

C) MyClass类中有两个内部类:一个是命名的little,另一个是匿名的1

D) MyClass、little和1,这三者没什么关系

27、下面哪个函数是public void example(){...}的重载函数( D )

A)

public double example2(int m) {...} B) public int example() {...}

C) public void example2() {...} D) public int example(int m, float f) {...}

28、下面哪个不是java语言中的关键字( B )

A)

long B) sizeof C) instanceof D) const

29、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(c )

A)

可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B) 可以被两种类访问和引用:该类本身、该类的所有子类

C) 只能被该类自身所访问和修改 D) 只能被同一个包中的类访问

30、以下有关构造方法的说法,正确的是(A )

4

A) 一个类的构造方法可以有多个

B) 构造方法在类定义时被调用

C) 构造方法只能由对象中的其它方法调用

D) 构造方法可以和类同名,也可以和类名不同

31、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(b )

A) .java B) .class C) .html D) .exe

32、main方法是Java程序执行的入口点,关于main方法的方法头以下哪项是合法的( B )

A)

public static void main B) public static void main(String[] args)

C) public static int main(String[] args)

33、给出如下代码:

class Test{

private int m;

public static void fun() {

//

}

}

如何使成员变量m 被函数fun()直接访问(C )

A) 将private int m改为protected int m B) 将private int m改为public int m

C) 将private int m改为static int m D) 将private int m改为int m

34、Java中复合数据类型不包括(D )

A)

类类型 B) 数组 C) 接口类型 D) 指针

35、下列语句中,能正确创建一个名为scu的包是(c )

A)

import ; B) import scu;

C) package scu; D) package ;

36、void的含义( C )

A) 方法体为空 B) 定义的方法没有形参

C) 定义的方法没有返回值 D) 方法的返回值不能参加算术运算

37、Java应用程序的入口方法是(D )

A)

start B) init C) helloWorld

5

D) public void main(String args[])

D) main

38、关于Java语言叙述错误的是(C )

A)

Java语言具有跨平台性

B) Java是一种面向对象的语言

C) Java语言中的类可以多继承(只能是单继承)

D) Java的垃圾收集机制自动回收程序已不再使用的对象

39、给出下面的代码段:

public class Base{

int w, x, y ,z;

public Base(int a,int b)

{ x=a; y=b; }

public Base(int a, int b, int c, int d)

{

// assignment x=a, y=b

w=d; z=c;

}

}

在代码说明 //assignment x=a, y=b处写入如下哪个代码是正确的( d)

A)

Base(a,b); B) x=a, y=b; C) super(a,b); D) this(a,b);

40、创建字符串String s=new String("xyzy"); 以下哪条语句将改变s(D )

A)

("a"); B) (s); C) ing(3); D) 以上语句都不会

二、判断题

1、Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。(错 )一个字符一律占用2个字节

2、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。( 错 )

3、子类的属性和方法的数目一定大于等于父类的属性和方法的数目。( 错 )

4、Java中数组的元素可以是简单数据类型的量,也可是某一类的对象。(对 )

5、在方法定义中,所以可能发生的异常都必须用try{} catch(){}捕捉。(错 )

6、Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。( 对 )

7、Java的字符类型采用的是ASCII编码。(错 )

6

8、class A{...}等价于class A extends Object{...}。( 对)

9、接口里的方法必须全部都声明成abstract。(对 )

10、注释的作用是使程序在执行时在屏幕上显示"//"之后的内容。(错 )

11、一个Java类可以有多个父类。( 错 )

12、Java中数组的元素只能是简单数据类型的量。(错 )

13、不能在静态方法中使用this。( 对 )不能在静态方法中使用this,因为this默认的对象引用,静态方法被调用时,this所引用的对象并没有产生,this无所指向.

14、最终类能派生子类,最终方法能被重载。( 错 )

15、Java语言是平台无关的语言。(对 )

16、Java的源代码中定义几个类,编译结果就生成几个以".class"后缀的字节码文件。(对 )

17、System类不能实例化,即不能创建System类的对象。( 对 )System类当然不能实例化,它是抽象类嘛,所有前面带有 abstract 的类都不能实例化

18、类的静态方法中可以访问该类的非静态数据成员。(错 )

19、覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。(对 )

20、抽象类中不能创建对象。(对 )

三、填空题

1、创建一个名为MyPackage的包的语句是( age; ),该语句应该放在程序的位置为(最开头 )。

2、程序中定义类使用的关键字是class,每个类的定义由类头定义、类体定义两部分组成,其中类体部分包括( 属性 )和( 方法 )。

3、创建类的对象时,使用运算符(new )给对象分配内存空间。

4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用(2 )字节内存空间。

5、Java程序中定义接口所使用的关键字是(interface ),接口中的属性都是(public),接口中的方法都是(抽象 )。

6、在Java程序中,通过类的定义只能实现( 单 )继承,但通过接口的定义可以实现( 多 )继承关系。

7、数组x定义如下:int x[ ][ ] = new int[3][2]; 则的值为(3 ),x[0].length的值为( 2 )。

8、( 抽象 )方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽

7

象类或接口之中定义。( final )方法是不能被当前类的子类重新定义的方法。

9、关键字(import )用于导入包中的类到程序中,供程序中使用。

10、Java中所有类都是类( )的子类。

11、在子类中使用关键字( super )做前缀可调用被子类覆盖的父类中的方法。

12、面向对象程序设计所具有的基本特征是抽象性、( 封装性)、继承性与( 多态性 )。

四、简答题

1、什么是重载,什么是覆盖,有什么区别和共同点?

重载:方法名相同,参数个数,类型不同,返回值不同;

覆盖:子类中定义的方法与父类中方法名,参数个数,类型,返回值都相同,但方法体不同

2、谈谈final与finally的区别?

final:用来修饰方法与属性,被修饰的方法与属性都不能够在之后被修改.被final修饰的属性叫做宏变量,必须赋予初值

finally:在try{…}catch(Excepiton e){…}之后选择使用,特点是无论前面执行如何,finally{..}块的语句必须执行

3、抽象类与接口的区别是什么?

抽象类:用abstract关键字修饰,抽象类里面可以有抽象方法和具体方法,一个类具有抽象方法就一定是抽象类.抽象类可以被子类继承而实现其抽象方法

接口:一种特殊的抽象类,里面的方法都是抽象的,不能有具体方法,但可以省略abstract关键字,里面的属性都是被final修饰,一个类可以实现多个接口,用implement关键字,弥补java缺少多继承的情况

五、编程题

1、 请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face和suit:face描述一张牌的牌面值(如:"Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven",

"Eight", "Nine", "Ten", "Jack", "Queen", "King");suit描述一张牌的花色(如:"Hearts",

8

"Diamonds", "Clubs", "Spades")。

定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值;定义protected访问权限的方法getSuit(),得到扑克牌的花色;定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如"Ace of Hearts"、"Ten of Clubs"等)

public class Card

{

private String face;

private String suit;

public Card(String face, String suit)

{

= face;

= suit;

}

protected String getFace()

{

return face; // 返回牌面值

}

protected String getSuit()

{

return suit; // 返回牌花色

}

public String toString()

{

return face + " of " + suit; // 返回面值和花色

}

public static void main(String[] args)

{

Card a = new Card("Ace", "Hearts");

n("牌面值为:" + e());

n("牌花色为:" + t());

n("该扑克牌为:" + ng());

}

}

9

2、 构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,主要包括:取得点的坐标值,对点的坐标进行赋值。编写应用程序生成该类的对象并对其进行操作。

class Point

{

private int x, y;

public Point(int x, int y)

{

this.x = x;

this.y = y;

}

public String getPiont()

{

return "(" + x + "," + y + ")";

}

public void setPoint(int x, int y)

{

this.x = x;

this.y = y;

}

}

public class Test

{

public static void main(String[] args)

{

Point p = new Point(3, 4);

n("改点的坐标为:" + nt());

nt(5, 6);

n("修改后的坐标为:" + nt());

}

}

10

3、编写一个Java程序,接受用户从键盘输入的10个整数,并输出这10个整数的最大值和最小值。

import r;

public class test {

public static void main(String[] args) {

Scanner input = new Scanner();

("输入10个数:");

int[] numbers = new int[10];

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

numbers[i] = t();

}

//找出最大数和最小数

int max = numbers[0];

int min = numbers[0];

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

if (max <= numbers[i]){

max = numbers[i];

}

if (min >= numbers[i]){

min = numbers[i];

}

}

n("最大数:"+max);

n("最小数:"+min);

}

}

4、编写一个完整的Java 程序使用复数类Complex验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。复数类Complex必须满足如下要求:

(1)复数类Complex的属性有

RealPart:int型,代表复数的实数部分;ImaginPart:int型,代表复数的虚数部分。

(2)复数类Complex的方法有

Complex( ):构造函数,将复数的实部和虚部都置0。

Complex( int r, int i ):构造函数,形参r为实部的初值,i为虚部的初值。

Complex complexAdd(Complex a):将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。

String ToString( ):把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。

11

public class Test

{

public static void main(String[] args)

{

Complex a = new Complex(1, 2);

Complex b = new Complex(3, 4);

Complex c = new Complex();

c = xAdd(b);

n("第一个复数:" + ng());

n("第二个复数:" + ng());

n("两复数之和:" + ng());

}

}

class Complex

{

private int RealPart; // 复数的实部

private int ImaginPart; // 复数的虚部

public Complex()

{

RealPart = 0;

ImaginPart = 0;

}

public Complex(int r, int i)

{

RealPart = r;

ImaginPart = i;

}

public Complex complexAdd(Complex a)

{

Complex temp = new Complex(); // 临时复数对象

rt = RealPart + rt;

Part = ImaginPart + Part;

return temp;

}

public String toString()

{

return (RealPart + "+" + ImaginPart + "i");

}

}

12


本文标签: 方法 定义 程序 对象