第一章习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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(String[] args) {
int su
m = 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();
}
}
}



相关文档
最新文档