1、基本概念題:
1.什么叫標(biāo)識(shí)符?
??? 標(biāo)識(shí)符是用來標(biāo)識(shí)變量、常量、類名、方法等名字的符號。
??? 是由字母、數(shù)字、下劃線(_)、美元符($)組成的、必須以字母、下劃線或美元符開頭的、字符個(gè)數(shù)有限的字符序列。
??? Java中的標(biāo)識(shí)符區(qū)分大小寫,且不得于關(guān)鍵字相同。
2.什么叫變量?什么叫常量?系統(tǒng)是否為變量和常量分配內(nèi)存空間?
??? 變量是一個(gè)保存數(shù)據(jù)的內(nèi)存區(qū)域的名字。系統(tǒng)在變量定義時(shí)為其分配內(nèi)存空間。
??? 在整個(gè)程序運(yùn)行期間保持不變的變量稱作常量。常量在定義時(shí)也為其分配相應(yīng)的內(nèi)存空間。
?
3.什么叫數(shù)據(jù)類型?定義變量時(shí)為什么要指出該變量的數(shù)據(jù)類型?
??? 數(shù)據(jù)類型規(guī)定了一類數(shù)據(jù)的數(shù)據(jù)位長度(或稱字符個(gè)數(shù))、取值范圍以及對該類數(shù)據(jù)所能進(jìn)行的操作。
??? 數(shù)據(jù)類型不同,所定義的變量占用的內(nèi)存空間、取值范圍以及對該類數(shù)據(jù)所能進(jìn)行的操作也不同。所以必須在定義時(shí)說明。
?
4.什么叫表達(dá)式?Java語言共有幾種表達(dá)式?
??? 用運(yùn)算符和圓括號把運(yùn)算對象連接起來的、符合Java語言語法規(guī)則的式子稱作表達(dá)式。
??? 運(yùn)算符是算術(shù)運(yùn)算符的表達(dá)式稱作算術(shù)表達(dá)式,運(yùn)算符是關(guān)系運(yùn)算符的表達(dá)式稱作關(guān)系表達(dá)式,運(yùn)算符是邏輯運(yùn)算符的表達(dá)式稱作邏輯表達(dá)式,運(yùn)算符是位運(yùn)算符的表達(dá)式稱作位表達(dá)式。
?
5.有幾種形式的分支語句?解釋每種分支語句的執(zhí)行流程?
??? 分支語句包括有:if語句、switch語句、switch-break語句
??? ① 基本if語句
????if? (〈邏輯表達(dá)式〉)
????〈語句組1〉;
????[else?〈語句組2〉;]
??? ② if嵌套語句
??? if (n >= 1)
??? {
????? if (n <= 100)?……
??? }
??? else?……
??? ③switch語句
??? switch (〈表達(dá)式〉)
??? {
??? case〈常量1〉:〈語句組1〉;
????????[break;]
??? case〈常量2〉:〈語句組2〉;
????????[break;]
??? ……;?
??? [default:〈語句組〉]
??? }
??? ④ switch語句中的break語句
??? switch (〈表達(dá)式〉)???????
??? break;
?
6.有幾種形式的循環(huán)語句?解釋每種循環(huán)語句的執(zhí)行流程?
??? 包括:for語句、while語句、do-while語句
??? ①for語句
??? for ([〈表達(dá)式1〉];[〈表達(dá)式2〉];[〈表達(dá)式3〉])
??? 〈循環(huán)體〉;
??? ② while語句
????while (〈邏輯表達(dá)式〉)
??? 〈循環(huán)體〉;
??? ③ do-while語句
??? do
??? {
??? ??? 〈語句組〉;
??? }? while (〈邏輯表達(dá)式〉) ;
?
7.幾種循環(huán)結(jié)構(gòu)可以互相轉(zhuǎn)換嗎?
??? 循環(huán)結(jié)構(gòu)主要分為1.先執(zhí)行再判斷條件;2.先判斷條件再執(zhí)行
??? 主要將執(zhí)行和不執(zhí)行的位置互換,則兩者的意義是完全相同的
??? 所以可以互相轉(zhuǎn)換
8.什么叫引用類型?數(shù)組變量是引用類型變量嗎?字符串變量是引用類型變量嗎?
??? 引用類型是指該類型的標(biāo)識(shí)符表示的是一片內(nèi)存連續(xù)地址的首地址。
??? Java中的數(shù)組變量、字符串都是引用類型。
9.Java語言是怎樣構(gòu)造二維數(shù)組的?
??? Java語言只定義了一維數(shù)組,但是,如果一維數(shù)組的每個(gè)數(shù)組元素都是一個(gè)一維數(shù)組,則構(gòu)成了Java語言的二維數(shù)組。
?
10.Java語言是怎樣構(gòu)造不規(guī)則數(shù)組的?
??? 由于Java語言的二維數(shù)組是由一維數(shù)組定義的,所以,可以把二維數(shù)組中的每個(gè)一維數(shù)組定義為不同的元素個(gè)數(shù),這樣就可以構(gòu)成不規(guī)則的二維數(shù)組。
?
?
2、程序設(shè)計(jì)題:
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不是關(guān)鍵字
??? 不合法的:(2)(6)數(shù)字開頭、(4)(5)(7)含非法字符
?
12.下面哪些是Java中的關(guān)鍵字?
Transient、constant、this、super、until、goto、repeat、interrupt、synchronized、const、class、
Java、throws、throw、volatile、try、catch、implements、extends、final、static、finalize
??? 其中的關(guān)鍵字有:transient、this、super、goto、synchronized、class、throws、throw、try、catch、implements、extends、final、static
13、指出下面數(shù)值的數(shù)據(jù)類型
(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.敘述數(shù)據(jù)類型轉(zhuǎn)換時(shí)不損失數(shù)據(jù)位數(shù)或精度應(yīng)遵守的轉(zhuǎn)換原則
??? 把數(shù)值范圍和精度小的數(shù)據(jù)類型向數(shù)值范圍和精度大的數(shù)據(jù)類型轉(zhuǎn)換
15.指出下面程序段中的錯(cuò)誤。
(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語句之后應(yīng)該加break
16.while 與do-while語句的區(qū)別是什么?
??? while是先判斷條件再執(zhí)行語句,do-while是先執(zhí)行一次語句再判斷條件
??? do-while語句至少執(zhí)行一次循環(huán)體(因其結(jié)束條件判斷在后面進(jìn)行);而對于while語句來說,當(dāng)一開始循環(huán)條件就不滿足時(shí),循環(huán)體將一次也不執(zhí)行。
?
17.下面程序的輸出結(jié)果是什么?
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.下面程序的輸出結(jié)果是什么?
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.下面程序的輸出結(jié)果是什么?
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.寫出三種無限循環(huán)的代碼段
?
(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);
? }
}
這個(gè)不是無限循環(huán),因?yàn)閗到達(dá)一個(gè)值之后會(huì)溢出,變成負(fù)值,然后跳出循環(huán)
22.設(shè)計(jì)程序計(jì)算1+2+3+…+100的結(jié)果
?
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.設(shè)計(jì)一個(gè)程序,將一維數(shù)組中的元素的順序倒置,例如,數(shù)組元素的順序原來是:1,2,3,4,5.倒置后的順序變?yōu)椋?,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.設(shè)計(jì)程序?qū)σ粋€(gè)整數(shù)數(shù)組中的元素進(jìn)行排序(要求采用不同于例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("排序前數(shù)組元素為:");
?? 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排序后數(shù)組元素為:");
??? for(int i = 0; i < a.length; i++)
??? ?System.out.print(a[i] + "? ");
??? }
}
?
?
-The End-