开启答案之旅
<span style="font-size:24px;color:#FF0000;"><strong> 第一章</strong></span>
Ps:这些都是我自己写的,有些与题目要求的方法不一致,但基本上都能实现!本来准备一章写一篇微博,但发现第二章就没人看了,所以我还是吧所有的都写到一个里面的<img alt="大笑" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif" />
第一题
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,使用类中定义的各个方法,并将其结果输出。
- package A;
- class Box {
- int width;
- int height;
- int depth;
- int volum() {
- return width + height + depth;
- }
- int area() {
- return 2 * (width * height + width * depth + height * depth);
- }
- void setInfo(int w, int h, int d) {
- width = w;
- height = h;
- depth = d;
- }
- public String toString() {
- System.out.printf(
- "长为:" + height + "宽为:" + width + "高为:" + depth + '\n' + "体积为:" + volum() + '\n' + "面积为:" + area());
- return null;
- }
- }
- public class E {
- public static void main(String[] args) {
- Box myBox = new Box();
- myBox.setInfo(1, 2, 3);
- myBox.toString();
- }
- }
第二题
定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。
编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。
- package A;
- public class H {
- double banjing;
- double PI=3.14;
- public void setR(double r){
- banjing=r;
- }
- double getArea(){
- return PI*banjing*banjing;
- }
- double getPerimeter(){
- return 2*PI*banjing;
- }
- public void showInfo(){
- System.out.println("半径为"+banjing+"的圆的面积是:"+PI*banjing*banjing+" "+"周长是:"+2*PI*banjing);
- }
- public static void main(String[] args) {
- H x1=new H();
- H x2=new H();
- x1.setR(1);
- x2.setR(2);
- System.out.println("第一个圆的半径是:"+x1.banjing);
- System.out.println("第一个圆的面积是:"+x1.getArea());
- System.out.println("第一个圆的周长是:"+x1.getPerimeter());
- System.out.println();
- System.out.println("第二个圆的半径是:"+x2.banjing);
- System.out.println("第二个圆的面积是:"+x2.getArea());
- System.out.println("第二个圆的周长是:"+x2.getPerimeter());
- System.out.println("--------------------------------------");
- x1.showInfo();
- x2.showInfo();
- }
- }
第三章
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;i<a;i++)
{
System.out.println("请输入第"+(i+1)+"个同学的成绩:");
score[i]=reader.nextDouble();
}
}
while(c!=1){
System.out.println("请输入您要查找的第几个同学的成绩:");
b=reader.nextInt();
if(b<=a&&b>0){
for(int j=1;j<=a;j++)
{
if(j==b)
System.out.println("第"+b+"个同学的成绩是:"+score[j-1]);
}
}
else
System.out.println("错误,请重新输入!");
}
}
}
结果如下图:
5
在第4题的基础上进行改写,修改查询条件:询问用户要查找分数为多少的成绩,找到相应的成绩则显示第几位同学符合查询条件,找不到相应的成绩则显示没有该成绩,如果超出成绩范围则进行相应提示。
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<m;i++){
System.out.print("请输入第"+(i+1)+"个同学的成绩:");
score[i]=reader.nextDouble();
}
}
System.out.println();
while(a!=1){
System.out.println("请输入你要查询的成绩:");
n=reader.nextDouble();
if(n>=0&&n<=100){
for(int j=0;j<m;j++){
if(score[j]==n){
System.out.println("这是第"+(j+1)+"个同学的成绩!");
b=b+1;
}
}
if(b==0){
System.out.println("没有该成绩!");
}
}
else
System.out.println("成绩有误!");
}
}
}
结果如下图:
6
提示用户输入一个整数,再提示用户输入一个符号。在屏幕上输出该整数个这样的符号。
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<n;i++)
{
System.out .print(m);
}
}
}
结果如下图:
第四章
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<n;i++){
if(i%5==0){
System.out.println();
}
System.out.print(ch);
}
}
}
4
定义一个方法public static void draw(int n,char ch),实现输出n个ch符号。在main方法中提示用户输入相应数据,调用draw方法输出图形。
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<n;i++){
if(i%5==0){
System.out.println();
}
System.out.print(ch);
}
}
}
5
求数值累加和的方法。
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<a.length;i++){
a[i]=0;
System.out.print(a[i]+" ");
}
System.out.println();
System.out.print("输入元素:");
for(int i=0;i<a.length;i++){
int m=reader.nextInt();
a[i]=m;
}
System.out.print("显示元素:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
void initArr(double b[]){
System.out.print("初始化之后,双精度实数型数组每个元素值为");
for(int i=0;i<b.length;i++){
b[i]=0;
System.out.print(b[i]+" ");
}
System.out.println();
System.out.print("输入元素:");
for(int i=0;i<b.length;i++){
double m=reader.nextDouble();
b[i]=m;
}
System.out.print("显示元素:");
for(int i=0;i<b.length;i++){
System.out.print(b[i]+" ");
}
}
void initArr(String c[]){
System.out.print("初始化之后,字符串数组每个元素值为");
for(int i=0;i<c.length;i++){
c[i]="0";
System.out.print(c[i]+" ");
}
System.out.println();
System.out.print("输入元素:");
for(int i=0;i<c.length;i++){
String m=reader.next();
c[i]=m;
}
System.out.print("显示元素:");
for(int i=0;i<c.length;i++){
System.out.print(c[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);
}
}
7
定义一个类MathDemo,类的内部重载round()方法,分别实现对单精度、双精度类型数据进行四舍五入的功能,要处理的实型数据作为参数,方法体最后将得到的结果返回。
在main方法中定义float与double类型变量,分别赋好初值,创建MathDemo类的对象,调用round()方法,将结果显示在屏幕上。
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));
}
}