您的当前位置:首页正文

JAVA练习答案

2022-01-10 来源:易榕旅网
JAVA

JAJA练习

第六周

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

输入一个正整数repeat (0当 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

import java.util.Scanner; public class Test30005 {

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

float rate, salary, tax;

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

for(ri=1; ri<=repeat; ri++){ salary=in.nextFloat(); if(salary<850) tax=0;

else if(salary>=850&salary<1350) tax=(salary-850)*0.05f;

else if(salary>=1350&salary<2850) tax=(salary-850)*0.1f;

else if(salary>=2850&salary<5850)

1

JAVA

tax=(salary-850)*0.15f;

else

tax=(salary-850)*0.2f;

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

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

输入一个正整数repeat (0以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤。 [1] apples [2] pears [3] oranges

[4] grapes

输入水果的编号,输出该水果的单价。如果输入不正确的编号,显示单价为0。 例:括号内是说明 输入

1 (repeat=1) 3 (oranges的编号) 输出 [1] apples [2] pears [3] oranges [4] grapes price=4.1

import java.util.Scanner; public class Test30006{

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

float price;

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

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

System.out.println(\"[1] apples\"); System.out.println(\"[2] pears\"); System.out.println(\"[3] oranges\");

System.out.println(\"[4] grapes\"); choice=in.nextInt(); if(choice==1) price=3;

else if(choice==2)

2

JAVA

price=2.5f;

else if(choice==3) price=4.1f;

else if(choice==4) price=10.2f; else

price=0;

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

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

输入一批以问号“?”结束的字符,对“?”以前的每一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。 例: 输入 F=y? 输出 f=Y

import java.io.*;

public class Test30007 {

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

ch=(char)System.in.read(); while(ch!='?'){

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

ch=(char)(ch-'a'+'A'); else if(ch>='A'&&ch<='Z')

ch=(char)(ch-'A'+'a'); System.out.print(ch); ch=(char)System.in.read(); } } }

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

输入一个正整数repeat (03 (repeat=2) 1

3

JAVA

10 5 输出 1.0

3628800.0 120.0

import java.util.Scanner; public class Test40001 { }

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

float sum;

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

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

n=in.nextInt(); sum=0;

for(i=1;i<=n;i++){ sum=sum+1.0f/i; }

System.out.println((int)(sum*1000+0.5)/1000.); } }

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

输入一个正整数repeat (0读入1 个正实数x和1个正整数 n(n<=50),计算并输出x的n次幂。 例:括号内是说明 输入

2 (repeat=2) 1.5 2 2.0 10 输出 2.25 1024.0

import java.util.Scanner;

public class Test40003 {

public static void main(String[] args) {

int ri, repeat; int i, n;

double x, mypow;

4

JAVA

}

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

for(ri=1; ri<=repeat; ri++){ x=in.nextDouble(); n=in.nextInt(); }

mypow=0;

for(i=1; i<=n; i++){ mypow=Math.pow(x,n);}

System.out.println(mypow);

}

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

输入一个正整数repeat (0读入1 个正整数 n(n<=100),计算并输出1-1/2+1/3-1/4+„„的前n项和(四舍五入保留小数4位)。 例:括号内是说明 输入

2 (repeat=2) 10 3 输出 0.6456 0.8333

import java.util.Scanner;

public class Test40004 {

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

int i, n, flag; float sum;

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); sum=0;

for(i=1;i<=n;i++){ if (i%2==1)

sum=sum+1.0f/i; else

sum=sum-1.0f/i;}

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

5

JAVA

} }

第七周

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

输入一个正整数repeat (0读入1 个正整数 n(n<=100),计算并输出1+1/3+1/5+1/7+„„的前n项和。 例:括号内是说明 输入

2 (repeat=2) 10 3 输出 2.133256 1.5333334

import java.util.Scanner; public class Test40005 {

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

int i, n, temp; float sum;

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

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

sum=0;

for(i=1;i<=2*n-1;i=i+2){ sum=sum+(float)1/i; }

System.out.println(sum);

} } }

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

输入一个正整数repeat (0读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+„„,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。 例:括号内是说明 输入

2 (repeat=2) 1E-4

6

JAVA

0.1 输出 0.7853

0.8349

import java.util.Scanner; public class sdgf {

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

double eps, item, sum;

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

for(ri=1; ri<=repeat; ri++){ eps=in.nextDouble(); sum=0; item=1; temp=1; do

{

if(temp%2==0) sum=sum-item; else

sum=sum+item; temp=temp+1;

item=1.0f/(2*temp-1); }while(item>=eps);

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

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

输入一个正整数repeat (0输入2个整数begin和end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度F的转换表。

F = 32 + C * 9 / 5

输出语句:System.out.println(c+\" \"+f); 例:括号内是说明 输入

1 (repeat=1) 5 7 输出

7

JAVA

Celsius Fahrenheit 5 6 7

41 42 44

import java.util.Scanner; public class Test40007 {

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

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

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

end=in.nextInt();

System.out.println(\"Celsius Fahrenheit\"); for(c=begin;c<=end;c++){ f = 32 + c * 9 / 5;

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

} } } }

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

输入一个正整数repeat (02 (repeat=2) 1 3 90 7 0

8 7 4 3 70 5 6 101 -1 输出 11 116

第八周

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

输入一个正整数repeat (08

JAVA

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

import java.util.Scanner; public class Test40021{

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

float s,t;

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+(float)1/t; }

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

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

输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=1000),输出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

9

JAVA

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<=999;i++){

sum=0;

number=i;

digit=number%10;

sum=sum+digit*digit*digit; number=number/10;

digit=number%10;

sum=sum+digit*digit*digit; digit=number/10;

sum=sum+digit*digit*digit; if(sum==i)

System.out.println(i);

} } } }

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

输入一个正整数repeat (0例:括号内是说明 输入:

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{

10

JAVA

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; k=1;

for(i=m;i<=n&&i<=499;i++){

for(j=2;j<=i-1;j++){ k=i%j;

if(k==0)break;} if(j==i){

count=count+1; sum=sum+i;} }

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

}

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

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

2 (repeat=2)

Reold building room 123 Programming is fun 输出 4 3

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

输入一个正整数repeat (03 (repeat=3)

11

JAVA

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(); count=0; sum=0;

for(i=m;i<=n&&i<=499;i++){ if( prime(i)){ count++; sum=sum+i;} }

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

}

static boolean prime(int m){ }

int i=2;

boolean flag=true; if(m==1)

flag=false; if(m%i==0)break; if(i!=m)

flag=false;

for(i=2;i<=m-1;i++)

return flag;

}

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

输入一个正整数repeat (012

JAVA

输出语句: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(); n=Math.abs(n); temp=n; pow=0;

while(temp>0){ temp=temp/10;

pow++;} temp=n;

while(pow>0){

digit=(int) (temp/Math.pow(10,pow-1)); pow--;

temp=(long) (temp-digit*Math.pow(10,pow)); System.out.print(digit+\" \"); }

System.out.println(); } } }

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

输入一个正整数repeat (0程序模拟简单运算器的工作:输入一个算式,遇等号\"=\"说明输入结束,输出结果。

假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。

13

JAVA

例:括号内是说明

输入

2 (repeat=2)

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

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

import java.util.Scanner; public class Test400033{

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); while(operator!='='){

op2=in.nextInt(); switch(operator){ case'+':res=op1+op2; case'-':res=op1-op2; case'*':res=op1*op2; case'/':res=op1/op2; default: res=0;} op1=res;

operator=(in.next()).charAt(0);

}

System.out.println(res); }

}

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

输入一个正整数repeat (0要求定义并调用函数fact(n)计算n的阶乘。 例:括号内是说明 输入:

2 (repeat=2)

14

JAVA

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

import java.util.Scanner; public class Test50001 {

static double fact(int x)

{int i; double s; i=1;

s=1;

while(i<=x) {s=s*i; i=i+1; }

return (s);

}

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.); }

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

输入一个正整数repeat (0要求定义并调用函数fn(a,n),它的功能是返回aa„a(n个a)。例如,fn(3,2)的返回值是33。

例:括号内是说明 输入

2 (repeat=2)

15

} }

JAVA

2 3 (a=2, n=3)

8 5 (a=8, n=5) 输出

246 (2+22+222)

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

import java.util.Scanner;

public class Test50002{

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=0;isn+=fn(i,a);

}

System.out.println(sn); } }

static int fn(int x,int y) {

if(x==0)

return y; else

return fn(x-1,y)*10+y;

} }

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

输入一个正整数repeat (0要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。 例:括号内是说明 输入:

3 (repeat=3) -21902 2

16

JAVA

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();

int d=2;

count=digitcount(n,d);

System.out.println(\"count=\"+count);

} }

static int digitcount(long number,int digit){ long x=0; int count=0; digit=2; }

number=Math.abs(number); while(number>0){

x=number%10;

number=number/10; if(x==digit)

count++;} return count; }

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

输入一个正整数repeat (0输入一个正整数n,如果它是素数,输出\"YES\",否则,输出\"NO\"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 例:括号内是说明 输入

4 (repeat=4) 1 2 9 17

17

JAVA

输出

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=true;

flag=prime(n);

if(flag) System.out.println(\"YES\"); else System.out.println(\"NO\"); } }

static boolean prime(int m){ int i=2;

boolean flag=true; if(m==1)

flag=false;

for(i=2;i<=m-1;i++)

if(m%i==0)break; if(i!=m)

flag=false;

return flag; } }

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

输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 例:括号内是说明 输入:

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

18

JAVA

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();

count=0; sum=0;

for(i=m;i<=n&&i<=499;i++){ if( prime(i)){ count++;

sum=sum+i;} }

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

}

static boolean prime(int m){ }

int i=2;

boolean flag=true; if(m==1)

flag=false;

for(i=2;i<=m-1;i++)

if(m%i==0)break; if(i!=m)

flag=false; return flag;

}

第九周

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

19

JAVA

输入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; number=in.nextInt(); newnum=0;

digit1=(number-number%1000)/1000;

digit2=((number-1000*digit1)-number%100)/100;

digit3=((number-1000*digit1-100*digit2)-number%10)/10; digit4=(number)-1000*digit1-100*digit2-digit3*10; digit1=(digit1+9)%10; digit2=(digit2+9)%10; digit3=(digit3+9)%10; digit4=(digit4+9)%10;

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

System.out.println(\"The encrypted number is \"+newnum); } }

程序填空,不要改变与输入输出有关的语句。 输入一个大写英文字母,输出相应的小写字母。 例: 输入 G 输出 g

import java.io.*;

public class Test20006 {

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

ch=(char)System.in.read(); ch=(char) ((char)ch-'A'+'a');

20

JAVA

System.out.println(ch); } }

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

输入一个正整数repeat (02 (repeat=2) 3 1 2 -6 5 12 2 5 4 0 输出

aver=-1.0 aver=4.6

import java.util.Scanner; public class Test60001{ }

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

int ri, repeat; int i, n, sum,a[]; float aver;

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n]; sum=0;

for(i=0; iSystem.out.println(\"aver=\"+aver); }

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

输入一个正整数repeat (0输入一个正整数n (13 (repeat=3)

21

JAVA

3 1 6 4

3 10 8 1

5 1 2 5 4 0 输出

max=6,index=1 (最大值6的下标是1) max=10,index=0 (最大值10的下标是0) max=5,index=2 (最大值5的下标是2)

import java.util.Scanner; public class Test60002{

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

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n] ; for(i=0; ifor(i=0; iSystem.out.println(\"max=\"+a[index]+\+index); } } }

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

输入一个正整数repeat (0输入一个正整数n (12 (repeat=2) 4 10 8 1 2 5 1 2 5 4 0 输出

2 1 8 10 0 4 5 2 1

import java.util.Scanner;

22

JAVA

public class Test60003{

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

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n]; for(i=0; ifor(i=0; iSystem.out.print(a[i]+\" \"); System.out.println(); } } }

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

输入一个正整数repeat (0输入一个正整数n,再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。 例:括号内是说明 输入

输出

1 3 2 4 5 1 5 6 7 1 4 3 2 5

import java.util.Scanner; public class Test60004{

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

int i, index, n, t,a[];

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

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

23

JAVA

a=new int[n]; for(i=0; ifor(i=0;ia[i]){

t=a[i]; index=i;}

a[index]=a[0]; a[0]=t; t=a[n-1]; for(i=0;ia[index]=a[n-1]; a[n-1]=t; for(i=0; iSystem.out.print(a[i]+\" \"); System.out.println(); } } }

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

输入一个正整数repeat (03 (repeat=3) 4 5 1 7 6 3 1 2 3 5 5 4 3 2 1 输出 7 6 5 1 3 2 1

5 4 3 2 1

import java.util.Scanner; public class Test60019{

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

24

JAVA

int i,j,k,row,col,n,a[][]; boolean flag;

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n][n]; for (i=0;ia[i][j]=in.nextInt(); row=0; col=0; flag=true;

for (i=0;irow=j;

k=a[i][row];

for(i=0;flag==false^i=a[i][row])

flag=false;

else col=i;} } } if(flag)

System.out.println(\"a[\"+row+\"][\"+col+\"]=\"+a[row][col]);

else System.out.println(\"NO\"); } } }

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

输入一个正整数repeat (0读入 1 个正整数 n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和.(副对角线为从矩阵的右上角至左下角的连线)

例:括号内是说明 输入:

1 (repeat=1) 4 (n=4) 2 3 4 1 5 6 1 1 7 1 8 1

25

JAVA

1 1 1 1

sum=35 (2+3+4+5+6+7+8=35)

import java.util.Scanner; public class Test60011{

public static void main(String []args){ int ri, repeat; int a[][],i,j,n,sum;

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n][n]; for(i=0; ifor(i=0;ifor(j=0;jsum=sum+a[i][j];

for(i=1;iif(i+j==n-1) sum=sum-a[i][j];

for(j=n-2;j>0;j--)

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

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

输入一个正整数repeat (0输入 1 个正整数 n(1≤n≤10), 输出一张 20 以内的加法口诀表. 加数与被加数都不大于 n, 分列第一行和第一列.(将加数、被加数、和放入一个二维数组中, 再输出该数组) 例:括号内是说明 输入:

1 (repeat=1) 3 (n=3) 输出:

+ 1 2 3 1 2

2 3 4

3 4 5 6

26

JAVA

import java.util.Scanner; public class Test60012{

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

int i,j,n,a[][]=new int[10][10]; Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); for(i=0;ia[i][j]=i+j;

for( i=0; i<=n; i++ ){ for( j=0; j<=n; j++ )

if(i==0&&j==0) System.out.print( \"+ \");

else if(i==0||j<=i) System.out.print( a[i][j]+\" \"); System.out.println(); } } } }

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

输入一个正整数repeat (02 (repeat=2)

3 1 2 3 0 4 5 0 0 6 (n=3) 2 1 0 -8 2 (n=2) 输出: YES NO

import java.util.Scanner;

public class Test60013{

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

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

27

JAVA

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n][n]; for (i=0;ia[i][j]=in.nextInt(); int sum=0;

for (i=0;i=j&a[i][j]==0)

sum=sum+1;

if(sum==n*(n-1)/2) flag=true; else

flag=false;

if(flag) System.out.println(\"YES\"); else System.out.println(\"NO\"); } } }

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

输入一个正整数repeat (0输入2 个正整数 m 和 n (1≤m, n),然后输入该m 行 n 列矩阵a中的元素,分别求出

各行元素之和, 并存入一维数组row中, 再输出row. 例:括号内是说明 输入:

1 (repeat=1) 3 2 (m=3, n=2) 6 3 1 -8 3 12 输出:

sum of row 0 is 9 sum of row 1 is -7 sum of row 2 is 15

import java.util.Scanner; public class Test60014{

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

int i,j,m,n,a[][],row[];

Scanner in=new Scanner(System.in);

28

JAVA

repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ m=in.nextInt(); n=in.nextInt(); a=new int[m][n]; row=new int[m]; for (i=0;ia[i][j]=in.nextInt(); for(i=0;irow[i]=row[i]+a[i][j]; for(i=0;iSystem.out.println(\"sum of row \"+i+\" is \"+row[i]); } } }

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

输入一个正整数repeat (0输入 1 个正整数 n和n 阶方阵a中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标, 否则,输出\"NO\"(设a最多有1个鞍点)。 例:括号内是说明 输入:

2 (repeat=2)

4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 (n=4) 2 1 7 4 1 (n=2) 输出: a[2][1]=6 NO

import java.util.Scanner; public class Test60019{

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

int i,j,k,row,col,n,a[][]; boolean flag;

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

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n][n]; for (i=0;i29

JAVA

for (j=0;ja[i][j]=in.nextInt(); flag=false; row=0; col=0;

for(i=0;ifor(j=1;jfor(k=1;kif(a[row][col]>a[k][col]) row=k; if(row==i){ flag=true; break; } }

if(flag)

System.out.println(\"a[\"+row+\"][\"+col+\"]=\"+a[row][col]);

else System.out.println(\"NO\"); } } }

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

已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。 本题无输入。 输出示例:

math = 87, eng = 72, comp = 93 average = 84

public class test20007 {

public static void main(String[] args) { int math, eng, comp, average; /**********/

System.out.println(\"math = \"+math+\eng = \"+eng+\comp = \"+comp); System.out.println(\"average = \"+ average); } }

public class test20007 {

30

JAVA

public static void main(String[] args) { int math, 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); } }

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

输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。 interest = money(1+rate)^year - money 输入输出示例:括号内为说明 输入

1000 3 0.025 输出

interest = 76.89

import java.util.Scanner; public class test20008 {

public static void main(String[] args) { int money, year; double interest, rate;

Scanner in=new Scanner(System.in);

/*使用in.nextDouble()和in.nextInt()输入double和int型数据*/ /**********/

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

import java.util.Scanner; public class test20008 {

public static void main(String[] args) { int money, year; double interest, rate;

Scanner in=new Scanner(System.in); money=in.nextInt(); year=in.nextInt(); rate=in.nextDouble();

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

31

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

JAVA

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

例:括号内是说明 输入:

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[]){ }

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

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();

32

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(); /*---------*/

System.out.println(); }

JAVA

} }

n=in.nextInt(); f=0;

for(i=1;fib(i)>=m&fib(i)<=n;i++){ f=fib(i);

System.out.print(f+\" \"); }

System.out.println();

public static long fib(int i){ } }

3 1 10 20 100 1000 6000

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

输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=10000),输出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 28

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();

33

if(i==1^i==2) else

return fib(i-2)+fib(i-1); return (long)1;

JAVA

}

}

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

System.out.println();

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

import java.util.Scanner; public class Test50006{

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

public static long fib(int i){ } }

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

输入一个正整数repeat (0输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。

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

34

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(); f=0;

if(m>=1&n<=10000){ for(i=1;fib(i)<=n;i++){ f=fib(i); if(fib(i)>=m)

System.out.print(f+\" \"); }

System.out.println(); }

if(i==1^i==2) else

return fib(i-2)+fib(i-1); return (long)1;

JAVA

输入:

2 (repeat=2)

100 400 (m=100, n=400) 1 100 (m=1, n=100) 输出:

153 370 371 (1*1*1+5*5*5+3*3*3=153; 3*3*3+7*7*7=370; 3*3*3+7*7*7+1*1*1=371) 1

import java.util.Scanner; public class Test50008{

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

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

import java.util.Scanner; public class Test50008{

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

public static boolean is(int number){

35

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(); /*---------*/

System.out.println(); }

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++){ }

System.out.println(); }

if(is(i))

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

JAVA

} }

int digit=number,x=number,sum=0; while(x!=0){ }

if(number==sum) else

return false; return true; digit=x%10;

sum=sum+digit*digit*digit; x=x/10;

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

输入一个正整数repeat (0要求定义并调用函数reverse(number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。 例:括号内是说明 输入

4 (repeat=4) 123456 -100 -2 99 输出 654321 -1 -2 99

4 123456 -100 -2 99

import java.util.Scanner; public class Test50009{

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

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

36

int ri,repeat; long n, res;

Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ }

n=in.nextInt(); /*---------*/

System.out.println(res);

JAVA

import java.util.Scanner; public class Test50009{

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

public static long reverse(long n){ } }

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

输入一个正整数 repeat (0if(n>=0){

String k = String.valueOf(n); int i=k.length()-1; k.charAt(i); String str1=\"\"; while(i>=0){

str1=str1+k.charAt(i); i--; }

return Long.parseLong(str1); } else{ }

n=-n;

String t = String.valueOf(n); int j=t.length()-1; t.charAt(j); String str2=\"\"; while(j>=0){

str2=str2+t.charAt(j); j--; }

str2=\"-\"+str2;

return Long.parseLong(str2);

int ri,repeat; long n, res;

Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ }

n=in.nextInt(); res=reverse(n);

System.out.println(res);

37

JAVA

要求定义并调用函数 dectobin(n),它的功能是输出 n 的二进制。例如,调用dectobin(10),输出1010。

输出语句:System.out.print(t); //t为某位二进制数 例:括号内是说明 输入:

3 (repeat=3) 15 100 0 输出: 1111 1100100 0

import java.util.Scanner; public class Test50010{

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

3 15 100 0

import java.util.Scanner; public class Test50010{

public static void main(String args[]){

int ri,repeat; int i,n;

Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ n=in.nextInt(); long t=dectobin(n); System.out.print(t); System.out.println(); }

38

int ri,repeat; int i,n;

Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ n=in.nextInt(); /*---------*/

System.out.println(); } }

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

JAVA

} }

}

String str1=\"\"; int temp=n,x=0; while(temp!=0){ }

int i=str1.length()-1; String str2=\"\"; while(i>=0){ }

return Long.parseLong(str2);

str2=str2+str1.charAt(i); i--; x=n%2; n=n/2; temp=temp/2; String.valueOf(x); str1=str1+x;

public static long dectobin(int n){

39

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