格式:public static 返回值數據型別 方法名(參數){
方法體
return 數據;
}
注意:1.返回值數據型別非void,必須使用return
2.有返回值的方法,方法呼叫時,可以直接進行輸出
3.return的數據要和返回值數據型別保持一致(包含自動型別轉換)
4.return必須方法在最後
5.返回值數據型別是void,可以使用return(不能給上數據),通常情況下return;省略不寫
6.有返回值的方法中可以使用多個return,但是隻能有一個結果
相同功能性的方法,可以有不同的實現
條件:1.同一個類中
2.方法名相同
3.參數列表不同(數據型別/個數不同)
4.和返回值無關
一、填空題
1.Java中有兩種型別的選擇結構的控制語句,分別是if語句和 switch語句 。
2.在Java JDK1.7之前,switch只能支援byte、short、char、int或者其對應的封裝類以及Enum型別。在JDK1.7中又加入了 String 型別。
3.for回圈的語法格式是for (表達式1;表達式2;表達式3) {回圈體},其中在整個回圈過程中只執行一次的部分是 表達式1 。
4.在回圈結構中,如果想跳出回圈體,結束整個回圈結構可以使用 break; 語句。
5.____continue__語句用在回圈語句體中,用於終止某次回圈過程,即跳過回圈體中尚未執行的語句,接着進行下一次是否執行回圈的判定。即只結束本次回圈,而不是終止整個回圈的執行。
使用Math.random( )返迴帶正號的 double值,該值大於等於0.0且小於1.0。使用該函數生成[30,60]之間的隨機整數的語句是 30*Math.random()+30; 。
二、選擇題
boolean m = false;
if(m = false){
System.out.println("false");
}else{
System.out.println("true");
}
A. false
B. true
C. 編譯錯誤
D. 無結果
public static void main(String[ ] args) {
boolean a=true;
boolean b=false;
if (!(a&&b)) {
System.out.print("!(a&&b)");
}else if (!(a||b)) {
System.out.println("!(a||b)");
}else {
System.out.println("ab");
}
}
A !(a&&b)
B. !(a||b)
C. ab
D. !(a||b)ab
3. 下列選項中關於變數x的定義,( bD )可使以下switch語句編譯通過。(選擇二項)
switch(x) {
case 100 :
System.out.println("One hundred");
break;
case 200 :
System.out.println("Two hundred");
break;
case 300 :
System.out.println( "Three hundred");
break;
default :
System.out.println( "default");
}
A double x = 100;
B. char x = 100;
C. String x = "100";
D. int x = 100;
public class Test {
public static void main(String[] args) {
char ch = 'c';
switch (ch) {
case 'a':
System.out.print("a"); break;
case 'b':
System.out.print("ab");
case 'c':
System.out.print("c");
default:
System.out.print("d");
}
}
}
A a
B. b
C. c
D. cd
public class Test {
public static void main(String[] args) {
int i = 0, sum = 0;
while (i <= 10) {
sum += i;
i++;
if (i % 2 == 0)
continue;
}
System.out.println(sum);
}
}
A 0
B. 55
C. 50
D. 36
int i = 1;
int sum = 0;
while (i <= 100) {
if (i % 2 == 0)
sum = sum + i;
i++;
}
A for (int x =1; x<=100;x++){ sum=sum+x;}
B. for (int x =0; x<=100;x+=2){ sum=sum+x;}
C. for (int x =1; x<=100;x+=2){ sum=sum+x;}
D. 上述全對
int a=0;
int c=0;
do{
--c;
a=a-1;
}while(a>0);
System.out.println(a+" "+c);
A. -1 -1
B. 死回圈
C. -1 -2
D. -1 0
8. while回圈和do-while回圈的區別是( D )。(選擇一項)
A. 沒有區別,這兩個結構在任何情況下效果一樣
B. while回圈比do-while回圈執行效率高
C. while回圈是先回圈後判斷,所以回圈體至少被執行一次
D. do-while回圈是先回圈後判斷,所以回圈體至少被執行一次
public static void main(String[ ] args) {
for(int i=0;i<10;i++){
if (i%2!=0) {
break;
}
System.out.print(i);
}
}
A 13578
B. 02468
C. 0123456789
D. 0
for(int i=1;i<=10;i++){
if (i<5)
continue;
System.out.println("Java基礎班");
}
A 5
B. 6
C. 7
D. 8
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
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. 什麼也不輸出
Java中main方法的返回值是( D )。(選擇一項)
A String
B. int
C. char
D. void
在Java的程式類中如下方法定義正確的是( AD )。(選擇兩項)
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;
}
以下關於方法呼叫的程式碼的執行結果是( 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
下面 下麪( 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){…}
以下選項中新增到程式碼中橫線處會出現錯誤的是( 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;
}
三、判斷題
1.if語句的條件表達式的結果都必須是boolean值。( t )
2.switch選擇語句是多分支選擇語句,只能處理等值條件判斷的情況,表達式可以是int型別、char型別,但不能是double,float型別。( t )
3.while回圈結構的特點是先回圈再判斷,回圈體至少執行一次。( x )
4.for回圈的語法格式是for (表達式1;表達式2;表達式3) {回圈體},其中三個表達式都可以省略。( t )
5.break語句可以出現在switch語句和回圈語句中。( t )
continue語句可以出現在switch語句和回圈語句中。( x )
6.多重回圈是指一個回圈體內又包含另一個完整的回圈結構。外層回圈變數變化一次,內層回圈變數要從頭到尾變化一遍。( T )
7.定義方法時的參數稱爲實在參數,呼叫方法時的參數稱爲形式參數。( X )
程式說明中的參數稱爲形式參數,呼叫語句中的參數稱爲實在參數。
8.呼叫方法時,要求實參和形參的個數相同,型別匹配。( T )
9.判斷方法過載的依據是方法名相同,參數不同。( T )
10.程式呼叫自身的程式設計技巧稱爲遞回。遞回的特點是程式設計簡單並且節省記憶體。( X)
11.任何可用遞回解決的問題也能使用回圈解決,遞回既花時間又耗記憶體,在要求高效能的情況下儘量避免使用遞回。( T )
四、簡答題
1.if多分支語句和switch語句的異同之處
答:相同點:他們都是用來處理多分支條件的結構。不同點:switch語句只能處理等值條件判斷的情況,而且條件只能是整型變數或字元型變數。 多重if選擇結構的限制,特別適合某個變數處於某個連續區間時的情況。
2.while和do-while語句的異同之處
答:do-.while回圈先執行一次再去判斷條件,也就是說不管滿不滿足條件,都會先執行一次,執行次數最少1次;while回圈必須先判斷條件,滿足了才執行,最少執行次數0次
3.break和continue語句的作用
答:break語句作用:1、可以用來從回圈體內跳出回圈體,即提前結束回圈,接着執行回圈下面 下麪的語句2、使流程跳出switch結構;continue語句作用:結束本次回圈,即忽略回圈體中continue語句下面 下麪尚未執行的語句,接着進行下一次是否執行回圈的判定。
4.在多重回圈中,如何在內層回圈中使用break跳出外層回圈。
5.方法過載的定義、作用和判斷依據
6.遞回的定義和優缺點
五、編碼題
1.列印九九乘法表
2.判斷1-100之間有多少個素數並輸出所有素數。(將判斷一個數是否是素數的功能提取成方法,在回圈中直接呼叫即可)
3.輸入三個班,每班10個學生的成績,求和並求平均分
4.編寫遞回演算法程式:一列數的規則如下: 1、1、2、3、5、8、13、21、34… 求數列的第40位數是多少。
5.列印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數位立方和等於該數本身。例如:153是一個"水仙花數",因爲153=1的三次方+5的三次方+3的三次方。
6.定義方法:列印指定行和列的矩形
7.編寫Java程式,實現接收使用者輸入的正整數,輸出該數的階乘。要求:限制輸入的數據在1-10之間,無效數據進行提示,結束程式。要求使用遞回和回圈分別實現。輸出結果如:4!=123*4=24
8.輸入一個數,判斷是奇數還是偶數
public class TestNum {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//輸入一個數
System.out.println("請輸入你要判斷的數據:");
int x = input.nextInt();
//判斷一個數據是奇數還是偶數
if(x%2 == 0) {
System.out.println(x+"這個數據是偶數");
}else {
System.out.println(x+"這個數據是奇數");
}
}
}
9.根據成績輸出對應的等級,使用if多分支和switch語句分別實現。
a)A級 [90,100]
b)B級 [80,90)
c)C級 [70,80)
d)D級 [60,70)
e)E級 [0,60)
public class TestGrade1 {
public static void main(String[] args) {
// 給出分數
Scanner input = new Scanner(System.in);
System.out.println("請輸入一個分數");
double score = input.nextDouble();
// 根據分數,給出等級
String grade;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70) {
grade = "C";
} else if (score >= 60) {
grade = "D";
} else {
grade = "E";
}
// 輸出等級
System.out.println("score=" + score + ",grade=" + grade);
}
}
public class TestGrade2 {
public static void main(String[] args) {
// 給出分數
Scanner input = new Scanner(System.in);
System.out.println("請輸入一個分數");
int score = input.nextInt();
//根據分數,給出等級
String grade="E";
switch(score/10){
case 10:
case 9:grade="A";break;
case 8:grade="B";break;
case 7:grade="C";break;
case 6:grade="D";break;
default :grade="E";
}
//輸出等級
System.out.println("score="+score+",grade="+grade);
}
}
10.判斷一個數是否是素數。
public class TestPrime {
public static void main(String[] args) {
// 輸入一個數
Scanner input = new Scanner(System.in);
System.out.println("請輸入一個數:");
int n = input.nextInt();
// 判斷是否是素數
boolean flag = true;
if (n == 1)
flag = false;
else {
for (int i = 2; i < n; i++) {
if (n % i== 0) {
flag = false;
break;
}
}
}
// 輸出結果
if (flag) {
System.out.println(n + "是素數");
} else {
System.out.println(n + "不是素數");
}
}
}
11.從鍵盤輸入一個班5個學生的分數,求和並輸出。
public class TestSum {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//輸入總分並求和
double sum = 0;
for (int i = 0; i < 5; i++) {
System.out.println("請輸入第"+(i+1)+"個學生的成績");
double d = input.nextDouble();
sum += d;
}
//輸出總分
System.out.println("總分是"+sum);
}
}
12.從鍵盤輸入某個十進制整數數,轉換成對應的二進制整數並輸出。
public class Test10to2_1 {
public static void main(String [] args){
//給出一個十進制數
int num2 =6;
//轉換
int num = num2;
String str="";
do{
//除以2得到商
int div = num/2;
//得到餘數作爲二進制位
int mod = num%2;
str = mod + str;
//商作爲被除數
num = div;
}while(num!=0);//被除數不是零
//輸出二進制數
System.out.println(num2+"------>"+str);
}
}
13.根據考試成績輸出對應的禮物,90分以上爸爸給買電腦,80分以上爸爸給買手機, 60分以上爸爸請吃一頓大餐,60分以下爸爸給買學習資料。
要求:該題使用多重if完成
public class Test 1{
public static void main(String[] args) {
int score = 80;
if (score >= 90) {
System.out.println("電腦");
} else if (score >= 80) {
System.out.println("手機");
} else if (score >= 60) {
System.out.println("大餐");
} else {
System.out.println("學習資料");
}
}
}
14.請根據英文單詞的第一個字母判斷星期幾,如果第一個字母是一樣的,則繼續判斷第二個字母。例如如果第一個字母是S,則繼續判斷第二個字母,如果第二個字母是a,則輸出「星期六」。星期的英文單詞如下表所示。
public class Test2{
public static void main(String[] args) {
char i, j;
System.out.println("please enter the first letter:");
Scanner input = new Scanner(System.in);
String str = "";
str = input.next().toLowerCase();
// 轉換成字串
i = str.charAt(0);
switch (i) {
case 'm':
System.out.println("Monday\n"); break;
case 'w':
System.out.println("Wednesday\n");break;
case 'f':
System.out.println("Friday\n"); break;
case 't':
System.out.println("please enter the next letter:");
str = input.next().toLowerCase();
j = str.charAt(0);
if (j == 'u')
System.out.println("Tuesday\n");
else if (j == 'h')
System.out.println("Thursday\n");
else
System.out.println("error\n");
break;
case 's':
System.out.println("please enter the next letter:");
// 轉換成字串
str = input.next().toLowerCase();
j = str.charAt(0);
if (j == 'a')
System.out.println("Saturday\n");
else if (j == 'u')
System.out.println("Sunday\n");
else
System.out.println("error\n");
break;
default:
System.out.println("error\n");
break;
}
}
}
15.輸入一批整數,使用回圈求出最大值與最小值,輸入0時結束。
public class Test 3{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int max = 0, min = 0;
int nums = 1;
//輸入第一個數,指定它是最大值和最小值
System.out.println("請輸入1個數:");
nums = input.nextInt();
max = nums;
min = nums;
//依次輸入其他數位,並判斷是否是最大值和最小值
for (int i = 2; nums != 0; i++) {
System.out.println("請輸入" +i + "個數:");
nums = input.nextInt();
if (nums != 0) {
if (nums > max) {
max = nums;
}
if (nums < min) {
min = nums;
}
}
}
//輸出最大值和最小值
System.out.println("最大值爲:" + max);
System.out.println("最小值爲:" + min);
}
}
16.給20塊錢買可樂,每瓶可樂3塊錢,喝完之後退瓶子可以換回1塊錢,問最多可以喝到多少瓶可樂。
public class Test4 {
public static void main(String[] args) {
int money = 20, price = 3;
// temp表示每一次購買的可樂瓶數
int temp = 0;
// change表示每次購買完可樂剩下的錢
int change = 0;
// sum表示總的可樂瓶數
int sum = 0;
// 如果錢數大於可樂價格
while (money >= price) {
// 購買可樂
temp = money / price;
// 總可樂瓶數增加
sum += temp;
// 計算買可樂剩下的錢
change = money % price;
// 兌換可樂瓶子,計算剩餘的總錢數
money = temp + change;
}
// 輸出結果
System.out.println(sum);
}
}