当前位置:文档之家› 浙大JAVA 实验题答案07answer

浙大JAVA 实验题答案07answer

实验7 循环结构程序的设计(二)
1.程序填空题,不要改变与输入输出有关的语句。

40004 求1-1/2+1/3-1/4+……
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
读入1 个正整数 n(n<=100),计算并输出1-1/2+1/3-1/4+……的前n项和(四舍五入保留小数4位)。

例:括号内是说明
输入
2 (repeat=2)
10
3
输出
import class Test40004 {
public static void main(String[] args) {
int ri, repeat;
int i, n, flag;
float sum;
Scanner in=new Scanner;
repeat=();
for(ri=1; ri<=repeat; ri++){
n=();
/*--------------------*/
sum=0;
flag=1;
for(i=1;i<=n;i++) {
sum+=flag*i;
flag=-flag;
}
}
}
}
40006 求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
输出
import class Test40006 {
public static void main(String[] args) {
int ri, repeat;
int temp, flag;
double eps, item, sum;
Scanner in=new Scanner;
repeat=();
for(ri=1; ri<=repeat; ri++){
eps=();
/*--------------------*/
item=1;
sum=0;
temp=flag=1;
while(item)>=eps){
sum+=item;
flag=-flag;
temp+=2;
item=flag*temp;
}
}
}
}
40011 求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)
1 5 20
输出
(第1项是
(前5项的和是
(前20项的和是
import class Test40011 {
public static void main(String[] args) {
int ri, repeat;
int i,n;
float a,b,s,t;
Scanner in=new Scanner;
repeat=();
for(ri=1; ri<=repeat; ri++){
n=();
/*--------------------*/
/*--------------------*/
a=1; ;
public class Test40014 {
public static void main(String []args){
Scanner in =new Scanner;
int gcd, lcm, m, n,r;
int repeat, ri;
repeat=();
for(ri = 1; ri <= repeat; ri++){
m=();
n=();
if(m <= 0 || n <= 0)
"m <= 0 or n <= 0");
else{
/*---------*/
lcm=m*n;
if(m<n){r=m;m=n;n=r;}
r=m%n;
while(r!=0)
{m=n; n=r; r=m%n;}
gcd=n;
lcm=lcm/gcd;
"the least common multiple:"+lcm
+", the greatest common divisor:"+gcd);
}
}
}
}
40021 求1 + 1/2! +....+ 1/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)
输出:
import class Test40021{
public static void main(String args[]){
int ri, repeat;
int i,n;
float s,t;
Scanner in=new Scanner;
repeat=();
for(ri=1; ri<=repeat; ri++){
n=();
/*--------------------*/
s=0;
t=1;
for(i=1;i<=n;i++){
t*=i;
s+=1/t; ;
说明:
1)源程序中不得出现package关键字;
2)程序中的第一个大括号“{”必须位于类名所在行。

3)类名与变量名由编程者自取。

4)指明为整数或整数的数据,不要用浮点类型。

输入输出示例:括号内是说明
输入
2 (n=2,表示后面要输入二批成绩)
67 88 73 54 82 -1 (第一批成绩)
78 90 33 59 69 100 92 -1 (第二批成绩)
输出
average= (第一批成绩的平均分)
count=1 (第一批成绩的不及格人数)average= (第二批成绩的平均分)
count=2 (第二批成绩的不及格人数)
import class Test40037{
public static void main(String args[]){
int ri, n;
int score,sum,count1,count;
float ave;
Scanner in=new Scanner;
n=();
for(ri=1; ri<=n; ri++){
sum=count1=count=0;
score=();
while(score>=0){
sum+=score;
count1++;
if(score<60)count++;
score=();
}
ave=(float)sum/count1;
"average="+(ave*100)/100.);
"count="+count);
}
}
}。

相关主题