浙大 Java语言程序设计编程答(1).docx
浙大 Java语言程序设计编程答实验6 循环结构程序的设计(一) 程序填空,不要改变与输入输出有关的语句。 1. 求11/21/31/n 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 读入1 个正整数 n(n<=100),计算并输出11/21/31/n 。 例:括号内是说明 输入 2 (repeat=1) 2 10 输出 1.5 2.9289684 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+=1.0f/i; System.out.println(int)(sum*1000+0.5)/1000.); 2. 求n! 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 读入1 个正整数 n(n<=50),计算并输出n! 。 例:括号内是说明 输入 3 (repeat=2) 1 10 5 输出 1.0 3628800.0 120.0 import java.util.Scanner; public class Test40002 public static void main(String args) int ri, repeat; int i, n; double fact; Scanner in=new Scanner(System.in); repeat=in.nextInt; for(ri=1; ri<=repeat; ri+) n=in.nextInt; /*-*/ fact=1; for(i=1;i<=n;i+) fact*=i; System.out.println(fact); 3. 求x的n次幂 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 读入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; Scanner in=new Scanner(System.in); repeat=in.nextInt; for(ri=1; ri<=repeat; ri+) x=in.nextDouble; n=in.nextInt; /*-*/ mypow=1; for(i=1;i<=n;i+) mypow*=x; System.out.println(mypow); 4. 求11/31/51/7 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 读入1 个正整数 n(n<=100),计算并输出11/31/51/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; /*-*/ temp=1; sum=0; for(i=1;i<=n;i+) sum+=1.0f/temp; temp+=2; System.out.println(sum); 解法二: temp=2*n-1; sum=0; for(i=1;i<=temp;i+=2) sum+=1.0f/i; 5. 摄氏温度和华氏温度转换表 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入2个整数begin和end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度F的转换表。 F = 32 + C * 9 / 5 输出语句:System.out.println(c+"t"+f); 例:括号内是说明 输入 1 (repeat=1) 5 7 输出 Celsius Fahrenheit 5 41 6 42 7 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+"t"+f); 6. 求奇数和 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 读入一批正整数(以零或负数为结束标志),求其中的奇数和。 例:括号内是说明 输入 2 (repeat=2) 1 3 90 7 0 8 7 4 3 70 5 6 101 -1 输出 11 116 import java.util.Scanner; public class Test40008 public static void main(String args) int ri, repeat; int x, sum; Scanner in=new Scanner(System.in); repeat=in.nextInt; for(ri=1; ri<=repeat; ri+) x=in.nextInt; /*-*/ sum=0; while(x>0) if(x%2!=0)sum+=x; x=in.nextInt; System.out.println(sum); 7. 求最大值 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数n, 再输入n个整数,输出最大值。 例:括号内是说明 输入 3 (repeat=3) 4 2 123 -100 0 4 9 1 -1 8 3 1 3 5 输出 123 9 5 import java.util.Scanner; public class Test40009 public static void main(String args) int ri, repeat; int i , max, n, x; Scanner in=new Scanner(System.in); repeat=in.nextInt; for(ri=1; ri<=repeat; ri+) n=in.nextInt; /*-*/ max=in.nextInt; /输入第一个数 for(i=1;i<=n-1;i+) x=in.nextInt; /输入下一个数,然后比较 if(x>max)max=x; System.out.println(max); 8. 求整数的位数以及各位数之和 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个整数,输出它的位数以及各位数之和。 例:括号内是说明 输入 4 (repeat=4) 123456 -100 -1 99 输出 number=6, sum=21 (123456的位数是6, 各位数之和是21) number=3, sum=1 (-100的位数是3, 各位数之和是1) number=1, sum=1 (-1的位数是1, 各位数之和是1) number=2, sum=18 (99的位数是2, 各位数之和是18) import java.util.Scanner; public class Test40010 public static void main(String args) int ri, repeat; int number, sum,n; Scanner in=new Scanner(System.in); repeat=in.nextInt; for(ri=1; ri<=repeat; ri+) n=in.nextInt; /*-*/ n=Math.abs(n); number=sum=0; do sum=sum+(n%10); number+; n=n/10; while(n>0); /* 如果使用while语句,输入0时输出 “number=0, sum=0” 其中number的值不正确,应是1 */ System.out.println("number="+number+", sum="+sum); ,