Java复习习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P13 2.参照例1-2编写一个java applet程序,程序能在浏览器中显示“你好,Hello”。(见p11例1-2)
P24 2.参照2-4编写一个java应用程序,用户从键盘只能输入整数,程序输出这些整数的乘积。
import java.util.*;
public class ZuoYe2_2{
public static void main (String args[ ]){
Scanner reader=new Scanner(System.in);
long chengji=1;
int m=0;
while(reader.hasNextInt()){
int x=reader.nextInt();
m=m+1;
chengji=chengji*x;
}
System.out.println(m+"个数的乘积为"+chengji);
}
}
P41 1.有一个函数Y=-1+2x,x<0;-1,x=0;-1+3x,x>0编写一个java应用程序,从键盘输入一个X值,程序输出Y值。import java.util.*;
public class ZuoYe3_1{
public static void main (String args[ ]){
Scanner reader=new Scanner(System.in);
double y=0,x=0;
x=reader.nextDouble();
if(x<0)
y=-1+2*x;
else if(x==0)
y=-1;
else if(x>0)
y=-1+3*x;
System.out.println(y);
}
}
P41 2.编写一个java程序,使用while循环计算1-1000之间能被3和7同时整除的整数之和。
public class ZuoYe3_2{
public static void main(String args[]){
int sum=0,m=3,n=7,a=1;
while(a<=1000){
if(a%m==0&&a%n==0)
sum=sum+a;
a++;
}
System.out.println("sum="+sum);
}
}
P41 3.编写一个java程序,使用for循环计算8+88+888+8888+88888…的前十项和。
public class ZuoYe3_3{
public static void main(String args[])
{
long sum=0,a=8,item=a,n=10,i=1;
for(i=1;i<=n;i++)
{ sum=sum+item;
item=item*10+a;
}
System.out.println(sum);
}
}
P78 1.编写一个类,该类创建的对象可以计算等差数列的和。
class DengCha{
int start,d;
DengCha(){
}
DengCha(int start,int d){
this.start=start;
this.d=d;
}
void setStart(int s){
start=s;
}
void setD(int d){
this.d=d;
}
int getSum(int n){
int sum=0,i=1;
while(i<=n){
sum=sum+start;
start=start+d;
i++;
}
return sum;
}
}
public class ZuoYe4_1 //这个类的应用
{
public static void main (String args[ ])
{
DengCha shulie=new DengCha(2,3);
System.out.println(shulie.getSum(100));
shulie.setStart(10);
shulie.setD(5);
System.out.println(shulie.getSum(9));
}
}
P78 4.编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以算两个数的最小公倍数。要求:类B中有一个成员变量是用类A的声明对象。
import java.util.Scanner;
class A{
int f(int m,int n){
if(m*n<0)
{ System.out.println("有负数,程序退出");
System.exit(0);
}
if(m { int temp=m; m=n; n=temp; } int a=m,b=n; int r=m%n; while(r!=0) { m=n; n=r; r=m%n; } return n; } } class B{ A a; // a为类A声明的变量(个人理解) B(){ a=new A(); } int g(int m,int n){ int temp=a.f(m,n); return m*n/temp; } } public class ZuoYe4_4 { public static void main (String args[ ]) { Scanner reader=new Scanner(System.in); System.out.println("输入2个正整数,程序计算出它们的最大公约数和最小公倍数"); System.out.print("输入第一个整数:"); int m=reader.nextInt(); System.out.print("输入第二个整数:"); int n=reader.nextInt(); A a=new A(); B b=new B(); System.out.println(m+"和"+n+"的最大公约数是"+a.f(m,n)); System.out.println(m+"和"+n+"的最小公倍数是"+b.g(m,n)); } } P78 5.编写使用了包语句的类,然后在应用程序中用import语句引入该类,并用该类创建对象。(见p76-p77) P111 1.编写一个类,该类有一个方法 Public int f(int a,int b){ //要求该法返回a和b最大公约数 } 然后编写一个该类的子类,要求重写子类方法f(),而且重写的方法将返回这两个数的最小公倍数。要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用程序的主类分别使用父类和子类创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。