浙大JAVA 实验题答案06answer

更新时间:2023-11-05 10:43:01 阅读量: 综合文库 文档下载

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

实验6 循环结构程序的设计(一)

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

30003 求三角形的面积和周长

输入一个正整数repeat (0

输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积area和周长perimeter;否则,输出“These sides do not correspond to a valid triangle”。 在一个三角形中,任意两边之和大于第三边。 三角形的面积计算公式:

area*area = s(s-a)(s-b)(s-c) 其中:s = (a+b+c)/2 输出代码:

System.out.println(\0.5)/100.);

System.out.println(\

例:括号内是说明 输入

2 (repeat=2) 5 5 3 1 1 4 输出

area=7.15;perimeter=13.0

These sides do not correspond to a valid triangle

import java.util.Scanner; public class Test30003 {

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

float a, b, c, area, perimeter, s; Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ a=in.nextFloat(); b=in.nextFloat(); c=in.nextFloat();

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

if(a+b>c&&a+c>b&&b+c>a){ //注意:复合条件的正确写法 s=(a+b+c)/2; area=(float)Math.sqrt(s*(s-a)*(s-b)*(s-c)); perimeter=a+b+c;

System.out.println(\+(int)(area*100+0.5)/100.+\+(int)(perimeter*100+0.5)/100.); }

else

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

30007 字母转换

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

例: 输入 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+=32;

else if(ch>='a'&&ch<='z') //此处必须使用if结构的嵌套

ch-=32;

System.out.print(ch);

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

/*错误1 */

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

if(ch>='A'&&ch<='Z') ch+=32; if(ch>='a'&&ch<='z') ch-=32;

/*错误2 */

40001 求1+1/2+1/3+??+1/n

输入一个正整数repeat (0

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

例:括号内是说明 输入

2 (repeat=2) 2 10 输出 1.5 2.929

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;

//注意这条赋初值语句的位置

}

40002 求n!

输入一个正整数repeat (0

例:括号内是说明 输入

for(i=1;i<=n;i++){ sum+=1.0f/i; } System.out.println((int)(sum*1000+0.5)/1000.); } }

3 (repeat=3) 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);

40003 求x的n次幂(提示:用循环结构实现求幂)

输入一个正整数repeat (0

例:括号内是说明 输入

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

40005 求1+1/3+1/5+1/7+??

输入一个正整数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);

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

Top