If语句相关训练
1. (标识符命名)下面几个变量中,那些是对的?那些是错的?错的请说明理由 (CDF) A. ILoveJava B. $20
C. learn@java D. antony.lee E. Hello_World F. 2tigers
答:标识符中不能有@,不能含有点号,开头只能是字母和$
2. (Java 程序的编译与运行)假设有如下程序: package com.corejava.chp1; public class HelloWorld{
public static void main(String args[]){ System.out.println(\ } } 问:
1)假设这个代码存在 hello.java 文件中,那这个程序能够编译通过?为什么? 如果编译不通过,应该如何改进? 答:不能,含有public的类文件名必须要和类名一致;应将hello.java改写成HelloWorld.java 2)假设这个.java 文件放在 C:\\javafile\\目录下,CLASSPATH=.,则生成的.class 文件应该放在什么目录下?如何运行? 答:.class应该存放在C:\\javafile\\目录下
3. (if 语句)读入一个整数,判断其是奇数还是偶数 public class Test {
int n;
If(n%2==0){
System.out.println(n+“是偶数 ”); }else{
System.out.println(n+“是奇数”); } }
4. (操作符)有如下代码: int a = 5;
int b = (a++) + (--a) +(++a);
问执行完之后,b 的结果是多少?
答:16 解析a先把5赋值给b让后再自增1相当于(b=5+(--6)+(++5))
1
5. (基本类型的运算)一家商场在举行打折促销,所有商品都进行 8 折优惠。一 位程序员把这个逻辑写成: short price = ...; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设 price 为 100,那计算之后的 realPrice 值为多少?如果不正确,应该怎么改正?
答:不正确,应为int类型不能自动转换成short 类型 应该为:
public class DiscountTest {
public static void main(String[] args) { short price=100;
short realPrice=(short) (price*8/10); System.out.println(realPrice); } } 6题忽略
7. (操作符)有如下代码: a = (a>b)?a:b;
请问这段代码完成了什么功能。
答:这段代码的作用是取最大值,当a>b成立时,a=a;当a>b不成立时,a=b;
2
8. (if 语句)读入一个整数,表示一个人的年龄。如果小于 6 岁,则输出“儿童”, 6 岁到 13 岁,输出“少儿”;14 岁到 18 岁,输出“青少年”;18 岁到 35 岁,输 出“青年”;35 岁到 50 岁,输出“中年”;50 岁以上输出“中老年”。 答:public class AgeTest {
public static void main(String[] args) { int n=12; if(n<6){
System.out.println(n+\岁属于儿童\);
}else if(n>=6&&n<=13){
System.out.println(n+\岁属于少儿\);
}else if(n>=14&&n<=18){
System.out.println(n+\岁属于青少年\);
}else if(n>18&&n<=35){
System.out.println(n+\岁属于青年人\);
}else if(n>35&&n<=50){
System.out.println(n+\岁属于中年人\);
}else if(n>50){
System.out.println(n+\岁属于中老年人\);
} } }
9. (switch 语句)读入一个整数,如果是 1~5 之间,则分别输出 5 个福娃的名字, 否则输出“北京欢迎你”。
3
答:public class BlessingTest {
public static void main(String[] args) { int n=2; switch(n){
case 1:System.out.println(\贝贝\);
break;
case 2:System.out.println(\晶晶\);
break;
case 3:System.out.println(\焕焕\);
break;
case 4:System.out.println(\莹莹\);
break;
case 5:System.out.println(\妮妮\);
break;
default:System.out.println(\北京欢迎你\);
} } }
10. (if 语句,赋值操作)*读入三个整数,输出这三个整数中最大的一个 答:public class MaxTest {
public static void main(String[] args) { int a=2; int b=5; int c=6;
if(a>b&&a>c){
System.out.println(a+\是三个数中的最大值\);
}else if(ac){
System.out.println(b+\是三个数中的最大值\);
}else{ }
4
System.out.println(c+\是三个数中的最大值\);
} }
11. (if 语句)*读入一个表示年份的整数,判断这一年是否是闰年。 如何判断一个年份是否是闰年:
1. 如果这个年份能够被 4 整除,且不能被 100 整除,则这一年是闰年。例 如,1996 年是闰年,而相应的,1993 年就不是闰年。
2. 如果这个年份能够被 100 整除,则这个数必须要能被 400 整除,才是闰 年。例如,2000 年是闰年,1900 年不是闰年。 答:public class LeapYearTest {
public static void main(String[] args) { int year=1900;
if(year%4==0&&year0!=0||year0==0&&year@0==0){
System.out.println(year+\年是闰年\);
}else{
System.out.println(year+\年是平年\);
} } }
12. (switch 语句)*完成一个简单的计算器程序。程序要求如下: 1. 读入两个整数
2. 提示用户选择对这两个整数的操作,即输出 1 : + 2 : - 3 : * 4 : /
请输入您的选择:
读入用户的选择,输出运算结果。
答:public class Calculator {
private static int operators;
public static void main(String[] args) { Scanner sc=new Scanner(System.in);
System.out.println(\请输入要计算的第一个数字:\); int a=sc.nextInt();
System.out.println(\请输入要计算的第二个数字:\); int b=sc.nextInt();
System.out.println(\请选择要运算的方式:1,2,3,4分别代表加
5
减乘除\); operators=sc.nextInt();
double sum=CalculatorMethod(a,b);
System.out.println(a+\和\+b+\运算的结果是:\+sum);
sc.close(); }
private static double CalculatorMethod(int a, int b) { double sum=0;
switch(operators){ case 1:sum=a+b; break;
case 2:sum=a-b; break;
case 3:sum=a*b; break;
case 4:sum=a/b; }
return sum; }
}
13. (if 语句)*托运计费问题:
当货物重量小于 20 公斤的时候,收费 5 元,大于 20 公斤小于 100 公斤的时 候超出 20 公斤的部分按每 0.2 元每公斤计费,如果超出 100 公斤的时候,超出 的部分按照每公斤 0.15 元计算。
读入货物的重量,输出计算之后货物的运费。 答:public class CheckFee {
public static void main(String[] args) { double w=130; double price=0; if(w<=20){ price=5;
}else if(w>20&&w<=100){ price=5+(w-20)*0.2; }else if(w>100){
price=5+(100-20)*0.2+(w-100)*0.15; }
System.out.println(price); }
}
6