3.1
1.下列何者是錯誤的字面值?為什麼?
(a)2B (b)1A(c)3.20(d)a5
(e)$53(f)-67(g)2I(h)6.34K
ans:C(double資料類型)是正確 其他資料型態不同
2.是指出下列各字面值之類型
(a)6.56(b)3.2E24(c)6.74e36(d)1024(e)1.5E-06
ans:a是double,b是double,c是d是int,e是double。
3. 字串(String)是屬於原始資料型態,還是非原始資料型態?為什麼
ans:3-2頁內容的,字串以特殊的方式指向變數實體,稱之為參考(reference)。這類變數在宣告時並不會配置記憶體空間,而是另外進行記憶體配置。固非原始資料。
3.2
4. int char float 與double資料型態的變數,個讚有多少個位元數?它們能夠表示的數值範圍是多少?
5.試將下列各數以JAVA的指數型式來表示。
(a)-96.43(b)1974.56(c)0.01234(d)0.000432
ans:A:(-9.643E) B(1.9745E3)C(1.234E-2)D(4.32E-4)
6.下列宣告boolean型態的變數並初始化的敘述中,哪一個可以被JAVA編譯器所接受?
(a)boolean flag=true;
(b)Boolean flag=true
(c)boolean flag=True
(d)boolean flag=TRUE
ANS:A 其他字母不能大寫
7.在下列的變數中,是說明它們個屬於哪一種資料?
(a)164 a int
(b)786L n long
(c)33.42 s double
(d)33.344F float
(e)367.87D double
8.指出下列幾個程式片段錯誤的地方並加以修正:
(a)
01 public static void main(String args[])
02 {
03 long num=32998399887; //修正:32998399887L
04 System.out.println("num "+num);
05 }
(b)
01 public static void main(String args[])
02 {
03 char ch="\""; //'\"'
04 System.out.println(ch+"Spring is coming!"+ch);
05 System.out.println(\""Birds are flying! "\"); //(ch+"Birds are flying!"+ch);
06}
(c)
01 public static void main(String args[])
02 {
03 float num=2.0;
04 System.out.println(num+"*"+num+ = +(num*num)); //換行
//System.out.println("num"+"*"+"num+ = "+(num*num));
05 }
(d)
01 public static void main(String args[])
02 {
03 int imax= Integer.max_value; //MAX_VALUE需要大寫
04 System.out.println("Max VALUE of int; "+imax);
05 }
9.下列的敘述中,試問應該用甚麼型態的變數來描述下列各項比較恰當?
(1) 一個班級學生人數的總數 a int
(2)紐約帝國大廈的樓層數 n int
(3)月球到地球的距離 s double
(4)手機的重量 float
(5)您的身高與體重 float
(6)這本JAVA的總頁數 int
(7)一個離子的(ion)重量 double
(8)硬碟每秒的轉速 float
(9)昨天有下雨 boolean
(10)地球上人口的總數 int
10.是寫一些程式,分別利用字元'B'的Unicode編碼與16進位碼來列印。關於字元的編碼,請參考附錄D
ans:B的16進位為42 char ch= '\u0042'可印出B
11.假設伏點數變數f的值為6235.748,整個變數i的值為13,試撰寫一程式,將兩個變數值相加(f+i)與相除(f/i)後印除其結果。
ans:
01 public static void main(String args[])
02 {
03 float f=6235.748f;
04 int i=13;
05 System.out.println("f+i="+(f+i)+" f/i= "+f/i );
06
07 }
12.是將字元變數 ch的值設100 在於程式中以println()印出ch。您會得到甚麼樣的結果?為什麼?
ANS
char ch=100;
System.out.println(ch);
//d 因為附錄D 十進位100 就是d
13.希臘的小寫字母θ 16進位值為3B8,是在JAVA程式裡列印出小寫字母θ
01 public static void main(String args[])
02 {
03 char ch='\u03B8';
04 System.out.println(ch);
05
06 }
3.3
14如果想把35+52的運算結果換算成長整數(long),則程式碼應如何撰寫?
ans:
01 public static void main(String args[])
02 {
03 int a=35;
04 int b=52;
04 int b=52;
05 System.out.println((long)a+(long)b);
06
07 }
//印出87
15.如果想把35*52的運算結果換算成浮點數,則程式碼應如何撰寫?
ans:
//印出87
15.如果想把35*52的運算結果換算成浮點數,則程式碼應如何撰寫?
ans:
01 public static void main(String args[])
02 {
03 int a=35;
04 int b=52;
04 int b=52;
05 System.out.println((float)a+(float)b);
06
07 }
//印出1820.0
16.如果想把12-5的運算結果轉換成倍精度浮點數,則程式碼應如何撰寫?
ans:
//印出1820.0
16.如果想把12-5的運算結果轉換成倍精度浮點數,則程式碼應如何撰寫?
ans:
01 public static void main(String args[])
02 {
03 int a=12;
04 int b=5;
04 int b=5;
05 System.out.println((double)a-(double)b);
06
07 }
//印出7.0
17.請撰寫一程式計算並印出5/3的結果。
ans:
//印出7.0
17.請撰寫一程式計算並印出5/3的結果。
ans:
01 public static void main(String args[])
02 {
03 int a=5;
04 int b=3;
04 int b=3;
05 System.out.println((double)a/(double)b);
06
07 }
//印出1.666667
3.4
18.請撰寫一程式,由鍵盤輸入"Wrong never comes right!!"字串,輸出結果也是"Wrong never comes right!!" 字串。
ans
import java.util.Scanner;
public class iplusf
{
public static void main(String args[])
{
Scanner scn=new Scanner(System.in);
String str="Wrong never comes right!!";
str=scn.nextLine();
System.out.println(str);
}
}
//不論輸入甚麼就印出甚麼
19.略
20. 請撰寫一程式,由鍵盤輸入一個整數num,其輸出結果為num*3。
ans
import java.util.Scanner;
public class iplusf
{
public static void main(String args[])
{
Scanner scn=new Scanner(System.in);
int num;
num=scn.nextInt();
System.out.println(num*3);
}
}
21.是由鍵盤讀入兩個數值1200與2100,計算此二數之和。
ans
import java.util.Scanner; // 載入Scanner類別
public class iplusf
{
public static void main(String args[])
{
Scanner scn=new Scanner(System.in); // 宣告Scanner類別的物件
int num1;
int num2;
System.out.print("num1");
num1=scn.nextInt(); // 輸入字串
System.out.print("num2 ");
num2=scn.nextInt(); // 輸入整數
System.out.print("num1+num2="+(num1+num2));
}
}
//印出3300
22.請撰寫一程式,由鍵盤輸入一個英文字母,計算它在26個字母裡的順序。舉例來說,若輸入的是d,則輸出為"d為第4個字母"。請注意英文字母大小寫
import java.util.*;
public class iplusf {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
char[]ary={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
System.out.print("請輸入一個英文單字(不可空格):");
String str=sc.next();
str=str.toLowerCase();
for(int i=0;i<str.length();i++){
for(int j=0;j<ary.length;j++){
if((str.charAt(i))==(ary[j])){
System.out.println(str.charAt(i)+"為第"+(j+1)+"個字母");
}
}
}
//我不會上網找的答案>,,<
//印出1.666667
3.4
18.請撰寫一程式,由鍵盤輸入"Wrong never comes right!!"字串,輸出結果也是"Wrong never comes right!!" 字串。
ans
import java.util.Scanner;
public class iplusf
{
public static void main(String args[])
{
Scanner scn=new Scanner(System.in);
String str="Wrong never comes right!!";
str=scn.nextLine();
System.out.println(str);
}
}
//不論輸入甚麼就印出甚麼
19.略
20. 請撰寫一程式,由鍵盤輸入一個整數num,其輸出結果為num*3。
ans
import java.util.Scanner;
public class iplusf
{
public static void main(String args[])
{
Scanner scn=new Scanner(System.in);
int num;
num=scn.nextInt();
System.out.println(num*3);
}
}
21.是由鍵盤讀入兩個數值1200與2100,計算此二數之和。
ans
import java.util.Scanner; // 載入Scanner類別
public class iplusf
{
public static void main(String args[])
{
Scanner scn=new Scanner(System.in); // 宣告Scanner類別的物件
int num1;
int num2;
System.out.print("num1");
num1=scn.nextInt(); // 輸入字串
System.out.print("num2 ");
num2=scn.nextInt(); // 輸入整數
System.out.print("num1+num2="+(num1+num2));
}
}
//印出3300
22.請撰寫一程式,由鍵盤輸入一個英文字母,計算它在26個字母裡的順序。舉例來說,若輸入的是d,則輸出為"d為第4個字母"。請注意英文字母大小寫
import java.util.*;
public class iplusf {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
char[]ary={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
System.out.print("請輸入一個英文單字(不可空格):");
String str=sc.next();
str=str.toLowerCase();
for(int i=0;i<str.length();i++){
for(int j=0;j<ary.length;j++){
if((str.charAt(i))==(ary[j])){
System.out.println(str.charAt(i)+"為第"+(j+1)+"個字母");
}
}
}
//我不會上網找的答案>,,<
8.(c)答案應該是
回覆刪除System.out.println(num+"*"+num+"="+(num*num));
9.10答案應該是 long
地球人口至今(2019.07.29)已達75.3億,而int的最大數值為21.4億多,將無法編譯
22.可以使ch強制轉換成int十進制,而a的十進制為97,b為98,得輸入字母-96為答案
回覆刪除import java.util.Scanner;
public class Practice22{
public static void main(String args[]){
while(true) {
System.out.println("請輸入一個英文字母(小寫)");
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
char ch;
ch = string.charAt(0);
int i = ch - 96;
System.out.println(ch + "為第" + i + "個字母");
System.out.println();
}
}
}
想不到真的有人會回我 感謝感謝
刪除