开启答案之旅
第一章
Ps:这些都是我自己写的,有些与题目要求的方法不一致,但基本上都能实现!本来准备一章写一篇微博,但发现第二章就没人看了,所以我还是吧所有的都写到一个里面的
第一题
package A;
import java.util.Scanner;
public class F {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个整数时间:");
int time = reader.nextInt();
if (time < 0 || time > 24) {
System.out.println("输入的不是一个合法时间");
} else if (time > 12) {
System.out.println("12小时制为" + (time - 12) + "点");
} else {
System.out.println("12小时制为" + time + "点");
}
}
}
第二题
package A;
import java.util.Scanner;
public class A {
public static void main(String[] args) {
int y;
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个数:");
int x=reader.nextInt();
if(x<1)
{
y=x;
System.out.println(y);
}
else if(x<10){
y=2*x-1;
System.out.println(y);
}
else
{
y=3*x-11;
System.out.println(y);
System.out .println();
}
}
}
第三题
package A;
import java.util.Scanner;
import sun.net.www.content.text.plain;
public class B {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个成绩:");
int score = reader.nextInt();
if (score < 0 || score > 100) {
System.out.println("这不是一个合法的成绩");
} else {
char dengji;
switch (score) {
case 90:
dengji = 'A';
break;
case 80:
dengji = 'B';
break;
case 70:
dengji = 'C';
break;
case 60:
dengji = 'D';
break;
default:
dengji = 'E';
}
System.out.println("成绩是:" + score + "," + "相应的等级是:"+dengji);
}
}
}
package A;
import java.util.Scanner;
public class C {
public static void main(String[] args) {
int a = 7;
System.out.println("今天是星期" + a);
int b;
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个日期:");
int n = reader.nextInt();
b = n % 7;
System.out.println("n天后是星期" + b);
}
}
第五题
package A;
import java.util.Scanner;
public class D {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个数:");
int n = reader.nextInt();
for (int i = 0; i < n; i++) {
System.out.print("*");
}
}
}
while实现
public class SumDemo1 {
public static void main(String[] args) {
int sum = 0, i = 0;
while(i<=100){
if(i%2==0)
sum = sum+i;
i++;
}
System.out.println("0--100之间所有偶数的和是"+sum);
}
}
do。。。while实现
public class SumDemo2 {
public static void main(String[] args) {
int sum = 0, i = 0;
do{
if(i%2==0)
sum = sum+i;
i++;
}while(i<=100);
System.out.println("0--100之间所有偶数的和是"+sum);
}
}
for实现
public class SumDemo3 {
public static void main(String[] args) {
int sum = 0, i = 0;
for( ; i<=100; i=i+2)
sum = sum+i;
System.out.println("0--100之间所有偶数的和是"+sum);
}
}
就实现一个吧。。。
for循环实现
public class Factorial3 {
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
int result = 1;
if(num<1)
System.out.println("应输入大于1的整数");
else{
int i;
for( i=1; i<=num; i++)
result = result*i;
System.out.println(num+"的阶乘是"+result);
}
}
}
第八题
int i, j;
for (i = 9; i >= 1; i--) {
for (j = 1; j <= i; j++) {
System.out.print(i + " x " + j + " = " + i * j + " ");
}
System.out.println();
}
第二章
第一题
定义一个描述长方体的类Box,类中有三个整型的成员变量length、width和height,分别表示长方体的长、宽和高。定义setInfo(int,int,int)方法设置这三个变量的值;定义volumn()方法求长方体的体积并返回整型结果;定义area()方法求长方体的表面积整型结果;定义toString()方法把长方体的长、宽和高,以及长方体的体积和表面积转化为字符串并返回字符串。
编写Java应用程序,测试类Box,使用类中定义的各个方法,并将其结果输出。
第二题
定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。
编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。
第三章
1
编写程序,计算如下表达式的值,将结果输出。
(1) 3.5+1/2+56%10
(2) 3.5+1.0/2+56%10
(3) int a = 4%3*7+1
package A;
public class A {
public static void main(String[] args) {
double a=3.5;
int b=1/2;
int c=56%10;
double d=1.0/2;
double sum=a+b+c;
double sum1=a+d+c;
int e=4%3*7+1;
System.out.println("结果是"+sum);
System.out.println("结果是"+sum1);
System.out.println("结果是"+e);
}
}
2
下列语句执行后变量a、b、c、d的值分别是多少?
int a=5,b=8,c,d;
c=(a++)* b;
d=(++a) * b;
package A;
public class B {
public static void main(String[] args) {
int a=5,b=8,c,d;
c=(a++)*b;
d=(++a)*b;
System.out.println("a的值是"+a);
System.out.println("b的值是"+b);
System.out.println("c结果是"+c);
System.out.println("d结果是"+d);
}
}
3
自定义一个字符串数组,提示用户输入5个字符串,通过循环语句实现将用户输入的字符串存放到数组里,然后反向输出这五个字符串。
package A;
import java.util.Scanner;
public class C {
public static void main(String[] args)
{
Scanner reader=new Scanner(System.in);
String ch[]=new String[5];
System.out.println("请输入五个字符串:");
for(int i=0;i<5;i++)
{
ch[i]=reader.next();
}
System.out .println("正向输出为:");
for(int j=0;j<5;j++)
{
System.out .print(ch[j]+" ");
}
System.out .println("");
System.out .println("反向输出为:");
for(int k=4;k>=0;k--)
{
System.out .print(ch[k]+" ");
}
}
}
结果如下图:
4
定义一个实型数组用来存放学生成绩,提示用户确定成绩的个数,根据个数创建数组。提示用户输入每个成绩,为各数组元素赋值。询问用户要查找第几个同学的成绩,显示相应的查询结果,如果超出个数范围则进行相应提示。
package A;
import java.util.Scanner;
public class D {
public static void main(String[] args) {
int a,b,c=0;
Scanner reader=new Scanner(System.in);
double score[]=null;
System.out .println("你想输入几个成绩:");
a=reader.nextInt();
if(a<=0)
System.out .println("错误,请重新输入!");
else
{
score=new double[a];
for(int i=0;i0){
for(int j=1;j<=a;j++)
{
if(j==b)
System.out.println("第"+b+"个同学的成绩是:"+score[j-1]);
}
}
else
System.out.println("错误,请重新输入!");
}
}
}
结果如下图:
package A;
import java.util.Scanner;
public class F{
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
double score[] = null;
int m,a=0,b=0;
double n;
System.out.println("您要输入多少个同学的成绩?");
m=reader.nextInt();
if(m<=0)
System.out.println("个数错误!");
else{
score=new double[m];
for(int i=0;i=0&&n<=100){
for(int j=0;j
结果如下图:
package A;
import java.util.Scanner;
public class E {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out .println("请输出一个整数:");
int n=reader.nextInt();
System.out .println("请输出一个符号:");
String m=reader.next();
for(int i=0;i
结果如下图:
第四章
1
编写Java应用程序,定义一个计算两个整数和的函数static int add(int op1,int op2)。在main()方法中声明两个整型变量,分别赋值,调用add()得到它们的和,在屏幕上输出结果。
public class a {
public static void main(String[] args) {
int a=1;
int b=2;
System.out.println("1+2="+add(a,b));
}
public static int add(int op1,int op2){
int sum;
sum=op1+op2;
return sum;
}
}
public class Test {
public static void main(String[] args) {
float a=(float) 3.141546789;
double b=3.141546789;
f x=new f();
System.out.println("单精度实数四舍五入后得到的数据为"+x.round(a));
System.out.println("双精度实数四舍五入后得到的数据为"+x.round(b));
}
}
结果如下:
2
编写程序,定义一个方法public static void abs(int a),用来求绝对值并输出结果。在main方法中从命令行读入一个整数,调用这个结果求它的绝对值。
import java.util.Scanner;
public class b {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个数:");
int a=reader.nextInt();
System.out.print(a);
abs(a);
}
public static void abs(int a){
if(a<0){
System.out.println("的绝对值为"+-a);
}
else
System.out.println("的绝对值为"+a);
}
}
结果如下:
3
在第2题的基础上,修改abs成为带返回值的方法,即public static int abs(int a),实现相同的功能。
import java.util.Scanner;
public class c {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个数:");
int n=reader.nextInt();
System.out.println("请输入一个符号:");
String ch=reader.next();
draw(n,ch);
}
public static void draw(int n,String ch){
for(int i=0;i
public class Draw {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个数:");
int n=reader.nextInt();
System.out.println("请输入一个符号:");
String ch=reader.next();
draw(n,ch);
}
public static void draw(int n,String ch){
for(int i=0;i
import java.util.Scanner;
public class d {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个数:");
int n=reader.nextInt();
System.out.println("1到"+n+"的累加和是"+He(n));
}
public static int He(int n) {
int sum=0;
for(int i=1;i<=n;i++){
sum=sum+i;
}
return sum;
}
}
结果如下:
6
定义一个类Initial,类的内部重载initArr()方法,分别实现对整型数组、双精度型数组、字符串数组的初始化功能,数组作为方法的参数,方法体内提示用户为数组元素输入数据,然后显示所有元素。
在main方法中创建三种类型的数组,创建Initial类的对象,分别调用initArr()方法进行初始化。
import java.util.Scanner;
public class Initial {
Scanner reader=new Scanner(System.in);
void initArr(int a[]){
System.out.print("初始化之后,整形数组每个元素值为");
for(int i=0;i
测试类
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out.println("输入整形数组的长度:");
int a=reader.nextInt();
System.out.println("输入双精度型数组的长度:");
int b=reader.nextInt();
System.out.println("输入字符串数组的长度:");
int c=reader.nextInt();
int x[]=new int[a];
Initial a1=new Initial();
a1.initArr(x);
System.out.println();
double y[]=new double[b];
Initial b1=new Initial();
b1.initArr(y);
System.out.println();
String z[]=new String[c];
Initial z1=new Initial();
z1.initArr(z);
}
}
import java.util.Scanner;
public class MathDemo {
float round(float a){
Scanner reader=new Scanner(System.in);
System.out.println("请输入要保留几位小数:");
int n=reader.nextInt();
int m=1;
for(int i=1;i<=n;i++){
m=m*10;
}
float b=(int) (a*m+0.5);
a=b/m;
return a;
}
double round(double b){
Scanner reader=new Scanner(System.in);
System.out.println("请输入要保留几位小数:");
int n=reader.nextInt();
int m=1;
for(int i=1;i<=n;i++){
m=m*10;
}
double c=(int) (b*m+0.5);
b=c/m;
return b;
}
}
测试类:
public class Test {
public static void main(String[] args) {
float a=(float) 3.141546789;
double b=3.141546789;
MathDemo x=new MathDemo();
System.out.println("单精度实数四舍五入后得到的数据为"+x.round(a));
System.out.println("双精度实数四舍五入后得到的数据为"+x.round(b));
}
}