1.什么叫標識符?
??? 標識符是用來標識變量、常量、類名、方法等名字的符號。
??? 是由字母、數字、下劃線(_)、美元符($)組成的、必須以字母、下劃線或美元符開頭的、字符個數有限的字符序列。
??? Java中的標識符區分大小寫,且不得于關鍵字相同。
2.什么叫變量?什么叫常量?系統是否為變量和常量分配內存空間?
??? 變量是一個保存數據的內存區域的名字。系統在變量定義時為其分配內存空間。
??? 在整個程序運行期間保持不變的變量稱作常量。常量在定義時也為其分配相應的內存空間。
?
3.什么叫數據類型?定義變量時為什么要指出該變量的數據類型?
??? 數據類型規定了一類數據的數據位長度(或稱字符個數)、取值范圍以及對該類數據所能進行的操作。
??? 數據類型不同,所定義的變量占用的內存空間、取值范圍以及對該類數據所能進行的操作也不同。所以必須在定義時說明。
?
4.什么叫表達式?Java語言共有幾種表達式?
??? 用運算符和圓括號把運算對象連接起來的、符合Java語言語法規則的式子稱作表達式。
??? 運算符是算術運算符的表達式稱作算術表達式,運算符是關系運算符的表達式稱作關系表達式,運算符是邏輯運算符的表達式稱作邏輯表達式,運算符是位運算符的表達式稱作位表達式。
?
5.有幾種形式的分支語句?解釋每種分支語句的執行流程?
??? 分支語句包括有:if語句、switch語句、switch-break語句
??? ① 基本if語句
??? if? (〈邏輯表達式〉)
??? 〈語句組1〉;
??? [else 〈語句組2〉;]
??? ② if嵌套語句
??? if (n >= 1)
??? {
????? if (n <= 100) ……
??? }
??? else ……
??? ③switch語句
??? switch (〈表達式〉)
??? {
??? case〈常量1〉:〈語句組1〉;
??? ??? [break;]
??? case〈常量2〉:〈語句組2〉;
??? ??? [break;]
??? ……;
??? [default:〈語句組〉]
??? }
??? ④ switch語句中的break語句
??? switch (〈表達式〉)??? ???
??? break;
?
6.有幾種形式的循環語句?解釋每種循環語句的執行流程?
??? 包括:for語句、while語句、do-while語句
??? ①for語句
??? for ([〈表達式1〉];[〈表達式2〉];[〈表達式3〉])
??? 〈循環體〉;
??? ② while語句
?? while (〈邏輯表達式〉)
??? 〈循環體〉;
??? ③ do-while語句
??? do
??? {
??? ??? 〈語句組〉;
??? }? while (〈邏輯表達式〉) ;
?
7.幾種循環結構可以互相轉換嗎?
??? 循環結構主要分為1.先執行再判斷條件;2.先判斷條件再執行
??? 主要將執行和不執行的位置互換,則兩者的意義是完全相同的
??? 所以可以互相轉換
8.什么叫引用類型?數組變量是引用類型變量嗎?字符串變量是引用類型變量嗎?
??? 引用類型是指該類型的標識符表示的是一片內存連續地址的首地址。
??? Java中的數組變量、字符串都是引用類型。
9.Java語言是怎樣構造二維數組的?
??? Java語言只定義了一維數組,但是,如果一維數組的每個數組元素都是一個一維數組,則構成了Java語言的二維數組。
?
10.Java語言是怎樣構造不規則數組的?
??? 由于Java語言的二維數組是由一維數組定義的,所以,可以把二維數組中的每個一維數組定義為不同的元素個數,這樣就可以構成不規則的二維數組。
?
?
2、程序設計題:
11.下面哪些字符不合法?為什么?
(1)HellowWorld (2)2Great? ?(3)_come (4)–month? (5)count&add
(6)23233?? ???? (7)non-stop (8)java? (9)Hotjava? (10)glade300
??? 合法的有:(1)、(3)、(8)、(9)、(10)?? java不是關鍵字
??? 不合法的:(2)(6)數字開頭、(4)(5)(7)含非法字符
?
12.下面哪些是Java中的關鍵字?
Transient、constant、this、super、until、goto、repeat、interrupt、synchronized、const、class、
Java、throws、throw、volatile、try、catch、implements、extends、final、static、finalize
??? 其中的關鍵字有:transient、this、super、goto、synchronized、class、throws、throw、try、catch、implements、extends、final、static
13、指出下面數值的數據類型
(1)396? ? (2)8864L (3)23.322 (4)23.299D (5)34.333F
(6)23.3e3 (7)'a'?? (8)true? (9)false? (10)"abcd"
??? (1)int??? (2)long? (3)double? (4)double? (5)float
??? (6)double (7)char? (8)boolean (9)boolean (10)String
?
14.敘述數據類型轉換時不損失數據位數或精度應遵守的轉換原則
??? 把數值范圍和精度小的數據類型向數值范圍和精度大的數據類型轉換
?
15.指出下面程序段中的錯誤。
(1)int x=1;
?? while(x<=10);
?? {
? x++;
?? }
(2)switch(n)
?? {
? case 1:
? System.out.println(“The numbe is 1”);
?? case 2:
? System.out.println(“The numbe is 2”);
? Break;
?? case 3:
? System.out.println(“The numbe is 3”);
? Break;
?? }
?
??? (1)while語句行后面多了";"
??? (2)case1語句之后應該加break
16.while 與do-while語句的區別是什么?
??? while是先判斷條件再執行語句,do-while是先執行一次語句再判斷條件
??? do-while語句至少執行一次循環體(因其結束條件判斷在后面進行);而對于while語句來說,當一開始循環條件就不滿足時,循環體將一次也不執行。
?
17.下面程序的輸出結果是什么?
public class A
{
???? public static void main(String args[])
? {
???? int[] a = {11,12,13,14};
???? int[] b = {0,1,2,3};
???? System.out.println(a[b[3]]);
???? System.out.println(a[2]);
?? }?
}
??? 14
??? 13
18.下面程序的輸出結果是什么?
public class Mystery
{
? public static void main(String args[])
? {
? ? int y, x = 1, total=0;
? ? while (x<=10)
? ??? {
?? ??? y=x*x;
?????? System.out.println(y);????????????????
?????? total +=y;
?????? ++x;
?????? }
??? System.out.println(“Total is ”+total);
?}?
}
??? 1
??? 4
??? 9
??? 16
??? 25
??? 36
??? 49
??? 64
??? 81
??? 100
??? Total is 385
?
19.下面程序的輸出結果是什么?
public class A
{
? public static void main(String args[])
? {
??? int size=10;
??? int[] array = new int[size];
??? size =20;
??? System.out.println(array.length);
? }?
}
??? 10
?
20.編寫程序分別輸出如下的圖形
*? *? *? *? *???? ??????????? ??? *?
*? *? *? *????? ??? ??????? ?? *? *? *?
*? *? *?????? ??????????? ? *? *? *? *? *
*? *??????? ??????????? *? *? *? *? *? *? *
*? *? *??????? ???????????? *? *? *? *? *
*? *? *? *????? ??????????? ?? *? *? *?
*? *? *? *? *??? ??????????? ???? *
? (1)?????????????????????????? (2)
?
(1)
class test0923 {
public static void main(String[] args)
{
??? //上面三行
? for (int i=1;i<=3;i++)
? {
?? for (int j=1;j<=6-i;j++)
?? {
??? System.out.print("* ");
?? }
?? System.out.println("");//換行
? }
? //下面四行
? for (int i=1;i<=4;i++)
? {
?? for (int j=0;j<=i;j++)
?? {
??? System.out.print("* ");
?? }
?? System.out.println("");//換行
? }
}
}
?
(2)
class test0923 {
? public static void main(String[] args)
? {
? //打印上面4行
??? for(int i=1;i<=4;i++)
????? {
????? for(int j=1;j<=4-i;j++)
??????? {
??????? System.out.print("? ");//打印空格
??????? }
??????? for(int k=1;k<=2*i-1;k++)
??????? {
???????? System.out.print("* ");//打印*
??????? }
????? System.out.println("");//換行
????? }
? //打印下面3行
??? for(int i=1;i<=3;i++)
????? {
????? for(int j=1;j<=i;j++)
??????? {
??????? System.out.print("? ");
??????? }
????? for(int k=1;k<=7-2*i;k++)
??????? {
??????? System.out.print("* ");
??????? }
????? System.out.println("");
????? }
? }
}
21.寫出三種無限循環的代碼段
?
(1)
class test0923 {
? public static void main(String[] args)
? {
?? for (int i=1;i<=2;)
?? {
??? System.out.println("*");
?? }
? }
}
(2)
class test0923 {
? public static void main(String[] args)
? {
?? int i = 10;
?? while (i>=2)
?? {
??? System.out.println("*");
?? }
? }
}
(3)
class test0923 {
? public static void main(String[] args)
? {
?? for (int i=1;ture;i++)
?? {
??? System.out.println("*");
?? }
? }
}
?
class test0923 {
? public static void main(String[] args)
? {
?? short k = 32764;
?? do
?? {
??? k++;k++;
??? System.out.print("*");
?? }while(k>0);
? }
}
這個不是無限循環,因為k到達一個值之后會溢出,變成負值,然后跳出循環
22.設計程序計算1+2+3+…+100的結果
?
class test0923 {
? public static void main(String[] args)
? {
?? int total=0;
?? for (int i=1;i<=100;i++)
?? {
??? total +=i;
?? }
?? System.out.println(total);
? }
}
23.設計一個程序,將一維數組中的元素的順序倒置,例如,數組元素的順序原來是:1,2,3,4,5.倒置后的順序變為:5,4,3,2,1
?
class test0923 {
? public static void main(String[] args)
? {
?? int a[] = {1,2,3,4,5,6,7,8,9,10,90,500,13};
?? int temp;
??
?? for (int i=0;i<=(a.length-1)/2;i++)
?? {
??? temp=a[i];
??? a[i]=a[a.length-1-i];
??? a[a.length-1-i]=temp;
?? }
??
?? for (int j=0;j<=a.length-1;j++)
?? {
??? System.out.println(a[j]);
?? }
? }
}
24.設計程序對一個整數數組中的元素進行排序(要求采用不同于例2.12的排序方法)
?
class test0923 {
public static void main(String[] args)
? {
?? int a[] = {30,81,37,45,26,46,44,78,80,64};
?? System.out.println("排序前數組元素為:");
?? for(int i = 0; i < a.length; i++)
???? System.out.print(a[i] + "? ");
?
?? //插入排序法
?? for (int i=1;i<a.length;i++)
???? {
????? int j=i-1;
????? int temp=a[i];
???? while(a[j]>temp)
?????? {
???????? a[j+1]=a[j];
??????? j--;
??????? if(j<0)
??????? break;
????? }
?????? a[j+1]=temp;
????? }
?
??? System.out.println("\n排序后數組元素為:");
??? for(int i = 0; i < a.length; i++)
???? System.out.print(a[i] + "? ");
??? }
}
?
?