随笔 - 19  文章 - 0  trackbacks - 0
<2012年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜




一、判断题
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 、小细 阅读(87) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: