java试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试题与答案
Java语言程序设计期末复习综合练习题
一、选择题。
1. 编译Java Applet 源程序文件产生的字节码文件的扩展名为( )。
A、java B、class C、html D、exe
答:B
2. 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[] )
答:B
3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A、static void method( ) B、public void method( )
C、final void method( ) D、abstract void method( )
答:A
4.下列哪个是合法的Java标识符?( )
A、Tree&Glasses B、FirstJavaApplet
C、_$theLastOne D、273.5
答:B 、 C
5.Java Application源程序的主类是指包含有( )方法的类。
A、main方法 B、toString方法
C、init方法 D、actionPerfromed方法
答:A
6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( )个比特位。
A、8 B、16 C、32 D、64
答:B
7.设 a = 8,则表达式 a >>> 2 的值是( )。
A、1 B、2 C、3 D、4
答:B
8.若a的值为3时,下列程序段被执行后,c的值是多少?( )
c = 1;
if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4;
A、1 B、2 C、3 D、4
答:C
9.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.Applet ;
C、import java.io.* ; D、import java.awt.Graphics ;
答:C
10.对于构造函数,下列叙述正确的是( )。
A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
B、构造函数的返回类型只能是void型。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
答:A C D
11.下面的是关于类及其修饰符的一些描述,正确的是:( )。
A、abstract类只能用来派生子类,不能用来创建abstract类的对象。
B、final类不但可以用来派生子类,也可以用来创建final类的对象。
C、abstract不能与final同时修饰一个类。
D、abstract方法必须在abstract类中声明,但abstract类定义中可以没
有abstract方法。
答:A C D
12. 若需要定义一个类域或类方法,应使用哪种修饰符?( )
A、static B、package C、private D、public
答:A
13.若在某一个类定义中定义有如下的方法: abstract void performDial( );
该方法属于( )。
A、本地方法 B、最终方法 C、解态方法 D、
抽象方法
答:D
14. 下列关于静态初始化器的叙述
中,哪一个是正确的?( )
A、静态初始化器是在构造函数之前加上static修饰符。
B、静态初始化器是对类自身进行初始化。
C、静态初始化器在同一个类中只能有一个。
D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。
答:B D
15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?( )
A、实例方法可以直接调用父类的实例方法。
B、实例方法可以直接调用父类的类方法。
C、实例方法可以直接调用其他类的实例方法。
D、实例方法可以直接调用本类的类方法。
答:B D
16.设有下面两个类的定义:
class Person { class Student extends Person {
long id; // 身份证号 int score; // 入学总分
String name; // 姓名 int getScore(){
} return score;
}
}
问:类Person和类Student的关系是( )。
A、包含关系 B、继承关系
C、关联关系 D、无关系,上述类定义有语法错误
答:B、
17. 设有下面的两个类定义:
class AA {
void Show(){ System.out.println(“我喜欢Java!”);
}
class BB extends AA {
void Show(){ System.out.println(“我喜欢C++!”);
}
则顺序执行如下语句后输出结果为:( )
AA a; BB b;
a.Show(); b.Show();
A、我喜欢Java! B、我喜欢C++!
我喜欢C++! 我喜欢Java!
C、我喜欢Java! D、我喜欢C++!
我喜欢Java! 我喜欢C++!
答:A
18. 设有下面的一个类定义:
class AA {
static void Show( ){ System.out.println(“我喜欢Java!”); }
}
class BB { void Show( ){ System.out.println(“我喜欢C++!”); } }
若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:( )
A、a.Show( ) B、AA.Show( );
b.Show( ) BB.Show( );
C、AA.Show( ); D、a.Show( );
b.Show( ); BB.Show( );
答:C
19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
答:C
20. 对于构造函数,下列叙述正确的是( )。
A、构造函数也允许重载。
B、子类无条件地继承父类的无参构造函数。
C、子类不允许调用父类的构造函数。
D、在同一个类中定义的重载构造函数可以相互调用。
答:A B D
21.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A、private B、protected
C、private protected D、public
答:D
22.设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue();
下述说法正确的
是( )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C
、a和b都是整数类对象并且它们的值相等。
D、a和b都是整数类型变量并且它们的值相等。
答:D
23.在Java Applet程序用户自定义的Applet子类中,常常重载( )方法在Applet的界面中显示文字、图形和其它界面元素。
A、start( ) B、stop( )
C、init( ) D、paint( )
答:D
24.下面的语句的作用是:( )。
Vector MyVector = new Vector(100,50);
A、创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。
B、创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。
C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50
个元素空间单位递增。
D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50
个元素空间单位递增。
答:D
25.在Java中,存放字符串常量的对象属于( )类对象。
A、Character B、String
C、StringBuffer D、Vector
答:B
26.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是( )包。
A、java.io B、java.awt
C、java.applet D、java.awt.event
答:D
27.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用( )类的对象来实现。
A、Label B、Button
C、TextArea D、TextField
答:A
28. 创建一个标识有“关闭”按钮的语句是( )。
A、TextField b = new TextField(“关闭”);
B、Label b = new Label(“关闭”);
C、Checkbox b = new Checkbox(“关闭”);
D、Button b = new Button(“关闭”);
答:D
29. 在编写异常处理的Java程序中,每个catch语句块都应该与( )语句块对应,使得用该语句块来启动Java的异常处理机制。
A、if – else B、switch C、try D、throw
答:C
30. 在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.* ;
C、import java.io.* ; D、import java.awt.event.* ;
答:D
31.对于子类的构造函数说明,下列叙述中不正确的是( )。
A、子类无条件地继承父类的无参构造函数。
B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函
数,但这个调用语句必须是子类构造函数的第一个可执行语句。
C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行
自己的构造函数。
D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
答:D
二、填空题。
1. 一个复杂的
应用系统必然包括有多个对象,这些对象间可能存在的关系有三种,它们是: 、 和 。
答:包含、继承、关联
2. 设x = 2 ,则表达式
( x + + ) * 3 的值是 。
答:6
3. 若x = 5,y = 10,则x > y和x <= y的逻辑值分别为 和 。
答:false、true
4. 顺序执行以下两个语句的输出结果是: 。
String s = “我喜欢学习Java!”;
System.out.println(s.length( ));
答:10
5. 据程序的构成和运行环境的不同,Java源程序分为两大类: 程序和 程序。
答:Java Application 、 Java Applet ( 或 Application、Applet )
6. 如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生 个文件名与类名相同而扩展名为 的字节码文件。
答:4、class
7. 开发与运行Java程序需要经过的三个主要步骤为 、
和 。
答:编辑源程序、编译生成字节码、解释运行字节码
8. 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 类的子类并且存储该源程序文件的文件名必须为 。
答:Applet、MyApplet.java
9. 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令:
、
。
答:javac MyJavaApplication.java 、java MyJavaApplication
10. 在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用 字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用 字节内存空间。
答:2、2
11. 在Java程序中定义的类有两种成员: 、 。
答:域成员、方法成员
12. Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,这个主类是指包含 方法的类;在Java
Applet里,这个主类是一个系统类 的子类。
答:main Applet
13. 创建一个名为 MyPackage 的包的语句是 ,
该语句应该放在程序的位置为: 。
答:package MyPackage ; 应该在程序第一句。
14. 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 方法是不能被当前类的子类重新定义的方法。
答:抽象方法、最终方法 (或 abstract方法、final方法)
15. 形式参数指的是方法被 时的参数行,实际参数是方法被
时所传递进去的变量或值。
答:定义、调用
16. 多态是指 ,在Java中有两种多态,一种是使用方法的 实现多态,另一种是使用方法的 实现多态。
答:一个程序中有多个同名的不同方法 覆盖 重载
17. 在Java
程序中,通过类的定义只能实现 重继承,但通过接口的定义可以实现 重继承关系。
答:单、多
18. 子类重新定义一个与从父类那里继承来的域变量完全相同的变量,这种面向对
象程序设计特性称为域的 。
答:隐藏
19. 字符串分为两大类,一类是字符串常量,使用 类的对象表示;另一类是字符串变量,使用 类的对象表示。
答:String、StringBuffer
20. 设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 };
则执行以下几个语句后的输出结果是 。
int s = 0 ;
for ( int i = 0 ; i < MyIntArray.length ; i + + )
s += MyIntArray[i] ;
System.out.println( s );
答:550
21. 在Applet中,创建一个具有10行45列的多行文本区域对象ta的语句为:
答:TextArea ta = new TextArea( 10 , 45 );
22. 创建一个标识有“广西广播电视大学”字样的标签对象gxdd的语句为 ;创建一个标识有“关闭”字样的按钮对象gb的语句为 。
答:Label gxdd = new Label(“广西广播电视大学”);
Button gb = new Button(“关闭”);
三、写出下列程序完成的功能。
1. public class Sum
{ public static void main( String args[ ])
{ double sum = 0.0 ;
for ( int i = 1 ; i <= 100 ; i + + )
sum += 1.0/(double) i ;
System.out.println( "sum="+sum );
}
}
答:计算 1/1+1/2+1/3+...+1/100 的值。
2.import java.io.* ;
public class Reverse
{ public static void main(String args[ ])
{ int i , n =10 ;
int a[ ] = new int[10];
for ( i = 0 ; i < n ; i ++ )
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数
} catch ( IOException e ) { } ;
for ( i = n-1 ; i >= 0 ; i ―― )
System.out.print(a[i]+" ");
System.out.println( );
}
}
答:从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
3.import java.awt.*;
public class abc
{ public static void main(String args[])
{ new FrameOut(); }
}
class FrameOut extends Frame // Frame为系统定
{ Button btn; // 义的窗框类
FrameOut( )
{ super("按钮");
btn = new Button("按下我");
setLayout(new FlowLayout( ));
add(btn);
setSize(300,200);
show( );
}
}
答:创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
4. import java.io.*;
public class Class1
{
public static void main(String args[ ]){
int i , Max , Min ;
int a[ ] = { 12,67,8,98,23,56,124,55,99,100 };
Max = Min = a[0];
for ( i = 1 ; i < a.length; i ++ ) {
if ( a[i]<Min ) Min = a[i];
if ( a[i]>Max ) Max = a[i];
}
System.out.println( Max+" "+Min );
System.out.println( );
}
}
答:在数组中查找并输出最大值和最小值。
5. public class ABC
{
public static void main(String args[ ]){
int i , j ;
int a[ ] = { 12,67,8,98,23,56,124,55,99,100 };
for ( i = 0 ; i < a.length-1; i ++ ) {
int k = i;
for ( j = i ; j < a.length ; j++ )
if ( a[j]<a[k] ) k = j;
int temp =a[i];
a[i] = a[k];
a[k] = temp;
}
for ( i =0 ; i<a
.length; i++ )
System.out.print(a[i]+" ");
System.out.println( );
}
}
答:使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。
6.import java.io.*;
public class Class1 {
public static void main( String args[] )
{
Fact N = new Fact( 4 );
System.out.println( N.fact( ) );
}
}
class Fact {
int n ;
Fact( int nn ) { n = nn; }
int fact( ) {
int i , f = 1;
for ( i=1; i<=n; i++ )
f = f*i;
return f;
}
}
答:定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。
7.import java.awt.*;
import java.applet.Applet;
public class DrawMyImage extends Applet
{
Image myImage; // 定义一个图像类Image的对象myImage
public void init( )
{
myImage = getImage(getDocumentBase( ),"pica.jpg");
}
public void paint(Graphics g)
{
g.drawImage(myImage,0,0,this);
}
}
答:在Applet界面中显示当前文件夹下名为“pica.jpg”的图像。
8. import java.io.*;
public class Class1 {
public static void main( String args[ ] )
{ SubClass a = new SubClass( 10,3 );
System.out.println( a.exp( ));
}
}
class SuperClass {
float x;
int n;
SuperClass( float xx , int nn ) { x = xx ; n = nn; }
}
class SubClass extends SuperClass {
SubClass( float xx , int nn ) { super( xx , nn ); }
float exp( ) {
float s = 1;
for ( int i = 1; i<=n; i++ ) s = s*x;
return s;
}
}
答:定义一个计算xn的类,然后用该类求103的值。
9. import java.awt.*;
import java.applet.Applet;
public class Applet1 extends Applet
{
public void paint( Graphics g )
{
g.drawLine( 30,5,100,45 );
g.drawRect( 30,50,50,20 );
g.drawOval( 30,80,50,40 );
g.drawString( "They are figures!" , 30,150 );
}
}
答:在Applet界面中显示一些由直线、矩形框、椭圆框和文字组成的图形。
10.import java.io.*;
public class abc
{ public static void main(String args[])
{ SubClass sb = new SubClass( );
System.out.println(sb.max( ));
}
}
class SuperClass
{ int a = 10 , b = 20 ; }
class SubClass extends SuperClass
{ int max( ) { return ((a>b)?a:b); } }
答:求两个数的最大值。
四、写出下面程序的运行结果。
1.import java.io.*;
public class abc
{ public static void main(String args[ ])
{ AB s = new AB("Hello!","I love JAVA.");
System.out.println(s.toString( ));
}
}
class AB {
String s1;
String s2;
AB(
String str1 , String str2 )
{ s1 = str1; s2 = str2; }
public String toString( )
{ return s1+s2;}
}
答:Hello! I love JAVA.
2.import java.io.* ;
public class abc
{
public static void main(String args[ ])
{ int i , s = 0 ;
int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
for ( i = 0 ; i < a.length ; i ++ )
if ( a[i]%3 = = 0 ) s += a[i] ;
System.out.println("s="+s);
}
}
答:s = 180
3. import java.io.* ;
public class abc
{
public static void mai
n(String args[ ])
{ SubSubClass x = new SubSubClass(10 , 20 , 30);
x.show();
}
}
class SuperClass
{ int a,b;
SuperClass(int aa , int bb)
{ a=aa; b=bb; }
void show( )
{ System.out.println("a="+a+" b="+b); }
}
class SubClass extends SuperClass
{ int c;
SubClass(int aa,int bb,int cc)
{ super(aa,bb);
c=cc;
}
}
class SubSubClass extends SubClass
{ int a;
SubSubClass(int aa,int bb,int cc)
{ super(aa,bb,cc);
a=aa+bb+cc;
}
void show()
{ System.out.println("a="+a+" b="+b+" c="+c); }
}
答:a=60
b=20
c=30
4. import java.io.*;
public class abc
{
public static void main(String args[])
{
String s1 = "Hello!";
String s2 = new String("World!");
System.out.println(s1.concat(s2));
}
}
答:Hello! World!
5. import java.io.* ;
public class ABC
{
public static void main(String args[ ])
{ int i ;
int a[ ] = { 11,22,33,44,55,66,77,88,99 };
for ( i = 0 ; i <= a.length / 2 ; i ++ )
System.out.print( a[i]+a[a.length-i-1]+" ");
System.out.println( );
}
}
答:110 110 110 110 110
6. import java.io.*;
class Parent
{
void printMe()
{
System.out.println("parent");
}
}
class Child extends Parent
{
void printMe()
{
System.out.println("child");
}
void printAll()
{
super.printMe();
this.printMe();
printMe();
}
}
public class Class1
{
public static void main(String args[ ])
{
Child myC = new Child( );
myC.printAll( );
}
}
答:parent
child
child
五、使用Java语言编写程序。
1. 编写一个字符界面的Java Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。
答:参考程序如下:
import java.io.*;
public class SUM
{
public static void main (String[] args)
{
int i , n=-1 , sum=0 ;
while ( n<1)
try {
BufferedReader br =
new BufferedReader( new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine( ));
} catch ( IOException e ) { } ;
for ( i =1 ; i<=n; i++ ) sum += i;
System.out.println(sum);
}
}
2. 编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
答:参考程序如下:
import java
.io.* ;
public class abc
{
public static void main(String args[ ])
{ int i , n = 10 , max = 0 , min = 0 , temp = 0;
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
max = min = Integer.parseInt(br.readLine( ));
} catch ( IOException e ) { } ;
for ( i = 2 ; i <= n ; i ++ ) {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
temp = Integer.parseInt(br.readLine( ));
if (temp > max ) max=temp;
if (temp < min) min=temp;
} catch ( IOException e ) { } ;
}
System.out.println("max="+max+" min="+min);
}
}
3. 编写一个完整的Java Applet 程序使用复数类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分别为实部和虚部的数据。
答:参考程序如下:
import java.applet.* ;
import java.awt.* ;
public class abc extends Applet
{
Complex a,b,c ;
public void init( )
{
a = new Complex(1,2);
b = new Complex(3,4);
c = new Complex();
}
public void paint(Graphics g)
{
c=plexAdd(b);
g.drawString("第一个复数:"+a.toString(),10,50);
g.drawString("第二个复数:"+b.toString(),10,70);
g.drawString("两复数之和:"+c.toString(),10,90);
}
}
class Complex
{
int RealPart ; // 复数的实部
int ImaginPart ; // 复数的虚部
Complex() { RealPart = 0 ; ImaginPart = 0 ; }
Complex(int r , int i)
{ RealPart = r ; ImaginPart = i ; }
Complex complexAdd(Complex a)
{
Complex temp = new Complex( ); // 临时复数对象
temp.RealPart=RealPart+a.RealPart;
temp.ImaginPart=ImaginPart+a.ImaginPart;
return temp;
}
public String toString( )
{ return ( RealPart+" + "+ImaginPart+" i "); }
}
4. 编写一个学生类 Student ,要求:
(1) 学生类 Student 属性有:
id : long型,代表学号
name : String类对象,代表姓名
age : int型,代表年龄
sex : boolen型,代表性别(其中:true表示男,false表示女)
phone : String类对象,代表联系电话
(2) 学生类 Student的方法有:
Student(long i , String n , int a , boolean s , long p)
: 有参构造函数,形参表中的参数分别初
始化学号、姓名、
年龄、性别和联系电话。
int getAge() ( ) : 获取年龄作为方法的返回值。
boolean getSex( ) ( ) : 获取性别作为方法的返回值。
long getPhone ( ) : 获取联系电话作为方法的返回值。
public String toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。
答:参考程序段如下:
class Student {
long id;
String name;
int age;
boolean sex;
long phone;
Student( long i , String n , int a , boolean s , long p ){
id = i;
name = n;
age = a;
sex = s;
phone = p;
}
int getAge(){ return age; }
boolean getSex(){ return sex; }
long getPhone() { return phone; }
public String toString(){ return name+" : "+phone; }
}
5. 编写Applet程序:求三个整数的最小值。
答
:参考程序如下:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class FindMin extends Applet implements ActionListener
{
Label result;
TextField in1,in2,in3;
Button btn1,btn2;
int a=0,b=0,c=0,min;
public void init()
{
result=new Label("请先输入三个待比较的整数");
in1=new TextField(5);
in2=new TextField(5);
in3=new TextField(5);
btn1=new Button("比较");
btn2=new Button("关闭");
add(in1);
add(in2);
add(in3);
add(btn1);
add(btn2);
add(result);
btn1.addActionListener(this);
btn2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==btn1)
{ a=Integer.parseInt(in1.getText());
b=Integer.parseInt(in2.getText());
c=Integer.parseInt(in3.getText());
min=a;
if (b<min)
min=b;
if(c<min)
min=c;
result.setText("三数中最小值是:"+min);
}
else
System.exit(0);
}
}
6. 编写图形界面下的Java Applet程序,接受用户输入的两个数据为上、下限,然后10个一行输出上、下限之间的所有素数。
答:参考程序如下:
//输入上限与下限,输出范围内的素数
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Sushu extends Applet implements ActionListener
{
Label lb1,lb2,result;
TextField in1,in2;
TextArea out1;
Button btn1,btn2;
int a=0,b=0;
String s="";
public void init()
{
result=new Label(" 输出框");
lb1=new Label("上限");
lb2=new Label("下限");
in1=new TextField(5);
in2=new TextField(5);
out1=new TextArea();
out1.setEditable(false);//设为不可编辑
btn1=new Button("输出素数");
btn2=new Button("关闭");
add(lb1);
add(in1);
add(lb2);
add(in2);
add(btn1);
add(btn2);
add(result);
add(out1);
btn1.addActionListener(this);
btn2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
int k=0;//设计数器
if (e.getSour
ce()==btn1)//响应按钮"输出素数"的动作
{
out1.setText(" ");//新行输出
a=Integer.parseInt(in1.getText());
b=Integer.parseInt(in2.getText());
//判断是否素数,是则计数并加入输出子串s
Loop:
for(int i=b;i<a;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
continue Loop;
}
k++;
if(k%10==0) //每10个数加个回车
s=s+i+","+" ";
else
s=s+i+",";
}
result.setText(b+"与"+a+"之间共有素数"+k+"个,输出如下:");
out1.setText(s);
}
else System.exit(0);//点击"关闭"退出程序
}
}