JAVA编程习题及答案 - 完全版

更新时间:2023-03-08 05:24:11 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.test10001显示短句

//程序填空.

//在屏幕上显示一个短句“Programming in Java is fun!”

import java.io.*;

public class Test10001{

public static void main(String args[]){ /*------------------------*/ System.out.println(\ } }

2.test10002显示网格

/*程序填空。

在屏幕上显示如下网格。 +---+---+ | | | | | | +---+---+ */

import java.io.*;

public class Test10002{

public static void main(String args[]){ /*------------------------*/ System.out.println(\ System.out.println(\ | |\ System.out.println(\ | |\ System.out.println(\ } }

3.test10095显示hello world!

import java.io.*;

public class Test10095{

public static void main(String args[]){ /*---------------------------*/

} }

System.out.println(\

4.test10097求两个数的和

/*输入n表示做n次下面的操作: 输入两个正整数,输出它们的和.

例: 输入:

2 //表示n=2,做两次操作 10 11 20 30

输出: sum=21 sum=50 */

import java.util.Scanner; public class Test10097{

public static void main(String args[]){ int n,a,b,i,sum; Scanner in=new Scanner(System.in); n=in.nextInt(); //输入n for(i=1; i<=n; i++){ /*------------*/ a=in.nextInt(); b=in.nextInt(); sum=a+b; System.out.println(\ } } }

5.test20001求两个数的和与差

/*程序填空,不要改变与输入输出有关的语句。 输入整数a和b,计算并输出a、b的和与差。 例: 输入

2 -8

输出

The sum is -6

The difference is 10*/

import java.io.*;

import java.util.Scanner; public class Test20001{

public static void main(String args[]){ int a, b, sum, diff;

Scanner in=new Scanner(System.in); a=in.nextInt(); b=in.nextInt(); /*------------------*/ sum=a+b; diff=a-b;

System.out.println(\

System.out.println(\ } }

6.test20002求平方根

//程序填空,不要改变与输入输出有关的语句。 输入1个实数x,计算并输出其平方根。 例: 输入 1.21

输出

The square root of 1.21 is 1.1

import java.io.*;

import java.util.Scanner; public class Test20002{

public static void main(String args[]){ double x, root;

Scanner in=new Scanner(System.in); x=in.nextDouble(); /*------------------*/ root=Math.sqrt(x);

System.out.println(\ } }

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

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

输入华氏温度f,计算并输出相应的摄氏温度c。c = 5/9(f-32). 例:括号内是说明 输入

17.2 (华氏温度) 输出

The temprature is -8.222222222222223*/

import java.util.Scanner; public class Test20003 {

public static void main(String[] args) { Scanner in=new Scanner(System.in); double f, c;

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

System.out.println(\ } }

8.test20004计算旅途时间

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

输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入

712 1411(出发时间是7:10,到达时间是14:11) 输出

The train journey time is 6 hrs 59 mins.

import java.util.Scanner; public class Test20004 {

public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/

time1=(time1/100)*60+time10; time2=(time2/100)*60+time20; hours=(time2-time1)/60;

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

System.out.println(\ } }

9.test20005数字加密

程序填空,不要改变与输入输出有关的语句。 输入1个四位数,将其加密后输出。 方法是将该数每一位上的数字加9,

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

最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。 例:括号内是说明 输入 1257

输出

The encrypted number is 4601(每一位上的数字加9除以10取余后,得0146,交换后得到4601)

import java.util.Scanner; public class Test20005 {

public static void main(String[] args) { Scanner in=new Scanner(System.in);

int number, digit1, digit2, digit3, digit4, newnum; int temp; //我自己定义了一个变量 number=in.nextInt(); /*------------------*/ digit1=number/1000;

digit2=(number00)/100;

digit3=((number00)0)/10; digit4=number;

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

输出

NO (1不是素数) YES (2是素数) NO (9不是素数) YES (17是素数)*/

import java.util.Scanner; public class Test40013{

public static void main(String args[]){ int ri, repeat; int i, m, n; boolean flag;

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

for(ri=1; ri<=repeat; ri++){ m=in.nextInt();

/*--------------------*/ flag=true; if (m==1) flag=false; else { i=2; flag=true;

while(i

if(flag) System.out.println(\ else System.out.println(\ } } }

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

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

输入一个正整数repeat (0

2 (repeat=2) 2 (n=2) 10 (n=10) 输出: 1.5

1.7182816

import java.util.Scanner; public class T40021{

public static void main(String args[]){ int ri, repeat; int i,n; float s,t=1;

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

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

n=in.nextInt();

/*--------------------*/ s=0; t=1;

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

t=t/i; s=s+t; }

System.out.println(s); } } }

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

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

输入一个正整数repeat (0

输出m 和n之间所有满足各位数字的立方和等于它本身的数。 输出语句:System.out.println(i); 例:括号内是说明 输入:

2 (repeat=2)

100 400 (m=100, n=400)

1 100 (m=1, 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 */

import java.util.Scanner; public class Test40022{

public static void main(String args[]){ int ri, repeat;

int i, digit, m, n, number, sum;

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

for(ri=1; ri<=repeat; ri++){ m=in.nextInt(); n=in.nextInt(); /*------------------*/ for(i=m;i<=n;i++) { int a=i/100; int b=(i-a*100)/10; int c=i; sum=a*a*a+b*b*b+c*c*c; if(sum==i) System.out.println(i); } } } }

35.统计素数并求和

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

输入一个正整数repeat (0

输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和。

例:括号内是说明 输入:

3 (repeat=2) 1 10 (m=1, n=10) 20 35 (m=20, n=35)

14 16 (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之间没有素数) */

import java.util.Scanner; public class Test40023 { public static void main(String args[]) { int ri, repeat;

int count,i,j,k,m,n,sum;

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

for (ri = 1; ri <= repeat; ri++) { m = in.nextInt(); n = in.nextInt(); count = 0; sum = 0; boolean f = 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(\ } } }

36.统计单词

/*输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。 例:括号内是说明 输入

2 (repeat=2)

Reold building room 123 Programming is fun

输出 4 3 */

import java.util.Scanner; public class Test40031{

public static void main(String []args ){ int ri, repeat,count, word,i; String line; char c;

Scanner in=new Scanner(System.in); repeat=in.nextInt();in.nextLine(); for(ri=1; ri<=repeat; ri++){ line=in.nextLine(); /*---------*/ word=count=0;

for(i=0;i

System.out.println( count); } } }

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

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

输入一个正整数repeat (0

输出语句:System.out.print(digit+\例:括号内是说明 输入

3 (repeat=3) 123456 -600 8 输出

1 2 3 4 5 6 6 0 0 8 */

import java.util.Scanner; public class Test40032{

public static void main(String []args ){ int ri, repeat; int digit;

long n, temp, pow;

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

for(ri=1; ri<=repeat; ri++){ n=in.nextLong(); /*---------*/ if(n<0) n=-n;

String s=String.valueOf(n);

for(digit=0;digit

System.out.println(); } } }

38.简单计算器

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

输入一个正整数repeat (0

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

4种运算符的优先级相同,按从左到右的顺序计算。 例:括号内是说明 输入

2 (repeat=2)

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

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

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

in.next只接受一个字,不能接受一个带有空格的字符串,如下: 例如输入: Show me --(回车)

用next()只能得到Show,因为遇到空格表示结束,但是nextline()则要遇到回车才知道结束. 可以看一个例子,演示给大家看,如下: ----------------------------------------- import java.util.Scanner; public class Test60011{

public static void main(String []args) { String s1_1,s1_2,s2; Scanner in=new Scanner(System.in); s1_1=in.next();

System.out.println(s1_1); System.out.println(\

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

System.out.println(s2);

System.out.println(\ s1_1=in.next(); s1_2=in.next();

System.out.println(s1_1+\ \ } }

------------------------------------------- */

import java.util.Scanner; public class Test40033{

public static void main(String args[]) { int ri, repeat; int op1, op2, res; char operator; Scanner in=new Scanner(System.in); repeat=in.nextInt();

} }

for(ri=1; ri<=repeat; ri++){ op1=in.nextInt();

operator =(in.next()).charAt(0); // res=op1; //res看作最后的结果 while(operator!='=') { op2=in.nextInt(); if(operator=='+') res+=op2; else if(operator=='-') res-=op2; else if(operator=='*') res*=op2; else res/=op2; operator =(in.next()).charAt(0); } /*---------*/

System.out.println(res); }

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

//求1+1/2!+1/3!+....(用方法求n!) import java.util.Scanner; //引入 public class T50001 { public static void main(String[] args) { int ri,repeat; int i,n; double s; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++) { n=in.nextInt(); /*---------------*/ s=0; for(i=1;i<=n;i++) { s=s+1/fact(i); }

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

}

public static double fact(int n) { double t=1; int i; if(n==1) return 1; else { for(i=1;i<=n;i++) { t=t*i; } return t; } }

40.求a+aa+aaa+??(用方法) //求a+aa+aaa+aa?a import java.util.Scanner; public class T50002{

public static void main(String args[]) { int ri, repeat; int i, n,a; long sn; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++) { a=in.nextInt(); n=in.nextInt(); /*------------*/ sn=0; for(i=1;i<=n;i++) {

sn=sn+fn(a,i); } System.out.println(sn); } }

/*------------*/

public static long fn(int a,int m) { int i;

long t=0;

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

t=t*10+a; }

return t; } }

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

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

输入一个正整数repeat (0

它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。 例:括号内是说明 输入:

3 (repeat=3) -21902 2

345543 输出:

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

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

import java.util.Scanner; public class Test50003{

public static void main(String args[]){ int ri, repeat; int count; long n; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); /*---------*/ count=countdigit(n,2); System.out.println(\ } }

/*------------*/

static int countdigit(long n,int digit) { int count=0; digit=2; String a=String.valueOf(n); int b=a.length(); for(int i=0;i

42.判断素数(用方法)

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

输入一个正整数repeat (0

4 (repeat=4) 1 2 9 17 输出

NO (1不是素数) YES (2是素数) NO (9不是素数) YES (17是素数)

import java.util.Scanner; public class Test50004 { public static void main(String[] args) { int ri, repeat,n; boolean flag; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++)

}

{

n=in.nextInt(); /*---------*/ flag=prime(n); if(flag)

System.out.println(\ else

System.out.println(\ } }

/*------------*/

public static boolean prime(int m) { boolean t=false; int i; for(i=2;i

43.统计素数并求和

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

输入一个正整数repeat (0

统计并输出m 和n之间的素数的个数以及这些素数的和

(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 例:括号内是说明 输入:

3 (repeat=3) 1 10 (m=1, n=10) 20 35 (m=20, n=35) 14 16 (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之间没有素数)

import java.util.Scanner; public class Test50005{

public static void main(String args[]){ int ri, repeat; int count, i, m, n, sum; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++){ m=in.nextInt(); n=in.nextInt(); /*---------*/ System.out.println(\ } }

/*------------*/ }

44.输出Fibonacci序列

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

输入一个正整数repeat (0

输入2 个正整数m和n(1<=m,n<=10000),输出m 和n之间所有的Fibonacci数。 Fibonacci 序列(第1项起):1 1 2 3 5 8 13 21 ......

要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。 例如,fib(7)的返回值是13。 输出语句:System.out.print(f+\

例:括号内是说明 输入:

3 (repeat=3) 1 10 (m=1, n=10) 20 100 (m=20, n=100)

1000 6000 (m=1000, n=6000)

输出:

1 1 2 3 5 8 (1到10之间的Fibonacci数) 21 34 55 89 (20到100之间的Fibonacci数)

1597 2584 4181 (1000到6000之间的Fibonacci数) */

import java.util.Scanner; public class Test50006{

public static void main(String args[]){

int ri,repeat; int i, m, n; long f; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++){ m=in.nextInt(); n=in.nextInt(); /*---------*/ for(i=1;i<=n;i++) { f=fib(i); if(f>=m&&f<=n) System.out.print(f+\ } System.out.println(); } }

/*------------*/ static int fib(int i) { int a=1,b=1,t,f=1; for(int j=3;j<=i;j++) { f=a+b; t=a+b; a=b; b=t; } return f; } }

45.求完数

/*输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有完数 (完数就是因子和与它本身相等的数)。

要求定义并调用函数factorsum(number),它的功能是返回number的因子和。 例如,factorsum(12)的返回值是16(1+2+3+4+6)。 输出语句:System.out.print(i+\例:括号内是说明 输入:

2 (repeat=2)

20 500 (m=100, n=400)

1 100 (m=1, n=100)

输出: 28 496 1 6 288*/

import java.util.Scanner; public class Test50007{

public static void main(String args[]){ int ri,repeat; int i, m, n; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ m=in.nextInt(); n=in.nextInt(); /*---------*/ for(i=m;i<=n;i++) { factorsum(i); if (factorsum(i)==i) System.out.print(i+\ } System.out.println(); } }

/*---------*/

static int factorsum(int n) { int s=0;

for(int i=2;i

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

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

输入一个正整数repeat (0

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

要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。 输出语句:System.out.print(i+\例:括号内是说明

本文来源:https://www.bwwdw.com/article/dwo.html

Top