天天看點

關于翁恺老師測試題1.2.3

1

溫度轉換(5分)

題目内容:

寫一個将華氏溫度轉換成攝氏溫度的程式,轉換的公式是:

    °F = (9/5)*°C + 32

其中C表示攝氏溫度,F表示華氏溫度。

程式的輸入是一個整數,表示華氏溫度。輸出對應的攝氏溫度,也是一個整數。

提示,為了把計算結果的浮點數轉換成整數,需要使用下面的表達式:

    (int)x;

其中x是要轉換的那個浮點數。

注意:除了題目要求的輸出,不能輸出任何其他内容,比如輸入時的提示,輸出時的說明等等都不能。這道題目要求轉換後的數字,程式就隻能輸出這個數字,除此之外任何内容都不能輸出。

輸入格式:

一個整數。

輸出格式:

輸入樣例:

100

輸出樣例:

37

答案:

import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        
        int F;
        
        double num = 9/5.0;
        
        Scanner in = new Scanner(System.in);
        F = in.nextInt();
        
        double  C = ((F - 32)/num); //公式換算後所得
        
        System.out.println((int)C);
    }

}      

2

時間換算(5分)

UTC是世界協調時,BJT是中原標準時間,UTC時間相當于BJT減去8。現在,你的程式要讀入一個整數,表示BJT的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11點24分,而905表示9點5分,36表示0點36分,7表示0點7分。

有效的輸入範圍是0到2359,即你的程式不可能從測試伺服器讀到0到2359以外的輸入資料。

你的程式要輸出這個時間對應的UTC時間,輸出的格式和輸入的相同,即輸出一個整數,表示UTC的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果分小于10分,需要保留十位上的0。

提醒:要小心跨日的換算。

一個整數,表示BJT的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果小時不是0而且分小于10分,需要保留十位上的0。

一個整數,表示UTC的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小于10,則沒有千位部分;如果小時是0,則沒有百位部分;如果小時不是0而且分小于10分,需要保留十位上的0。

933

133

import java.util.Scanner;
public class Main {
    

    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
        
        final int T = 800;  //聲明一個時差用于BJT-時差 8小時 即 800
        int input = 0;
        input = in.nextInt();
        int h = input/100;       //聲明一個整型int h = 輸入除以100 這樣是為了在判斷中判斷百位與千位數字是在0-23之間 見if
        int m = input%100;       //聲明一個整型int m = 輸入取餘100 這樣是為了在判斷中判斷各位與十位數字是在0-59之間 見if
        
        
        if(h>=0&&h<=23&&m>=0&&m<=59&&input>=800) 
 //如果 輸入值除以100後的值>=0&&這個值<=23    &&   輸入值取餘100後的值>=0且<=59  因為時間如果為60或更大則不是時間表達  && 輸入值>=800  因為時差為800 8個小時 小于800會為負值
 //在後面的else if中,輸出的值為(輸入值+2400-時差)即為有效時間      
{
            
            System.out.println(input-T);
            
            
        }
        else if(input<800&&input>=0)
        {
            System.out.println(input+2400-T);
            
        }

         
        
    }

    
}      

3

信号報告(5分)

無線電台的RS制信号報告是由三兩個部分組成的:

R(Readability) 信号可辨度即清晰度.

S(Strength)    信号強度即大小.

其中R位于報告第一位,共分5級,用1—5數字表示.

1---Unreadable

2---Barely readable, occasional words distinguishable

3---Readable with considerable difficulty

4---Readable with practically no difficulty

5---Perfectly readable

報告第二位是S,共分九個級别,用1—9中的一位數字表示

1---Faint signals, barely perceptible

2---Very weak signals

3---Weak signals

4---Fair signals

5---Fairly good signals

6---Good signals

7---Moderately strong signals

8---Strong signals

9---Extremely strong signals

現在,你的程式要讀入一個信号報告的數字,然後輸出對應的含義。如讀到59,則輸出:

Extremely strong signals, perfectly readable.

一個整數,信号報告。整數的十位部分表示可辨度,個位部分表示強度。輸入的整數範圍是[11,59]内有效的數字,這個範圍外的數字不可能出現在測試資料中。

一句話,表示這個信号報告的意義。按照題目中的文字,先輸出表示強度的文字,跟上逗号和空格,然後是表示可辨度的文字,跟上句号。注意可辨度的句子的第一個字母是小寫的。注意這裡的标點符号都是英文的。

33

Weak signals, readable with considerable difficulty.

import java.util.Scanner;

public class Main {

    private static String Stringr;  //聲明靜态私有字元串 Stringr
    private static String Strings;       //...        Strings

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int input = in.nextInt();
        int R = input/10;     //同第二題方法
        int S = input%10;    //同第二題方法
       // int valueRS = R*10+S;  已注釋,之前的方法未達成遺留
        if(R>=1&&R<=5&&S>=1&&S<=9)//如果輸入的數值在11-59之間 //if(R>=1&&R<=5&&S>=1&&S<=9&&input>=11&&input<=59) 之後檢測input>=11&&input<=59是多餘的      
{ switch(S) //利用switch case 把S也就是各位數的值 指派對應的String語句 { case 1: Strings = "Faint signals, barely perceptible"; break; case 2: Strings = "Very weak signals"; break; case 3: Strings = "Weak signals"; break; case 4: Strings = "Fair signals"; break; case 5: Strings = "Fairly good signals"; break; case 6: Strings = "Good signals"; break; case 7: Strings = "Moderately strong signals"; break; case 8: Strings = "Strong signals"; break; case 9: Strings = "Extremely strong signals"; } switch(R)  //同上,利用switch case 指派十位數字的R 對應的String語句 { case 1: Stringr = "unreadable"; break; case 2: Stringr = "b;arely readable, occasional words distinguishable"; break; case 3: Stringr = "readable with considerable difficulty"; break; case 4: Stringr = "readable with practically no difficulty"; break; case 5: Stringr = "perfectly readable"; } System.out.println(Strings+", "+Stringr+"."); //輸入完成後列印被指派的 Strings 與 Stringr } } }      

将程式設計看作是一門藝術,而不單單是個技術。

敲打的英文字元是我的黑白琴鍵,

思維圖紙畫出的是我編寫的五線譜。

當美妙的華章響起,現實通往二進制的大門即将被打開。

繼續閱讀