《浙大JAVA 实验题答案13answer》由会员分享,可在线阅读,更多相关《浙大JAVA 实验题答案13answer(6页珍藏版)》请在人人文库网上搜索。

1、实验13 字符串处理(二)和类的设计1. 程序填空题,不要改变与输入输出有关的语句。以下题目请采用字符串处理来实现:40010求整数的位数以及各位数之和输入一个正整数repeat (0repeat10),做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, su。
2、m=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);String s=String.valueOf(n); /把正整数n转换成字符串number。
3、=s.length(); /得到整数的位数sum=0;for(int i=0;inumber;i+)sum+=(s.charAt(i)-0); /求各位数字和System.out.println(number=+number+, sum=+sum);50003 统计一个整数中数字的个数输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个整数,统计并输出该数中2的个数。要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。例:括号内是说。
4、明输入:3 (repeat=3)-219022345543输出:count=2 (-21902中有2个2)count=1 (有1个2)count=0 (345543中没有2)import java.util.Scanner;public class Test50003public static void main(String args)int ri, repeat;int count;long n;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri=repeat; ri+)n=in.nextInt();/*-*。
5、/*-*/n=Math.abs(n);count=countdigit(n,2);System.out.println(count=+count);/*-*/统计正整数number中数字digit的个数static int countdigit(long number,int digit)int c=0;String s=String.valueOf(number); /把长整数number转换成字符串/以下循环实现:依次取出number的每个数字与指定数字digit比较,若相等则个数加1for(int i=0;is.length();i+) if(s.charAt(i)-0=digit)c+。
6、;return c;50009 将一个整数逆序输出输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个整数,将它逆序输出。要求定义并调用函数reverse(number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。例:括号内是说明输入4 (repeat=4) 123456 -100 -2 99输出654321-1-299import java.util.Scanner;public class Test50009public static void main(String args)int ri,repeat;l。
7、ong 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)/返回number的逆序数long a;int flag=1; /保存符号if(number0) flag=-1;number=-number; /负数变成正数String s1=String.valueOf(number);St。
8、ring s2=;for(int i=0;is1.length();i+)s2=s1.charAt(i)+s2; /字符串逆序a=Long.parseLong(s2); /转换成数值return flag*a; /加上符号 2. 编程题70001 定义一个能计算圆面积和周长的类输入n,输入n个圆半径,分别计算圆面积和周长。要求在main()方法所在类的后面定义一个Circle类,该类包含以下成员:成员变量r:单精度浮点型成员方法setR():设置半径成员方法area():计算面积,返回双精度浮点数成员方法perimeter():计算周长,返回双精度浮点数输入输出示例(括号内是说明)输入:2 (。
9、n=2,后面要输入2个圆半径)12.3 100.12 (第1个半径是12.3,第2个半径是100.12)输出:475 (第1个圆面积)77 (第1个圆周长)31491 (第2个圆面积)629 (第2个圆周长)import java.util.*;public class Test70001 public static void main(String args)Scanner in=new Scanner(System.in);int n,i;float r;n=in.nextInt();for(i=1;i=n;i+)r=in.nextFloat();Circle cir=new Circle。
10、();cir.setR(r);System.out.println(Math.round(cir.area();System.out.println(Math.round(cir.perimeter();/*-*/class Circlefloat r;public void setR(float x)r=x;public double area()return Math.PI*r*r;public double perimeter()return 2*Math.PI*r;70002 设计一个立方体类输入一个立方体边长,分别计算表面积和体积。要求在main()方法所在类的后面定义一个Cube类。
11、,该类包含以下成员:成员变量length:双精度浮点型,建议用私有变量成员方法setLength():设置边长成员方法getLength():返回边长成员方法calcArea():计算表面积,返回双精度浮点数成员方法calcV():计算体积,返回双精度浮点数输入输出示例(括号内是说明)输入:1.25 (边长等于1.25)输出:Length=1.25Surface area=9.375Volume=1.953125import java.util.Scanner;public class Test70002 public static void main(String args) Scanner。
12、 in=new Scanner(System.in);double n;n=in.nextDouble(); /输入边长/*-*/Cube cube1=new Cube();cube1.setLength(n);System.out.println(Length=+cube1.getLength();System.out.println(Surface area=+cube1.calcArea();System.out.println(Volume=+cube1.calcV();/*-*/class Cubeprivate double length;public void setLength(double n)length=n;public double getLength()return length;public double calcArea()return 6*length*length;public double calcV()return length*length*length。