浙大JAVA 实验题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验9-1 Method的使用(二)
1.程序填空题,不要改变与输入输出有关的语句。
50010 十进制转换二进制
输入一个正整数 repeat (0 输入1 个正整数n,将其转换为二进制后输出。 要求定义并调用函数 dectobin(n),它的功能是输出 n 的二进制。例如,调用dectobin(10),输出1010。 输出语句:..+ 1/n! 输入一个正整数repeat (0 输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。 s = 1 + 1/2! +....+ 1/n! 要求定义并调用函数fact(n)计算n的阶乘。 例:括号内是说明 输入: 2 (repeat=2) 2 (n=2) 10 (n=10) 输出: import class Test50001 { public static void main(String[] args) { int ri,repeat; int i,n; double s; Scanner in=new Scanner; repeat=(); for(ri=1;ri<=repeat;ri++){ n=(); /*-----------*/ s=0; for(i=1;i<=n;i++) s+=fact(i); } } /*---------------*/ static double fact(int n) {.... 要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。 输出语句:" "); 例:括号内是说明 输入: 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 class Test50006{ public static void main(String args[]){ int ri,repeat; int i, m, n; long f; Scanner in=new Scanner; repeat=(); for(ri=1; ri<=repeat; ri++){ m=(); n=(); /*---------*/ i=1; f=1; while(f<=n){ if(f>=m) " "); i++; f=fib(i); } } } /*------------*/ static long fib(int n){ //递归方法 if(n==1||n==2) return 1; else return fib(n-1)+fib(n-2); } } 实验9-2 一维数组的使用 1.求平均值 输入一个正整数repeat (0 输入一个正整数n (1 例:括号内是说明 输入 2 (repeat=2) 3 1 2 -6 5 12 2 5 4 0 输出 aver= aver= import class Test60001{ public static void main(String []args){ int ri, repeat; int i, n, sum,a[]; float aver; Scanner in=new Scanner; repeat=(); for(ri=1; ri<=repeat; ri++){ n=(); a=new int[n]; for(i=0; i a[i]=();//这个循环输入数组各元素 /*--------------*/ sum=0; for(i=0; i sum+=a[i]; aver=(float)sum/n; //求平均值,注意要先把sum转换成float,再计算 "aver="+aver); } } } 2.求最大值及其下标 输入一个正整数repeat (0 输入一个正整数n (1 例:括号内是说明 输入 3 (repeat=3) 3 1 6 4