java語言程序設計(基礎篇)第2章 基本程序設計 復習題 解答


2章基本程序設計

作者:wwj

復習題

2.2~2.7

2.1.下列哪些標識符是合法的?哪些是java關鍵字?

applet ,Applet , a++ , --a , 4#R , $4 , #44 , apps , class , public ,  int  ,x ,y ,radius

 

解:合法:applet , Applet, $4, apps , x, y ,radius.

不合法:a++ , --a , 4#R , #44 , class , public , int

關鍵字:class , public , int

 

2.2.將下面的算法翻譯成java代碼:

·第一步:聲明一個名為miles初始值為100double型變量。

·第二步:聲明一個名為KILOMETERS_PER_MILE值為1.609double型變量。

·第三步:聲明一個名為kilometersdouble型變量,將milesKILOMETERS_PER_MILE相乘的結果賦給kilometers

·第四步:將kilometers顯示在控制台上。

在第四步之后,kilometers的值是多少?

解:1.double miles = 100;

2. final double KILOMETERS_PER_MILE = 1.609

3. kilometers = miles * KILOMETERS_PER_MILE;

4.System.out.println(kilometers);

kilometers=160.9

 

2.3使用常量的好處是什么?聲明一個值為20int型常量SIZE

解:使用常量有三個好處:1)不必重復輸入同一個值;

2)如果必須修改常量值,只需要在源代碼的一個地方做修改;

3)給常量賦值一個描述性名字會提高程序易讀性。

 

 

2.8~2.10

2.4假設int a=1 double d=1.0 ,並且每個表達式都是獨立的,那么下面的表達式的結果是什么?

a = 46 /9;    => a =5

a = 46 %9 + 4 * 4 – 2;=> a = 1 + 16 -2 = 15

a = 45 +43 % 5 * (23 * 3 % 2); =>a =45 + 3 * (1) = 48

a %=3 / a+ 3;=>a % = 3 + 3 => a = a % 6 = 1

d = 4 + d* d + 4;=> d = 4 + 1.0 + 4 = 9.0

d += 1.5* 3 + (++a);=> d + = 4.5 + 2 =>d = d + 6.5 = 7.5

d -= 1.5* 3 + a++;=> d -= 4.5 + 1 = > d = d – 5.5 = -4.5

 

 

2.5給出下面求余運算的結果。

   56 % 6  => 2

   78 % -4    =>2

   -34 % 5    =>-4

   -34 % -5   =>-4

   5 % 1  =>0

1 % 5 =>1

 

啟發:求余運算的結果的正負取決於被除數的正負,若被除數為負余數為負,反之為正

 

2.6如果今天是星期二,那么100天后是星期幾?

解:( 2 + 100 ) % 7 = 4 ,所以100天后是星期四

 

2.7分別找出byteshortintlongfloatdouble中的最大數和最小數,哪種數據類型所需的存儲空間最小?

解:類型     范圍               最大數    最小數        存儲大小

byte  -128~ 127               127       -128          8

short -32768~32767            -32768    32767         16

int   -2147483648~2147483647  -2147483648 2147483648  32

long   -9223372036854775808~9223372036854775807

                 -9223372036854775808  9223372036854775807

                                                  64

float 1.4E-45~3.4028235E+38      3.4028235E+381.4E-45    32

double  4.9E-325~1.7976931348623157E+308               64

 

 

2.8 25 / 4的結果是什么?如果希望得到的結果是浮點數,應該怎么改寫這個表達式?

解:25 / 4 = > 6,如果希望得到的結果是浮點數,25/ 4應該改寫為 25.0 / 4.025.0 / 4

或者25 / 4.0

 

2.9下列語句正確嗎?如果正確,寫出其輸出值。

   System.out.println(“25 / 4 is” + 25 / 4);     => 6

   System.out.println(“25 / 4.0 is” + 25 /4.0); => 6.25

   System.out.println(“3 * 2 / 4 is” +  3 * 2 / 4);=> 1

   System.out.println(“3.0 * 2 / 4 is” + 3.0 *2 / 4); => 1.5

 

2.10如果用java書寫下面的算術表達式?

   

解:4.0 / (3.0 * (r + 34)) – 9 * (a +b * c) + (3.0 + d * (2 + a)) / (a + b * d)

 

2.11假設mr都是整數。編寫mr^2java表達式,得到一個浮點數。

解:1.0 * m * ( r * r)

 

2.12下列說法哪些是正確的?

1)任何表達式都可以用作語句。

2)表達式x++可以用作語句。

3)語句x=x+5也是一個表達式。

4)語句x=y=x=0是非法的。

解:(2)(3)是正確的

 

2.13下列哪些是正確的浮點數直接量?

   12.3   ,12.3e+2 , 23.4e-2 , -334.4 , 20 , 39F , 40D

解:都是正確的浮點數直接量

 

2.14找出並修改下列代碼的錯誤:

1  public class Test {

2     public void main (string [] args){

3         int i;

4         int k = 100.0;

5         int j = i + 1;

6  

7     System.out.println(“ j is” + j + “ and kis “ + k);

8     }

9  }

 

解:第2行:main方法沒有用static修飾,參數列表中string應為String

   3行:i未初始化

   4行:double類型值不能直接賦給int型變量

   5行:i應先定義

   7~8行:字符串不能斷行

 

2.15如何使用System.currentTimeMillis()方法獲取當前分鍾數?

解:long totalMilliseconds =System.currentTimeMillis();

先調用System.currentTimeMillis()獲取當前時間與1970110點之間單位為毫秒的差值。

接着通過 totalMilliseconds/1000來計算總的秒數

long totalSeconds = totalMilliseconds / 1000;

計算總的分鍾數

long totalMinutes = totalSeconds / 60;

最后獲取當前分鍾數

long currentHour = totalHours % 24;

 

 

2.11

2.16不同類型的數值能在一起計算嗎?

解:當然可以。不同類型可以進行相同的計算成為類型轉換。

 

2.17如果顯式地將double型轉換為int型,那么對double型值的小數部分是如何處理的?類型轉換是否改變被轉換變量的值?

解:小數部分被截去,類型轉換不改變被轉換變量的值。

 

2.18寫出下面語句段的輸出:

float f =12.5F;

int i =(int)f;

System.out.println(“fis “ + f);  => 12.5

System.out.println(“iis “ + i);  => 12

 

2.13

2.19使用打印語句求出‘1’‘A’‘B’‘a’‘b’ASCII碼。使用打印語句求出ASCII碼為十進制數4059798590的字符。使用打印語句求出ASCII碼為十六進制405A71727A的字符。

解:

   System.out.println((int)'1');

   System.out.println((int)'A');

   System.out.println((int)'B');

   System.out.println((int)'a');

   System.out.println((int)'b');

 

   System.out.println((char)40);

   System.out.println((char)59);

   System.out.println((char)79);

   System.out.println((char)85);

   System.out.println((char)90);

   

   System.out.println((char)0X40);

   System.out.println((char)0X5A);

   System.out.println((char)0X71);

   System.out.println((char)0X72);

   System.out.println((char)0X7A);

 

2.20下列哪些是正確的字符直接量?

   ‘1’‘\u345dE’‘\u3fFa’‘\b’\t

解:‘\u345dE’是錯的,應為416進制數,而不是5

其他都正確。

 

2.21如何顯示字符\

解:'\\' and '\”'

 

2.22執行下述代碼:

   int i = ‘1’;

   int j = ‘1’ + ‘2’;

   int k = ‘a’;

   char c = 90;

解:i變成 49因為1ASCII碼是49

   j 變成 99因為1ASCII碼是49,2ASCII碼是50

   k 變成 97因為aASCII碼是97

   c 變成‘z’,因為90’z’是的ASCII

 

2.23下面哪些類型的轉換是允許的?如果允許,寫成轉換后的結果。

   char c = ‘A’;

   i = (int)c;       =>i = 65

   float f = 1000.34f;

   int i = (int)f;   => i = 1000

   

   double d = 1000.34;

   int i = (int)d;   => i = 1000

   

   int i = 97p;

   char c = (char)i;=> c = ‘a’

 

 

2.24給出下面程序的輸出結果:

   public class Test{

      public static void main(String[] args){

          char x = ‘a’;

          char y = ‘c’;

          

          System.out.println(++x); => b

          System.out.println(y++); => c

          System.out.println(x – y); => -2

      }

   }

 

 

2.15

2.25給出下面語句的輸出結果

System.out.println("1" + 1); => 11

System.out.println('1' + 1); => 50 (since the Unicode for 1is 49

System.out.println("1" + 1 +1); => 111

System.out.println("1" + (1 +1)); => 12

System.out.println('1' + 1 + 1); => 51

 

2.26計算下面表達式的結果

   1 + “Welcome “ + 1 +1  =>1Welcome 11

   1 + “Welcome “ + (1 + 1) =>1Welcome 2

   1 + “Welcome “ + (‘\u0001’ + 1)=>1Welcome 2

   1 + “Welcome “ + ‘a’ +1 =>1Welcome a1

 

2.16~2.17

2.27類名、方法名、常量和變量的命名習慣是什么?根據Java的命名習慣,下面哪些是常量、方法、變量或類?

解:類名:首字母要大寫

   變量和方法名:第一個單詞字母小寫,后面所有的單詞的首字母要大寫

   常量:所有的字母都要大寫

 

2.28根據編程風格和文檔指南,使用次花括號方式,重新布局下列程序的格式。

publicclass Test

{

   //main method

   public static void main(String[] args){

   /** Print a line*/

   System.out.println(“2 % 3 = “+2%3);

   }

}

解:

publicclass Test{

   //main method

   public static void main(String[] args){

   /** Print a line*/

   System.out.println(“2 % 3 = “+2%3);

   }

}

 

2.29描述何謂語法錯誤、運行錯誤和邏輯錯誤。

解:語法錯誤:在編譯過程中出現的錯誤

   運行錯誤:引起程序非正常中斷的錯誤。

   邏輯錯誤:程序沒有按預期的方式執行時所發生的錯誤。

 

2.18

2.30為什么必須導入JoptionPane類而無須導入Math類?

解:Math類是包含在java.lang包中,是系統自動引入的

 

2.31如何使用對話框提示用戶輸入一個整數?

解:String s = JoptionPane.showInputDialog(”Enteran input”);

 

2.32如何將字符串轉換為整數?如何將字符串轉換為double型?

解: int i= intger.parseInt(intString);

    double s =double.parstDouble(double string);

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM