资源描述
北大青鸟-徐州中博
课后习题(Lesson13)
一、 选择题
(所有题目均为不定项选择题,每题3分,共30分,将选中的选项用红色标注)
1. MyDate类位于mypackage包中,在它的方法getCurrentTime()中,调用CurrentTime类中的方法getTime(),CurrentTime位于包javagroup.time中,下列代码中正确的是( D )
A. import javagroup.time.*;
package mypackage;
public class 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;
import 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. 下面关于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);
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;
}
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;
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. 创建了一个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. 空格
二、 简答题
(每题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.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.
包名的后续部分依不同机构各自内部的规范不同而不同。
3. 定义带参的方法的语法是什么?
Public 返回类型 方法名(参数列表){
}
4. java的基本类型分为哪四类?
int , double ,char ,boolean
5. JAVA的数据类型有那两大类?(预习)
基本数据类型,引用数据类型。
6. 包有哪些作用?
包允许将类组合成较小的单元,便于找到和使用相应的类文件;防止命名冲突;
包允许在更广的范围内保护类、数据和方法,可以在包内定义类。
7. 写出以下每个单词的中文含义
search查找
triangle三角形
practice练习
loan借出
shape形状
operator操作
protect保护
private;私有的
三、 编程题(每题。13分,共40分)
1. 改写第11章简答题第3题中的计算器类(Calculator).要求将加减乘除的方法改写成带参方法,在定义一个运算方法ope(),接收用户选择的运算和两个数字,根据用户选择的运算计算结果。运行如图所示:
提示:
① 定义 方法ope(),参考如下:
public int ope(int op,int num1,int num2){
//实现返回运算结果
}
public class Calculator {
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.*;
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 =input.nextInt();
System.out.print("请输入第二个数:");
int b =input.nextInt();
System.out.print("计算结果是:"+jisuan.ope(i, a, b));
}
}
}
2. 模拟一个简单的购房商贷月供计算器,假设按照以下的公式计算出总利息和每月还款金额:
总利息=贷款金额*利率
每月还贷金额=(贷款金额+总利息)、贷款年限
贷款年限不同,利率是不同的,这里我们规定只有如下表所示的三种年限、利率。
年限
利率
3年(36个月)
6.03%
5年(60个月)
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 = (loan*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 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. 根据三角形的三条边长,判断其是直角、钝角,还是锐角三角形。程序功能要求如下:
先输入三角形三条边长。
判断能否构成三角形,构成三角形的条件是“任意两边之和大于第三边”,如果不能构成三角形则提示“不是三角形”!
如果能构成三角形,判断三角形是何三角形。如果三角形的任意一条边的平方等于其他两条边的平方和,则为直角三角形;如果任意一条边的平方大于其他两条边平方的和,则为钝角三角形;否则,为锐角三角形。结果如图所示:
提示:
① 定义方法isTriangle(),判断是否能构成三角形。
public boolean isTriangle(int a,int b,int c){
boolean flag=false;
//判断是否构成三角形
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 flag;
}
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="锐角三角形";
}
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("请输入第一条边:");
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不能参加结业考试
展开阅读全文