收藏 分销(赏)

浙大Java语言程序设计编程答案.doc

上传人:a199****6536 文档编号:9615412 上传时间:2025-04-01 格式:DOC 页数:14 大小:42.04KB 下载积分:8 金币
下载 相关 举报
浙大Java语言程序设计编程答案.doc_第1页
第1页 / 共14页
浙大Java语言程序设计编程答案.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
实验9-1 Method的使用(二) 1. 将一个整数逆序输出 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个整数,将它逆序输出。 规定定义并调用函数reverse(number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。 例:括号内是说明 输入 4 (repeat=4) 123456 -100 -2 99 输出 654321 -1 -2 99 import java.util.Scanner; public class Test50009{ public static void main(String args[]){ 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); } } /*---------*/ static long reverse(long number){ int flag=1; long a=0,digit; if(number<0){ flag=-1; number=-number; } while(number>0){ digit=number%10; //分离出个位数字 a=a*10+digit; //形成当前的逆序数 number=number/10; } return flag*a; } } 2. 十进制转换二进制 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入1 个正整数n,将其转换为二进制后输出。 规定定义并调用函数 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[]){ int ri,repeat; int i,n; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ n=in.nextInt(); /*---------*/ dectobin(n); System.out.println(); } } /*---------*/ static void dectobin(int n){ String t=""; //保存二进制数 do { t=n%2+t; //n除2后的余数拼接到t的前面 n=n/2; //获得除2后的商 }while(n>0); System.out.print(t); //本方法无返回值,需要在方法体中输出结果 } } 说明:本题中方法dectobin(n)的输出虽然与规定有所出入,但上传是对的的。 3. 用函数求三个数的最大值 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入三个整数a、b和c,输出其中较大的数。规定定义和调用函数max(a, b, c)找出a、b、c中较大的数,函数形参a、b和c的类型是int。 输入输出示例:括号内是说明 输入 3 (repeat=3) 输入: 5 8 9 (a=5, b=8) -1 -10 -5 (a=-1, b=-10) 1 1 1 (a=1, b=1) 输出: max(5,8,9)=9 max(-1,-10,-5)=-1 max(1,1,1)=1 import java.util.Scanner; public class Test50011 { public static void main(String args[]) { int ri, repeat; int a,b,c,maximun; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for (ri=1; ri<= repeat; ri++) { a=in.nextInt(); b=in.nextInt(); c=in.nextInt(); /*-----------------*/ maximun=maximun(a,b,c); System.out.println("max("+a+","+b+","+c+")="+maximun); } } /*-------------------*/ static int maximun(int a,int b,int c){ int max; max=a; if(max<b)max=b; if(max<c)max=c; return max; } } 实验9-2 一维数组的使用 4. 求平均值 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数n (1<n≤10),再输入n个整数,输出平均值。 例:括号内是说明 输入 2 (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]; for(i=0; i<n; i++) a[i]=in.nextInt(); //这个循环输入数组各元素 /*--------------*/ sum=0; for(i=0; i<n; i++) //这个循环实现累加 sum+=a[i]; aver=(float)sum/n; //求平均值,注意要先把sum转换成float,再计算 System.out.println("aver="+aver); } } } 5. 求最大值及其下标 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数n (1<n≤10),再输入n个整数,输出最大值极其下标(设最大值惟一,下标从0开始)。 例:括号内是说明 输入 3 (repeat=3) 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; i<n; i++) a[i]=in.nextInt(); /*--------------*/ index=0; //用index保存最大数的下标,开始假设a[0]是最大数 for(i=1; i<n; i++) if(a[index]<a[i]) index=i; //a[i]与当前最大数a[index]比较,若a[i]更大,index变为i System.out.println("max="+a[index]+",index="+index); } } } 6. 逆序输出 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数n (1<n≤10),再输入n个整数,按逆序输出这些数。 例:括号内是说明 输入 2 (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; 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; i<n; i++) a[i]=in.nextInt(); /*--------------*/ for(i=0; i<n/2; i++){ //a[i]与a[n-1-i]互换,注意互换次数 temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } for(i=0; i<n; i++) System.out.print(a[i]+" "); System.out.println(); } } } 7. 互换最小值和最大值 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数n,再输入n个整数,将最小值与第一个数互换,最大值与最后一个数互换,然后输出互换后的n个数。 例:括号内是说明 输入 3 (repeat=3) 5 4 3 5 1 2 4 1 5 6 7 5 5 4 3 2 1 输出 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(); a=new int[n]; for(i=0; i<n; i++) a[i]=in.nextInt(); /*--------------*/ index=0; //找最小数 for(i=0; i<n; i++) if(a[index]>a[i]) index=i; t=a[index]; a[index]=a[0];a[0]=t; //互换 index=0; //找最大数 for(i=0; i<n; i++) if(a[index]<a[i]) index=i; t=a[index]; a[index]=a[n-1];a[n-1]=t; //互换 for(i=0; i<n; i++) //输出 System.out.print(a[i]+" "); System.out.println(); } } } 说明:不能把两个循环合成一个,否则当数组元素为“5 4 3 2 1”时犯错。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服