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("Hello World");
}
}
问:
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))
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;
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 个福娃的名字,
否则输出“北京欢迎你”。
答: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(a<b&&b>c){
System.out.println(b+"是三个数中的最大值");
}else{
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&&year%100!=0||year%100==0&&year%400==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分别代表加减乘除");
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);
}
}