多重循环、方法作业
一、选择题
1.
分析下面的Java多重循环代码片段,编译运行后的输出结果是( D)。(选择一项)
for (int i = 0; i < 6; i++) {
int k = ++i;
while (k < 5) {
System.out.print(i);
break;
}
}
A.
024
B.
02
C.
123
D.
13
2.
给定如下Java代码,编译运行的结果是(A)。(选择一项)
public class Test {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<10;i++){
do{
i++;
if(i%2!=0)
sum+=i;
}while(i<6);
}
System.out.println(sum);
}
}
A
8
B.
15
C.
24
D.
什么也不输出
3.
Java中main方法的返回值是(D)。(选择一项)
A
String
B.
int
C.
char
D.
void
4.
在Java的程序类中如下方法定义正确的是(A D)。(选择两项)
A
public int ufTest(int num){
int sum=num+100;
return sum;
}
B.
public String ufTest(int num){
int sum=num+100;
return sum;
}
C.
public void ufTest(int num){
int sum=num+100;
return sum;
}
D.
public float ufTest(int num){
int sum=num+100;
return sum;
}
5.
以下关于方法调用的代码的执行结果是( B)。(选择一项)
public class Test {
public static void main(String args[]) {
int i = 99;
mb_operate(i);
System.out.print(i + 100);
}
static void mb_operate(int i) {
i += 100;
}
}
A.
99
B.
199
C.
299
D.
99100
6.
下面(BD)方法是public void example(){…}的重载方法。(选择二项)
A
private String example(){…}
B.
public int example(String str){…}
C.
public void example2(){…}
D.
public int example(int m,float f){…}
7.
以下选项中添加到代码中横线处会出现错误的是(BD)。(选择二项)
public class Test {
public float aMethod(float a, float b) {
return 0;
}
}
A
public float aMethod(float a, float b, float c) {
return 0;
}
B.
public float aMethod(float c, float d) {
return 0;
}
C.
public int aMethod(int a, int b) {
return 0;
}
D.
private int aMethod(float a, float b) {
return 0;
}
二、判断题
多重循环是指一个循环体内又包含另一个完整的循环结构。外层循环变量变化一次,内层循环变量要从头到尾变化一遍。( T )
定义方法时的参数称为实在参数,调用方法时的参数称为形式参数。( F )
调用方法时,要求实参和形参的个数相同,类型匹配。( T )
判断方法重载的依据是方法名相同,参数不同。(T )
三、简答题
在多重循环中,如何在内层循环中使用break跳出外层循环。
(1)正常情况下,break只是跳出内层循环。
(2)可以使用带标签的break,相当于goto,比如break a指的是退出a所在的循环。但是不建议使用这种方法,因为跳多了出不来
另外:带标签的continue用法类似
举例子
1 int i=0;2
3 int j=0;4
5 a: for(;i<10;i++){6
7 b:for(;j<10;j++){8
9 if(j==4){10
11 break a; //跳出a所在的循环
12
13 }14
15
方法重载的定义、作用和判断依据
定义:一个类中含两个以上同名的方法,他们之间就构成重载
特点:
1、必须是两个以上同名的方法
2、方法之间的参数组合必须不同(参数的数目不同或者参数的类型不同)
3、方法的返回值不能作为判断方法之间是否构成重载的依据
好处:
大大简化啦的类调用者的代码,让我们感觉类有一种自动化调用的功能,而没有增加类创建的代码
四、编码题
打印九九乘法表
1 public static voidmain(String[] args) {2 for(int i=1;i<=9;i++){3 for(int j=1;j<=i;j++){4 System.out.print(i+"*"+j+"="+i*j+"\t");5 }6 System.out.println();7 }8 }
2.判断1-100之间有多少个素数并输出所有素数。(将判断一个数是否是素数的功能提取成方法,在循环中直接调用即可)
1 public static voidmain(String[] args) {2 primeNum();//调用素数方法primeNum();
3 }4 //素数的方法
5 public static voidprimeNum(){6 for(int i=2;i<=100;i++){7 boolean flag = true;8 for(int j=2;j
3.输入三个班,每班10个学生的成绩,求和并求平均分
public static voidmain(String[] args) {double sum = 0;double aver = 0;
Scanner sc= newScanner(System.in);for(int i=1;i<=3;i++){
System.out.println("当前是第"+i+"个班级的成绩!");for(int j=1;j<=10;j++){
System.out.println("请输入第"+j+"个学生的成绩:");double grade =sc.nextDouble();
System.out.println(grade);
sum+=grade;
}
aver=sum/10;
System.out.println("第"+i+"个班级的总分是:"+sum+"\t"+"它的平均分是"+aver);
}
}
五、可选题
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
2.定义方法:打印指定行和列的矩形
1 public static voidmain(String[] args) {2 Scanner sc = newScanner(System.in);3 System.out.println("请输入打印长方形的行数:");4 int line =sc.nextInt();5 System.out.println("请输入打印长方形的列数:");6 int row =sc.nextInt();7 for(int i=1;i<=line;i++){8 for(int j=1;j<=row;j++){9 System.out.print(" *");10 }11 System.out.println();12 }13 }