多重循環、方法作業
一、 選擇題
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 void main(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 void main(String[] args) { 2 primeNum();//調用素數方法primeNum(); 3 } 4 //素數的方法 5 public static void primeNum(){ 6 for(int i=2;i<=100;i++){ 7 boolean flag = true; 8 for(int j=2;j<i;j++){ 9 if(i%j==0){ 10 flag = false; 11 break; 12 } 13 } 14 if(flag){ 15 System.out.println(i+"\t"); 16 } 17 } 18 }
3.輸入三個班,每班10個學生的成績,求和並求平均分
public static void main(String[] args) { double sum = 0; double aver = 0; Scanner sc = new Scanner(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 void main(String[] args) { 2 Scanner sc = new Scanner(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 }