JAVA编程习题及答案_第1页
JAVA编程习题及答案_第2页
JAVA编程习题及答案_第3页
JAVA编程习题及答案_第4页
JAVA编程习题及答案_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA编程习题及答案完美版

l.testlOOOl显示短句

〃程序填空.

〃在屏幕上显示一个短句"ProgramminginJavaisfun!”

importjava.io.*;

publicclassTestlOOOl{

publicstaticvoidmain(Stringargs[]){

/**I

System.out.println("ProgramminginJavaisfun!");

}

)

2.testl0002显示网格

/*程序填空。

在屏幕上显示如下网格。

T---T----+

*/

importjava.io.*;

publicclassTestl0002{

publicstaticvoidmain(Stringargs[]){

/**I

System.out.println("+---+---+");

System.out.println("|||");

System.out.println("|||");

System.out.println("+---+---+");

)

)

3.testl0095显示helloworld!

importjava.io.*;

publicclassTestl0095{

publicstaticvoidmain(Stringargs[]){

I**I

System.out.println("Helloworld!");

)

}

4.testl0097求两个数的和

/*输入n表示做n次下面的操作:

输入两个正整数,输出它们的和.

例:

输入:

2〃表示n=2,做两次操作

1011

2030

输出:

sum=21

sum=50

*/

importjava.util.Scanner;

publicclassTestl0097{

publicstaticvoidmain(Stringargs[]){

intn,a,b,i,sum;

Scannerin=newScanner(System.in);

n=in.nextlnt();〃输入n

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

/**I

a=in.nextlnt();

b=in.nextlnt();

sum=a+b;

System.out.println("sum="+sum);

}

)

)

5.test20001求两个数的和与差

/*程序填空,不要改变与输入输出有关的语句。

输入整数a和b,计算并输出a、b的和与差。

例:

输入

2-8

输出

Thesumis-6

Thedifferenceis10*/

importjava.io.*;

importjava.util.Scanner;

publicclassTest20001{

publicstaticvoidmain(Stringargs[]){

inta,b,sum,diff;

Scannerin=newScanner(System.in);

a=in.nextlnt();

b=in.nextlnt();

/**/

sum=a+b;

diff=a-b;

System.out.println("Thesumis"+sum);

System.out.println("Thedifferenceis"+diff);

)

}

6,test20002求平方根

〃程序填空,不要改变与输入输出有关的语句。

输入1个实数x,计算并输出其平方根。

例:

输入

1.21

输出

Thesquarerootof1.21is1.1

importjava.io.*;

importjava.util.Scanner;

publicclassTest20002{

publicstaticvoidmain(Stringargs[]){

doublex,root;

Scannerin=newScanner(System.in);

x=in.nextDouble();

/**/

root=Math.sqrt(x);

System.out.println("Thesquarerootof"+x+"is

"+root);

)

}

7.test20003华氏温度转换成摄氏温度

/*程序填空,不要改变与输入输出有关的语句。

输入华氏温度f,计算并输出相应的摄氏温度c。c=5/9(f-32).

例:括号内是说明

输入

17.2伴氏

温度)

输出

Thetempratureis-8.222222222222223*/

importjava.util.Scanner;

publicclassTest20003{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

doublef,c;

f=in.nextDouble();

/**/

c=5*(f-50)/9+10;

System.out.println("Thetempratureis"+c);

)

)

8.test20004计算旅途时间

程序填空,不要改变与输入输出有关的语句。

输入2个整数timel和time2,表示火车的出发时间和到达时间,计算并

输出旅途时间。

有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情

况。

例:括号内是说明

输入

7121411(出发时间是7:10,到达时间是14:11)

输出

Thetrainjourneytimeis6hrs59mins.

importjava.util.Scanner;

publicclassTest20004{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

inttimel,time2,hours,mins;

timel=in.nextlnt();

time2=in.nextlnt();

/**I

timel=(timel/100)*60+timel%100;

time2=(time2/100)*60+time2%100;

hours=(time2-timel)/60;

mins=(time2-timel)-hours*60;

System.out.println("Thetrainjourneytimeis"+hours+"hrs

"+mins+"mins.");

)

}

9.test20005数字加密

程序填空,不要改变与输入输出有关的语句。

输入1个四位数,将其加密后输出。

方法是将该数每一位上的数字加9,

然后除以10取余,做为该位上的新数字,

最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组

成加密后的新数。

例:括号内是说明

输入

1257

输出

Theencryptednumberis4601(每一位上的数字加9除以10取余后,得0146,

交换后得到4601)

importjava.util.Scanner;

publicclassTest20005{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

intnumber,digiti,digit2,digit3,digit4,newnum;

inttemp;〃我自己定义了一个变量

number=in.nextlnt();

/**I

digitl=number/1000;

digit2=(number%1000)/100;

digit3=((number%1000)%100)/10;

digit4=number%10;

〃以下是测试语句,看看我们的想法是不是正确.但是作业在提交时一定要

把它注释掉

//System.out.print(""+digitl+""+digit2+"

"+digit3+""+digit4);

//-----------------------------------

digitl=(digitl+9)%10;

digit2=(digit2+9)%10;

digit3=(digit3+9)%10;

digit4=(digit4+9)%10;

temp=digitl;

digitl=digit3;

digit3=temp;

//---------------------------

temp=digit2;

digit2=digit4;

digit4=temp;

//----------------------------------

newnum=digitl*1000+digit2*100+digit3*10+digit4;

System.out.println("Theencryptednumberis"+n

ewnum);

)

}

10.test20006大小写字母转换

程序填空,不要改变与输入输出有关的语句。

输入一个大写英文字母,输出相应的小写字母。

例:

输入

G

输出

g

importjava.io.*;

publicclassT20006{

publicstaticvoidmain(String[]args)throwslOException

(

charch;

ch=(char)System.in.read();

/**I

ch=(char)(ch+32);//以ASCII码计算

System.out.println(ch);

)

)

ll.Test20007计算三门课程的平均成绩

程序填空,不要改变与输入输出有关的语句。

已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93

分,求该生3门课程的平均分。

本题无输入。

输出示例:

math=87,eng=72,comp=93

average=84

publicclasstest20007{

publicstaticvoidmain(String[]args){

intmath,eng,comp,average;

math=87;

eng=72;

comp=93;

average=(math+eng+comp)/3;

System.out.println("math="+math+",eng

"+eng+",comp="+comp);

System.out.println("average="+average);

)

}

12.test20008计算存款利息

程序填空,不要改变与输入输出有关的语句。

输入存款金额money^存期year和年利率rate,

根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。

interest=money(l+rate)Ayear-money

输入输出示例:括号内为说明

输入

100030.025(money=1000,year=3,rate=0.025)

输出

interest=76.89

importjava.util.Scanner;

publicclasstest20008{

publicstaticvoidmain(String[]args){

intmoney,year;

doubleinterest,rate;

Scannerin=newScanner(System.in);

/*使用in.nextDouble。和in.nextlnt。输入double和int型数据*/

/**********/

money=in.nextlnt();

year=in.nextlnt();

rate=in.nextDouble();

interest=money*Math.pow((l+rate),year)-money;

System.out.println("interest="+(int)(interest*100+0.5)/100.0);

)

)

13.test30001显示两级成绩

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。

输出使用System.out.println("Pass");及

System.out.println("Fail");

例:括号内是说明

输入

2(repeat=2)

6059

输出

Pass

Fail

importjava.util.Scanner;

publicclassTest30001{

publicstaticvoidmain(String[]args){

intri,repeat;

intmark;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

mark=in.nextlnt();

if(mark>=60)

System.out.println("Pass");

else

System.out.println("Fail");

/**/

)

14.test30002找最小值

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入四个整数,输出其中的最小值。

例:括号内是说明

输入

3(repeat=3)

126190

10403020

-1-3-4-5

输出

minis1(126190中的最小值是1)

minis10(10403020中的最小值是10)

minis-5(-1-3-4-5中的最小值是-5)

importjava.util.Scanner;

publicclassTest30002{

publicstaticvoidmain(String[]args){

intri,repeat;

inta,b,c,d,min;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

a=in.nextlnt();

b=in.nextlnt();

c=in.nextlnt();

d=in.nextlnt();

I**I

min=a;

if(min>b)min=b;

if(min>c)min=c;

if(min>d)min=d;

System.out.println("minis"+min);

)

)

)

15.test30003求三角形的面积和周长

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入三角形的三条边a,b,c,如果能构成一个三角形,输出面积area和周

长perimeter;

wJ,

否则,输出Thesesidesdonotcorrespondtoavalidtriangleo

在一个三角形中,任意两边之和大于第三边。

三角形的面积计算公式:

aere*area=s(s-a)(s-b)(s-c)

其中:s=(a+b+c)/2

输出代码:

System.out.println("area="+area+";perimeter="+peri

meter);

System.out.println("Thesesidesdonotcorrespondtoavalid

triangle");

例:括号内是说明

输入

2(repeat=2)

553

114

输出

area=7.154544;perimeter=13.0

Thesesidesdonotcorrespondtoavalidtriangle

importjava.util.Scanner;

publicclassTest30003{

publicstaticvoidmain(String[]args){

intri,repeat;

floata,b,c,area,perimeter,s;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

a=in.nextFloat();

b=in.nextFloat();

c=in.nextFloat();

/**/

if(a+b>c&&a+c>b&&b+c>a)

perimeter=a+b+c;

s=(a+b+c)/2.0f;

area=(float)Math.sqrt(s*(s-a)*(s-b)*(s-c));

System.out.println("area="+area+";perimeter="+peri

meter);

)

else

System.out.println("Thesesidesdonotcorrespondtoavalid

triangle");

)

)

}

16.test30004判断数的符号

/*输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入整数x,若x大于0,y=l;若x等于0,y=0;否则,y=-l,最后输出

V。

例:括号内是说明

输入

3(repeat=3)

2-80

输出

1(x=2时y=l)

-1(x=-8时y=-l)

0(x=0时y=0)

*/

importjava.util.Scanner;

publicclassTest30004{

pu

blicstaticvoidmain(String[]args){

intri,repeat;

intx,y=0;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

x=in.nextlnt();

/**I

if(x>O)

y=i;

elseif(x==0)

y=o;

elseif(x<O)

y=-i;

System.out.println(y);

)

)

}

17.test30005计算个人所得税

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个职工的月薪salary,输出应交的个人所得税tax。

tax=rate*(salary-850)

当salary<=850时,rate=0%;

当850<salary<=1350时,rate=5%;

当1350<salary<=2850时,rate=10%;

当2850<salary<=5850时,rate=15%;

当5850<salary时,rate=20%;

例:括号内是说明

输入

5(repeat=5)

1010.87

32098.76

800

4010

2850

输出

tax=8.04

tax=6249.75

tax=0.0

tax=474.0

tax=200.0

importjava.util.Scanner;

publicclassTest30005{

publicstaticvoidmain(String[]args){

intri,repeat;

floatrate,salary,tax;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

salary=in.nextFloat();

/**/

if(salary<=850)

tax=0;

elseif(salary<=1350)

{rate=0.05f;

tax=rate*(salary-850);

}

elseif(salary<=2850)

(

rate=0.10f;

tax=rate*(salary-850);

)

elseif(salary<=5850)

(

rate=0.15f;

tax=rate*(salary-850);

)

else

(

rate=0.20f;

tax=rate*(salary-850);

)

System.out.println("tax="+(int)(tax*100+0.5)/100.0);

}

)

)

18.test30006显示水果的价格

/*以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,

10.20元/公斤。

[1]apples

[2]pears

[3]oranges

[4]grapes

输入水果的编号,输出该水果的单价。如果输入不正确的编号,显示单价

为0o

例:括号内是说明

输入

1(repeat=l)

3(oranges的编号)

输出

[1]apples

[2]pears

[3]oranges

⑷grapes

price=4.1

*/

importjava.util.Scanner;

publicclassTest30006{

publicstaticvoidmain(String[]args){

intri,repeat;

intchoice;

floatprice;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

System.out.println("[l]apples");

System.out.println("[2]pears");

System.out.println("[3]oranges");

System.out.println("[4]grapes");

choice=in.nextlnt();

I**I

if(choice==l)

price=3f;

elseif(choice==2)

price=2.5f;

elseif(choice==3)

price=4.1f;

elseif(choice==4)

price=10.2f;

else

price=O;

System.out.println("price="+price);

)

}

)

19.test30007字母转换

程序填空,不要改变与输入输出有关的语句。

输入一批以问号“?”结束的字符,对“?”以前的每一个字符,如果它是

大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字

母;否则,原样输出。

例:

输入

F=y?

输出

f=Y

importjava.io.*;

publicclassTest30007{

publicstaticvoidmain(String[]args)throwsIOException{

charch;

ch=(char)System.in.read();

while(ch!='?')

(

I**I

if(ch>='A'&&ch<='Z')

ch=(char)(ch+32);

elseif((ch>='a'&&ch<='z'))

ch=(char)(ch-32);

System.out.print(ch);

ch=(char)System.in.read();

)

)

)

20.test40001求1+1/2+1/3+........1/n

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个正整数n(n<=100),计算并输出1+1/2+1/3+........+l/n。

例:括号内是说明

输入

2(repeat=l)

2

10

输出

1.5

2.9289684*/

importjava.util.Scanner;

publicclassTest40001{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,n;

floatsum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

I**I

sum=0;

for(i=l;i<=n;i++)

(

sum=sum+(float)l/i;

)

System.out.println(sum);

)

}

)

21.test40002求n!

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个正整数n(n<=50),计算并输出n!。

例:括号内是说明

输入

3(repeat=2)

1

10

5

输出

1.0

3628800.0

120.0*/

importjava.util.Scanner;

publicclassTest40002{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,n;

doublefact;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

I**I

fact=l;

for(i=l;i<=n;i++)

fact=fact*i;

System.out.println(fact);

)

)

)

22.test40003求x的n次累

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个正实数x和1个正整数n(n<=50),计算并输出x的n次塞。

例:括号内是说明

输入

2(repeat=2)

1.52

2.010

输出

2.25

1024.0

importjava.util.Scanner;

publicclassTest40003{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,n;

doublex,mypow;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

x=in.nextDouble();

n=in.nextlnt();

I**I

mypow=1.0;

for(i=l;i<=n;i++)

(

mypow=mypow*x;

)

System.out.println(mypow);

}

}

)

23.test40004求1-1/2+1/3-1/4+.......

/*读入1个正整数n(n<=100),

计算并输出1—1/2+1/3—1/4+……的前n项和(四舍五入保留小数4位)。

例:括号内是说明

输入

2(repeat=2)

10

3

输出

0.6456

0.8333*/

importjava.util.Scanner;

publicclassTest40004{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,n,flag;

floatsum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

/**I

sum=0;

flag=l;

for(i=l;i<=n;i++)

{sum=sum+(float)flag/i;

flag=-flag;}

System.out.println((long)(sum*10000+0.5)/10000.);

)

)

)

24.求1+1/3+1/5+1/7+.......

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个正整数n(n<=100),计算并输出1+1/3+1/5+1/7+.......的前

n项和。

例:括号内是说明

输入

2(repeat=2)

10

3

输出

2.133256

1.5333334

importjava.util.Scanner;

publicclassTest40005{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,n,temp;

floatsum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

I**I

sum=0;

for(i=l;i<=n;i++)

(

sum=sum+1.0f/(2*i-l);

)

System.out.println(sum);

)

}

}

25.求1-1/3+1/5-1/7+.......

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个正实数eps,计算并输出1—1/3+1/5—1/7+……,

直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,

并以float类型输出数据)。

例:括号内是说明

输入

2(repeat=2)

1E-4

0.1

输出

0.7853482

0.83492064

importjava.util.Scanner;

publicclassTest40006{

publicstaticvoidmain(String[]args){

intri,repeat;

inttemp,flag;〃temp变量干什么用?

inti;〃自己加上的变量

doubleeps,item,sum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

eps=in.nextDouble();

/**/

sum=O;

item=1.0;

flag=-l;

i=l;

while(Math.abs(item)>=eps)

(

sum=sum+item;

item=(double)flag/(2*i+l);

flag=-flag;

i++;

)

System.out.println((float)sum);

)

}

}

26.摄氏温度和华氏温度转换表

/*

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入2个整数begin和end,分别代表摄氏温度的起止值,

输出该范围内摄氏温度C和华氏温度F的转换表。

F=32+C*9/5

输出语句:System.out.println(c+"\t"+f);

例:括号内是说明

输入

1(repeat=l)

57

输出

CelsiusFahrenheit

541

642

744*/

importjava.util.Scanner;

publicclassTest40007{

publicstaticvoidmain(String[]args){

intri,repeat;

intbegin,c,end,f;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

begin=in.nextlnt();

end=in.nextlnt();

System.out.println("CelsiusFahrenheit");

/**/

for(inti=begin;i<=end;i++)

(

c=i;

f=32+i*9/5;

System.out.println(c+"\t"+f);

}

}

)

)

27.求奇数和

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次卜列运算:

读入一批正整数(以零或负数为结束标志),求其中的奇数和。

例:括号内是说明

输入2

2(repeat=2)

139070

87437056101-1

输出

11

116

*/

importjava.util.Scanner;

publicclassTest40008{

publicstaticvoidmain(String[]args){

intri,repeat;

intx,sum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

x=in.nextlnt();

*/

sum=O;

while(x>O)

(

if(x%2!=0)

sum=sum+x;

x=in.nextlnt();

}

System.out.println(sum);

)

}

)

28.求最大值

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次卜列运算:

输入一个正整数n,再输入n个整数,输出最大值。

例:括号内是说明

输入

3(repeat=3)

42123-1000

491-18

3135

输出

123

9

5*/

importjava.util.Scanner;

publicclassTest40009{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,max,n,x;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

/**/

max=in.nextlnt();

for(i=l;i<n;i++)

x=in.nextlnt();

if(max<=x)

max=x;

}

System.out.println(max);

)

)

)

29.求整数的位数以及各位数之和

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个整数,输出它的位数以及各位数之和。

例:括号内是说明

输入

4(repeat=4)

123456-100-19

9

输出

number=6,sum=21(123456的位数是6,各位数之和是21)

number=3,sum=l(-100的位数是3,各位数之和是1)

number=l,sum=l(-1的位数是1,各位数之和是1)

number=2,sum=18(99的位数是2,各位数之和是18)*/

importjava.util.Scanner;

publicclassTest40010{

publicstaticvoidmain(String[]args){

intri,repeat;

intnumber,sum,n;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

if(n<O)

n=-n;

number=(String.valueOf(n)).length();

inti;

sum=0;

for(i=0;i<number;i++){

sum=sum+n%10;

n=n/10;

)

System.out.println("number="+number+",

sum="+sum);

}

)

}

30.求2/1+3/2+5/3+8/5+.......

/*输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和,

保留4位小数(不足4位时,不必用0填满4位)。

(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前

一项的分子)

例:括号内是说明

输入

3(repeat=3)

1520

输出

2.0(第1项是2.0)

8.3917(前5项的和是8.3917)

32.6603(前20项的和是32,6603)*/

importjava.util.Scanner;

publicclassTest40011{

publicstaticvoidmain(String[]args){

intri,repeat;

inti,n;

floata,b,s,t;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextlnt();

I**I

s=2;

a=2;

b=l;

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

(

t=a+b;

b=a;

a=t;

s=s+a/b;

)

System.out.println((int)(s*10000+.5)/10000.);

)

)

)

31.求a+aa+aaa+aa…a

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。

例:括号内是说明

输入

2(repeat=2)

23(a=2,n=3)

85(a=8,n=5)

输出

246(2+22+222)

98760(8+88+888+8888+88888)

importjava.util.Scanner;

publicclassT40012

(

publicstaticvoidmain(String[]args)

(

intri,repeat;

inti,n,a,sn,tn;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++)

(

a=in.nextlnt();

n=in.nextlnt();

/**/

tn=0;

sn=0;

for(i=l;i<=n;i++)

(

tn=tn*10+a;

sn=sn+tn;

}

System.out.println(sn);

)

)

}

32.判断素数

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个正整数m,如果它是素数,输出"YES",否则,输出

"NO"

(素数就是只能被1和

自身整除的正整数,1不是素数,2是素数)。

例:括号内是说明

输入

4(repeat=4)

12917

输出

NO(1不是素数)

YES(2是素数)

NO(9不是素数)

YES(17是素数)*/

importjava.util.Scanner;

publicclassTest40013{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inti,m,n;

booleanflag;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

m=in.nextlnt();

I**/

flag=true;

if(m==l)

flag=false;

else

{i=2;

flag=true;

while(i<m&&flag)

if(m%i==O)

flag=false;

i++;

})

if(flag)System.out.println("YES");

elseSystem.out.println("NO");

}

)

)

33.求1+1/2!+........+l/n!

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入1个正整数n,计算s的前n项的和。

s=1+1/2!+....+1/n!

例:括号内是说明

输入:

2(repeat=2)

2(n=2)

10(n=10)

输出:

1.5

1.7182816

importjava.util.Scanner;

publicclassT40021{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inti,n;

floats,t=l;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++)

(

n=in.nextlnt();

/**/

s=0;

t=l;

for(i=l;i<=n;i++)

t=t/i;

s=s+t;

)

System.out.println(s);

)

)

)

34.求各位数字的立方和等于它本身的数

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入2个正整数m和n(l<=m,n<=1000),

输出m和n之间所有满足各位数字的立方和等于它本身的数。

输出语句:System.out.println(i);

例:括号内是说明

输入:

2(repeat=2)

100400(m=100,n=400)

1100(m=l,n=100)

输出:

153(1*1*1+5*5*5+3*3*3=153)

370(3*3*3+7*7*7=370)

371(3*3*3+7*7*7+1*1*1=371)

1

*/

importjava.util.Scanner;

publicclassTest40022{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inti,digit,m,n,number,sum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

m=in.nextlnt();

n=in.nextlnt();

/**/

for(i=m;i<=n;i++)

(

inta=i/100;

intb=(i-a*100)/10;

intc=i%10;

sum=a*a*a+b*b*b+c*c*c;

if(sum==i)

System.out.println(i);

)

)

)

}

35.统计素数并求和

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数r

epeat(0<repeat<10),做repeat次下列运算:

输入2个正整数m和n(l<=m,n<=500),统计并输出m和n之间的素

数的个数以及这些素数的和。

例:括号内是说明

输入:

3(repeat=2)

110(m=l,n=10)

2035(m=20,n=35)

1416(m=14,n=16)

输出:

count=4,sum=17(1到10之间有4个素数:2,3,5,7)

count=3,sum=83(20到35之间有3个素数:23,29,31)

count=0,sum=0(14到16之间没有素数)

*/

importjava.util.Scanner;

publicclassTest40023{

publicstaticvoidmain(Stringargs[])

(

intri,repeat;

intcount,i,j,k,m,n,sum;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=1;ri<=repeat;ri++){

m=in.nextlnt();

n=in.nextlnt();

count=0;

sum=0;

booleanf=true;

if(m==1)

m=2;

)

for(i=m;i<=n;i++)

{

f=true;

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

{if(i%j==0)

{f=false;break;}

}

if(f==true)

{count++;

sum=sum+i;

)

}

System.out.println("count="+count+",sum="+sum);

)

}

}

36.统计单词

/*输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数

可以是多个。

例:括号内是说明

输入

2(repeat=2)

Reoldbuildingroom123

Programmingisfun

输出

4

3*/

importjava.util.Scanner;

publicclassTest40031{

publicstaticvoidmain(String[]args){

intri,repeat,count,word,i;

Stringline;

charc;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();in.nextLine();

for(ri=l;ri<=repeat;ri++){

line=in.nextLine();

/**/

word=count=0;

for(i=0;i<line.length();i++)〃弄清楚数量

{c=line.charAt(i);

if(c!='')

(

if(word==0)

(

count++;

word=l;

)

}elseword=0;

)

System.out.println(count);

}

)

)

37.输出一个整数的各位数字

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次卜列运算:

输入一个整数,从高位开始逐位输出它的各位数字。

输出语句:System.out.print(digit+"");

例:括号内是说明

输入

3(repeat=3)

123456

-600

8

输出

123456

600

8

*/

importjava.util.Scanner;

publicclassTest40032{

publicstaticvoidmain(String[]args){

intri,repeat;

intdigit;

longn,temp,pow;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

n=in.nextLong();

I**I

if(n<O)

n=-n;

Strings=String.valueOf(n);

for(digit=0;digit<s.length();digit++)

(

Sys

tem.out.print(s.charAt(digit)+"");

)

System.out.println();

)

)

}

38.简单计算器

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

程序模拟简单运算器的工作:输入一个算式(没有空格),

遇等号"="说明输入结束,输出结果。

假设计算器只能进行加减乘除运算,运算数和结果都是整数,

4种运算符的优先级相同,按从左到右的顺序计算。

例:括号内是说明

输入

2(repeat=2)

15+2/3=(数字与运算符之间有一空格)

1+2*10-10/2=(数字与运算符之间有一空格)

输出

5

10

*/

/*补充知识:in.next。与in.nextline。的区别

in.next只接受一个字,不能接受一个带有空格的字符串,如下:

例如输入:Showme回车)

用next。只能得到Show,因为遇到空格表示结束,但是nextline。则要遇到回

车才知道结束.

可以看一个例子,演示给大家看,如下:

importjava.util.Scanner;

publicclassTest60011{

publicstaticvoidmain(String[]args)

(

Stringsl_l,sl_2,s2;

Scannerin=newScanner(System.in);

sl_l=in.next();

System.out.println(sl_l);

System.out.println("----------");

in.nextLine();//把剩余的吃掉

s2=in.nextLine();

System.out.println(s2);

System.out.println("----------");

sl_l=in.next();

sl_2=in.next();

System.out.println(sl_l+""+sl_2);

)

}

*/

importjava.util.Scanner;

publicclassTest40033{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

intopl,op2,res;

charoperator;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++){

opl=in.nextlnt();

operator=(in.next()).charAt(O);//

res=opl;〃res看作最后的结果

while(operator!='=')

(

op2=in.nextlnt();

if(operator=='+')res+=op2;

elseif(operator=='-')res-=op2;

elseif(operator=='*')res*=op2;

elseres/=op2;

operator=(in.next()),charAt(O);

)

/**I

System.out.println(res);

)

)

}

39.求1+1/2!+.......1/N!

〃求1+1/2!+1/3!+….(用方法求n!)

importjava.util.Scanner;〃弓I入

publicclassT50001{

publicstaticvoidmain(String[]args)

(

intri,repeat;

inti,n;

doubles;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++)

(

n=in.nextlnt();

I**I

s=0;

for(i=l;i<=n;i++)

s=s+l/fact(i);

}

System.out.println((long)(s*10000+0.5)/10000.0);

)

)

I**I

publicstaticdoublefact(intn)

(

doublet=l;

inti;

if(n==l)

return

1;

else

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

(

t=t*i;

)

returnt;

)

}

)

40.求a+aa+aaa+.......(用方法)

〃求a+aa+aaa+aa…a

importjava.util.Scanner;

publicclassT50002{

publicstaticvoidmain(Stringargs[])

(

intri,repeat;

inti,n,a;

longsn;

Scannerin=newScanner(System.in);

repeat=in.nextlnt();

for(ri=l;ri<=repeat;ri++)

(

a=in.nextlnt();

n=in.nextlnt();

/**I

sn=O;

for(i=l;i<=n;i++)

(

sn=sn+fn(a,i);

)

System.out.println(sn);

}

}

/**/

publicstaticlongfn(intajntm)

{inti;

longt=0;

for(i=0;i<=m-l;i++)//i仅起到次数作用

{

t=t*10+a;

}

returnt;

)

}

41.统计一个整数中数字的个数

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个整数,统计并输出该数中2的个数。

要求定义并调用函数countdigit(number,digit),

它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)

的返回值是3。

例:括号内是说明

输入:

3(repeat=3)

-21902

2

345543

输出:

count=2(-21902中有2个2)

count=l(有1个2)

count=0(345543中没有2)*/

importjava.util.Scanner;

publicclassTest50003{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

intcount;

longn;

Scannerin=ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论