一、判斷題
、Java語言是不區分大小寫的。 錯,Java語言是嚴格區分大小寫的
、Java程序源文件的擴展名爲“.jar”。 錯,Java程序源文件的擴展名爲”.java”
、Java程序一般應含有main方法,因爲它是所有java程序的入口。正確
、聲明main方法時,其聲明可以寫成:
Public static void main(String args[])
也可以寫成:
Public static void main(String s[])
不正確,P不應該大寫,應該小寫,其他地方是正確的
、假設有一個名爲Hello的java源程序,那麼編譯這個文件的命令爲javac Hello.java。
正確
、當運行java程序時,類加載器將字節碼加載到內存中,字節碼檢驗器確認所有的字節碼是合法的並且不會破壞java的安全限制,然後解釋器讀取這些字節碼並將它們翻譯成計算機能夠執行的語言。
正確
、在java語言中,每個ASCII碼英文字符佔用8個二進制位,而每個中文漢字字符佔用16個二進制位。FALSE
正確 英文字符佔1個字節8位,中文字符佔2個字節16位
、short s = 64000語句是否正確。
不正確,超出short的取值範圍和應該在64000後面加上分號“;”
二、填空題
、Sun公司提供了三種java開發工具:其用於工作站和個人計算機的標準開發工具爲_
java se _____,用於企業級開發的工具爲_java ee______,用於智能移動產品的工具爲__ java me______。
、Java程序中的數據類型分爲哪兩種_基本數據類型和引用數據類型__________________________。
種基本數據類型 數值型(byte short int long float double)字符型 char
布爾型 (Boolean) true 和false
引用數據類型 類,接口,數組
、配置java開發和運行環境,通常需要配置哪兩個環境變量___path_______和________classpath____。
、在java源文件中,可以有哪幾種類型的註釋_____單行註釋 多行註釋和文檔註釋___________________________。
、查看當前java虛似機版本的java命令爲___java -version________。
、設一個java源文件的名字爲Test.java,則編譯該文件的命令爲_javac Test.java_____,運行的命令爲___java Test___。
、Java虛似機運行java程序過程爲:首先從後綴爲_.class____的文件加載代碼到內存中,然後在內存中__字節碼檢驗器檢查______代碼的合法性和安全性,然後___解釋器____執行合法和安全的代碼。
、Java語言在____1995______年由____SUN______公司第一次正式發佈的,__
詹姆斯•戈斯林(James Gosling)________被譽爲java之父。
、設Hello.java文件的內容如下:
class Hello
{
static void main(String args[])
{
System.out.println(“Hello World!”);
}
}
下面說法正確的是:D
A、 無法通過編譯,因爲main方法聲明不對。
B、 可以編譯,但不可以運行。
C、 可以編譯,並可以輸出正常結果。
D、 可以編譯,但不可以運行,因爲文件中沒有public類。
、請寫出下面程序的運行結果____12_______:
public class Test
{
public static void main(String args[])
{
int i = 0;
while(true)
{
if(i++>10)
{
break;
}
}
System.out.printnln(i);
}
}
X++和++X的區別: X++是X先參與運算再自增,++X是先自增再參與運算
、請寫出下面程序的運行結果____11_______:
public class Test
{
public static void main(String args[])
{
int i = 0;
while(true)
{
if(++i>10)
{
break;
}
}
System.out.printnln(i);
}
}
、請寫出下面程序的運行結果________4________
class Test
{
public static void main(String args[])
{
int a=1,b=2;
if((a==0)&(++b==6))
a = 100;
System.out.println(a+b);
}
}
(a==0)這個條件爲false (++b==6)這個條件首先b自增1後再參與比較,b變成了3,但這個條件也不成立,所以”a=100;”這個語句沒有執行,最後(a+b)的值爲(1+3)=4
、請寫出下面程序的運行結果_____4______________。
class Test
{
public static int method(int x)
{
int j = 1;
switch(x)
{
case 1:
j++;
case 2:
j++;
case 3:
j++;
case 4:
j++;
case 5:
j++;
default:
j++;
}
return j;
}
public static void main(String args[])
{
System.out.println(method(4));
}
}
、請寫出下面程序的運行結果_______7____________。
class Test
{
public static void main(String args[])
{
int a = 2;
switch(a)
{
case 1:
a +=1;
break;
case 2:
a +=2;
case 3:
a +=3;
break;
case 4:
a +=4;
break;
default:
a = 0;
}
System.out.println(a);
}
}
三、簡答題:
、請判斷下面的程序是否能正常編譯並運行,如能編譯請寫出運行結果,如不能請改正。
int i = 0;
do
System.out.println(i++);
while(i<5);
正確 :結果爲 0
、請指出下面程序可能出現的問題。
class Test
{
public static void main(String args[])
{
int i = 0;
do
{
System.out.println(i++);
}
}
}
沒有while 語句,do語句沒有中止,不是正確的寫法
、請總結break、continue和return的具體用法,並寫出相應的示例程序。
break於中止當前循環中的子語句
continue 語句只能出現在循環語句中,用於跳出循環的剩餘語句塊,接着執行下一次循環
for(int i=0;i<10;i++)
{
if(i%2==0)
{
continue;
}
System.out.println(i);
}
return 用於結束當前執行的語句,並返回一個值
static int getMax(int num1,int num2,int num3)
{
int max=num1>num2?num1:num2;
max=max>num3?max:num3;
return max ;
}
四、程序題:
、 請編寫程序,計算1+3+5+……………………+1999的結果。
源程序://FindSum.java
public class FindSum
{
public static void main(String args[])
{
int n = 1999 ;
int sum = findSum(n);
System.out.println("從0到"+n+"之間的奇數和爲:");
System.out.println("sum="+sum);
}
static int findSum(int n)
{
int sum=0;
for(int i=0; i<=n; i++)
{
if(i%2==1)
sum+=i;
}
return sum;
}
}
運行結果:
、 請定義一個整數數組,用一種排序算法對這個數組進行排序。
源代碼://Demo42.java
public class Demo42
{
public static void main(String args[])
{
int [] num = {12,45,10,23,5,123,89,411,9,78};
System.out.println("排序前:");
arrList(num);
selectSort(num);
System.out.println("排序後:");
arrList(num);
}
static void selectSort(int [] arr)
{
for(int i=0; i<arr.length-1; i++)
{
int pos = i;
int max = arr[i];
for(int j=i+1; j<arr.length;j++)
{
if(arr[j]>max)
{
max = arr[j];
pos = j;
}
}
exchange(arr,i,pos);
}
}
static void exchange(int [] arr,int pos1,int pos2)
{
int temp;
temp = arr[pos1];
arr[pos1] = arr[pos2];
arr[pos2] = temp;
}
static void arrList(int [] arr)
{
StringBuffer sb = new StringBuffer();
for(int i=0; i<arr.length; i++)
sb.append(arr[i] + ",");
sb.delete(sb.length()-1,sb.length());
System.out.println(sb);
}
}
運行結果:
、 請用System.arraycopy實現數組的拷貝。
源代碼://Demo43.java
public class Demo43
{
public static void main(String args[])
{
int [] num1 = {15,89,16,56,10,2,5,123,84,99,753,612};
int [] num2 = {789,145,100,20,36,95,88,71,40,126,91,65};
System.out.println("數組拷貝前:");
arrList(num1);
arrList(num2);
System.arraycopy(num1,3,num2,3,6);
System.out.println("數組拷貝後:");
arrList(num1);
arrList(num2);
}
static void arrList(int [] num)
{
StringBuffer sb = new StringBuffer();
for(int i=0; i<num.length; i++)
{
sb.append(num[i]+",");
}
sb.delete(sb.length()-1,sb.length());
System.out.println(sb);
}
}
運行結果:
、 編寫一個程序,程序裏定義三個數,並輸出這三個數的最大數。
源代碼://Demo44.java
class Demo
{
public static void main(String args [])
{
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
int num3 = Integer.parseInt(args[2]);
System.out.println("這三個數的最大值是:");
System.out.println(getMax(num1,num2,num3));
}
static int getMax(int num1,int num2,int num3)
{
int max=num1>num2?num1:num2;
max=max>num3?max:num3;
return max ;
}
}
運行結果:
、 編寫一個程序,這個程序把一個整數數組中的每個元素用逗號連接成一個字符串,例如,根據內容爲[1][2][3]的數組形成內容爲“1,2,3”的字符串。
源代碼://Demo45.java
class arrDemo
{
public static void main(String args [] )
{
int [] arr = {12,89,45,61,568,945,102,302,44,777,945,689};
System.out.println("依次輸出數組中的元素:");
arrList(arr);
}
static void arrList(int [] arr)
{
StringBuffer sb = new StringBuffer();
for(int i=0; i<arr.length; i++)
sb.append(arr[i]+",");
sb.delete(sb.length()-1,sb.length());
System.out.println(sb);
}
}
運行結果:
、 編寫一個程序,從鍵盤上接受用戶輸入的需要轉的數,得到的一定是字符串,將此字符串轉換成十進制整數,然後打印出這個十進制整數對應的二進制形式。
源代碼://Demo46.java
class appDemo
{
public static void main (String args [])
{
int num = Integer.parseInt(args[0]);
System.out.println("輸入的整數爲:"+num);
System.out.println("這個十進制的整數對應的二進制形式爲:");
ten2Binary(num);
}
static void ten2Binary(int num)
{
StringBuffer sb = new StringBuffer();
while(num>0)
{
int temp = num%2;
num=num/2;
sb.append(temp);
}
sb.reverse();
System.out.println(sb);
}
}
運行結果:
、 請用移位的方式打印出一個十進制整數的十六進制形式。提示:按每4個二進制位對整數進行移位和去高位處理,得到的結果就是十六進制數的一位,然後按下面三種方式之一(作爲作業,要求每種方式都用到)計算出一個十六進制數值對應的十六進制形式:
)0-9之間的數值直接加上字符'0',9以上的數值減去10以後再加上字符'A'
)定義一個數組,其中包含0-F這些字符,然後用要計算的數值作爲數組的索引號,即可獲得其對應的十六進制數據。
)Character.forDigit靜態方法可以將一個十六進制的數字轉變成其對應的字符表示形式,例如,根據數值15返回字符'F'。
源代碼://Demo47.java
class hDemo
{
public static void main(String args[])
{
int num = Integer.parseInt(args[0]);
System.out.println("輸入的整數爲:"+num);
System.out.println("這個十進制整數對應的十六進制形式是:");
ten2Hex(num);
}
static void ten2Hex(int num)
{
StringBuffer sb = new StringBuffer();
char[] buf = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(int i=0; i<8; i++)
{
int temp = num&0x000000000f;
sb.append(buf[temp]);
num=num>>4;
}
sb.reverse();
System.out.println(sb);
}
}
運行結果:
javase_03作業
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.