资源描述
Java 作业题答案 (以下程序均调试通过)
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<n)
{ 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()计算两个正整数的最大公约数和最小公倍数。
import java.util.Scanner;
class A
{
public int f(int m,int n)
{
if(m<n)
{
int temp=m;
m=n;
n=temp;
}
int r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
return n;
}
}
class B extends A
{
public int f(int m,int n)
{
int division=super.f(m,n);
return (m*n)/division;
}
}
public class ZuoYe5_1
{
public static void main (String args[ ])
{
A a=new A();
B b=new B();
Scanner reader=new Scanner(System.in);
System.out.println("输入2个整数,程序计算出它们的最大公约数和最小公倍数");
System.out.print("输入第一个整数:");
int m=reader.nextInt();
System.out.print("输入第二个整数:");
int n=reader.nextInt();
if(m*n<0)
{ System.out.println("有负数,程序退出");
System.exit(0);
}
System.out.printf("%d和%d的最大公约数是%d\n",m,n,a.f(m,n));
System.out.printf("%d和%d的最小公倍数是%d\n",m,n,b.f(m,n));
}
}
展开阅读全文