一、判斷題
1、Java語言是不區分大小寫的。 錯,Java語言是嚴格區分大小寫的
2、Java程序源文件的擴展名為“.jar”。 錯,Java程序源文件的擴展名為”.java”
3、Java程序一般應含有main方法,因為它是所有java程序的入口。正確
4、聲明main方法時,其聲明可以寫成:
Public static void main(String args[])
也可以寫成:
Public static void main(String s[])
不正確,P不應該大寫,應該小寫,其他地方是正確的
6、假設有一個名為Hello的java源程序,那么編譯這個文件的命令為javac Hello.java。
正確
7、當運行java程序時,類加載器將字節碼加載到內存中,字節碼檢驗器確認所有的字節碼是合法的并且不會破壞java的安全限制,然后解釋器讀取這些字節碼并將它們翻譯成計算機能夠執行的語言。
正確
8、在java語言中,每個ASCII碼英文字符占用8個二進制位,而每個中文漢字字符占用16個二進制位。FALSE
正確 英文字符占1個字節8位,中文字符占2個字節16位
9、short s = 64000語句是否正確。
不正確,超出short的取值范圍和應該在64000后面加上分號“;”
二、填空題
1、Sun公司提供了三種java開發工具:其用于工作站和個人計算機的標準開發工具為_
java se _____,用于企業級開發的工具為_java ee______,用于智能移動產品的工具為__ java me______。
2、Java程序中的數據類型分為哪兩種_基本數據類型和引用數據類型__________________________。
8種基本數據類型 數值型(byte short int long float double)字符型 char
布爾型 (Boolean) true 和false
引用數據類型 類,接口,數組
3、配置java開發和運行環境,通常需要配置哪兩個環境變量___path_______和________classpath____。
4、在java源文件中,可以有哪幾種類型的注釋_____單行注釋 多行注釋和文檔注釋___________________________。
5、查看當前java虛似機版本的java命令為___java -version________。
6、設一個java源文件的名字為Test.java,則編譯該文件的命令為_javac Test.java_____,運行的命令為___java Test___。
7、Java虛似機運行java程序過程為:首先從后綴為_.class____的文件加載代碼到內存中,然后在內存中__字節碼檢驗器檢查______代碼的合法性和安全性,然后___解釋器____執行合法和安全的代碼。
8、Java語言在____1995______年由____SUN______公司第一次正式發布的,__
詹姆斯•戈斯林(James Gosling)________被譽為java之父。
9、設Hello.java文件的內容如下:
class Hello
{
static void main(String args[])
{
System.out.println(“Hello World!”);
}
}
下面說法正確的是:D
A、 無法通過編譯,因為main方法聲明不對。
B、 可以編譯,但不可以運行。
C、 可以編譯,并可以輸出正常結果。
D、 可以編譯,但不可以運行,因為文件中沒有public類。
10、請寫出下面程序的運行結果____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、請寫出下面程序的運行結果____11_______:
public class Test
{
public static void main(String args[])
{
int i = 0;
while(true)
{
if(++i>10)
{
break;
}
}
System.out.printnln(i);
}
}
12、請寫出下面程序的運行結果________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
13、請寫出下面程序的運行結果_____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));
}
}
14、請寫出下面程序的運行結果_______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);
}
}
三、簡答題:
1、請判斷下面的程序是否能正常編譯并運行,如能編譯請寫出運行結果,如不能請改正。
int i = 0;
do
System.out.println(i++);
while(i<5);
正確 :結果為 0
1
2
3
4
2、請指出下面程序可能出現的問題。
class Test
{
public static void main(String args[])
{
int i = 0;
do
{
System.out.println(i++);
}
}
}
沒有while 語句,do語句沒有中止,不是正確的寫法
3、請總結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、 請編寫程序,計算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;
}
}
運行結果:
2、 請定義一個整數數組,用一種排序算法對這個數組進行排序。
源代碼://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);
}
}
運行結果:
3、 請用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);
}
}
運行結果:
4、 編寫一個程序,程序里定義三個數,并輸出這三個數的最大數。
源代碼://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 ;
}
}
運行結果:
5、 編寫一個程序,這個程序把一個整數數組中的每個元素用逗號連接成一個字符串,例如,根據內容為[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);
}
}
運行結果:
6、 編寫一個程序,從鍵盤上接受用戶輸入的需要轉的數,得到的一定是字符串,將此字符串轉換成十進制整數,然后打印出這個十進制整數對應的二進制形式。
源代碼://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);
}
}
運行結果:
7、 請用移位的方式打印出一個十進制整數的十六進制形式。提示:按每4個二進制位對整數進行移位和去高位處理,得到的結果就是十六進制數的一位,然后按下面三種方式之一(作為作業,要求每種方式都用到)計算出一個十六進制數值對應的十六進制形式:
1)0-9之間的數值直接加上字符'0',9以上的數值減去10以后再加上字符'A'
2)定義一個數組,其中包含0-F這些字符,然后用要計算的數值作為數組的索引號,即可獲得其對應的十六進制數據。
3)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);
}
}
運行結果:
posted on 2012-08-07 00:50
、小細 閱讀(92)
評論(0) 編輯 收藏