java编程题.docx

上传人:b****2 文档编号:1011814 上传时间:2023-04-30 格式:DOCX 页数:19 大小:30.98KB
下载 相关 举报
java编程题.docx_第1页
第1页 / 共19页
java编程题.docx_第2页
第2页 / 共19页
java编程题.docx_第3页
第3页 / 共19页
java编程题.docx_第4页
第4页 / 共19页
java编程题.docx_第5页
第5页 / 共19页
java编程题.docx_第6页
第6页 / 共19页
java编程题.docx_第7页
第7页 / 共19页
java编程题.docx_第8页
第8页 / 共19页
java编程题.docx_第9页
第9页 / 共19页
java编程题.docx_第10页
第10页 / 共19页
java编程题.docx_第11页
第11页 / 共19页
java编程题.docx_第12页
第12页 / 共19页
java编程题.docx_第13页
第13页 / 共19页
java编程题.docx_第14页
第14页 / 共19页
java编程题.docx_第15页
第15页 / 共19页
java编程题.docx_第16页
第16页 / 共19页
java编程题.docx_第17页
第17页 / 共19页
java编程题.docx_第18页
第18页 / 共19页
java编程题.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java编程题.docx

《java编程题.docx》由会员分享,可在线阅读,更多相关《java编程题.docx(19页珍藏版)》请在冰点文库上搜索。

java编程题.docx

java编程题

1.定义一个包括10个元素一维整型数组,通过从键盘输入的10个整数对数组进行初始化,将数组中的元素按小到大排序后在屏幕上显示,求出该数组中元素的最小值、最大值以及平均值并在屏幕上显示输出。

解答:

importjava.util.Scanner;

importjava.util.Arrays;

publicclassTest{

publicstaticvoidmain(String[]args){

int[]x=newint[10];

doublesum=0;

Scannerscr=newScanner(System.in);

for(inti=0;i

x[i]=scr.nextInt();

}

Arrays.sort(x);

for(inti=0;i

sum+=x[i];

}

System.out.println("Max="+x[x.length-1]);

System.out.println("Min="+x[0]);

System.out.println("Average="+sum/x.length);

}

}

2.编写一个学生类Student:

属性包括:

学号(id)、姓名(name)、英语成绩(eng)、数学成绩(math)、计算机成绩(comp)和总成绩(sum)

方法包括:

构造方法、各属性的set方法、各属性的get方法、toString方法(输出学生的全部信息)、sum方法(计算总成绩)。

解答:

publicclassStudentimplementsSerializable{

//属性定义

publicStudent(Stringid,Stringname,inteng,intmath,intcomp){

this.id=id;

this.name=name;

this.eng=eng;

this.math=math;

p=comp;

sum();//计算总成绩}

publicStudent(Students){

this.id=s.id;

this.name=newString(s.name);

this.eng=s.eng;

this.math=s.math;

p=p;

sum();//计算总成绩}

publicvoidsetId(Stringid){this.id=id;}

publicvoidsetName(Stringname){

this.name=name;}

publicvoidsetEng(inteng){

this.eng=eng;sum();}

publicvoidsetMath(intmath){

this.math=math;sum();}

publicvoidsetComp(intcomp){

p=comp;sum();}

publicStringgetId(){returnid;}

publicStringgetName(){returnname;}

publicintgetEng(){returneng;}

publicintgetMath(){returnmath;}

publicintgetComp(){returncomp;}

publicintgetSum(){returnsum;}

voidsum(){this.sum=eng+math+comp;}

publicStringtoString(){

returngetId()+"\t"+getName()+"\t"+getEng()+"\t"+getMath()+"\t"+getComp()+"\t"+getSum();}}

3.设计一个一元二次方程类,并为这个类添加异常处理。

解答:

publicclassOperation{

publicstaticvoidmain(String[]args)

{

Strings="";

doublea,b,c,r1,r2;

System.out.print("求二元一次方程的根");

System.out.print("请键入第一个系数a");

try

{

BufferedReaderin=newBufferedReader(

newInputStreamReader(System.in));

s=in.readLine();

}catch(IOExceptione){}

a=Double.parseDouble(s);

System.out.print("请键入第二个系数b");

try

{

BufferedReaderin=newBufferedReader(

newInputStreamReader(System.in));

s=in.readLine();

}catch(IOExceptione){}

b=Double.parseDouble(s);

System.out.print("请键入第三个系数c");

try

{

BufferedReaderin=newBufferedReader(

newInputStreamReader(System.in));

s=in.readLine();

}catch(IOExceptione){}

c=Double.parseDouble(s);

r1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);

r2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);

System.out.print("该二元一次方程的根为:

"+r1+"和"+r2);

}

}

4.编写一个应用程序创建两个线程,一个线程打印输出1~1000之间所有3的倍数,另外一个线程打印输出1000~2000之间所有5的倍数。

解答:

classThread1extendsThread{

publicThread1(Stringmsg){

super(msg);

}

publicvoidrun(){

intsum=0;

for(inti=1;i<=1000;i++){

if(i%3==0)

System.out.println(i);

}

}

}

classThread2extendsThread{

publicThread2(Stringmsg){

super(msg);

}

publicvoidrun(){

intsum=0;

for(inti=1000;i<=2000;i++){

if(i%5==0)

System.out.println(i);

}

}}

publicclassExam5{

publicstaticvoidmain(String[]args){

Thread1x=newThread1("Thread1");

Thread2y=newThread2("Thread2");

x.start();

y.start();

}

}

5.水仙花数是指这样的三位数,其个位、十位和百位三个数的平方和等于这个三位数本身,请编写程序打印输出所有(100~999之间)的水仙花数。

解答:

publicclassNarcissus{

publicstaticvoidmain(Stringargs[]){

inti,j,k,n=100,m=1;

while(n<1000){

i=n/100;

j=(n-i*100)/10;

k=n%10;

if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)

System.out.println("找到第"+m+++"个水仙花数:

"+n);

n++;

}

m=1;

//或者使用下面的方法

for(n=100;n<1000;n++){

i=n/100;

j=(n-i*100)/10;

k=n%10;

if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)

System.out.println("找到第"+m+++"个水仙花数:

"+n);

n++;

}

}

}

6.编写程序随机生成10个1到200之间的正整数,打印输出这些随机数并求它们的最大值、最小值、平均值。

解答:

importjava.util.Arrays;

publicclassTest{

publicstaticvoidmain(String[]args){

int[]a=newint[10];

doublesum=0;

for(inti=0;i

a[i]=(int)(Math.random()*200+1);

sum+=a[i];

System.out.print(a[i]+"");

}

Arrays.sort(a);

System.out.println("\nmin="+a[0]);

System.out.println("max="+a[a.length-1]);

System.out.println("average="+(sum/a.length));

}

}

7.按以下要求定义一个类Circle描述一个圆,并完成相应的操作:

(1)实例属性:

圆心x坐标(xpoint)、圆心y坐标(ypoint)和半径(radius)。

(2)构造方法:

给3个属性赋初值。

(3)实例方法(area):

求圆的面积。

(4)实例方法(circumference):

求圆的周长。

(5)重写toString()方法,返回圆心坐标和半径。

(6)实例化这个类,调用方法完成信息的输出。

解答:

classCircle{

privatedoublexpoint;

privatedoubleypoint;

privatedoubleradius;

publicCircle(doublex,doubley,doubler){

xpoint=x;

ypoint=y;

radius=r;

}

publicdoublearea(){

returnMath.PI*radius*radius;

}

publicdoublecircumference(){

return2*Math.PI*radius;

}

publicStringtoString(){

return"圆心:

("+xpoint+","+ypoint+")"+"半径:

"+radius;

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Circleobj=newCircle(0,0,100);

System.out.println(obj);

System.out.println(obj.area());

System.out.println(obj.circumference());

}

}

8.编写程序计算a=4c/b的值,处理当b=0时的情况(要求:

使用Java的异常处理机制)。

解答:

publicclassExam4{

publicvoidresult(intx,inty){

inta=0;

try{

a=4*y/x;

System.out.println("运算结果为:

"+a);}

catch(Exceptione){

System.out.println(e.toString());}

}

publicstaticvoidmain(String[]args){

//Randomr=newRandom();intb=r.nextInt(20),c=r.nextInt(20);

intb=0,c=2;

System.out.println("b="+b+",c="+c);

Exam4ex=newExam4();

ex.result(b,c);

}}

9.定义一个包含10个整数的一维数组并对数组进行初始化,输出该数组的所有元素,并求出该数组元素中的最大值及其对应下标值。

解答:

importjava.util.*;

classExam1{

publicstaticvoidmain(Stringargs[]){

inti,max=0,index=0;

inta[]=newint[10];

Randomrand=newRandom();

for(i=0;i<10;i++)

{a[i]=rand.nextInt(100);

System.out.println(a[i]);

if(max

{max=a[i];index=i;}

}

System.out.println("max="+max+",index="+index);

}

}

说明:

数组初始化方法不限,完成数组初始化即可。

10.试编写应用程序从键盘输入一个整数x,求出≤x的所有素数,并将这些数在屏幕上5个一行显示出来。

解答:

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

inti,j,k=0;

Scannerscr=newScanner(System.in);

intx=scr.nextInt();

for(i=2;i<=x;i++){

for(j=2;j<=i/2;j++)

if(i%j==0)break;

if(j>i/2){

System.out.print(i+"");

k++;

if(k%5==0)

System.out.print("\n");

}

}

}

}

11.采用异常处理的方式编写程序,定义一个整型数组,输出所有元素,要求处理数组越界异常ArrayIndexOutOfBoundsException。

解答:

publicclassExam4{

publicstaticvoidmain(String[]args){

int[]myarrays={1,2,3,4,5,6,7,8};

try{

for(inti=0;i

System.out.println(myarrays[i]);

}

}

catch(ArrayIndexOutOfBoundsExceptione){

System.out.println(e.toString());

}

}

}

12.编程求出2~n之间的所有素数。

n由键盘输入。

解答:

importjava.io.*;

classExam3_1{

publicstaticvoidmain(String[]args)throwsIOException{

Stringstr;

intn,i,j;

BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));

str=in.readLine();

in.close();

n=Integer.valueOf(str).intValue();

System.out.println("2");

for(i=3;i<=n;i=i+2){

intk=(int)Math.sqrt(i)+1;

for(j=2;j<=k;j++)

if(i%j==0)break;

if(j>=k)System.out.println(i);

}

}}

13.按以下要求编程

(1)编写Animal类,定义leg属性、有参构造函数对leg赋初值,定义空的sound()方法;

(2)编写Flyable接口,定义speed()方法;

(3)编写Glede类继承Animal类并实现Flyable接口,定义speed属性,有参构造方法对leg和speed赋初值,speed()方法返回speed属性,sound()方法输出“嘎……”。

(4)编写测试程序,定义包含2个元素的Glede对象数组,分别调用speed()方法和sound()方法。

解答:

classAnimal{

intleg;

publicAnimal(){}

publicAnimal(intleg){this.leg=leg;}

}

interfaceFlyable{

intspeed();

}

classGledeextendsAnimalimplementsFlyable{

intspeed;

publicGlede(intspeed){

super

(2);

this.speed=speed;

}

publicintspeed(){

returnspeed;

}

publicvoidsound(){

System.out.println("嘎……");}

}

classexam3_3{

publicstaticvoidmain(Stringargs[]){

Glede[]glede=newGlede[2];

glede[0]=newGlede(200);

glede[1]=newGlede(150);

System.out.println(glede[0].speed());

glede[0].sound();

System.out.println(glede[1].speed());

glede[1].sound();

}}

14.编写程序,将从命令行获得字符串转换为整型值,处理当args[0]=“56k9”时的情况(要求捕获异常NumberFormatException并处理)

解答:

classExam3_4{

publicstaticvoidmain(Stringargs[]){

try{

Stringstr=args[0];

intn=Integer.parseInt(str);

}catch(NumberFormatExceptionne)

{System.out.println(ne);}}}

15.连续写下从整数1开始到某个正整数N之间的所有整数时,能得到如下的数字序列:

1234567891011121314151617181920212223……,请编写程序输入正整数N,并计算得到的数字序列中数字字符的个数,程序的运行效果如下图所示。

解答:

importjava.util.Scanner;

publicclassEx{

publicstaticvoidmain(String[]args)throwsException

{

inti=1,sum=0;

Scannersr=newScanner(System.in);

System.out.print("请输入正整数N:

");

intn=sr.nextInt();

for(i=1;i<=n;i++){

sum+=(i+"").length();

}

System.out.print("序列中的数字字符个数为:

");

System.out.println(sum);

}

}

16.按以下要求定义类Point表示平面上的一个点,定义类Circle表示平面上的一个圆,具体要求如下:

(1)Circle类的实例属性:

圆心x坐标(xpoint)、圆心y坐标(ypoint)和半径(radius)。

(2)Point类的实例属性:

点的x坐标(x)、点的y坐标(y)。

(3)分别编写Point类和Circle类的构造方法,对属性进行初始化。

(4)在Point类中编写方法计算两个点之间的距离。

方法格式:

publicstaticdoubledistance(Pointp1,Pointp2)

(5)在Circle类中编写方法判断一个点是否在圆内。

方法格式:

publicstaticbooleanisInside(Circlec,Pointp)

(6)在测试类中实例化类的对象并调用方法完成信息的输出。

解答:

publicclassCircle{

privatedoublexpoint;

privatedoubleypoint;

privatedoubleradius;

publicCircle(doublexpoint,doubleypoint,doubleradius){

this.xpoint=xpoint;

this.ypoint=ypoint;

this.radius=radius;

}

publicstaticbooleanisInside(Circlec,Pointp){

doubles=(c.xpoint-p.x)*(c.xpoint-p.x)+(c.ypoint-p.y)*(c.ypoint-p.y);

if(s<(c.radius*c.radius))

returntrue;

else

returnfalse;

}

}

publicclassPoint{

publicdoublex;

publicdoubley;

publicPoint(doublex,doubley){

this.x=x;

this.y=y;

}

publicst

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2