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
版权声明:本文标题:java 习题答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708234760h517158.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论