1、 北大青鸟-徐州中博 课后习题(Lesson13) 一、 选择题 (所有题目均为不定项选择题,每题3分,共30分,将选中的选项用红色标注) 1. MyDate类位于mypackage包中,在它的方法getCurrentTime()中,调用CurrentTime类中的方法getTime(),CurrentTime位于包javagroup.time中,下列代码中正确的是( D ) A. import javagroup.time.*; package mypackage; public clas
2、s Mydate{ public void getCurrentTime(){ CurrentTime ct=new CurrentTime(); ct.getTime(); } } B. import javagroup.time.*; package mypackage.*; public class Mydate{ public void getCurrentTime(){ CurrentTime ct=new CurrentTime(); ct.getTime(); } } C. package mypackage.MyDate; impor
3、t javagroup.time.*; public class Mydate{ public void getCurrentTime(){ CurrentTime ct=new CurrentTime(); ct.getTime(); } } D. package mypackage; import javagroup.time.*; public class Mydate{ public void getCurrentTime(){ CurrentTime ct=new CurrentTime(); ct.getTime(); } } 2. 下
4、面关于java包的说法中错误的是( C ) A. 包允许将类组合成较小的单元,便于找到和使用相应的类文件 B. Java中的包其实类似于WINDOWS中的目录,它是为了更好地保护类,数据和方法等 C. 不同的包中不能出现类名相同的类 D. 使用package创建包,使用import引入包 3. 在JAVA中,方法change()定义如下 public int change(int i){ return i=i+1; } 则如下代码的输出结果为( D ) int i=0; i=change(1); System.out.println(i);
5、 A. 0 B. 1 C. 2 D. 代码i=change(1)存在错误 4. 给定JAVA方法的,则以下( 都不行??? )可以放在方法体中。 public String change(int i){ //方法体 } A. return 100; B. return ‘a’; C. return i+””; D. return i; 5. 给定Java代码如下所示,则编译运行后输出结果是( C ) public class Test{ int i; public int aMethod(){ i++; return i;
6、} public static void main(String []args){ Test test=new Test(); test.aMethod(); System.out.println(test.aMethod()); } } A. 0 B. 1 C. 2 D. 3 6. 在Java中,在包cn.jb.test中有一个头类Test,则在类Test中创建包的语句正确的是 ( B ) A. package cn.jb.test.Test; B. package cn.jb.test; C. import cn.jb.test;
7、 D. use cn.jb.test; 7. 在Java中,包com中定义了类TestUtil,在com的子包util中定义了同名类TestUtil,给定如下Java代码,编译运行时,将发生( D ) package net; import com.util.TestUtil; import com.TestUtil; public class Test{ public static void main(String []args){ TestUtil testutil=new TestUtil(); } } A. 创建了一个com.TestUtil对象 B.
8、 创建了一个com.util.TestUtil对象 C. 创建了一个com.TestUtil对象和一个com.util.TestUtil对象 D. 编译无法通过 8. 以下( A )是合法的包 A. com.jb.ch6 B. .jb.ch6 C. com.jb.ch6. D. com.jb.* 9. 在创建Java类时,使用( A )关键字声明包 A. package B. import C. class D. new 10. Java类的方法参数之间使用( A )符号 A. , B. ; C. : D. 空格 二、 简答题 (
9、每题4.5分,共30分,答案用红色文字直接填写在标题下方) 1. 分析如下代码,并说出运行结果。 import java.util.*; public class JavaTest { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out .print("请输入第一个数:"); int num1=input.nextInt(); System.out .print("请输入第二个数:"); int num2=input.
10、nextInt(); System.out .print("二数的平均值为:"+avg(num1,num2)); } public int avg(int big,int small){ int money=0; money=(big+small)/2; return money; } } 在测试类中没有创建调用avg方法的对象,会显示出错。 2. 包要遵守哪些编码规范? Java包的名字通常由小写字母组成,不能以圆点开头或结尾。 一个唯一包名的前缀通常是全部小写的ASCLL字母,并且是一个顶级域名com、、cn、gov、net org
11、 包名的后续部分依不同机构各自内部的规范不同而不同。 3. 定义带参的方法的语法是什么? Public 返回类型 方法名(参数列表){ } 4. java的基本类型分为哪四类? int , double ,char ,boolean 5. JAVA的数据类型有那两大类?(预习) 基本数据类型,引用数据类型。 6. 包有哪些作用? 包允许将类组合成较小的单元,便于找到和使用相应的类文件;防止命名冲突; 包允许在更广的范围内保护类、数据和方法,可以在包内定义类。 7. 写出以下每个单词的中文含义 search查找 triangle三角形 practice练习 l
12、oan借出 shape形状 operator操作 protect保护 private;私有的 三、 编程题(每题。13分,共40分) 1. 改写第11章简答题第3题中的计算器类(Calculator).要求将加减乘除的方法改写成带参方法,在定义一个运算方法ope(),接收用户选择的运算和两个数字,根据用户选择的运算计算结果。运行如图所示: 提示: ① 定义 方法ope(),参考如下: public int ope(int op,int num1,int num2){ //实现返回运算结果 } public class Calculator {
13、 public int ope(int op,int num1,int num2){ int num = 0; switch (op){ case 1: num =num1+num2; break; case 2: num =num1-num2; break; case 3: num =num1*num2; break; case 4: num =num1/num2; break; } return num; } import java.util.*;
14、public class CalcTest { /** * @param args */ public static void main(String[] args) { Scanner input =new Scanner(System.in); Calculator jisuan =new Calculator(); System.out.print("请选择运算法则:1.加2.减3.乘4.除:\t"); int i =input.nextInt(); System.out.print("请输入第一个数:"); int a =i
15、nput.nextInt(); System.out.print("请输入第二个数:"); int b =input.nextInt(); System.out.print("计算结果是:"+jisuan.ope(i, a, b)); } } } 2. 模拟一个简单的购房商贷月供计算器,假设按照以下的公式计算出总利息和每月还款金额: 总利息=贷款金额*利率 每月还贷金额=(贷款金额+总利息)、贷款年限 贷款年限不同,利率是不同的,这里我们规定只有如下表所示的三种年限、利率。 年限 利率 3年(36个月) 6.03% 5年(60个月)
16、 6.12% 20年(240个月) 6.39% 要求根据输入的贷款金额和年限,计算出每月的月供。运行结果如图所示: 提示: ① 定义方法loan(),参考如下: public double loan(double loan,int yearchoice){ //实现返回运算结果 } public class Loan { public double loan(double loan,int yearchoice){ double yuegong =0; switch( yearchoice){ case 1: yuegong = (lo
17、an*0.0603+loan)/36; break; case 2: yuegong =(loan* 0.0612+loan)/60; break; case 3: yuegong=(loan* 0.0639+loan)/240; break; } return yuegong; } } import java.util.Scanner; public class LoanTest { public static void main(String[] args) { Scanner input = new
18、Scanner(System.in); Loan money =new Loan(); System.out.print("请输入贷款金额:"); double m =input.nextDouble(); System.out.print("请选择贷款年限:1.3年(36个月)2.5年(60个月)3.5年(240个月)"); int i = input.nextInt(); System.out.print("月供为:"+money.loan(m, i)); } } 3. 根据三角形的三条边长,判断其是直角、钝角,还是锐角三角形。程序功
19、能要求如下: 先输入三角形三条边长。 判断能否构成三角形,构成三角形的条件是“任意两边之和大于第三边”,如果不能构成三角形则提示“不是三角形”! 如果能构成三角形,判断三角形是何三角形。如果三角形的任意一条边的平方等于其他两条边的平方和,则为直角三角形;如果任意一条边的平方大于其他两条边平方的和,则为钝角三角形;否则,为锐角三角形。结果如图所示: 提示: ① 定义方法isTriangle(),判断是否能构成三角形。 public boolean isTriangle(int a,int b,int c){ boolean flag=false; //判断是否构成三角形
20、 return flag; } ② 定义方法shape(),判断构成何种三角形 public String shape(int a,int b,int c){ String shape=””; //判断构成何种三角形 return shape; } public class Triangle { public boolean isTriangle(int a,int b,int c){ boolean flag=false; if(a+b>c&&a+c>b&&c+b>a){ flag =true; } return fl
21、ag; } public String shape(int a,int b,int c){ String shape; if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){ shape="直角三角形."; }else if(a*a>b*b+c*c||b*b>a*a+c*c||c*c>a*a+b*b){ shape="钝角三角形."; }else if(a ==b&&b==c){ shape ="等边三角形."; }else{ shape="锐角三角形"; }
22、 return shape; } } import java.util.Scanner; public class TriangleTest { /** * @param args */ public static void main(String[] args) { Scanner input = new Scanner(System.in); Triangle t =new Triangle(); int a,b,c; String n; do{ System.out.print("请输入第一
23、条边:"); a =input.nextInt(); System.out.print("请输入第条边:"); b = input.nextInt(); System.out.print("请输入第一条边:"); c =input.nextInt(); if(t.isTriangle(a, b, c)){ System.out.println("这是一个"+t.shape(a, b, c)); }else{ System.out.println("这不能构成三角形!"); } System.out.print("是否继续?y/n"); n=input.next(); }while(n.equals("y")); System.out.print("程序结束!"); } } 作业完成后,提交至以下信箱:XXX 提交格式:姓名_班级_课程(第几课).rar 例如:张三_1221班_Hibernate(第一课).rar 有问题请和以下QQ号码联系:XXX 不交作业/抄袭作业,每次扣5分,结业成绩低于60不能参加结业考试






