您的当前位置:首页正文

java练习1(含答案)

来源:个人技术集锦
java练习1(含答案)

一、选择、填空(每题1分,共30分)

1、运行Java 程序需要的工具软件所在的目录是__A___。 A)JDK 的bin 目录 B)JDK 的demo 目录 C)JDK 的lib 目录 D)JDKR 的jre 目录 2、以下___B____不是Java中有效的关键字 A)const B) NULL C)false D) this

3、下列关于for循环和while循环的说法中哪个是正确的___A____

A)while循环能实现的操作,for循环也都能实现

B)while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果

C)两种循环任何时候都可替换

D)两种循环结构中都必须有循环体,循环体不能为空

4、下列关于Java 对import 语句规定的叙述中,错误的是___C__。 A)在Java 程序中import 语句可以有多个 B)在Java 程序中import 语句可以没有 C)在Java 程序中import 语句必须有一个

D)在Java 程序中import 语句必须引入在所有类定义之前 5、下列基本类型数据所占的字节数相同的是__A____ A) boolean和char B) int和float C) byte和short D) int和double

6、以下的选项中能正确表示Java语言中的一个double型常量的是 C

A) Float.MIN_V ALUE B) 1.8e-6F C) 2.0 D)abcf? 7、阅读下列代码后 public class Person{

int arr[]=new int[10];

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

正确的说法是 ____A____

A)编译时将产生错误 B)编译时正确,运行时将产生错误 C)输出为零 D)输出为空

8、下列语句序列执行后,k 的值是 C int i=6,j=8,k=10,m=7; if(i>j||m<=\"\" p=\"\"> A) 12 B)11 C) 10 D) 9

9、下列语句序列执行后,k 的值是 C int i=10, j=19, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=6; default : k/=j; }

A) 31 B) 32 C) 2 D) 33

10、下列语句序列执行后,ch1 的值是 B char ch1='A',ch2='W'; if(ch1+2 < ch2 ) ++ch1; A) …A?B) …B?C) …C?D) B

11.内部类是在一个类内嵌套定义的类。其特点描述错误的是(A ) (A)只能在定义它的类或程序段中或表达式内匿名使用,外部使用时必须给出类的全名

(B)可以使用它所在类的静态成员变量或实例成员变量,但不可以使用所在类中的局部变量

(C)可以作为其它类的成员,而且可访问它所在类的成员 (D)除static内部类外,不能在类内声明static成员 12、下列叙述中,错误的是__D_____

A)接口与类的层次无关 B)通过接口说明类所实现的方法 C)通过接口可了解对象的交互界面 D)接口与存储空间有关 13、System类在哪个包中 D A)

java.util

B)

java.io

C)

java.awt

D)

http://www..com/doc/6916875066.html,ng

14.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C ) A.捕获异常 B.抛出异常 C.声明异常 D.嵌套异常

15. 给出一段程序,试判断哪个是正确的结果( D ) public class MyProgram{

public static void main (String args[]){ try{

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

Syste m.out.println(“Finally executing”); } } }

A、无法编译,因为没有指定异常 B、无法编译,因为没有catch子句 C、Hello world

D、Hello world Finally executing

16、封装、继承和多态是Java语言的三大基本特性。 17、Java程序从 main方法开始执行。

18、Java中类成员的权限修饰词有以下几种:private, public, __protected___, __默认

____。其中,___public_____的限定的范围最大。

19、接口中所有属性均为___public______、___static______和___final_____的。

20、Java中所有类都是类___Object_____的子类。

21、final关键字能修饰__非抽象类___、___非抽象类成员方法__、__变量___。

22、在Java 中,3.14156D 表示的是______double______类型的数据。

23、复用代码的两种方法复用类组合和继承。

24、Java中的基本数据类型和对象引用类型分别存储在栈和栈。 25、一个对象是某个类的_成员对象___,如果要建立一个属于类Car的对象myCar,其语法格式为___Car myCar=new Car()__。

26、Java 不直接支持多继承,但可以通过_____接口_______实现多继承。

27、如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,请写出该类的声明头

_import java.awt.*________________。

28.用static修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。静态方法只能处理用关键字 static 修饰的数据。

29.比较两个对象里面的值是否相等,可以通过实现object中equals 方法的覆写来实现。

30.Java语言通过接口和类支持多重继承,使类继承具有更灵活的扩展性。

二、程序分析题(共30分)

2.1 对下面的程序,分析程序输出结果(10分) class Plate { Plate(int i) {

System.out.println(\"Plate constructor\");

} }

class DinnerPlate extends Plate { DinnerPlate(int i) { super(i);

System.out.println(\"DinnerPlate constructor\"); } }

class Utensil { Utensil(int i) {

System.out.println(\"Utensil constructor\"); } }

class Spoon extends Utensil { Spoon(int i) { super(i);

System.out.println(\"Spoon constructor\"); } }

class Fork extends Utensil { Fork(int i) { super(i);

System.out.println(\"Fork constructor\"); } }

class Knife extends Utensil { Knife(int i) { super(i);

System.out.println(\"Knife constructor\"); }

}

class Custom { Custom(int i) {

System.out.println(\"Custom constructor\"); } }

public class PlaceSetting extends Custom { private Spoon sp; private Fork frk; private Knife kn; private DinnerPlate pl; public PlaceSetting(int i) { super(i + 1);

sp = new Spoon(i + 2); frk = new Fork(i + 3); kn = new Knife(i + 4); pl = new DinnerPlate(i + 5);

System.out.println(\"PlaceSetting constructor\"); }

public static void main(String[] args) { PlaceSetting x = new PlaceSetting(9); } } 结果:

Custom constructor Utensil constructor Spoon constructor Utensil constructor Fork constructor Utensil constructor

Knife constructor Plate constructor DinnerPlate constructor PlaceSetting constructor

2.2 阅读程序,分析输出结果(20分) abstract class Base { public Base(int i) {

System.out.println(\"Base constructor, i = \" + i); }

public abstract void f(); }

public class AnonymousConstructor { public static Base getBase(int i) { return new Base(i) { {

System.out.println(\"Inside instance initializer\"); }

public void f() {

System.out.println(\"In anonymous f()\"); } }; }

public static void main(String[] args) { Base base = getBase(47); base.f(); } } 结果:

Base constructor, i =47 Inside instance initializer

In anonymous f()

三、改错题(10分),找出错误并写出正确答案 1 public class Contents{ 2 int i;

3 void Contents(int j){i=j;}//应该把void去掉 4 }

5 class Game { 6 Game(int i) {

7 System.out.println(\"Game constructor\"+i); 8 } 9 }

10 class BoardGame extends Game { 11 BoardGame(int i) { 12 Game(i); //super(i);

13 System.out.println(\"BoardGame constructor\"+i); 14 }

15 public static main(String[] args) { //漏写void 16 BoardGame x = new BoardGame(3); 17 } 18 }

19 public class Demotion {

20 void f(float x) { System.out.println(\"f1(float)\"); } 21 void testDouble() {

22 double x = 0; //应定义为float格式 23 System.out.println(\"double argument:\"); 24 f(x); 25 }

26 public static void main(String[] args) { 27 Demotion p = new Demotion(); 28 p.testDouble();

29 } 30 }

四、编程题(每题15分,共30分)

4.1编写Java应用程序实现下面数据的排序 int a[]={52, 38, 16,89, 24, 18, 0, 190, 87, 21} import java.util.*; public class Ssort {

public static void main(String[] args) { int a[]={52, 38, 16,89, 24, 18, 0, 190, 87, 21}; Arrays.sort(a);

System.out.println(\"排序之后的结果: \"); for(int i = 0; i < a.length; i++){ System.out.print(a[i] + \} } }

4.2编写一个算法求n!。 import java.util.*; import java.io.*; class aa {

public static void main(String[] args) throws IOException { int sum=1,num;

String str;

System.out.println(\"请输入n:\"); BufferedReader buf; buf=new

InputStreamReader(System.in));

str=buf.readLine(); num=Integer.parseInt(str); if(num!=0)

BufferedReader(new

{

for(int i=1;i<=num;i++) {

sum=sum*i; } }

else{ System.out.println(\"0的阶乘是0\"); }

System.out.println(\"n的阶乘是:\"+sum);}}

因篇幅问题不能全部显示,请点此查看更多更全内容