王利國的"Java語言程序設計第3次作業(2018)"詳細
總分:100
選擇題得分:60
1. 設有如下定義語句: String s1=”My cat”; int m=s1.compareTo(“My a cat”); 語句被執行后m的值為( )
A.2
B.1
C.0
D.-2
2. 語句 String s1=new String(“Hello”); String s2=new String(“Hello”); System.out.println(s1==s2); System.out.printlv(s1.equals(s2)); 執行后的輸出結果是( )
A.Hello false
B.Hello true
C.Hello Hello
D.false true
3. 執行下列語句 int[] lx={2,3,4,5}; lx[3]=lx[3]==--lx[0]?++lx[1]:lx[2]--; 后,數組lx的元素值分別為( )
A.1,2,3,4
B.1,3,3,3
C.1,2,3,3
D.1,3,3,4
4. 在一個應用程序中定義了數組a:int[] a={1,2,3,4,5,6,7,8,9,10},為了打印輸出數組a的最后一個數組元素,下面正確的代碼是( )
A.System.out.println(a[10]);
B.System.out.println(a[9]);
C.System.out.println(a[8]);
D.System.out.println(a[a.length]);
5. 設有定義語句int a[]={36,72,99};則以下對此語句敘述錯誤的是( )
A.該語句定義了一個名為a的一維數組;
B.a數組有3個元素;
C.數組中的每個元素是整型;
D.a數組的元素的下標為1~3;
6. 下面關於數組定義語句不正確的是( )
A.float f[]=new{2.4f,3.5f,5.7f,7.9f};
B.int a[]={1,2,3,4,5}
C.double[]d=new double[10];
D.int[]a2;
7. 下列語句序列執行后,c的值是( ) int a=3,b=4,c=0; while ((a++)<(--b))++c;
A.0
B.1
C.2
D.3
8. 下列語句序列執行后,a的值是( ) int a=1; for(int i=5;i>0;i-=2) a*=i;
A.0
B.1
C.15
D.60
9. 下列語句序列執行后,c的值是( ) int a=10,b=18,c=30; switch(b-a){ case 8 : c++; case 9 : c+=2; case 10 : c+=3; default :c/=b; }
A.31
B.32
C.2
D.33
10. 設a、b為int型變量,c、d為fload類型變量,ch為char類型變量,且所有變量均已賦值,則下列正確的switch語句是( )
A.switch(a+b);{...}
B.switch(ch+1){...}
C.switch ch {...}
D.switch(c+d){...}
11. 下列語句序列執行后,c的值是( ) int a=4,b=5,c=9,d=6; if (a>b||c<d) c--; else c++;
A.6
B.10
C.8
D.9
12. 下列語句序列執行后,c的值是( ) int a=6,b=3,c=5; if (a==b) c+=a;else c=++a*c;
A.15
B.25
C.35
D.45
13. 下列語句序列執行后,c變量的值為( ) int a=2,b=4,c=5; if (a<--b) c*=a;
A.5
B.20
C.15
D.10
14. 下列語句序列執行后,ch1變量中的值為( ) char ch1=’A’,ch2=’B’; if (ch1+2<ch2)++ch1;
A.'A'
B.'B'
C.A
D.B
15. 以下選項中,合法的賦值語句是( )
A.++m!=n--;
B.++m;
C.m=m+1=5;
D.m==1;
16. 設有定義“int a=22;long b=56;”,下面賦值不正確的語句是( )
A.a=b;
B.b=(long)a;
C.a=(int)b;
D.b=a;
17. 下面選項中,( )是正確的輸出結果 int m=2,n=1; m+=m-=n; System.out.println(“m=”+m);
A.m=1
B.m=2
C.m=3
D.m=4
18. 下列語句序列執行后的結果為( ) int a=10,b=4,c=20,d=6; System.out.println(a++*b+c*--d);
A.144
B.140
C.28
D.不能執行
19. 假設以下選項中的變量都已經正確定義,則不合法的表達式是( )
A.a>4==6<1;
B.’n’-3;
C.’a’=8;
D.’A’%6
20. 假設a為已經聲明並以賦初值的int類型變量,則對於a的賦值語句正確的是( )
A.int a=6;
B.a==3;
C.a=3.2f;
D.a+=a*3;
編程題得分:40
打印每月有幾天 得分:10 / 10
import java.util.Scanner; /** * @Author liguo * @Description * @Data 2018-04-03 */ public class Main { public static void main(String[] args) { int year; int month; int[] a = {1, 3, 5, 7, 8, 10, 12}; int[] b = {4, 6, 9, 11}; Scanner in = new Scanner( System.in ); year = in.nextInt(); month = in.nextInt(); //判斷二月,考慮閏年情況 if (month == 2) { if (year % 100 != 0 && year % 4 == 0 || year % 400 == 0) System.out.println( year + "-" + month + "-29" ); else System.out.println( year + "-" + month + "-28" ); } //判斷三十一天的情況 for (int element : a) { if (month == element) { System.out.println( year + "-" + month + "-31" ); } } //判斷三十天的情況 for (int element : b) { if (month == element) { System.out.println( year + "-" + month + "-30" ); } } } }
4-3-2 百分制成績轉換等級制成績 得分:10 / 10
從鍵盤上讀入一個百分制成績x(0 < = x < = 100),將其轉換為等級制成績輸出。本題在C語言和Java語言中要求使用switch分支實現。等級制成績(百分制成績)
import java.util.Scanner; /** * @Author liguo * @Description 從鍵盤上讀入一個百分制成績x(0 < = x < = 100), * 將其轉換為等級制成績輸出。本題在C語言和Java語言中要求使用switch分支實現。 * 等級制成績(百分制成績) * A(90<=x<=100) * B(80<=x<90) * C(70<=x<80) * D(60<=x<70) * E(0<=x<60) * @Data 2018-04-03 */ public class Main { static void judge(int mark) { char degree = 'A'; int temp = mark / 10; if (temp >= 0 && temp < 6) degree = 'E'; if (temp == 6) degree = 'D'; if (temp == 7) degree = 'C'; if (temp == 8) degree = 'B'; if (temp == 9 || temp == 10) degree = 'A'; System.out.println( mark + "--" + degree ); } public static void main(String[] args) { int temp; Scanner in = new Scanner( System.in ); int x = in.nextInt(); temp = x / 10; if (temp >= 0 && temp < 6) temp = 5; switch (temp) { case 5: judge( x ); break; case 6: judge( x ); break; case 7: judge( x ); break; case 9: judge( x ); break; case 10: judge( x ); break; } } } 用if語句求解分段函數 得分:10 / 10 import java.util.Scanner; /** * @Author liguo * @Description分段函數求解:輸入 x ,計算並輸出 y 的值: * y=x+100 ( 當 x < 20) * y= x ( 當 2 0 ≤ x ≤ 100) * y=x-100 ( 當 x > 100) * @Data 2018-04-03 */ public class Main { public static void main(String[] args) { double x, y; Scanner in = new Scanner( System.in ); x = in.nextDouble(); if (x < 20) y = x + 100; else if (x >= 20 && x <= 100) y = x; else y = x - 100; System.out.printf( "x=%.2f,y=%.2f", x, y ); } } 2-2 混合類型數據格式化輸入 得分:10 / 10 import java.util.Scanner; /** * @Author liguo * @Description 輸入在一行中順序給出浮點數1、整數、字符、浮點數2,其間以1個空格分隔。 * 輸入描述 * 輸入在一行中順序給出浮點數1、整數、字符、浮點數2,其間以1個空格分隔。 * 輸出描述 * 在一行中按照字符、整數、浮點數1、浮點數2的順序輸出,其中浮點數保留小數點后2位。 * @Data 2018-04-03 */ public class Main { public static void main(String[] args) { Scanner in = new Scanner( System.in ); double d1 = in.nextDouble(); int i = in.nextInt(); String s = in.next(); char c = s.charAt( 0 ); double d2 = in.nextDouble(); System.out.printf( "%c %d %.2f %.2f", c, i, d1, d2 ); } }
3-4-1a 計算三位數的位數和 得分:10 / 10
從鍵盤輸入任意一個三位數的整數,請編寫程序計算這個整數的數位和。 輸入描述 輸入一個三位數的整數 輸出描述
import java.util.Scanner; /** * @Author liguo * @Description 從鍵盤輸入任意一個三位數的整數,請編寫程序計算這個整數的數位和。 輸入描述 輸入一個三位數的整數 輸出描述 * @Data 2018-04-03 */ public class Main { public static void main(String[] args) { Scanner in = new Scanner( System.in ); int temp = in.nextInt(); temp = Math.abs(temp); int a = temp/100; int b = temp /10%10; int c = temp %10; int sum = a+b+c; System.out.println(sum); } }