1. 程式人生 > >java程序設計作業 c.njupt.edu.cn java實現第三次作業

java程序設計作業 c.njupt.edu.cn java實現第三次作業

splay 混合 cat else sys 情況 cas mat charat

王利國的"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 正確答案是: A 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 正確答案是: D 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 正確答案是: D 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]); 正確答案是: B 5. 設有定義語句int a[]={36,72,99};則以下對此語句敘述錯誤的是( )
A.該語句定義了一個名為a的一維數組; B.a數組有3個元素; C.數組中的每個元素是整型; D.a數組的元素的下標為1~3; 正確答案是: D 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; 正確答案是: A 7. 下列語句序列執行後,c的值是( ) int a=3,b=4,c=0; while ((a++)<(--b))++c; A.0 B.1 C.2 D.3 正確答案是: A 8. 下列語句序列執行後,a的值是( ) int a=1; for(int i=5;i>0;i-=2) a*=i;
A.0 B.1 C.15 D.60 正確答案是: C 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 正確答案是: C 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){...} 正確答案是: B 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 正確答案是: B 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 正確答案是: C 13. 下列語句序列執行後,c變量的值為( ) int a=2,b=4,c=5; if (a<--b) c*=a; A.5 B.20 C.15 D.10 正確答案是: D 14. 下列語句序列執行後,ch1變量中的值為( ) char ch1=’A’,ch2=’B’; if (ch1+2<ch2)++ch1; A.‘A‘ B.‘B‘ C.A D.B 正確答案是: A 15. 以下選項中,合法的賦值語句是( ) A.++m!=n--; B.++m; C.m=m+1=5; D.m==1; 正確答案是: B 16. 設有定義“int a=22;long b=56;”,下面賦值不正確的語句是( ) A.a=b; B.b=(long)a; C.a=(int)b; D.b=a; 正確答案是: 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 正確答案是: C 18. 下列語句序列執行後的結果為( ) int a=10,b=4,c=20,d=6; System.out.println(a++*b+c*--d); A.144 B.140 C.28 D.不能執行 正確答案是: B 19. 假設以下選項中的變量都已經正確定義,則不合法的表達式是( ) A.a>4==6<1; B.’n’-3; C.’a’=8; D.’A’%6 正確答案是: C 20. 假設a為已經聲明並以賦初值的int類型變量,則對於a的賦值語句正確的是( ) A.int a=6; B.a==3; C.a=3.2f; D.a+=a*3; 正確答案是: D

編程題得分: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
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);
    }
}

java程序設計作業 c.njupt.edu.cn java實現第三次作業