第1章 了解Java
1. 编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。
public class TimeTest{
public static void main(String args[]){
int time;
time = Integer.parseInt(args[0]);
if(time<0||time>24)
System.out.println("输入的不是一个合法时间!");
else if(time>12)
System.out.println("12小时制为"+(time-12)+"点");
else
System.out.println("12小时制为"+time+"点");
}
}
2. 用户输入x的数值,根据如下规则输出计算后的结果y值。
x (x<1)
Y = 2x -1 (1<=x<10)
3x -11 (x>=10)
public class CalculateTest{
public static void main(String args[]){
float x,y;
x = Float.parseFloat(args[0]);
if(x<1)
y = x;
else if(1<=x&&x<10)
y = 2*x-1;
else
y = 3*x-11;
System.out.println(y);
}
}
3. 编写一个Java应用程序,由命令行参数输入一个百分制成绩,要求打印出成绩等级“A”、“B”、“C” 、“D”、 “E”。90分以上为“A”;80~89分为“B”;70~79分为“C”;60~69分为“D”;60分以下为“E”。
要求使用switch语句实现。
运行效果如图2所示:
图1
public class PrintGrade {
public static void main(String[] args) {
double score = Double.parseDouble(args[0]);
if(score<0 || score>100)
System.out.println("错误,不是一个合法的百分制成绩!");
else{
int s = ((int)score)/10;
char grade;
switch(s){
case 10:
case 9: grade = 'A'; break;
case 8: grade = 'B'; break;
case 7: grade = 'C'; break;
case 6: grade = 'D'; break;
default:grade = 'E';
}
System.out.println("成绩是:"+score+",相应的等级是"+grade);
}
}
}
4. 假设今天是星期日,编写一个程序,求n天后是星期几。要求:n的数值由命令行输入;使用switch语句实现。
public class DateTest {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
switch (n%7){
case 0: System.out.println(n+"天后是星期天"); break;
case 1: System.out.println(n+"天后是星期一"); break;
case 2: System.out.println(n+"天后是星期二"); break;
case 3: System.out.println(n+"天后是星期三"); break;
case 4: System.out.println(n+"天后是星期四"); break;
case 5: System.out.println(n+"天后是星期五"); break;
case 6: System.out.println(n+"天后是星期六"); break;
}
}
}
5. 用户在命令行输入一个数字,按照数字输出相应个数的星号。
public class PrintStar {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int i;
for( i=1; i<=n; i++)
System.out.print("*");
System.out.println();
}
}
6. 编写程序,求0到100之间的偶数和。
要求:分别用while语句、do while语句和for循环语句实现。
while实现:
public class SumDemo1 {
public static void main(Stri
ng[] 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);
}
}
7. 输入一个大于1的整数,求1到这个数的阶乘。用三种循环语句实现。
提示:5的阶乘表示为5!,计算公式:5!=1*2*3*4*5
while实现:
public class Factorial1 {
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 = 1;
while(i<=num){
result = result*i;
i++;
}
System.out.println(num+"的阶乘是"+result);
}
}
}
do while实现:
public class Factorial2 {
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 = 1;
do{
result = result*i;
i++;
}while(i<=num);
System.out.println(num+"的阶乘是"+result);
}
}
}
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);
}
}
}
8. 用for循环语句打印九九乘法表。
public class Multiplication {
public static void main(String[] args) {
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++)
System.out.print(i*j+"\t");
System.out.println();
}
}
}
第2章 面向对象的“对象”
1. 定义一个描述长方体的类Box,类中有三个整型的成员变量:length、width和height,分别表示长方体的长、宽和高。定义setInfo(int ,int ,int)方法设置这三个变量的值;定义volumn()方法求长方体的体积并返回整型结果;定义area()方法求长方体的表面积并返回整型结果;定义toString()方法把长方体的长、宽、高,以及长方体的体积和表面积转化为字符串并返回字符串。
编写Java应用程序,测试类Box,使用类中定义的各个方法,并将其结果输出。
java定义一维数组并赋值class Box{
int length,width,height;
public setInfo(int l,int w,int h){
length = l;
width = w;
height = h;
}
public int volumn(){
return length*width*height;
}
public int area(){
return (length*width + length*
height + width*height) * 2;
}
public String toString(){
return "Length:" + length + " width:" + width + " height:" + height
+ " volumn: " + volumn() + " area:" + area();
}
}
public class BoxTest {
public static void main(String[] args) {
Box b = new Box();
b.setInfo(5,2,4);
System.out.String());
}
}
2. 定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。
编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。
class Circle {
double r;
void setR(double radius){
r = radius;
}
double getArea(){
return 3.14*r*r;
}
double getPerimeter(){
return 2*3.14*r;
}
}
public class CircleTest {
public static void main(String[] args) {
Circle c1 = new Circle();
Circle c2 = new Circle();
c1.setR(1);
c2.setR(2);
System.out.println("c1的面积是"+c1.getArea()+
",c1的周长是"+c1.getPerimeter());
System.out.println("c2的面积是"+c2.getArea()+
",c2的周长是"+c2.getPerimeter());
}
}
第3章 对象的属性---变量详述
1.编写程序,计算如下表达式的值,将结果输出。
(1) 3.5+1/2+56%10
(2) 3.5+1.0/2+56%10
(3) int a = 4%3*7+1
public class Test{
public static void main(String[] args) {
System.out.println( 3.5+1/2+56%10 );
System.out.println( 3.5+1.0/2+56%10 );
int a = 4%3*7+1;
System.out.println( a );
}
}
程序运行结果:
9.5
10.0
8
2.思考下列语句执行后变量a、b、c、d的值分别是多少:
int a=5,b=8,c,d;
c=(a++)*b;
d=(++a)*b;
执行后的结果是:
a=7 b=8 c=40 d=56
3.自定义一个字符串数组,提示用户输入5个字符串,通过循环语句实现将用户输入的字符串存放到数组里,然后反向输出这五个字符串。
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String str[] = new String[5];
int i;
for(i=0;i<5;i++){
System.out.println("请输入第"+(i+1)+"个字符串");
str[i] = ();
}
System.out.println("反向输出这5个字符串:");
for(i=4;i>=0;i--)
System.out.println(str[i]);
}
}
4.定义一个实型数组用来存放学生成绩,提示用户确定成绩的个数,根据个数创建数组。提示用户输入每个成绩,为各数组元素赋值。询问用户要查第几个同学的成绩,显示相应的查询结果,如果超出个数范围则进行相应提示。
import java.util.*;
public class Search1 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double sc
ore[];
System.out.println("您要输入多少个同学的成绩?");
int num = Int();
score = new double[num];
for(int i=0;i<num;i++){
System.out.println("请输入第"+(i+1)+"个同学的成绩");
score[i] = Double();
}
System.out.println("您要查第几个同学的成绩?");
int index = Int();
if( index>=1 && index<=num-1 )
System.out.println("第" + index +
"个同学的成绩是"+score[index-1]);
else
System.out.println("数据不在合法范围内,无法查。");
}
}
5.在第4题的基础上进行改写,修改查询条件:询问用户要查分数为多少的成绩,到相应的成绩则显示第几位同学符合查询条件,不到相应的成绩则显示没有该成绩,如果超出成绩范围则进行相应提示。
import java.util.*;
public Search2{
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double score[];
System.out.println("您要输入多少个同学的成绩?");
int num = Int();
score = new double[num];
for(int i=0;i<num;i++){
System.out.println("请输入第"+(i+1)+"个同学的成绩");
score[i] = Double();
}
System.out.println("您要查的成绩是?");
double s = Double();
boolean flag = false;
if(s>=0 && s<=100){
for(int i=0;i<num; i++){
if(score[i]==s){
System.out.println("第"+(i+1)+"个同学符合查询条件");
flag = true;
}
}
if(!flag)
System.out.println("没有学生考该分数成绩");
}
else
System.out.println("成绩非法,不能查询。");
}
}
6.提示用户输入一个整数,再提示用户输入一个符号。在屏幕上输出该整数个这样的符号。
import java.util.*;
class CharTest{
public static void main(String[] args){
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个整数");
int n = Int();
System.out.println("请输入一个符号");
char ch = ().charAt(0);
for(int i = 1; i<=n ;i++)
System.out.print(ch);
System.out.println();
}
}
第4章 对象的行为---成员方法详述
1. 编写Java应用程序,定义一个计算两个整数和的方法static int add(int op1, int op2)。在main方法中声明两个整型变量,分别赋值,调用add()方法得到它们的和,在屏幕上输出结果。
public class AddTest {
public static void main(String[] args) {
int num1,num2;
num1 = 10;
num2 = 20;
System.out.println(num1 + "+" + num2 + "=" + add(num1,num2));
}
static int add(int op1,int op2){
return op1+op2;
}
}
2. 编写程序,定义一个方法public static void abs(int a),用来求绝对值并输出结果。在main方法中从命令行读入一个整数,调用这个结果求它的绝对值。
import java.util.Scanner;
public class Demo{
public static void main(String[]
args){
Scanner reader = new reader(System.in);
System.out.println("请输入一个整数");
int n = Int();
abs(n);
}
public static void abs(int a){
if(a>=0)
System.out.println("绝对值是"+a);
else
System.out.println("绝对值是"+(-a));
}
}
3. 在上述题目的基础上,修改abs成为带返回值的方法,即public static int abs(int a),实现相同的功能。
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
Scanner reader = new reader(System.in);
System.out.println("请输入一个整数");
int n = Int();
System.out.println("绝对值是"+abs(n));
}
public static int abs(int a){
if(a>=0)
return a;
else
return -a;
}
}
4. 定义一个方法public static void draw( int n, char ch),实现输出n个ch符号。在main方法中提示用户输入相应数据,调用draw方法输出图形。
import java.util.Scanner;
public class Multiplication {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("要显示哪个符号?");
char c = ().charAt(0);
System.out.println("要显示多少个?");
int num = Int();
draw(num,c);
}
public static void draw( int n, char ch){
for(int i=1; i<=n; i++)
System.out.print(ch);
System.out.println();
}
}
5. 求数值累加和的方法
public class App4{
static int sum (int n){
int s=0;
for (int i=1; i<=n; i++ )
s+=i;
return s;
}
public static void main(String[] s){
System.out.println(“1~10的累加和是” + sum(10));
}
}
6. 定义一个类Initial,类的内部重载initArr()方法,分别实现对整型数组、双精度型数组、字符串数组的初始化功能,数组作为方法的参数,方法体内提示用户为数组元素输入数据,然后显示所有元素。
在mian方法中创建三种类型的数组,创建Initial类的对象,分别调用initArr()方法进行初始化。
import java.util.*;
public class OverLoad2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
Initial init = new Initial();
int a[] = new int[6];
init.initArr(a);
double b[] = new double[5];
init.initArr(b);
String s[] = new String[3];
init.initArr(s);
}
}
class Initial{
Scanner reader = new Scanner(System.in);
void initArr(int arr[]){
System.out.println("初始化整型数组");
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个整数");
arr[i] = Int();
}
System.out.println("整型数组初始化完毕,所有元素为:");
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
System.out.println("\n-------------------------
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论