当前位置:文档之家› 《JAVA核心技术》基础试题

《JAVA核心技术》基础试题

《JA V A编程初步》测试题

一、选择题

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

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

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

C、只能被该类自身所访问和修改

D、只能被同一个包中的类访问

2、以下代码段将创建()个对象。

String s1="bc";

String s2="bc";

A、0

B、1

C、2

D、3

3、编译并运行以下程序,以下描述哪个选项是正确的()

1: class X{

2: protected String toString(){

3: return super.toString();}

4: }

A、编译通过运行无异常

B、编译通过但运行时出错

C、行2出错,不能成功编译

D、不能成功编译,行3出错

4、下列关于修饰符混用的说法,错误的是()

A、abstract不能与final并列修饰同一个类

B、abstract类中不可以有private的成员

C、abstract方法必须在abstract类中

D、static方法中能处理非static的属性

5、容器Panel和Applet缺省使用的布局编辑策略是()

A、BorderLayout

B、FlowLayout

C、GridLayout

D、CardLayout

6、以下标识符中哪项是不合法的( )

A、BigMeaninglessName

B、$int

C、1 st

D、$1

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

A、public static void main()

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

C、public static int main(String[ ] arg)

D、public void main(String arg[ ])

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

A、x[24]为0

B、x[24]未定义

C、x[25]为0

D、x[0]为空

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

int x=3; int y=10;

System.out.println(y%x);

A、0

B、1

C、2

D、3

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

A、String x="Hello"; int y=9; x+=y;

B、String x="Hello"; int y=9; if(x= =y) { }

C、String x="Hello"; int y=9; x=x+y;

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

11、编译运行以下程序后,关于输出结果的说明正确的是()

public class Conditional{

public static void main(String args[ ]){

int x=4;

System.out.println("value is "+ ((x>4) ? 99.9 :9));

}

}

A、输出结果为:value is 99.99

B、输出结果为:value is 9

C、输出结果为:value is 9.0

D、编译错误

12、以下声明合法的是()

A、default String s;

B、public final static native int w( )

C、abstract double d;

D、abstract final double hyperbolicCosine( )

13、关于以下application的说明,正确的是()

1: class StaticStuff

2: {

3: static int x=10;

4: static { x+=5;}

5: public static void main(String args[ ])

6: {

7: System.out.println("x=" + x);

8: }

9: static { x/=3;}

10: }

A、4行与9行不能通过编译,因为缺少方法名和返回类型

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:x=5

D、编译通过,执行结果为:x=3

14、关于以下程序代码的说明正确的是()

1. class HasStatic{

2. private static int x=100;

3. public static void main(String args[ ]){

4. HasStatic hs1=new HasStatic( );

5. hs1.x++;

6. HasStatic hs2=new HasStatic( );

7. hs2.x++;

8. hs1=new HasStatic( );

9. hs1.x++;

10. HasStatic.x- -;

11. System.out.println("x="+x);

12. }

13. }

A、5行不能通过编译,因为引用了私有静态变量

B、10行不能通过编译,因为x是私有静态变量

C、程序通过编译,输出结果为:x=103

D、程序通过编译,输出结果为:x=102

15、以下选项中循环结构合法的是()

A、while (int i<7)

{ i++;

System.out.println("i is "+i);

}

B、 int j=3;

while(j)

{ System.out.println(" j is "+j);

}

C、 int j=0;

for(int k=0; j + k !=10; j++,k++)

{ System.out.println(" j is "+ j + "k is"+ k);

}

D、 int j=0;

do{

System.out.println( "j is "+j++);

if (j = = 3) {continue loop;}

}while (j<10);

16、类Test1定义如下:

1.public class Test1{

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

3.

4.}

将以下哪种方法插入行3是不合法的。()

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

17、类Test1、Test2定义如下:

1. public class Test1

2.{ public float aMethod(float a,float b) throws

3. IOException { }

4. }

5. public class Test2 extends Test1{

6.

7.}

将以下哪种方法插入行6是不合法的。()

A、float aMethod(float a,float b){ }

B、public int aMethod(int a,int b)throws Exception{ }

C、public float aMethod(float p,float q){ }

D、public int aMethod(int a,int b)throws IOException{ }

18、关于以下程序段,正确的说法是()

1. String s1="abc"+"def";

2. String s2=new String(s1);

3. if(s1= =s2)

4. System.out.println("= = succeeded");

5. if (s1.equals(s2))

6. System.out.println(".equals() succeeded");

A、行4与行6都将执行

B、行4执行,行6不执行

C、行6执行,行4不执行

D、行4、行6都不执行

19、以下说法哪项是正确的()

1.class MyListener

2.extends MouseAdapter implements MouseListener{

3. public void mouseEntered(MouseEvent mev)

4. { System.out.println("Mouse entered."); }

5. }

A、以上代码可通过编译

B、不能通过编译,因为没有实现MouseListener接口中的所有方法

C、不能通过编译,因为类头定义不能分行

D、能通过编译,若组件用该类作为Mouse的监听者并且接收了mouse-exited事件,则在执行过程中会抛出异常

20、关于以下程序段的说法,正确的是()

1:class MyListener implements

2: ActionListener,ItemListener{

3: public void actionPerformed(ActionEvent ae){

4: System.out.println("Action");}

5: public void itemStateChanged(ItemEvent ie){

6: System.out.println("Item");

7: }

8:}

A、可通过编译

B、第2行产生编译错误

C、第3行产生编译错误

D、第5行产生编译错误

21、通过调用 new List(10,false)创建一个列表,关于该列表的几个说法哪项是错误的。()

A、该列表不支持复选

B、该列表有10个选项

C、根据需要该列表可能有垂直滚动条

D、该列表支持10个可见选项

22、以下哪项可能包含菜单条()

A、Panel

B、Frame

C、Applet

D、Dialog

23、以下代码完成画线功能,指出所画线的颜色()

1.g.setColor(Color.red.green.yello.cyan);

2.g.drawLine(0,0,100,100);

A、red

B、green

C、yellow

D、cyan

24、关于以下代码所画图形的说明,正确的是()

1.g.setColor(Color.black);

2.g.drawLine(10,10,10,50);

3.g.setColor(Color.red);

4.g.drawRect(100,100,150,150);

A、一条40像素长的垂直红线,一个边长为150像素的红色四方形

B、一条40像素长的垂直黑线,一个边长为150像素的红色四方形

C、一条50像素长的垂直黑线,一个边长为150像素的红色四方形

D、一条50像素长的垂直红线,一个边长为150像素的红色四方形

25、编译并运行以下程序(命令:java AB 1),关于运行结果的描述以下哪个选项是正确的()class AB{

public static void main(String [ ] args){

long i=0;

try{

i=Integer.parseInt(args[0]);

}catch(Exception e){ }

switch(i)

{case 0: System.out.println("0");

case 1: System.out.println("1");

default : System.out.println("default"); }

}

}

A、编译出错

B、打印出“0”

C、打印出“1”

D、打印出“default”

26、若JAVA程序中定义了3个类,编译后可生成()个字节码文件。

A、4

B、3

C、2

D、1

27、JAVA.awt共定义了()种布局编辑类。

A、3

B、4

C、5

D、2

28、JAVA中采用Unicode编码,一个Unicode编码占用()字节。

A、 16

B、1

C、2

D、4

29、不是构造函数特点的是()

A、构造函数与类名相同

B、构造函数可带参数也可不带

C、构造函数带有返回类型

D、构造函数主要完成对类对象的初始工作

30、Java不支持下面哪种继承?()

A、多实现继承

B、多接口继承

C、单实现继承

D、单接口继承

答案:

1—5 BBCDB 6—10 CBABB 11—15 CBCDC 16—20 BACAA

21—25 BBDBA 26—30 BCCCA

二、判断题

1、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。

2、用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。

3、Java的字符类型采用的是ASCII编码。

4、类及其属性、方法可以同时有一个以上的修饰符来修饰。

5、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点.

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

7、final类中的属性和方法都必须被final修饰符修饰。

8、最终类不能派生子类,最终方法不能被覆盖。

9、子类要调用父类的方法,必须使用super关键字。

10、一个Java类可以有多个父类。

11、如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。

12、一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。

13、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

14、接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。

15、用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。

16、使用方法length( )可以获得字符串或数组的长度。

17、设String对象s="Hello ",运行语句System.out.println(s.concat("World!"));后String对象s

的内容为"Hello world!",所以语句输出为

Hello world!

18、创建Vector对象时构造函数给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值。

19、所有的鼠标事件都由MouseListener监听接口的监听者来处理。

20、一个容器中可以混合使用多种布局策略。

答案

1、错误

2、错误

3、错误

4、正确

5、错误

6、正确

7、错误

8、正确

9、错误

10、错误

11、错误

12、错误

13、正确

14、正确

15、错误

16、错误

17、错误

18、错误

19、错误

20、正确

三、综合题

1、编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出"Welcome to

Java World!"。

public class HelloJava

{

public static void main(String args[])

{

System.out.println("Welcome to Java World!");

}

}

2、下列程序的输出结果会是什么?

public class Test

{

public static void main(String args[])

{

System.out.println("3" + "5");

System.out.println("3" + 5);

System.out.println(3 + "5");

}

}

程序运行结果为:

35

35

35

3、求一个整数的20%是多少,要求结果为整数(小数部分四舍五入),用以下表达式存在什么问题,应该

怎样写表达式?

int a,b;

b=a*20/100

解:表达式 b = a * 20 / 100 得不到想要的结果,所得到的结果只是 (a * 20)的结果除以100所得的商,如 a=4,则b=0,这并不是我们所要的,正确的表达式应该是:

b = (int) ((a * 20) / 100.0 + 0.5)

4、写出下面表达式的运算结果,设a=3,b=-5,f=true:

(1)--a%b++

(2)(a>=1&&a<=12?a:b)

(3)f^(a>b)

(4)(--a)<

解:(1)0

(2)a=3

(3) f

(4) 8

5、由命令行输入一个成绩a,使用switch结构求出a的等级。A:90-100,B:80-89,C:70-79,D:60-69,

E:0-59。

解:

import https://www.doczj.com/doc/4014948802.html,ng.Integer;

public class Ex5_8

{

public static void main(String args[])

{

int score, temp;

String grade;

if(args.length != 1) //处理参数数目不正确情况

{

System.out.println("Please Input a number!");

return;

}

score = Integer.parseInt(args[0]);

if (score < 0 || score > 100)

{

System.out.println("Please Input a legal score!");

return;

}

temp = score / 10;

switch (temp)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5: grade = "E"; break;

case 6: grade = "D"; break;

case 7: grade = "C"; break;

case 8: grade = "B"; break;

case 9:

case 10: grade = "A"; break;

default: grade = "Error Grade!";

}

System.out.println("score=" + score + " grade=" + grade);

}

}

6、有命令行输入一个4位整数,求该数反转以后的数,如原数是1234,反转后的数为4321。解:

import https://www.doczj.com/doc/4014948802.html,ng.*;

public class Ex6_9

{

public static void main(String args[])

{

int n, result, i, temp;

if(args.length != 1) //处理参数数目不正确情况

{

System.out.println("Please Input a number!");

return;

}

if (args[0].length() != 4)

{

System.out.println("Illegal number!");

return;

}

n = Integer.parseInt(args[0]);

if (n < 0)

{

System.out.println("Illegal number!");

return;

}

result = 0;

for (i = 1; i <= 4; i++)

{

switch (i)

{

case 1:

{

temp = n /1000; //获得千位数

result += temp; //转成个位数

break;

}

case 2:

{

temp = (n % 1000) / 100; //获得百位数result += 10 * temp; //转成十位数

break;

}

case 3:

{

temp = (n % 100) /10; //获得十位数

result += 100 * temp; //转成百位数 break;

}

case 4:

{

temp = (n % 10); //获得个位数

result += 1000 * temp; //转成千位数

break;

}

default:break;

}

}

System.out.println( n + " --> " + result);

}

7、假如有5个学生,学号分别为1、2、3、4、5,某项考试的成绩分别是76、85、93、 68、81,将所有学生的学号和成绩用一个二维数组表示,编一个程序找出最高分所对应的学号。

public class Ex7_8

{

public static void main(String args[])

{

//声明并初始化数组

int a[][] = { {1, 76}, {2, 85}, {3, 93}, {4, 68}, {5, 81} };

int i, max = 0;

for (i = 1; i < a.length; i++)

{

if (a[i][1] > a[max][1]) max = i;

}

//打印结果

System.out.println("No." + a[max][0] + " is the highest. ");

System.out.println("Highest score is : " + a[max][1]);

}

}

8、有一种数叫回文数,正读反读都一样,入12321便是一个回文数。编写一个程序,从命令行参数得到一个整数,判断它是否为回文数。

相关主题
文本预览
相关文档 最新文档