您的当前位置:首页Java程序设计复习题 (1)

Java程序设计复习题 (1)

2020-09-25 来源:乌哈旅游
一、单选题:在下列各题的备选答案中选择一个正确的。(每题2分,共20分) 1、下列方法中不是键盘事件KeyEvent实现方法的是( )

A .keyPressed(KeyEvent e) B .keyReleased(KeyEvent e) C .mouseClicked(MouseEevent e) D .keyTyped(KeyEvent e) 2、下列关于接口的描述,正确的是( C )

A 抽象类可以使用extends关键字来继承接口 B 接口可以被实例化 C 接口可以继承多个父接口 D 接口具有继承性,但不能继承父接口的所有属性和方法

3、下面的方法,当输入为2的时候返回值是多少?( C ) public int getValue(int i) { int result = 0; switch (i) { case 1:

result = result + i; case 2:

result = result + i * 2; case 3:

result = result + i * 3; }

return result; }

A)0 B)2 C)4 D4、下列叙述中,正确的是( A ) A)声明变量时必须制定一个类型 B)Java认为变量number与Number相同 C)Java中唯一的注释方式是“//” D)源文件中public类可以有0个或者多个 5、如下Java代码段,体现了( B )概念。 public void aMethod(String s){....}

Java程序设计2 第1页 共6页

)10 public void aMethod(int i){.........}

public void aMethod(int I,float f){.....} ..... A)多继承 B)重载 C)重写 D)多态

6、下列标识符(名字)命名原则中,正确的是( D ) A)类名的首字母小写 B)变量和方法名的首写字母大写 C)接口名的首写字母小写 D)常量完全大写

7、Java的核心包中,提供编程应用的基本类的包是( A ) A)Java.lang B) Java.util C) Java.applet D) Java.rmi 8、Panel默认的布局管理器是( A )

A) FlowLayout B) GridLayout C) BorderLayout D) FlowLouLayout 9、File类是IO包中唯一表示磁盘文件信息的对象,它定义了一些与平台无关的方法来操纵文件。通过调用File类提供的各种方法,我们能够创建、删除文件、重命名文件、判断文件的读写权限及是否存在,设置和查询文件的最近修改时间等。下面的代码片段实现的是什么功能?( B )

File file = new File(\"C:\\\est.dat\"); if (file.exists()) { file.delete(); }

A)创建C:\est.dat B) 删除C:\est.dat C) 打开C:\est.dat文件输出流 D) 移动C:\est.dat 10.下列常见的系统定义的异常中,哪个是输入、输出异常? ( B ) A)ClassNotFoundException B)IOException

C)FileNotFoundException D)UnknownHostException

11、下列属于合法的Java标志符是( D ) A “ABC” B &5678 C +newer D saler 12、下列数组的初始化正确的是( )b

Java程序设计2 第2页 共6页

A int[] score =new int[5]; B int[] score = new int[5]{1,2,3,4,5};

C int[5] score = new int[]{1,2,3,4,5}; D int score = {1,2,3,4,5}; 13、下列叙述中,正确的是( A ) A 声明变量时必须指定一个类型 B Java认为变量number与Number相同 C Java中唯一的注释方式是“//”

D 源文件中public类可以有0个或者多个

14.有以下方法的定义,请选择该方法的返回类型( D )。

ReturnType method(byte x, double y) { return (short)x/y*2; }

A、byte B、short C、int D、double

15、有语句String s=”hello world”; ,以下操作哪个是不合法的?( B ) A、int i=s.length(); B、s>>>=3;

C、String ts=s.trim(); D、String t=s+”!”; 16、以下程序的输出结果是( A ) int x=3,y=6;

System.out.print (x/y);

A 0 B 0.5 C 2 D 错误信息 17、下列关于构造方法的叙述中,错误的是( C ) A Java语言规定构造方法名与类名必须相同

B Java语言规定构造方法没有返回值,但不用vold声明 C Java语言规定构造方法不可以重载

D Java语言规定构造方法只能通过new自动调用

18、关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C ) A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

19、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。

A、隐藏 B、覆盖 C、重载 D、Java不支持此特性

20、有如下程序段: int a = 5,b = 5;

String s1 = new String(\"祝你今天考出好成绩!\"); String s2 = new String(\"祝你今天考出好成绩!\"); 则表达式a == b与s2 == s1的结果分别是:( C )。

Java程序设计2 第3页 共6页

A、true与true B、false与true C、true与false D、false与false

二、程序填空题:在下列各题的程序空缺处填入正确的语句。(每空2分,共20分) 1、public class Exam1 {

} }

此程序的输出结果为: n1=4 n2=0 n3=9 2、class Demo1 {

public static void main(String[] args) { public static void main(String args[]){ String s=\"java%##%&JAVA\"; int n1=0,n2=0,n3=0;

for(int i=0;i='a'&&a<='z'){n1++;} else if(a>='A'&&a>='Z'){n2++;} else{n3++;} }

System.out.println(“n1=”+n1); System.out.println(“n2=”+n2); System.out.println(“n3=”+n3);

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

}

if (i%2 == 0) continue; System.out.print(i + \" \");

Java程序设计2 第4页 共6页

此程序的输出结果为: 1 3 5 7 9 3、以下程序运行后的输出结果是 class Test {

{

int i,j,x=0; for(i=0;i<2;i++) {

x++; for(j=0;j<=3;j++)

{

if(j%2==true) continue; x++; } x++; }

System.out.println(“x=”+x); }

此程序的输出结果为: X=8 4. 判断输入的整数能否被3或7整除. public class Welcome {

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

int x,f=0;

Scanner in=new Scanner(System.in); x = in.nextInt();

if (x%3==0||x%7==0) (1) f++; (2)

if(f==1) System.out.println(“ YES”); else System.out.println(“ NO”); public static void main(String[] args) {

Java程序设计2 第5页 共6页

}

5. import java.awt.*; import java.awt.event.* ; import javax.swing.* ;

public class Hello extends JFrame implements actionListener { JTextArea tf;

JButton bt_show,bt_clear,bt_exit; public Hello( ){ super(\"Hello\");

Container c=getContentPane( );

bt_show=new JButton(\"显示\"); //创建一文本为\"显示\"的按钮 bt_clear=new JButton(\"清除\");//创建一文本为\"清除\"的按钮 bt_exit=new JButton(\"退出\");//创建一文本为\"退出\"的按钮 tf=nw JTextArea(5,30);

c .setLayout (new FlowLayout()); c .add (bt_show); c .add (bt_clear); c .add (bt_exit); c .add (tf);

bt_show. (3) (this); bt_clear. (4) (this); bt_exit. (5) (this); setSize(350,200);//设置界面大小 setLocation(200,200) ;//设置界面位置 setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultLookAndFeelDecorated(true);

Java程序设计2 第6页 共6页

}

public void (6) (ActionEvent e){

if(e.getSource()==bt_show) //判断事件源是否是bt_show tf .setText(\"欢迎你学习Java!\");

else if( (7) ) //判断事件源是否是bt_clear tf .setText(\" \"); else

System.exit(0); }

public static void main (String[]args){

Hello fm=new Hello(); }

6. 下面的程序由用户输入一个姓名,在一个给定的名单中进行查找,找到则输出这个名字在名单中的顺序号,找不到则给出相关提示。请填空完善程序。 import java.util.*; //导入java.util包,准备使用Scanner类 publicclassFillBlank_3{

publicstaticvoid main(String[] args){

String[] nameList = {\"张爱民\李小华\王中军\赵伟\孙大庆\何小泉\

String inputName; int i, index = -1;

Scanner scan = newScanner(System.in); //创建一个Scanner类的对象scan

System.out.print(\"请输入要查找的姓名:\");

inputName = scan.nextLine(); //通过对象scan的方法输入字符串

for(i=0;iif ( nameList[i].equals(inputName) ) index Java程序设计2 第7页 共6页

=i ;

if (index!=-1) System.out.println(\"此人是名单中的第\"+( index+1 )+\"个\");

else System.out.println(\"此人不是名单中的\") ; ; } }

三、编程题:编写实现下列程序。() 1.编写一个程序,输出在字符串

“ourteacherisgoodmanourteacherisgoodteacherourteacherisgoodguy\"”中,子串“teacher”出现的次数。

public class test1 {

private static int counter = 0;

public static void main(String[] args) {

String str=\"ourteacherisgoodmanourteacherisgood teacherourteacherisgoodguy\"; int i = stringNumbers(str);

System.out.println(\"teacher出现的次数为:\"+i); }

public static int stringNumbers(String str) {

if (str.indexOf(\"teacher\")==-1) { return 0; }

else if(str.indexOf(\"teacher\") != -1) { counter++; stringNumbers(str.substring(str.indexOf(\"teacher\")+4)); return counter; } //如果子字符串不是一个首尾相同的字符串,还可以这样实现: if(str.indexOf(\"teacher\") != -1) { String[] str1 = str.split(\"teacher\");

Java程序设计2 第8页 共6页

System.out.println(str1.length-1); } else { System.out.println(0); } return 0; } }

运行结果如下图:

标文件名为text2,内容为“世界安好”

2、利用字节流和字符流拷贝一个文本文件,源文件名为text1,内容为“世界安好”,目

import java.io.*;

public class FileCopyDemo{

public static void main(String[] args)throws IOException{

BufferedReader br = new BufferedReader(new FileReader(\"D:\\\ext1\"));

BufferedWriter bw = new BufferedWriter(new FileWriter(\"D:\\\ext2\"));

String line = \"\";

while((line=br.readLine())!=null){ bw.write(line); bw.newLine(); bw.flush(); }

bw.close(); br.close(); } }

Java程序设计2 第9页 共6页

3、编写一个JFrame窗口,要求在窗口上方放置JLabel标签,默认显示“显示鼠标右键点击坐标”,然后为该窗口添加一个鼠标事件,能够在鼠标右键点击窗口时,Jlabel标签中显示坐标。

4.设计一个简单的GUI应用程序,用户可以通过键盘上的方向键来移动界面中的按钮。 5、设计一个People类和一个子类Student类,要求如下

1)People类有name,age属性,一个包含两个参数的方法,用于给两属性值赋值,一个show方法显示People属性信息。

2)编写Student类,增加degree属性,并设计一个三个参数的构造方法,前两个参数用于继承People类中属性赋值,第三个参数给degree赋值,一个show方法显示Student属性信息 3) 测试类中分别创建People类和Student类,并分别调用show方法

People.java

public class people { private String name; private int age; public people(String name,int age){ this.name=name; this.age=age; } public void show(){ System.out.println(\"姓名:\"+name+\年龄:\"+age); } }

student.java

public class student extends people{ private String degree; public student(String name,int age,String degree){ super(name,age); this.degree=degree; } public void show(){ super.show(); System.out.print(\"学士学位是:\"+degree); }

Java程序设计2 第10页 共6页

test.java

public class test { public static void main(String[] args) { people p=new people(\"张三\",18); p.show(); student s=new student(\"李四\",20,\"博士\"); s.show(); } } }

运行结果

6.编写顾客类(Customer),它有三个属性name、address和phoneNo,都是String类型,类头声明为:public class Customer{}。完成它的构造函数,为每个属性编写赋值和取值方法,比如对属性name,赋值方法名为setName,目的是给属性name来赋值,取值方法名为getName,目的是得到属性name的值。

public class Customer { private String name,address,phoneNo; public Customer(String name,String address,String phoneNo){ this.name=name; this.address=address; this.phoneNo=phoneNo; } public void setName(String name){ this.name=name; } public void setAddress(String address){ this.address=address; }

Java程序设计2 第11页 共6页

}

public void setPhoneNo(String phoneNo){ this.phoneNo=phoneNo; }

public String getName(){ return name; }

public String getAddress(){ return address; }

public String getPhoneNo(){ return phoneNo; }

7.设计一个程序,当鼠标移动到按钮的上面时,在屏幕上打出“鼠标移动到了按钮的上面”

(效果如图所示)

Java程序设计2 第12页 共6页

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