一、判断题
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) 编辑 收藏