【Java】《Java语⾔程序设计与数据结构》V11_基础篇_第06章_复习题答案(!仅供参考)
第4⼩节
6.4.1
Q:使⽤⽅法的优点有哪些?
A:定义可重⽤的代码;组织和简化编码。
6.4.2
Q:如何定义⼀个⽅法?如何调⽤⼀个⽅法?
A:
⽅法的定义由⽅法头(修饰符、返回值类型、⽅法签名(⽅法名、参数列表))、⽅法体组成。
如果⽅法返回⼀个值,对⽅法的调⽤通常当作⼀个值处理;如果⽅法返回 void ,对⽅法的调⽤必须是⼀条语句。
6.4.4
Q:下⾯的说法是否正确?
(对返回类型为 void 的⽅法调⽤本⾝总是⼀条语句,但是对带返回值类型的⽅法的调⽤本⾝不能作为⼀条语句。)
A:
前半句:除了 main ⽅法,确实如此,否则会报错。
后半句:可以是可以,不会报错,但单独⼀个值作为⼀条语句没什么意义。
6.4.5
Q: main ⽅法的返回值类型是什么?
A: main ⽅法是 void ⽅法,⽆返回值。
6.4.6
Q:如果在⼀个带返回值的⽅法中,不写 return 语句会发⽣什么错误?在 void ⽅法中可以有 return 语句吗?下⾯⽅法中的 return 语句是否会导致语法错误?
public static void xMethod(double x,double y){
System.out.println(x + y);
return x + y;
}
A:
报错:缺少返回语句。
可以,但不能带返回值,否则会报错。
会。
6.4.7
Q:给出形参、实参和⽅法签名的定义。
A: (见 P178 上⽅第⼀段)
6.4.8
Q:写出下列⽅法的⽅法头(⽽不是⽅法体): (题⽬略)
A:
// 给定销售额和提成率,计算销售提成
public static double calculateSalesCommission(double x,double y)
// 给定⽉份和年份,打印该⽉的⽇历
public static void printCalendar(int x,int y)
// 返回⼀个数的平⽅根
public static double sqrt(double x)
// 测试⼀个数是否是偶数,如果是则返回 true
public static boolean isEven(int x)
/
/ 按指定次数打印某条信息
public static void printMessage(int x)
// 给定贷款额、还款年数和年利率,计算⽉⽀付额
public static double calculateMonthlyPayment(double x,double y,double z) // 对于给定的⼩写字母,给出相应的⼤写字母
public static char toggleCase(char x)
6.4.9
Q:确定并更正下⾯程序中的错误:
public class Test_06_04_09 {
public static method1(int n, m){
n += m;
method2(3.4);
}
public static int method2(int n){
if(n >0)return1;
else if(n ==0)return0;
else if(n <0)return-1;
}
}
A:⽆ main ⽅法 +
第5⼩节
6.5.1
Q:实参是如何传递给⽅法的?实参可以和形参同名吗?
A:
传值。
可以。
6.5.2
Q:出并更正下⾯程序的错误: (题⽬略)
A:将第三⾏的代码改为 nPrintln("Welcome to Java!", 5); ;删除第七⾏代码。
6.5.3
Q:什么是按值传递?给出下⾯程序的运⾏结果: (题⽬略)
A:
传递的是值就是按值传递。
// a
public static void main(String[] args){
int max =0;
max(1,2, max);
System.out.println(max);
}
public static void max(int value1,int value2,int max){
if(value1 > value2)
max = value1;
else
max = value2;
}
// 0
// b
public static void main(String[] args){
int i =1;
while(i <=6){
method1(i,2);
i++;
}
}
public static void method1(int i,int num){
for(int j =1; j <= i; j++){
System.out.println(num +" ");
num *=2;
}
System.out.println();
}
/*
2
2
4
2
4
8
2
4
8
16
2
4
8
8
16
32
2
4
8
16
32
64
*/
// c
public static void main(String[] args){
int times =3;
System.out.println("Before the call, variable times is "+ times);
nPrintln("Welcome to Java!", times);
System.out.println("After the call, variable times is "+ times);
}
public static void nPrintln(String message,int n){
while(n >0){
System.out.println("n = "+ n);
System.out.println(message);
n--;
}
}
/*
Before the call, variable times is 3
n = 3
Welcome to Java!
n = 2
Welcome to Java!
n = 1
Welcome to Java!
After the call, variable times is 3
*/
// d
public static void main(String[] args){
int i =0;
while(i <=4){
method1(i);
i++;
}
System.out.println("i is = "+ i);
}java程序设计基础视频
public static void method1(int i){
do{
if(i %3!=0)
System.out.print(i +" ");
i--;
}while(i >=1);
System.out.println();
}
/*
1
2 1
2 1
4 2 1
i is = 5
*/
6.5.4
Q:在 6.5.4 的 a 中,分别给出调⽤ max ⽅法之前、刚进⼊ max ⽅法时、 max ⽅法返回之前以及 max ⽅法返回之后调⽤栈的内容。A:
max ⽅法之前(调⽤ main ⽅法):
main ⽅法的活动记录: max :0 ↑
刚进⼊ max ⽅法时(调⽤ max ⽅法):
max ⽅法的活动记录: value1 :1、 value2 :2、 max :0、 ↑
main ⽅法的活动记录: max :0 ↑
max ⽅法返回之前(执⾏ max ⽅法):
max ⽅法的活动记录: value1 :1、 value2 :2、 max :2、 ↑
main ⽅法的活动记录: max :0 ↑
max ⽅法返回之后(结束 main ⽅法):
main ⽅法的活动记录: max :0 ↑
第8⼩节
6.8.1
Q:什么是⽅法重载?可以定义两个同名但参数类型不同的⽅法吗?可以在⼀个类中定义两个名称和参数列表相同,但返回值类型不同或修饰符不同的⽅法吗?
A:
(P190 要点提⽰)
可以。 (P190 倒数第⼆段)
不可以。 (P192 上⾯第⼀个注意)
6.8.2
Q:下⾯的程序有什么错误? (题⽬略)
A:
6.8.3
Q:给定两个⽅法定义:
public static double m(double x, double y) 、
public static double m(int x, double y)
对于下⾯的语句,两个⽅法的哪个被调⽤:
a. double z = m(4, 5) 、

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。